2022-11-24 11:05:42 +08:00

34 行
912 B
Go

package service
import (
"integrity-checkin/pkg/app"
"integrity-checkin/pkg/httpclient"
"integrity-checkin/pkg/util"
)
type UserService struct {
}
func (u UserService) Login(aw *app.Wrapper) app.Result {
type LoginReq struct {
Username string `form:"username" binding:"required"`
Password string `form:"password" binding:"required"`
}
var req LoginReq
if err := aw.Ctx.ShouldBind(&req); err != nil {
return aw.Error(err.Error())
}
sduLoginData, err := httpclient.SDULogin(req.Username, req.Password)
if err != nil {
return aw.Error(err.Error())
}
user := userDAO.FindUserByUsername(sduLoginData.Username)
if user == nil {
user = userDAO.CreateUser(sduLoginData.Username, sduLoginData.RealName)
}
return aw.Success(util.GenerateJWT(user.ID, user.RoleID))
}
func (u UserService) Me(aw *app.Wrapper) app.Result {
return aw.Success(userDAO.FindUserByID(aw.ExtractUserClaims().UserID))
}