123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package service
- import (
- "github.com/gin-gonic/gin"
- "gorm.io/gorm"
- "iot_manager_service/app/user/dao"
- "iot_manager_service/util/cache"
- "iot_manager_service/util/common"
- "iot_manager_service/util/md5"
- "iot_manager_service/util/rsa"
- "iot_manager_service/util/token"
- "strconv"
- )
- // 用户管理服务
- var SysUserService = new(userService)
- type userService struct{}
- func (s *userService) Login(username string, pwd string) *common.Errors {
- userdao := &dao.SysUser{}
- USER, err := userdao.LoginFindUserName(username)
- if err != nil {
- if err == gorm.ErrRecordNotFound {
- return common.ParamsInvalidResponse("登录失败,账号不存在", nil)
- }
- return common.FailResponse(err.Error(), nil)
- }
- if USER.Enable != 1 {
- return common.ParamsInvalidResponse("登录失败,用户被禁止登录", nil)
- }
- //解密前端密文
- r := rsa.RSA{}
- decrypt := r.Decrypt(pwd)
- //解密数据库密文
- ok := md5.BcryptCheck(decrypt, USER.Password)
- if !ok {
- return common.ParamsInvalidResponse("密码错误", nil)
- }
- //登录成功则生成token
- USERID := strconv.Itoa(USER.ID)
- accessToken, _ := token.JwtClaims.CreateJwtToken(USERID, USER.Username, USER.UUID, 1)
- refreshToken, _ := token.JwtClaims.CreateJwtToken(USERID, USER.Username, USER.UUID, 24*7)
- cache.SetNowSysUser(USERID, USER)
- tokens := make(map[string]interface{})
- tokens["accessToken"] = accessToken
- tokens["refreshToken"] = refreshToken
- //TODO:到时候记得修改服务器域名
- urlWebSocket := "ws://106.52.134.22:8890/notice/websocket?userID=" + USERID
- return common.SuccessResponse("登录成功", gin.H{"token": tokens, "websocket": urlWebSocket})
- }
- func (s *userService) GetPublicKey() *common.Errors {
- r := rsa.RSA{}
- publicKey := r.ReturnPublicKey()
- return common.SuccessResponse("获取公钥成功", gin.H{"publicKey": publicKey})
- }
- func (s *userService) GetDeptSysUsers(id int) *common.Errors {
- deptdao := &dao.Dept{}
- depts, _ := deptdao.GetDepts(id)
- userdao := &dao.SysUser{}
- users, _ := userdao.GetSysUsers()
- deptSysUsersMap := make(map[int][]dao.SysUser)
- for _, user := range users {
- deptSysUsersMap[user.DeptId] = append(deptSysUsersMap[user.DeptId], user)
- }
- var deptSysUsers []dao.Dept
- for _, dept := range depts {
- users := deptSysUsersMap[dept.ID]
- deptSysUsers = append(deptSysUsers, dao.Dept{
- ID: dept.ID,
- DeptName: dept.DeptName,
- ParentId: dept.ParentId,
- SysUsers: users,
- })
- }
- return common.SuccessResponse("获取成功", gin.H{"deptSysUsers": deptSysUsers})
- }
- func (s *userService) GetDepts() *common.Errors {
- deptdao := &dao.Dept{}
- depts, _ := deptdao.GetChildDepts()
- userdao := &dao.SysUser{}
- users, _ := userdao.GetSysUsers()
- deptSysUsersMap := make(map[int][]dao.SysUser)
- for _, user := range users {
- deptSysUsersMap[user.DeptId] = append(deptSysUsersMap[user.DeptId], user)
- }
- var deptSysUsers []dao.Dept
- for _, dept := range depts {
- users := deptSysUsersMap[dept.ID]
- if users != nil {
- deptSysUsers = append(deptSysUsers, dao.Dept{
- ID: dept.ID,
- DeptName: dept.DeptName,
- ParentId: dept.ParentId,
- })
- }
- }
- return common.SuccessResponse("获取成功", gin.H{"depts": deptSysUsers})
- }
- func (s *userService) GetSysUserInfo(id int) *common.Errors {
- userdao := &dao.SysUser{}
- user, _ := userdao.GetSysUserInfo(id)
- return common.SuccessResponse("获取成功", gin.H{"sysUser": user})
- }
|