34 行
912 B
Go
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))
|
|
}
|