| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473 |
- package handler
- import (
- "context"
- "dashoo.cn/opms_libary/myerrors"
- "strings"
- "dashoo.cn/common_definition/admin/user_def"
- "github.com/gogf/gf/util/gvalid"
- "dashoo.cn/micro/app/model"
- "dashoo.cn/micro/app/service"
- "dashoo.cn/common_definition/comm_def"
- "github.com/gogf/gf/frame/g"
- )
- type UserHandler struct{}
- // GetList 获取用户列表
- func (h *UserHandler) GetList(ctx context.Context, req *model.SysUserSearchReq, rsp *comm_def.CommonMsg) error {
- userService, err := service.NewUserService(ctx)
- if err != nil {
- return err
- }
- total, list, err := userService.GetUserList(req)
- if err != nil {
- return err
- }
- rsp.Data = g.Map{"list": list, "total": total}
- return nil
- }
- // Create 添加用户
- func (h *UserHandler) Create(ctx context.Context, req *model.AddUserReq, rsp *comm_def.CommonMsg) error {
- // 参数校验
- if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
- return err
- }
- userService, err := service.NewUserService(ctx)
- if err != nil {
- g.Log().Error(err)
- return err
- }
- err = userService.CreateUser(req)
- if err != nil {
- return err
- }
- return nil
- }
- // UpdateById 更新用户
- func (h *UserHandler) UpdateById(ctx context.Context, req *model.EditUserReq, rsp *comm_def.CommonMsg) error {
- // 参数校验
- if req.Id == 0 {
- return myerrors.TipsError("请求参数不存在。")
- }
- if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
- return err
- }
- userService, err := service.NewUserService(ctx)
- if err != nil {
- g.Log().Error(err)
- return err
- }
- err = userService.UpdateUser(req)
- if err != nil {
- return err
- }
- return nil
- }
- // GetUserInfo 获取用户实体信息
- func (e *UserHandler) GetUserInfo(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
- userService, err := service.NewUserService(ctx)
- if err != nil {
- return err
- }
- // 从上下文中获取用户
- userId := userService.GetCxtUserId()
- if req.Id != 0 {
- userId = int(req.Id)
- }
- data, err := userService.GetUserInfoById(userId)
- if err != nil {
- return err
- }
- // 获取用户权限 角色
- userRoles, err := userService.GetUserRoleIds(userId)
- if err != nil {
- return err
- }
- roleService, _ := service.NewRoleService(ctx)
- permissions, err := roleService.GetRolesMenuPermissions(userRoles)
- if err != nil {
- return err
- }
- userPosts, err := userService.GetUserPostIds(userId)
- if err != nil {
- return err
- }
- postService, _ := service.NewPostService(ctx)
- postNames, err := postService.GetEntityNameByIds(userPosts)
- if err != nil {
- return err
- }
- data.PostName = strings.Join(postNames, ",")
- userGroups, err := userService.GetUserGroupIds(userId)
- if err != nil {
- return err
- }
- rsp.Data = g.Map{
- "entity": data,
- "permissions": permissions,
- "roleIds": userRoles,
- "postIds": userPosts,
- "groupIds": userGroups,
- }
- return nil
- }
- // GetEntityByUuId 根据UUID获取用户实体信息
- //func (e *UserHandler) GetEntityByUuId(ctx context.Context, req *user_def.UuIdReq, rsp *comm_def.CommonMsg) error {
- // // 参数校验
- // if req.Uuid == "" {
- // return myerrors.TipsError("请求参数不存在。")
- // }
- // userService, err := service.NewUserService(ctx)
- // if err != nil {
- // return err
- // }
- // data, err := userService.GetEntityByUuId(req.Uuid)
- // if err != nil {
- // return err
- // }
- // rsp.Data = data
- // return nil
- //}
- // DeleteByIds 删除 支持批量删除
- func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
- // 参数校验
- if len(req.Ids) == 0 {
- return myerrors.TipsError("请求参数不存在。")
- }
- userService, err := service.NewUserService(ctx)
- if err != nil {
- return err
- }
- err = userService.DeleteUserByIds(ctx, req.Ids)
- if err != nil {
- return err
- }
- return nil
- }
- // ResetPassword 密码重置(管理员进行操作)
- func (e *UserHandler) ResetPassword(ctx context.Context, req *model.SysResetPwdReq, rsp *comm_def.CommonMsg) error {
- if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
- return err
- }
- userService, err := service.NewUserService(ctx)
- if err != nil {
- return err
- }
- // todo:校验用户是否有修改权限
- if userService.GetCxtUserId() != 1000 {
- return myerrors.TipsError("权限不足")
- }
- err = userService.ResetUserPwd(req)
- if err != nil {
- return err
- }
- return nil
- }
- // SetStatus 设置用户状态
- func (e *UserHandler) SetStatus(ctx context.Context, req *model.SysUserStatusReq, rsp *comm_def.CommonMsg) error {
- if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
- return err
- }
- userService, err := service.NewUserService(ctx)
- if err != nil {
- return err
- }
- err = userService.ChangeUserStatus(req)
- if err != nil {
- return err
- }
- return nil
- }
- // GetDataScope 获取某用户数据集合权限,返回Ids(用户Id列表),返回-1表示无角色,返回-2表示有全部集合权限
- func (o *RoleHandler) GetDataScope(ctx context.Context, nullParams interface{}, rsp *comm_def.CommonMsg) error {
- userService, err := service.NewUserService(ctx)
- if err != nil {
- return err
- }
- ids, err := userService.GetDataScope(userService.GetCxtUserId())
- if err != nil {
- return err
- }
- rsp.Data = ids
- return err
- }
- // GetUserByDept 获取部门下所属用户
- func (e *UserHandler) GetUserByDept(ctx context.Context, req *user_def.DeptIdReq, rsp *comm_def.CommonMsg) error {
- // 参数校验
- if req.DeptId == 0 {
- return myerrors.TipsError("请求参数不存在。")
- }
- userService, err := service.NewUserService(ctx)
- if err != nil {
- return err
- }
- list, err := userService.GetUserByDept(req.DeptId)
- if err != nil {
- return err
- }
- rsp.Data = list
- return nil
- }
- // GetUserByRole 获取角色关联用户
- func (e *UserHandler) GetUserByRole(ctx context.Context, req *model.SysUserRoleReq, rsp *comm_def.CommonMsg) error {
- // 参数校验
- if req.RoleId == 0 {
- return myerrors.TipsError("请求参数不存在。")
- }
- userService, err := service.NewUserService(ctx)
- if err != nil {
- return err
- }
- list, err := userService.GetUserByRole(req.RoleId)
- if err != nil {
- return err
- }
- rsp.Data = list
- return nil
- }
- //// GetDictList 获取用户列表字典项(返回字典数据形式,一般用来绑定用户的下拉列表)
- //func (e *UserHandler) GetDictList(ctx context.Context, req *user_def.DictSelectReq, rsp *comm_def.CommonMsg) error {
- // // 获取租户码
- // tenant, err := micro_srv.GetTenant(ctx)
- // if err != nil {
- // return err
- // }
- // g.Log().Info("Received UserHandler.GetDictList request @ " + tenant)
- //
- // service, err := user.NewService(tenant)
- // if flag, err, _, _ := myerrors.CheckError(err); flag {
- // return err
- // }
- //
- // list, err := service.GetDict(req)
- // _, err, code, msg := myerrors.CheckError(err)
- // if err != nil {
- // return err
- // }
- // rsp.Code = code
- // rsp.Msg = msg
- // rsp.Data = list
- // return nil
- //}
- //
- //// GetUsersDictByDepartment 获取当前部门下用户信息列表(返回字典数据形式,一般用来绑定用户的下拉列表)
- //func (e *UserHandler) GetUsersDictByDepartment(ctx context.Context, req *user_def.DeptIdReq,
- // rsp *comm_def.CommonMsg) error {
- // // 获取租户码
- // tenant, err := micro_srv.GetTenant(ctx)
- // if err != nil {
- // return err
- // }
- // g.Log().Info("Received UserHandler.GetUsersDictByDepartment request @ " + tenant)
- // service, err := user.NewService(tenant)
- // if err != nil {
- // g.Log().Error(err)
- // return myerrors.TipsError("系统异常,请重新尝试")
- // }
- // list, err := service.GetUsersDictByDepartment(req.DeptId)
- // _, err, code, msg := myerrors.CheckError(err)
- // if err != nil {
- // return err
- // }
- // rsp.Code = code
- // rsp.Msg = msg
- // rsp.Data = list
- // return nil
- //}
- //
- //// GetProfile 获取用户信息
- //func (e *UserHandler) GetProfile(ctx context.Context, numParams interface{}, rsp *comm_def.CommonMsg) error {
- // // 获取租户码
- // tenant, err := micro_srv.GetTenant(ctx)
- // if err != nil {
- // return err
- // }
- // g.Log().Info("Received UserHandler.GetProfile request @ " + tenant)
- //
- // service, err := user.NewService(tenant)
- // if flag, err, _, _ := myerrors.CheckError(err); flag {
- // return err
- // }
- // userInfo, err := micro_srv.GetUserInfo(ctx)
- // if err != nil {
- // return err
- // }
- // profile, err := service.GetProfile(int64(userInfo.Id))
- // _, err, code, msg := myerrors.CheckError(err)
- // if err != nil {
- // return err
- // }
- // rsp.Code = code
- // rsp.Msg = msg
- // rsp.Data = profile
- // return nil
- //}
- //
- //// UpdateProfile 更新Profile
- //func (e *UserHandler) UpdateProfile(ctx context.Context, req *user_def.EditProfileEntity, rsp *comm_def.CommonMsg) error {
- // // 获取租户码
- // tenant, err := micro_srv.GetTenant(ctx)
- // if err != nil {
- // return err
- // }
- // g.Log().Info("Received UserHandler.UpdateProfile request @ " + tenant)
- // if req.Id == 0 {
- // return NoParamsErr
- // }
- // validErr := gvalid.CheckStruct(ctx, req, nil)
- // if validErr != nil {
- // return validErr.Current()
- // }
- // service, err := user.NewService(tenant)
- // if flag, err, _, _ := myerrors.CheckError(err); flag {
- // return err
- // }
- // userInfo, err := micro_srv.GetUserInfo(ctx)
- // if err != nil {
- // return err
- // }
- // err = service.UpdateProfile(&userInfo, req)
- // _, err, code, msg := myerrors.CheckError(err)
- // if err != nil {
- // return err
- // }
- // rsp.Code = code
- // rsp.Msg = msg
- // return nil
- //}
- //
- //// SetAvatar 设置用户头像
- //func (e *UserHandler) SetAvatar(ctx context.Context, req *user_def.AvatarReq, rsp *comm_def.CommonMsg) error {
- // // 获取租户码
- // tenant, err := micro_srv.GetTenant(ctx)
- // if err != nil {
- // return err
- // }
- // g.Log().Info("Received UserHandler.SetAvatar request @ " + tenant)
- // if req.FileUrl == "" {
- // return NoParamsErr
- // }
- // service, err := user.NewService(tenant)
- // if err != nil {
- // g.Log().Error(err)
- // return myerrors.TipsError("系统异常,请重新尝试")
- // }
- // userInfo, err := micro_srv.GetUserInfo(ctx)
- // if err != nil {
- // return err
- // }
- // err = service.SetAvatar(&userInfo, req.FileUrl)
- // _, err, code, msg := myerrors.CheckError(err)
- // if err != nil {
- // return err
- // }
- // rsp.Code = code
- // rsp.Msg = msg
- // return nil
- //}
- // ChangePassword 用户修改密码
- func (e *UserHandler) ChangePassword(ctx context.Context, req *model.SysUserResetPwdReq, rsp *comm_def.CommonMsg) error {
- if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
- return err
- }
- userService, err := service.NewUserService(ctx)
- if err != nil {
- return err
- }
- err = userService.ProfileUpdatePwd(&model.ProfileUpdatePwdReq{
- UserId: userService.GetCxtUserId(),
- OldPassword: req.OldPassword,
- NewPassword: req.NewPassword,
- })
- return err
- }
- //// GetUserByUserName 根据用户名获取用户信息
- //func (e *UserHandler) GetUserByUserName(ctx context.Context, req *user_def.UserNameReq, rsp *comm_def.CommonMsg) error {
- // // 获取租户码
- // tenant, err := micro_srv.GetTenant(ctx)
- // if err != nil {
- // return err
- // }
- // g.Log().Info("Received UserHandler.GetUserByUserName request @ " + tenant)
- // if req.UserName == "" {
- //
- // }
- // service, err := user.NewService(tenant)
- // if err != nil {
- // g.Log().Error(err)
- // return myerrors.TipsError("系统异常,请重新尝试")
- // }
- //
- // userEntity, err := service.GetUserByUserName(req.UserName)
- // _, err, code, msg := myerrors.CheckError(err)
- // rsp.Code = code
- // rsp.Msg = msg
- // rsp.Data = userEntity
- // return nil
- //}
- //
- //func (e *UserHandler) SendResetPasswordEmail(ctx context.Context, req *user_def.UserNameReq, rsp *comm_def.CommonMsg) error {
- // tenant, err := micro_srv.GetTenant(ctx)
- // if err != nil {
- // return err
- // }
- // service, err := user.NewService(tenant)
- // if err != nil {
- // g.Log().Error(err)
- // return myerrors.TipsError("系统异常,请重新尝试")
- // }
- // email, expired, err := service.SendResetPasswordEmail(req)
- // _, err, code, msg := myerrors.CheckError(err)
- // rsp.Code = code
- // rsp.Msg = msg
- // if err == nil {
- // rsp.Data = map[string]interface{}{
- // "email": email,
- // "expired": expired,
- // }
- // }
- // return nil
- //}
- //
- //func (e *UserHandler) ResetPasswordFromEmail(ctx context.Context, req *user.ResetPasswordFromEmailReq, rsp *comm_def.CommonMsg) error {
- // tenant, err := micro_srv.GetTenant(ctx)
- // if err != nil {
- // return err
- // }
- // service, err := user.NewService(tenant)
- // if err != nil {
- // g.Log().Error(err)
- // return myerrors.TipsError("系统异常,请重新尝试")
- // }
- // err = service.ResetPasswordFromEmail(ctx, req)
- // _, err, code, msg := myerrors.CheckError(err)
- // rsp.Code = code
- // rsp.Msg = msg
- // return nil
- //}
|