Files
go-gin-api/internal/services/admin/service_modifypassword.go
新亮 4c37a7e6b5 feature(1.2.8): swagger 接口文档新增 Security
- 将 middleware 命名为 interceptor
- 将 deploy 命名为 deployments
- 移除 pkg/errno
- 使用 proposal 目录
- 优化代码
2021-11-28 13:25:27 +08:00

28 lines
921 B
Go

package admin
import (
"github.com/xinliangnote/go-gin-api/configs"
"github.com/xinliangnote/go-gin-api/internal/pkg/core"
"github.com/xinliangnote/go-gin-api/internal/pkg/password"
"github.com/xinliangnote/go-gin-api/internal/repository/mysql"
"github.com/xinliangnote/go-gin-api/internal/repository/mysql/admin"
"github.com/xinliangnote/go-gin-api/internal/repository/redis"
)
func (s *service) ModifyPassword(ctx core.Context, id int32, newPassword string) (err error) {
data := map[string]interface{}{
"password": password.GeneratePassword(newPassword),
"updated_user": ctx.SessionUserInfo().UserName,
}
qb := admin.NewQueryBuilder()
qb.WhereId(mysql.EqualPredicate, id)
err = qb.Updates(s.db.GetDbW().WithContext(ctx.RequestContext()), data)
if err != nil {
return err
}
s.cache.Del(configs.RedisKeyPrefixLoginUser+password.GenerateLoginToken(id), redis.WithTrace(ctx.Trace()))
return
}