|
@@ -1,6 +1,7 @@
|
|
package com.qunzhixinxi.hnqz.admin.controller;
|
|
package com.qunzhixinxi.hnqz.admin.controller;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
+import cn.hutool.core.lang.tree.Tree;
|
|
import cn.hutool.core.util.IdcardUtil;
|
|
import cn.hutool.core.util.IdcardUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
@@ -15,6 +16,7 @@ import com.pig4cloud.plugin.excel.annotation.RequestExcel;
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.UserDTO;
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.UserDTO;
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.UserInfo;
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.UserInfo;
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.UserPwd;
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.UserPwd;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysAreaEntity;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
@@ -30,6 +32,7 @@ import com.qunzhixinxi.hnqz.admin.api.constant.enums.DelEnum;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysCsmUserRelationMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysCsmUserRelationMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysUserRoleMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysUserRoleMapper;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysAreaEntityService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
@@ -39,6 +42,7 @@ import com.qunzhixinxi.hnqz.common.core.entity.BaseEntity;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
|
|
import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
|
|
import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
|
|
import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
|
|
|
|
+import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -86,18 +90,19 @@ public class SysUserController {
|
|
private final SysDeptService sysDeptService;
|
|
private final SysDeptService sysDeptService;
|
|
private final RedisTemplate<String, Object> redisTemplate;
|
|
private final RedisTemplate<String, Object> redisTemplate;
|
|
private final SysUserRoleMapper sysUserRoleMapper;
|
|
private final SysUserRoleMapper sysUserRoleMapper;
|
|
|
|
+ private final SysUserAreaService userAreaService;
|
|
private final WmPlatformQuizTestResultService platformQuizTestResultService;
|
|
private final WmPlatformQuizTestResultService platformQuizTestResultService;
|
|
private final SysCsmUserRelationMapper sysCsmUserRelationMapper;
|
|
private final SysCsmUserRelationMapper sysCsmUserRelationMapper;
|
|
- private final SysUserAreaService userAreaService;
|
|
|
|
-
|
|
|
|
|
|
+ private final SysAreaEntityService areaEntityService;
|
|
|
|
|
|
private boolean isZbOrDbUsers(Integer[] roles) {
|
|
private boolean isZbOrDbUsers(Integer[] roles) {
|
|
|
|
+
|
|
if (null == roles) {
|
|
if (null == roles) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
- // 1-管理员,2-平台管理员,3-药企管理员,4-CSO管理员,7-财务管理员,9-CRO管理员,11-患教管理员,19-CMS,27-平台财务管理员,33-行政人员,
|
|
|
|
- // 34-财务复核, 35-BC总负责人
|
|
|
|
|
|
+ // 1-管理员,2-平台管理员,3-药企管理员/事业部,4-CSO管理员/区域管理员,7-财务管理员,9-CRO管理员,11-患教管理员,19-CMS,27-平台财务管理员,33-行政人员,
|
|
|
|
+ // 34-财务复核, 35-BC总负责人, 37-服务商管理员/二级cso管理员
|
|
return Arrays.asList(roles).contains(1)
|
|
return Arrays.asList(roles).contains(1)
|
|
|| Arrays.asList(roles).contains(2)
|
|
|| Arrays.asList(roles).contains(2)
|
|
|| Arrays.asList(roles).contains(3)
|
|
|| Arrays.asList(roles).contains(3)
|
|
@@ -109,7 +114,8 @@ public class SysUserController {
|
|
|| Arrays.asList(roles).contains(27)
|
|
|| Arrays.asList(roles).contains(27)
|
|
|| Arrays.asList(roles).contains(33)
|
|
|| Arrays.asList(roles).contains(33)
|
|
|| Arrays.asList(roles).contains(34)
|
|
|| Arrays.asList(roles).contains(34)
|
|
- || Arrays.asList(roles).contains(35);
|
|
|
|
|
|
+ || Arrays.asList(roles).contains(35)
|
|
|
|
+ || Arrays.asList(roles).contains(37);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -352,7 +358,7 @@ public class SysUserController {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- } else if (userDto.getRole().contains(4)) {
|
|
|
|
|
|
+ } else if (userDto.getRole().contains(4) || userDto.getRole().contains(37)) {
|
|
UserDTO userDTO = new UserDTO();
|
|
UserDTO userDTO = new UserDTO();
|
|
userDTO.setUsername(userDto.getUsername());
|
|
userDTO.setUsername(userDto.getUsername());
|
|
userDTO.setDelFlag(CommonConstants.STATUS_NORMAL);
|
|
userDTO.setDelFlag(CommonConstants.STATUS_NORMAL);
|
|
@@ -585,7 +591,7 @@ public class SysUserController {
|
|
@SysLog("批量导入用户")
|
|
@SysLog("批量导入用户")
|
|
@PostMapping(value = "/batch")
|
|
@PostMapping(value = "/batch")
|
|
@PreAuthorize("@pms.hasPermission('sys_user_add')")
|
|
@PreAuthorize("@pms.hasPermission('sys_user_add')")
|
|
- public R batchUser(@RequestExcel List<CommonUserExcelModel> commonUserExcelModelList) {
|
|
|
|
|
|
+ public R<?> batchUser(@RequestExcel List<CommonUserExcelModel> commonUserExcelModelList) {
|
|
|
|
|
|
// 参数校验
|
|
// 参数校验
|
|
if (CollectionUtils.isEmpty(commonUserExcelModelList)) {
|
|
if (CollectionUtils.isEmpty(commonUserExcelModelList)) {
|
|
@@ -695,7 +701,7 @@ public class SysUserController {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- } else if (userDto.getRole().contains(4)) {
|
|
|
|
|
|
+ } else if (userDto.getRole().contains(4) || userDto.getRole().contains(37)) {
|
|
UserDTO userDTO = new UserDTO();
|
|
UserDTO userDTO = new UserDTO();
|
|
userDTO.setPlatId(userDto.getUsername());
|
|
userDTO.setPlatId(userDto.getUsername());
|
|
userDTO.setDelFlag(CommonConstants.STATUS_NORMAL);
|
|
userDTO.setDelFlag(CommonConstants.STATUS_NORMAL);
|
|
@@ -791,7 +797,7 @@ public class SysUserController {
|
|
.eq(SysUser::getDeptId, userDto.getDeptId())
|
|
.eq(SysUser::getDeptId, userDto.getDeptId())
|
|
.eq(SysUser::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
.eq(SysUser::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
if (count > 0) {
|
|
if (count > 0) {
|
|
- if (userDto.getRole().contains(6) && userDto.getRole().contains(4)) {
|
|
|
|
|
|
+ if (userDto.getRole().contains(6) && userDto.getRole().contains(4) || userDto.getRole().contains(37)) {
|
|
return R.failed("用户不能同时为经销商管理员角色和兼职学术推广员角色");
|
|
return R.failed("用户不能同时为经销商管理员角色和兼职学术推广员角色");
|
|
}
|
|
}
|
|
if (userDto.getRole().contains(7) && userDto.getRole().contains(6)) {
|
|
if (userDto.getRole().contains(7) && userDto.getRole().contains(6)) {
|
|
@@ -831,7 +837,7 @@ public class SysUserController {
|
|
* @return 用户集合
|
|
* @return 用户集合
|
|
*/
|
|
*/
|
|
@GetMapping("/page")
|
|
@GetMapping("/page")
|
|
- public R getUserPage(Page page, UserDTO userDTO) {
|
|
|
|
|
|
+ public R<?> getUserPage(Page page, UserDTO userDTO) {
|
|
|
|
|
|
return R.ok(userService.getUsersWithRolePageNoLock(page, userDTO));
|
|
return R.ok(userService.getUsersWithRolePageNoLock(page, userDTO));
|
|
}
|
|
}
|
|
@@ -912,7 +918,7 @@ public class SysUserController {
|
|
*/
|
|
*/
|
|
@SysLog("修改个人信息")
|
|
@SysLog("修改个人信息")
|
|
@PutMapping("/edit")
|
|
@PutMapping("/edit")
|
|
- public R updateUserInfo(@Valid @RequestBody UserDTO userDto) {
|
|
|
|
|
|
+ public R<?> updateUserInfo(@Valid @RequestBody UserDTO userDto) {
|
|
userDto.setUserId(SecurityUtils.getUser().getId());
|
|
userDto.setUserId(SecurityUtils.getUser().getId());
|
|
return userService.updateUserInfo(userDto);
|
|
return userService.updateUserInfo(userDto);
|
|
}
|
|
}
|
|
@@ -922,7 +928,7 @@ public class SysUserController {
|
|
* @return 上级部门用户列表
|
|
* @return 上级部门用户列表
|
|
*/
|
|
*/
|
|
@GetMapping("/ancestor/{username}")
|
|
@GetMapping("/ancestor/{username}")
|
|
- public R listAncestorUsers(@PathVariable String username) {
|
|
|
|
|
|
+ public R<?> listAncestorUsers(@PathVariable String username) {
|
|
return R.ok(userService.listAncestorUsers(username));
|
|
return R.ok(userService.listAncestorUsers(username));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -979,7 +985,7 @@ public class SysUserController {
|
|
*/
|
|
*/
|
|
@SysLog("查询全可用的用户")
|
|
@SysLog("查询全可用的用户")
|
|
@GetMapping("/list/available")
|
|
@GetMapping("/list/available")
|
|
- public R listScope1(Page page, UserDTO userDTO) {
|
|
|
|
|
|
+ public R<?> listScope1(Page page, UserDTO userDTO) {
|
|
userDTO.setLockFlag(CommonConstants.STATUS_NORMAL);
|
|
userDTO.setLockFlag(CommonConstants.STATUS_NORMAL);
|
|
if (CollUtil.isNotEmpty(userDTO.getRole())) {
|
|
if (CollUtil.isNotEmpty(userDTO.getRole())) {
|
|
userDTO.setDeptId(SecurityUtils.getUser().getDeptId());
|
|
userDTO.setDeptId(SecurityUtils.getUser().getDeptId());
|
|
@@ -1027,7 +1033,7 @@ public class SysUserController {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@GetMapping("/listNoScope")
|
|
@GetMapping("/listNoScope")
|
|
- public R listNoScope(UserDTO userDTO) {
|
|
|
|
|
|
+ public R<?> listNoScope(UserDTO userDTO) {
|
|
|
|
|
|
SysUser sysUserSel = new SysUser();
|
|
SysUser sysUserSel = new SysUser();
|
|
|
|
|
|
@@ -1102,4 +1108,36 @@ public class SysUserController {
|
|
return R.ok(result);
|
|
return R.ok(result);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取用户区域树
|
|
|
|
+ *
|
|
|
|
+ * @return 用户区域树
|
|
|
|
+ */
|
|
|
|
+ @GetMapping(value = "/area/tree")
|
|
|
|
+ public R<List<Tree<Long>>> getUserAreaTree() {
|
|
|
|
+
|
|
|
|
+ HnqzUser user = SecurityUtils.getUser();
|
|
|
|
+ List<Integer> roles = SecurityUtils.getRoles();
|
|
|
|
+
|
|
|
|
+ // 药企管理员(事业部)
|
|
|
|
+ List<Tree<Long>> userAreaTree;
|
|
|
|
+ if (roles.contains(3)) {
|
|
|
|
+ userAreaTree = areaEntityService.selectTree(new SysAreaEntity());
|
|
|
|
+ }
|
|
|
|
+ // 区域管理员(一级cso管理员)
|
|
|
|
+ else if (roles.contains(4)) {
|
|
|
|
+ userAreaTree = userService.getUserAreaTree(Long.valueOf(user.getId()));
|
|
|
|
+ }
|
|
|
|
+ // 服务商管理员(二级cso管理员)
|
|
|
|
+ else if (roles.contains(37)) {
|
|
|
|
+ userAreaTree = sysDeptService.getDeptAreaTree(Long.valueOf(user.getDeptId()));
|
|
|
|
+ } else {
|
|
|
|
+ userAreaTree = Collections.emptyList();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return R.ok(userAreaTree);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|