package user import ( "net/http" "strings" "wechat-conf/models/model" "wechat-conf/models/user" "wechat-conf/utils" "github.com/yl10/kit/encrypt" ) // UserServ 用户 type UserServ struct { ctx *utils.Context dao *user.UserDAO } // NewUserServ 初始化 func NewUserServ(ctx *utils.Context) *UserServ { return &UserServ{ ctx: ctx, dao: user.NewUserDAO(ctx), } } // CheckUserRoute 判断用户理由 func (s *UserServ) CheckUserRoute(userId, route, method string) (int, error) { if strings.Index(route, "admin") < 0 { return http.StatusOK, nil } // 如果没有登录 if userId == "" { return http.StatusUnauthorized, utils.LogError("请先登录系统") } return http.StatusOK, nil } // ValidUserNameLogin 验证登陆 func (s *UserServ) ValidUserNameLogin(userName, pass string) (*model.SysUser, error) { user, err := s.dao.GetUserByUserName(userName) if err != nil { return nil, err } if !s.ValidatePassword(&user, pass) { return nil, utils.LogError("用户密码不正确") } return &user, nil } // UpdatePassword 更新用户密码 func (s *UserServ) UpdatePassword(userID, newPass string) error { return s.dao.UpdatePassword(userID, newPass) } // ValidatePassword 验证密码是否正确 func (s *UserServ) ValidatePassword(user *model.SysUser, password string) bool { return user.Pwd == encrypt.Md5(password, user.UserId) } // GetUserByID 根据ID获取用户信息 func (s *UserServ) GetUserByID(userid string) (*model.SysUser, error) { user, err := s.dao.GetUserByID(userid) if err != nil { return nil, err } return user, nil }