|
|
@@ -2,8 +2,10 @@ package handler
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
+ "dashoo.cn/common_definition/admin/user_def"
|
|
|
"dashoo.cn/micro/app/model"
|
|
|
"dashoo.cn/micro/app/service"
|
|
|
+ "dashoo.cn/opms_libary/micro_srv"
|
|
|
"dashoo.cn/opms_libary/myerrors"
|
|
|
"github.com/gogf/gf/errors/gerror"
|
|
|
"github.com/gogf/gf/util/gvalid"
|
|
|
@@ -90,18 +92,16 @@ func (h *UserHandler) UpdateById(ctx context.Context, req *model.EditUserReq, rs
|
|
|
func (e *UserHandler) GetUserInfo(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
|
|
|
userService, err := service.NewUserService(ctx)
|
|
|
if err != nil {
|
|
|
- g.Log().Error(err)
|
|
|
return gerror.New("系统异常,请重新尝试")
|
|
|
}
|
|
|
- userId := int(req.Id)
|
|
|
- if req.Id == 0 {
|
|
|
- // 从上下文中获取用户
|
|
|
- userId = userService.GetCxtUserId()
|
|
|
+ // 从上下文中获取用户
|
|
|
+ userId := userService.GetCxtUserId()
|
|
|
+ if req.Id != 0 {
|
|
|
+ userId = int(req.Id)
|
|
|
}
|
|
|
|
|
|
data, err := userService.GetUserInfoById(userId)
|
|
|
if err != nil {
|
|
|
- g.Log().Error(err)
|
|
|
return err
|
|
|
}
|
|
|
// 获取用户权限 角色
|
|
|
@@ -110,6 +110,13 @@ func (e *UserHandler) GetUserInfo(ctx context.Context, req *comm_def.IdReq, rsp
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
+ roleService, _ := service.NewRoleService(ctx)
|
|
|
+ permissions, err := roleService.GetRolesMenuPermissions(userRoles)
|
|
|
+ _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
userPosts, err := userService.GetUserPostIds(userId)
|
|
|
_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
|
|
|
if err != nil {
|
|
|
@@ -122,38 +129,30 @@ func (e *UserHandler) GetUserInfo(ctx context.Context, req *comm_def.IdReq, rsp
|
|
|
}
|
|
|
|
|
|
rsp.Data = g.Map{
|
|
|
- "entity": data,
|
|
|
- "roleIds": userRoles,
|
|
|
- "postIds": userPosts,
|
|
|
- "groupIds": userGroups,
|
|
|
+ "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 {
|
|
|
-// // 获取租户码
|
|
|
-// tenant, err := micro_srv.GetTenant(ctx)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-// g.Log().Info("Received UserHandler.GetEntityByUuId request @ " + tenant)
|
|
|
// // 参数校验
|
|
|
// if req.Uuid == "" {
|
|
|
// return NoParamsErr
|
|
|
// }
|
|
|
-// service, err := user.NewService(tenant)
|
|
|
+// userService, err := service.NewUserService(ctx)
|
|
|
// if err != nil {
|
|
|
-// g.Log().Error(err)
|
|
|
// return gerror.New("系统异常,请重新尝试")
|
|
|
// }
|
|
|
-// data, err := service.GetEntityByUuId(req.Uuid)
|
|
|
-// _, err, code, msg := myerrors.CheckError(err)
|
|
|
+// data, err := userService.GetEntityByUuId(req.Uuid)
|
|
|
+// _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
|
|
|
// if err != nil {
|
|
|
// return err
|
|
|
// }
|
|
|
-// rsp.Code = code
|
|
|
-// rsp.Msg = msg
|
|
|
// rsp.Data = data
|
|
|
// return nil
|
|
|
//}
|
|
|
@@ -178,71 +177,41 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-//// ResetPassword 密码重置(管理员进行操作)
|
|
|
-//func (e *UserHandler) ResetPassword(ctx context.Context, req *user_def.ResetPwdReq, rsp *comm_def.CommonMsg) error {
|
|
|
-// // 获取租户码
|
|
|
-// tenant, err := micro_srv.GetTenant(ctx)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-// g.Log().Info("Received UserHandler.ResetPassword request @ " + tenant)
|
|
|
-// if req.Id == 0 || req.Password == "" {
|
|
|
-// return NoParamsErr
|
|
|
-// }
|
|
|
-// if err = gvalid.CheckStruct(ctx, req, nil); err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-// // todo:校验用户是否有修改权限
|
|
|
-// service, err := user.NewService(tenant)
|
|
|
-// if err != nil {
|
|
|
-// g.Log().Error(err)
|
|
|
-// return gerror.New("系统异常,请重新尝试")
|
|
|
-// }
|
|
|
-// userInfo, err := micro_srv.GetUserInfo(ctx)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-// err = service.ResetPassword(&userInfo, req.Id, req.Password)
|
|
|
-// _, err, code, msg := myerrors.CheckError(err)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-// rsp.Code = code
|
|
|
-// rsp.Msg = msg
|
|
|
-// return nil
|
|
|
-//}
|
|
|
-//
|
|
|
-//// SetStatus 设置用户状态
|
|
|
-//func (e *UserHandler) SetStatus(ctx context.Context, req *user_def.SetStatusReq, rsp *comm_def.CommonMsg) error {
|
|
|
-// // 获取租户码
|
|
|
-// tenant, err := micro_srv.GetTenant(ctx)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-// g.Log().Info("Received UserHandler.SetStatus request @ " + tenant)
|
|
|
-// // 参数校验
|
|
|
-// if req.Id == 0 {
|
|
|
-// return NoParamsErr
|
|
|
-// }
|
|
|
-// service, err := user.NewService(tenant)
|
|
|
-// if err != nil {
|
|
|
-// g.Log().Error(err)
|
|
|
-// return gerror.New("系统异常,请重新尝试")
|
|
|
-// }
|
|
|
-// userInfo, err := micro_srv.GetUserInfo(ctx)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-// err = service.SetStatus(&userInfo, req.Id, req.Enabled)
|
|
|
-// _, err, code, msg := myerrors.CheckError(err)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-// rsp.Code = code
|
|
|
-// rsp.Msg = msg
|
|
|
-// return nil
|
|
|
-//}
|
|
|
-//
|
|
|
+// ResetPassword 密码重置(管理员进行操作)
|
|
|
+func (e *UserHandler) ResetPassword(ctx context.Context, req *model.SysUserResetPwdReq, rsp *comm_def.CommonMsg) error {
|
|
|
+ if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // todo:校验用户是否有修改权限
|
|
|
+ userService, err := service.NewUserService(ctx)
|
|
|
+ if err != nil {
|
|
|
+ return gerror.New("系统异常,请重新尝试")
|
|
|
+ }
|
|
|
+ err = userService.ResetUserPwd(req)
|
|
|
+ _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
|
|
|
+ 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 gerror.New("系统异常,请重新尝试")
|
|
|
+ }
|
|
|
+ err = userService.ChangeUserStatus(req)
|
|
|
+ _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
//// GetUserBelongDept 获取部门下所属用户
|
|
|
//func (e *UserHandler) GetUserBelongDept(ctx context.Context, req *user_def.DeptIdReq, rsp *comm_def.CommonMsg) error {
|
|
|
// // 获取租户码
|
|
|
@@ -441,34 +410,30 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
|
|
|
// rsp.Msg = msg
|
|
|
// return nil
|
|
|
//}
|
|
|
-//
|
|
|
-//// ChangePassword 用户修改密码
|
|
|
-//func (e *UserHandler) ChangePassword(ctx context.Context, req *user_def.PWDReq, rsp *comm_def.CommonMsg) error {
|
|
|
-// // 获取租户码
|
|
|
-// tenant, err := micro_srv.GetTenant(ctx)
|
|
|
-// if err != nil {
|
|
|
-// return err
|
|
|
-// }
|
|
|
-// g.Log().Info("Received UserHandler.ChangePassword request @ " + tenant)
|
|
|
-// gvalidErr := gvalid.CheckStruct(ctx, req, nil)
|
|
|
-// if gvalidErr != nil {
|
|
|
-// return gvalidErr.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.ChangePassword(&userInfo, req.OldPassword, req.NewPassword)
|
|
|
-// _, err, code, msg := myerrors.CheckError(err)
|
|
|
-// rsp.Code = code
|
|
|
-// rsp.Msg = msg
|
|
|
-// return err
|
|
|
-//}
|
|
|
-//
|
|
|
+
|
|
|
+// ChangePassword 用户修改密码
|
|
|
+func (e *UserHandler) ChangePassword(ctx context.Context, req *user_def.PWDReq, rsp *comm_def.CommonMsg) error {
|
|
|
+ gvalidErr := gvalid.CheckStruct(ctx, req, nil)
|
|
|
+ if gvalidErr != nil {
|
|
|
+ return gvalidErr.Current()
|
|
|
+ }
|
|
|
+ userService, err := service.NewUserService(ctx)
|
|
|
+ if err != nil {
|
|
|
+ return gerror.New("系统异常,请重新尝试")
|
|
|
+ }
|
|
|
+ userInfo, err := micro_srv.GetUserInfo(ctx)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ err = userService.ProfileUpdatePwd(&model.ProfileUpdatePwdReq{
|
|
|
+ UserId: userInfo.Id,
|
|
|
+ OldPassword: req.OldPassword,
|
|
|
+ NewPassword: req.NewPassword,
|
|
|
+ })
|
|
|
+ _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
//// GetUserByUserName 根据用户名获取用户信息
|
|
|
//func (e *UserHandler) GetUserByUserName(ctx context.Context, req *user_def.UserNameReq, rsp *comm_def.CommonMsg) error {
|
|
|
// // 获取租户码
|