// Code generated by hertz generator. package auth import ( auth "cn/oneao/base-go/biz/model/auth" "cn/oneao/base-go/db" "cn/oneao/base-go/ent/userinfo" "cn/oneao/base-go/logx" "cn/oneao/base-go/utils/jwtx" "cn/oneao/base-go/utils/response" "context" "fmt" "time" "github.com/cloudwego/hertz/pkg/app" "github.com/cloudwego/hertz/pkg/protocol/consts" ) // LoginDefault . // @router /auth/login/default [POST] func LoginDefault(ctx context.Context, c *app.RequestContext) { var err error var req auth.LoginDefaultReq err = c.BindAndValidate(&req) if err != nil { c.String(consts.StatusBadRequest, err.Error()) return } start := time.Now() // 记录开始时间 // 查询登录用户 loginUser, err := db.Client.UserInfo. Query(). Where(userinfo.AccountEQ(req.Account), userinfo.PasswordEQ(req.Password)). Only(ctx) duration := time.Since(start) // 计算耗时 fmt.Println("耗时:", duration) if err != nil { response.Fail(c).Message("账号或密码错误").Send() return } // 异步更新登录事件 go func() { err := db.Client.UserInfo. Update(). SetLastLoginTime(time.Now()). Where(userinfo.IDEQ(loginUser.ID)). Exec(ctx) if err != nil { logx.CtxError(ctx, "更新用户登录时间失败,UserID=%d, err=%v", loginUser.ID, err) } }() // 包装数据 token, err := jwtx.CreateAccessToken(loginUser.ID) refreshToken, err := jwtx.CreateRefreshToken(loginUser.ID) resp := new(auth.LoginDefaultResp) resp.Token = token resp.RefreshToken = refreshToken resp.UserId = loginUser.ID resp.Gender = loginUser.Gender resp.SeqNo = loginUser.SeqNo resp.Username = loginUser.Username response.Success(c).Data(resp).Send() }