Explorar o código

init: init project step4: biz code support

shc hai 1 ano
pai
achega
21135a791f

+ 52 - 14
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysUserController.java

@@ -1,6 +1,7 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.util.IdcardUtil;
 import cn.hutool.core.util.StrUtil;
 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.UserInfo;
 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.SysRole;
 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.SysUserMapper;
 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.SysUserAreaService;
 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.log.annotation.SysLog;
 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 lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -86,18 +90,19 @@ public class SysUserController {
     private final SysDeptService sysDeptService;
     private final RedisTemplate<String, Object> redisTemplate;
     private final SysUserRoleMapper sysUserRoleMapper;
+    private final SysUserAreaService userAreaService;
     private final WmPlatformQuizTestResultService platformQuizTestResultService;
     private final SysCsmUserRelationMapper sysCsmUserRelationMapper;
-    private final SysUserAreaService userAreaService;
-
+    private final SysAreaEntityService areaEntityService;
 
     private boolean isZbOrDbUsers(Integer[] roles) {
+
         if (null == roles) {
             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)
                 || Arrays.asList(roles).contains(2)
                 || Arrays.asList(roles).contains(3)
@@ -109,7 +114,8 @@ public class SysUserController {
                 || Arrays.asList(roles).contains(27)
                 || Arrays.asList(roles).contains(33)
                 || 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.setUsername(userDto.getUsername());
             userDTO.setDelFlag(CommonConstants.STATUS_NORMAL);
@@ -585,7 +591,7 @@ public class SysUserController {
     @SysLog("批量导入用户")
     @PostMapping(value = "/batch")
     @PreAuthorize("@pms.hasPermission('sys_user_add')")
-    public R batchUser(@RequestExcel List<CommonUserExcelModel> commonUserExcelModelList) {
+    public R<?> batchUser(@RequestExcel List<CommonUserExcelModel> 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.setPlatId(userDto.getUsername());
                 userDTO.setDelFlag(CommonConstants.STATUS_NORMAL);
@@ -791,7 +797,7 @@ public class SysUserController {
                     .eq(SysUser::getDeptId, userDto.getDeptId())
                     .eq(SysUser::getDelFlag, DelEnum.NOT_DEL.val()));
             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("用户不能同时为经销商管理员角色和兼职学术推广员角色");
                 }
                 if (userDto.getRole().contains(7) && userDto.getRole().contains(6)) {
@@ -831,7 +837,7 @@ public class SysUserController {
      * @return 用户集合
      */
     @GetMapping("/page")
-    public R getUserPage(Page page, UserDTO userDTO) {
+    public R<?> getUserPage(Page page, UserDTO userDTO) {
 
         return R.ok(userService.getUsersWithRolePageNoLock(page, userDTO));
     }
@@ -912,7 +918,7 @@ public class SysUserController {
      */
     @SysLog("修改个人信息")
     @PutMapping("/edit")
-    public R updateUserInfo(@Valid @RequestBody UserDTO userDto) {
+    public R<?> updateUserInfo(@Valid @RequestBody UserDTO userDto) {
         userDto.setUserId(SecurityUtils.getUser().getId());
         return userService.updateUserInfo(userDto);
     }
@@ -922,7 +928,7 @@ public class SysUserController {
      * @return 上级部门用户列表
      */
     @GetMapping("/ancestor/{username}")
-    public R listAncestorUsers(@PathVariable String username) {
+    public R<?> listAncestorUsers(@PathVariable String username) {
         return R.ok(userService.listAncestorUsers(username));
     }
 
@@ -979,7 +985,7 @@ public class SysUserController {
      */
     @SysLog("查询全可用的用户")
     @GetMapping("/list/available")
-    public R listScope1(Page page, UserDTO userDTO) {
+    public R<?> listScope1(Page page, UserDTO userDTO) {
         userDTO.setLockFlag(CommonConstants.STATUS_NORMAL);
         if (CollUtil.isNotEmpty(userDTO.getRole())) {
             userDTO.setDeptId(SecurityUtils.getUser().getDeptId());
@@ -1027,7 +1033,7 @@ public class SysUserController {
      * @return
      */
     @GetMapping("/listNoScope")
-    public R listNoScope(UserDTO userDTO) {
+    public R<?> listNoScope(UserDTO userDTO) {
 
         SysUser sysUserSel = new SysUser();
 
@@ -1102,4 +1108,36 @@ public class SysUserController {
         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);
+    }
+
 }

+ 5 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntController.java

@@ -327,7 +327,11 @@ public class WmDaDrugEntController {
             return false;
         }
 
-        if (Arrays.asList(roles).contains(1) || Arrays.asList(roles).contains(2) || Arrays.asList(roles).contains(3) || Arrays.asList(roles).contains(4)) {
+        if (Arrays.asList(roles).contains(1)
+                || Arrays.asList(roles).contains(2)
+                || Arrays.asList(roles).contains(3)
+                || Arrays.asList(roles).contains(4)
+                || Arrays.asList(roles).contains(37)) {
             return true;
         }
         return false;

+ 7 - 7
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -272,7 +272,7 @@ public class WmScorePackageController {
                     queryWrapper.eq("package_audit_status", "1");
                 }
 
-                if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(5)) {
+                if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(37) || SecurityUtils.getRoles().contains(5)) {
                     queryWrapper.eq("package_finish_status", "1");
                 }
             } else {
@@ -280,7 +280,7 @@ public class WmScorePackageController {
                     queryWrapper.eq("package_audit_status", "0");
                 }
 
-                if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(5)) {
+                if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(37) || SecurityUtils.getRoles().contains(5)) {
                     queryWrapper.eq("package_finish_status", "0");
                 }
             }
@@ -425,7 +425,7 @@ public class WmScorePackageController {
                     queryWrapper.eq("package_audit_status", "1");
                 }
 
-                if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(5)) {
+                if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(37) || SecurityUtils.getRoles().contains(5)) {
                     queryWrapper.eq("package_finish_status", "1");
                 }
             } else {
@@ -433,7 +433,7 @@ public class WmScorePackageController {
                     queryWrapper.eq("package_audit_status", "0");
                 }
 
-                if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(5)) {
+                if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(37) || SecurityUtils.getRoles().contains(5)) {
                     queryWrapper.eq("package_finish_status", "0");
                 }
             }
@@ -1952,7 +1952,7 @@ public class WmScorePackageController {
 
         // 保存积分包
         String typeId = "";
-        if (roles.contains(4) || roles.contains(3)) {
+        if (roles.contains(4) || roles.contains(37) || roles.contains(3)) {
             if (deptLevel == 2) {
                 typeId = wmScorePackage.getDeptId().equals(deptId.toString()) ? "0" : "1";
             } else if (deptLevel == 3) {
@@ -1964,7 +1964,7 @@ public class WmScorePackageController {
 
         // 发包成功 更新 上级包
         if (isAnswer) {
-            if ((roles.contains(4) || roles.contains(3)) && deptLevel == 3) {
+            if ((roles.contains(4) || roles.contains(37) || roles.contains(3)) && deptLevel == 3) {
                 WmScorePackage relPkg = wmScorePackageService.getById(relPkgId);
                 // 是当前操作人所在企业的的关联包
                 if (relPkg != null && deptId.toString().equals(relPkg.getDeptId())) {
@@ -2124,7 +2124,7 @@ public class WmScorePackageController {
         }
 
 
-        if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(3)) {
+        if (SecurityUtils.getRoles().contains(4) || SecurityUtils.getRoles().contains(37) || SecurityUtils.getRoles().contains(3)) {
             WmScorePackage queryWm = new WmScorePackage();
 
             SysDept sysDept = sysDeptService.getById(SecurityUtils.getUser().getDeptId());

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/SysAreaEntityService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysAreaEntity;
 
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -24,6 +25,15 @@ public interface SysAreaEntityService extends IService<SysAreaEntity> {
      */
     List<Tree<Long>> selectTree(SysAreaEntity sysArea);
 
+
+    /**
+     * 查询行政区划树
+     *
+     * @param areaIds 查询条件
+     * @return 树
+     */
+    List<Tree<Long>> selectTree(Collection<Long> areaIds);
+
     /**
      * 分页查询
      *

+ 9 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/SysDeptService.java

@@ -1,6 +1,6 @@
-
 package com.qunzhixinxi.hnqz.admin.service;
 
+import cn.hutool.core.lang.tree.Tree;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.api.dto.DeptTree;
@@ -102,4 +102,12 @@ public interface SysDeptService extends IService<SysDept> {
      * @return 翻页结果
      */
     Page<SysEnterpriseRelationVO> pageEntRels(Page<SysEnterpriseRelationVO> page, String entName);
+
+    /**
+     * 获取企业区域树
+     *
+     * @param deptId 企业ID
+     * @return 区域树
+     */
+    List<Tree<Long>> getDeptAreaTree(Long deptId);
 }

+ 9 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/SysUserService.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.service;
 
+import cn.hutool.core.lang.tree.Tree;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -129,4 +130,12 @@ public interface SysUserService extends IService<SysUser> {
      * @return 用户信息map
      */
     Map<String, List<SysUser>> mapUsersByUsername(Collection<String> usernames);
+
+    /**
+     * 获取用户的区域树
+     *
+     * @param id 用户ID
+     * @return 区域树
+     */
+    List<Tree<Long>> getUserAreaTree(Long id);
 }

+ 35 - 7
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysAreaEntityServiceImpl.java

@@ -17,9 +17,12 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 行政区划表服务实现
@@ -46,18 +49,43 @@ public class SysAreaEntityServiceImpl extends ServiceImpl<SysAreaEntityMapper, S
                 .eq(SysAreaEntity::getAreaStatus, Boolean.TRUE)
                 .orderByDesc(SysAreaEntity::getAreaId));
 
-        List<TreeNode<Long>> nodeList = CollUtil.newArrayList();
-        for (SysAreaEntity sysAreaEntity : entityList) {
-            TreeNode<Long> treeNode = new TreeNode<>(sysAreaEntity.getAreaId(), sysAreaEntity.getParentId()
-                    , sysAreaEntity.getAreaName(), sysAreaEntity.getSortOrder());
+        return CollUtil.isNotEmpty(entityList) ? getTrees(entityList) : Collections.emptyList();
+    }
+
+    /**
+     * 查询行政区划树
+     *
+     * @param areaIds 查询条件
+     * @return 树
+     */
+    @Override
+    public List<Tree<Long>> selectTree(Collection<Long> areaIds) {
+
+        if (CollUtil.isEmpty(areaIds)){
+            return Collections.emptyList();
+        }
+
+        List<SysAreaEntity> entityList = this.list(Wrappers.<SysAreaEntity>lambdaQuery()
+                .in(SysAreaEntity::getAreaId, areaIds)
+                .eq(SysAreaEntity::getAreaStatus, Boolean.TRUE)
+        );
+
+        return CollUtil.isNotEmpty(entityList) ? getTrees(entityList) : Collections.emptyList();
+    }
+
+    private static List<Tree<Long>> getTrees(List<SysAreaEntity> entityList) {
+
+        List<TreeNode<Long>> collect = entityList.stream().map(sysAreaEntity -> {
+            TreeNode<Long> treeNode = new TreeNode<>(sysAreaEntity.getAreaId(), sysAreaEntity.getParentId(), sysAreaEntity.getAreaName(), sysAreaEntity.getSortOrder());
 
             HashMap<String, Object> extraMap = MapUtil.of("areaCode", sysAreaEntity.getAreaCode());
             extraMap.put("hot", sysAreaEntity.getHot());
             treeNode.setExtra(extraMap);
-            nodeList.add(treeNode);
-        }
+            return treeNode;
+        }).collect(Collectors.toList());
+
 
-        return TreeUtil.build(nodeList, -1L);
+        return TreeUtil.build(collect, -1L);
     }
 
     /**

+ 17 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysDeptServiceImpl.java

@@ -1,8 +1,8 @@
-
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.map.MapUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -15,6 +15,8 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptCsm;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
 import com.qunzhixinxi.hnqz.admin.api.vo.SysEnterpriseRelationVO;
 import com.qunzhixinxi.hnqz.admin.api.vo.TreeUtil;
+import com.qunzhixinxi.hnqz.admin.service.SysAreaEntityService;
+import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseAreaService;
 import com.qunzhixinxi.hnqz.common.core.entity.HnqzPage;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.DeptLevelEnum;
@@ -50,14 +52,12 @@ import java.util.stream.Collectors;
 public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> implements SysDeptService {
 
     private final SysDeptRelationService sysDeptRelationService;
-
     private final SysDeptRelationMapper sysDeptRelationMapper;
-
     private final SysDeptMapper deptMapper;
-
     private final SysCsmUserRelationService sysCsmUserRelationService;
-
     private final SysDeptCsmMapper sysDeptCsmMapper;
+    private final SysEnterpriseAreaService enterpriseAreaService;
+    private final SysAreaEntityService areaEntityService;
 
     @Override
     public List<Map<String, Object>> convertToName() {
@@ -547,4 +547,16 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
     public Page<SysEnterpriseRelationVO> pageEntRels(Page<SysEnterpriseRelationVO> page, String entName) {
         return this.baseMapper.pageEntRels(page, entName);
     }
+
+    /**
+     * 获取企业区域树
+     *
+     * @param deptId 企业ID
+     * @return 区域树
+     */
+    @Override
+    public List<Tree<Long>> getDeptAreaTree(Long deptId) {
+        List<Long> areas = enterpriseAreaService.listEntAreas(deptId);
+        return areaEntityService.selectTree(areas);
+    }
 }

+ 14 - 12
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysUserServiceImpl.java

@@ -3,6 +3,7 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.Validator;
+import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.IdcardUtil;
 import cn.hutool.core.util.StrUtil;
@@ -65,30 +66,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
 
     private final SysMenuService sysMenuService;
-
     private final SysRoleService sysRoleService;
-
     private final SysDeptService sysDeptService;
-
     private final SysUserRoleService sysUserRoleService;
-
     private final SysUserRoleMapper sysUserRoleMapper;
-
     private final SysUserMapper sysUserMapper;
-
     private final SysDeptRelationService sysDeptRelationService;
-
     private final SysDeptRelationMapper sysDeptRelationMapper;
-
     private final RedisTemplate<String, Object> redisTemplate;
-
     private final SysDeptSubMapper sysDeptSubMapper;
-
     private final SysUserSubMapper sysUserSubMapper;
-
     private final SysCsmUserRelationService sysCsmUserRelationService;
-
     private final SysUserAreaService userAreaService;
+    private final SysAreaEntityService areaEntityService;
 
     /**
      * @Modify: start
@@ -202,6 +192,18 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return sysUsers.stream().collect(Collectors.groupingBy(SysUser::getUsername));
     }
 
+    /**
+     * 获取用户的区域树
+     *
+     * @param id 用户ID
+     * @return 区域树
+     */
+    @Override
+    public List<Tree<Long>> getUserAreaTree(Long id) {
+        List<Long> areas = userAreaService.listUserAreas(id);
+        return areaEntityService.selectTree(areas);
+    }
+
     /**
      * 封装错误信息
      *