diff --git a/controllers/user_controller.go b/controllers/user_controller.go index ea4a2f1..6e6e5d5 100644 --- a/controllers/user_controller.go +++ b/controllers/user_controller.go @@ -55,8 +55,12 @@ func RegisterUser(c *gin.Context) { //登录 POST func Login(c *gin.Context) { var ( - err error - user = &UserParam{} + err error + user = &UserParam{} + UserServiceHandler = &services.UserService{ + DB: globals.GetDB(), + C: c, + } ) if err = c.ShouldBind(&user); err != nil { c.JSON(http.StatusOK, &CallBack{ @@ -75,7 +79,7 @@ func Login(c *gin.Context) { return } if !callFunc(c, func() (retVal interface{}, errCode string, err error) { - retVal, err = services.Login(c, user.Name, user.Password) + retVal, err = UserServiceHandler.Login(user.Name, user.Password) return retVal, "", err }) { return diff --git a/services/user.go b/services/user.go index 7ab970a..2c54de5 100644 --- a/services/user.go +++ b/services/user.go @@ -10,6 +10,7 @@ import ( "git.rosy.net.cn/jx-print/model" putils "git.rosy.net.cn/jx-print/utils" "github.com/gin-gonic/gin" + "github.com/jmoiron/sqlx" "strings" "time" ) @@ -20,7 +21,15 @@ const ( TokenTypeSep = "." ) -func GetUsers(c *gin.Context, name, mobile, userID string) (users []*model.User, err error) { +type UserService struct { + C *gin.Context + DB *sqlx.DB +} + +type UserServiceInterface interface { +} + +func (c *UserService) GetUsers(name, mobile, userID string) (users []*model.User, err error) { return dao.GetUsers(globals.GetDB(), userID, name, mobile) } @@ -48,9 +57,9 @@ type LoginResult struct { Token string `json:"token"` //token } -func Login(c *gin.Context, name, password string) (loginResult *LoginResult, err error) { +func (c *UserService) Login(name, password string) (loginResult *LoginResult, err error) { var ( - db = globals.GetDB() + db = c.DB now = time.Now() user = &model.User{} token string @@ -70,7 +79,7 @@ func Login(c *gin.Context, name, password string) (loginResult *LoginResult, err loginResult.Token = token //更新登录时间和ip user.LastLoginAt = &now - user.LastLoginIP = c.ClientIP() + user.LastLoginIP = c.C.ClientIP() err = dao.Update(db, user, "last_login_at", "last_login_ip") return loginResult, err }