Prechádzať zdrojové kódy

feature: 获取用户

ZZH-wl 3 rokov pred
rodič
commit
4771876e17

+ 40 - 29
opms_admin/app/handler/user.go

@@ -212,35 +212,46 @@ func (e *UserHandler) SetStatus(ctx context.Context, req *model.SysUserStatusReq
 	return nil
 }
 
-//// GetUserBelongDept 获取部门下所属用户
-//func (e *UserHandler) GetUserBelongDept(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.GetUserBelongDept request @ " + tenant)
-//	// 参数校验
-//	if req.DeptId == 0 {
-//		return NoParamsErr
-//	}
-//	service, err := user.NewService(tenant)
-//	if err != nil {
-//		g.Log().Error(err)
-//		return gerror.New("系统异常,请重新尝试")
-//	}
-//
-//	list, err := service.GetUserBelongDept(req.DeptId)
-//	_, err, code, msg := myerrors.CheckError(err)
-//	if err != nil {
-//		return err
-//	}
-//	rsp.Code = code
-//	rsp.Msg = msg
-//	rsp.Data = list
-//	return nil
-//}
-//
+// GetUserByDept 获取部门下所属用户
+func (e *UserHandler) GetUserByDept(ctx context.Context, req *user_def.DeptIdReq, rsp *comm_def.CommonMsg) error {
+	// 参数校验
+	if req.DeptId == 0 {
+		return NoParamsErr
+	}
+	userService, err := service.NewUserService(ctx)
+	if err != nil {
+		return gerror.New("系统异常,请重新尝试")
+	}
+
+	list, err := userService.GetUserByDept(req.DeptId)
+	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
+	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 NoParamsErr
+	}
+	userService, err := service.NewUserService(ctx)
+	if err != nil {
+		return gerror.New("系统异常,请重新尝试")
+	}
+
+	list, err := userService.GetUserByRole(req.RoleId)
+	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
+	if err != nil {
+		return err
+	}
+	rsp.Data = list
+	return nil
+}
+
 //// GetIdByUuid 根据uuid 获取用户id
 //func (e *UserHandler) GetIdByUuid(ctx context.Context, req *user_def.UuIdReq, rsp *comm_def.CommonMsg) error {
 //	// 获取租户码

+ 5 - 1
opms_admin/app/model/sys_user_role.go

@@ -11,4 +11,8 @@ import (
 // SysUserRole is the golang structure for table sys_user_role.
 type SysUserRole internal.SysUserRole
 
-// Fill with you ideas below.
+// Fill with you ideas below.
+
+type SysUserRoleReq struct {
+	RoleId int `json:"roleId"` // 角色ID
+}

+ 3 - 0
opms_admin/app/service/sys_menu.go

@@ -189,6 +189,9 @@ func (s menuService) GetUserRoleMenuTree(roles []int) ([]model.MenuTree, error)
 	err := s.Dao.Where(s.Dao.Columns.Status, "10").WhereIn(s.Dao.Columns.MenuType, g.Slice{"M", "C"}).
 		WhereIn(s.Dao.Columns.Id, dao.NewSysRoleMenuDao(s.Tenant).WhereIn(dao.SysRoleMenu.Columns.RoleId, roles).Fields(dao.SysRoleMenu.Columns.MenuId)).
 		Order("sort").Scan(&menuList)
+	if err != nil {
+		return nil, err
+	}
 
 	treeMap := make(map[int][]model.MenuTree, 0)
 	for _, v := range menuList {

+ 29 - 0
opms_admin/app/service/sys_user.go

@@ -108,6 +108,35 @@ func (s *userService) GetUserList(req *model.SysUserSearchReq) (total int, userL
 	return
 }
 
+// 获取部门下用户
+func (s userService) GetUserByDept(deptId int) (userList []*model.SysUser, err error) {
+	count, err := dao.NewSysDeptDao(s.Tenant).Where(dao.SysDept.Columns.Id, deptId).Where(dao.SysDept.Columns.Status, "10").Count()
+	if err != nil {
+		return nil, err
+	}
+	if count == 0 {
+		return nil, gerror.New("部门不存在或已停用")
+	}
+	err = s.Dao.Where(s.Dao.Columns.DeptId, deptId).FieldsEx(dao.SysUser.Columns.Password, dao.SysUser.Columns.UserSalt).Scan(&userList)
+	return userList, err
+}
+
+// 获取角色关联的用户
+func (s userService) GetUserByRole(roleId int) (userList []*model.SysUser, err error) {
+	count, err := dao.NewSysRoleDao(s.Tenant).Where(dao.SysRole.Columns.Id, roleId).Where(dao.SysRole.Columns.Status, "10").Count()
+	if err != nil {
+		return nil, err
+	}
+	if count == 0 {
+		return nil, gerror.New("角色不存在或已停用")
+	}
+	userList = make([]*model.SysUser, 0)
+	err = s.Dao.FieldsEx(dao.SysUser.Columns.Password, dao.SysUser.Columns.UserSalt).Where(s.Dao.Columns.Status, "10").
+		WhereIn(s.Dao.Columns.Id, dao.NewSysUserRoleDao(s.Tenant).Fields(dao.SysUserRole.Columns.UserId).WhereIn(dao.SysUserRole.Columns.RoleId, roleId)).
+		Scan(&userList)
+	return userList, err
+}
+
 // GetAdminUserByUsernamePassword 后台登陆验证
 func (s *userService) GetAdminUserByUsernamePassword(ctx context.Context, req *model.LoginParamsReq) (user *model.LoginUserRes, err error) {
 	user, err = s.GetUserByUsernamePassword(ctx, req)