1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- // 模块模型操作接口-用户
- // 秒寻科技
- // zt 2024-01-04
- package userlogic
- import (
- "errors"
- "ipsomc/core/dao/redis/redisapi"
- "ipsomc/core/dao/redis/redismodel"
- "ipsomc/core/user/userapi"
- "ipsomc/core/user/usermodel"
- "ipsomc/util"
- "strconv"
- "time"
- )
- type UserLgc struct {
- userApi userapi.UserApi
- redisApi redisapi.RedisApi
- }
- // 用户登录
- func (obj *UserLgc) OperatorLogin(dataModel *usermodel.Operator, respModel *usermodel.RspOperator) error {
- redisModel := new(redismodel.RedisOperator)
- //判断用户名和密码是否正确
- if err := obj.userApi.CheckOperatorRegister(dataModel); err != nil {
- return errors.New("账号或密码错误")
- }
- //生成用户token
- uuid := util.GenerateUuid()
- token := "ptoken" + strconv.Itoa(int(dataModel.ID)) + "-" + uuid
- //缓存用户信息
- redisModel.CompanyID = dataModel.CompanyID
- redisModel.CompanyName = dataModel.CompanyName
- redisModel.ProjectID = dataModel.ProjectID
- redisModel.UserTypeID = int(dataModel.UserTypeID)
- redisModel.UserID = dataModel.ID
- redisModel.UserName = dataModel.UserName
- redisModel.Nickname = dataModel.Nickname
- redisModel.Token = token
- redisModel.TokenTime = time.Now().Format("2006-01-02 15:16:17")
- //生产token过期时间
- myViper := util.GetViper()
- expireTime := myViper.GetInt("token.pc_expire")
- if expireTime <= 0 {
- expireTime = 10 //10分钟
- }
- //以用户的token为键,将用户登录资料保存到redis中
- if err := obj.redisApi.SetModelData(token, redisModel, uint16(expireTime)); err != nil {
- return err
- }
- //组织返回数据
- respModel.CompanyID = dataModel.CompanyID
- respModel.CompanyName = dataModel.CompanyName
- respModel.ProjectID = dataModel.ProjectID
- respModel.ID = dataModel.ID
- respModel.UserTypeID = dataModel.UserTypeID
- respModel.Nickname = dataModel.Nickname
- respModel.Sex = dataModel.Sex
- respModel.Token = token
- return nil
- }
- // 获得用户访问权限,包括页面访问权限和按钮访问权限
- func (obj *UserLgc) GetOperatorPermissionLgc(dataModel *usermodel.Operator) (usermodel.RspOperatorPermission, error) {
- var permission usermodel.RspOperatorPermission
- //获得用户角色列表
- roleList, err1 := obj.userApi.GetOperatorRoleList(dataModel)
- if err1 != nil {
- return permission, err1
- }
- //获得用户权限列表
- permission, err2 := obj.userApi.GetOperatorPermissionList(roleList)
- if err2 != nil {
- return permission, err2
- }
- return permission, nil
- }
|