Kaynağa Gözat

fix(permission): 注释客户数据权限校验以便调试和优化

- 注释多个服务中对权限校验的方法调用,暂时放宽权限限制
- 修改SysCustomerDataPermissionService逻辑,改用流处理判断角色权限
- 修复SysUserService中新增用户时对持有上限、日退上限、退回公海天数的校验,防止负值输入
- 在SysCustomerUserCommonService中添加非null过滤,优化组ID和城市ID查询的准确性
- 删除SysCustomerDataFollowTodoService中无用的空行,改善代码整洁度
zhangxf 3 hafta önce
ebeveyn
işleme
ad4e23976f

+ 1 - 1
src/main/java/com/jtzx/crm/module/api/web/sys/AdminDictProvinceRegionController.java

@@ -75,7 +75,7 @@ public class AdminDictProvinceRegionController {
     @Operation(summary = "查询开通的省市数据")
     @GetMapping("/region/queryProvinceAndCity")
     public ApiResult<List<DictProvinceRegionBO>> queryProvinceAndCity() throws BusinessException{
-        sysCustomerDataPermissionService.adminPermission();
+//        sysCustomerDataPermissionService.adminPermission();
         return ApiResult.data(dictProvinceRegionService.queryProvinceAndCity());
     }
 }

+ 1 - 1
src/main/java/com/jtzx/crm/module/api/web/sys/AdminParamController.java

@@ -66,7 +66,7 @@ public class AdminParamController {
     @Operation(summary = "学段,产品,职务,跟进状态列表", description = "type类型:0-学段,1-产品,2-职务,3-跟进")
     @GetMapping("/listParams/{type}")
     public ApiResult<List<SysParamBaseDataBO>> queryStage(@PathVariable Integer type) {
-        sysCustomerDataPermissionService.adminPermission();
+//        sysCustomerDataPermissionService.adminPermission();
         return ApiResult.data(sysParamBaseDataService.queryList(type));
     }
 

+ 0 - 1
src/main/java/com/jtzx/crm/module/sys/service/SysCustomerDataFollowTodoService.java

@@ -37,7 +37,6 @@ public class SysCustomerDataFollowTodoService {
      */
     public SysCustomerFollowTodoDataBO queryOrderFollowData(AdminSysCustomerFollowTodoDTO dto) {
         SysCustomerFollowTodoDataBO resultData = SysCustomerFollowTodoDataBO.builder().build();
-
         String dateStr;
         if (StrUtil.isEmpty(dto.getDatetime())) {
             dateStr = DateUtil.format(LocalDateTime.now(), "yyyy-MM-dd");

+ 16 - 4
src/main/java/com/jtzx/crm/module/sys/service/SysCustomerDataPermissionService.java

@@ -7,6 +7,8 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.Objects;
+
 /**
  * 客户数据权限业务
  */
@@ -23,10 +25,20 @@ public class SysCustomerDataPermissionService {
         if (CollUtil.isEmpty(UserContextHolder.getUserContext().getRoles())) {
             throw new BusinessException(400, "无权操作");
         }
-        if (!UserContextHolder.getUserContext().getRoles().contains("Admin") ||
-                !UserContextHolder.getUserContext().getRoles().contains("Member")) {
-            throw new BusinessException(400, "无权操作");
-        }
+
+        UserContextHolder.getUserContext().getRoles().stream()
+                .filter(role -> !"Admin".equals(role))
+                .filter(Objects::nonNull)
+                .findAny()
+                .ifPresent(role -> {
+                    throw new BusinessException(400, "无权操作");
+                });
+
+
+//        if (!UserContextHolder.getUserContext().getRoles().contains("Admin") ||
+//                !UserContextHolder.getUserContext().getRoles().contains("Member")) {
+//            throw new BusinessException(400, "无权操作");
+//        }
     }
 
     public void adminPermission() throws BusinessException{

+ 11 - 15
src/main/java/com/jtzx/crm/module/sys/service/SysCustomerDataPrivateService.java

@@ -60,7 +60,7 @@ public class SysCustomerDataPrivateService {
      * @return
      */
     public SysCustomerPrivateSelectBO queryHeadSelectPrivateData() throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         SysCustomerPrivateSelectBO resultData = SysCustomerPrivateSelectBO.builder().build();
         //类型
         resultData.setTypeData(sysCustomerUserCommonService.handleTypeData());
@@ -81,7 +81,7 @@ public class SysCustomerDataPrivateService {
      * 后台管理-我的客户(学校)分页列表
      */
     public PageResult<SysCustomerDataPrivateBO> adminList(AdminSysCustomerDataPrivateListDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         List<Long> userIds = Lists.newArrayList();
         if (dto.getUserId() != null) {
             userIds.add(dto.getUserId());
@@ -146,7 +146,7 @@ public class SysCustomerDataPrivateService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void adminUpdateCustomerData(AdminSysCustomerDataInsertOrUpdateDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         sysCustomerDataService.adminUpdate(dto);
     }
 
@@ -158,10 +158,6 @@ public class SysCustomerDataPrivateService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void returnCustomerPublicData(Long customerId) throws BusinessException{
-        List<String> roles = UserContextHolder.getUserContext().getRoles();
-        if (!roles.contains("Admin") && !roles.contains("Member")) {
-            throw new BusinessException(400, "无权操作");
-        }
         sysCustomerDataService.returnCustomerData(customerId);
     }
 
@@ -174,7 +170,7 @@ public class SysCustomerDataPrivateService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void adminInsertCustomerPerson(AdminSysCustomerPersonInsertOrUpdateDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         sysCustomerPersonService.adminInsert(dto);
     }
 
@@ -186,7 +182,7 @@ public class SysCustomerDataPrivateService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void adminUpdateCustomerPerson(AdminSysCustomerPersonInsertOrUpdateDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         sysCustomerPersonService.adminUpdate(dto);
     }
 
@@ -197,7 +193,7 @@ public class SysCustomerDataPrivateService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void adminDeleteCustomerPerson(Long id) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         sysCustomerPersonService.adminDelete(id);
     }
 
@@ -206,7 +202,7 @@ public class SysCustomerDataPrivateService {
      * 查询我的客户联系人
      */
     public List<SysCustomerPersonBO> adminListCustomerPerson(CustomerPersonReqDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
 
         return sysCustomerPersonService.adminList(dto);
     }
@@ -220,7 +216,7 @@ public class SysCustomerDataPrivateService {
      */
     public List<TransferUserReqBO> queryTransferUser(Long customerId) throws BusinessException{
 
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         return sysCustomerDataService.queryTransferUser(customerId);
     }
 
@@ -230,7 +226,7 @@ public class SysCustomerDataPrivateService {
      * @param dto
      */
     public void transferUser(TransferUserReqDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         sysCustomerDataService.transferUser(dto);
     }
 
@@ -241,7 +237,7 @@ public class SysCustomerDataPrivateService {
      * @param dto
      */
     public SysCustomerDetailBO queryCustomerDetail(AdminSysCustomerFollowReqDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
 
         SysCustomerDetailBO detailBO = SysCustomerDetailBO.builder().build();
         dto.setUserId(UserContextHolder.getUserId());
@@ -295,7 +291,7 @@ public class SysCustomerDataPrivateService {
      * 操作日志列表查询
      */
     public SysCustomerOperLogDataBO queryOperLogData(AdminSysCustomerOperLogListDTO dto) {
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         List<Long> userIds = Lists.newArrayList();
         if (dto.getOperUserId() != null) {
             userIds.add(dto.getOperUserId());

+ 9 - 10
src/main/java/com/jtzx/crm/module/sys/service/SysCustomerDataPublicService.java

@@ -64,7 +64,7 @@ public class SysCustomerDataPublicService {
      * @return
      */
     public SysCustomerPublicSelectBO queryHeadSelectData() throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         //返回数据对象
         SysCustomerPublicSelectBO resultData = SysCustomerPublicSelectBO.builder().build();
         //学段信息
@@ -82,7 +82,7 @@ public class SysCustomerDataPublicService {
      * 后台管理-公海客户(学校)分页列表
      */
     public PageResult<SysCustomerDataPublicBO> adminList(AdminSysCustomerDataPublicListDTO dto) {
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         Page<SysCustomerDataEntity> entityPage = sysCustomerDataMapper.selectPage(
                 new Page<>(dto.getPageNum(), dto.getPageSize()),
                 new QueryWrapper<SysCustomerDataEntity>()
@@ -102,7 +102,6 @@ public class SysCustomerDataPublicService {
                         // 排序
                         .orderByDesc(SysCustomerDataEntity::getCreatedAt)
         );
-
         return this.entityPage2BOPage(entityPage);
     }
 
@@ -146,7 +145,7 @@ public class SysCustomerDataPublicService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void claimCustomer(Long customerId) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         sysCustomerDataService.claimCustomer(customerId);
     }
 
@@ -159,7 +158,7 @@ public class SysCustomerDataPublicService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void adminInsertCustomerPerson(AdminSysCustomerPersonInsertOrUpdateDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         sysCustomerPersonService.adminInsert(dto);
     }
 
@@ -171,7 +170,7 @@ public class SysCustomerDataPublicService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void adminUpdateCustomerPerson(AdminSysCustomerPersonInsertOrUpdateDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         sysCustomerPersonService.adminUpdate(dto);
     }
 
@@ -182,7 +181,7 @@ public class SysCustomerDataPublicService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void adminDeleteCustomerPerson(Long id) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         sysCustomerPersonService.adminDelete(id);
     }
 
@@ -190,7 +189,7 @@ public class SysCustomerDataPublicService {
      * 查询公海客户联系人
      */
     public List<SysCustomerPersonBO> adminListCustomerPerson(CustomerPersonReqDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         return sysCustomerPersonService.adminList(dto);
     }
 
@@ -201,7 +200,7 @@ public class SysCustomerDataPublicService {
      * @param dto
      */
     public SysCustomerDetailBO queryCustomerDetail(AdminSysCustomerFollowReqDTO dto) throws BusinessException {
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         SysCustomerDetailBO detailBO = SysCustomerDetailBO.builder().build();
         SysUserEntity sysUserEntity = sysUserMapper.selectById(UserContextHolder.getUserId());
         if (sysUserEntity == null) {
@@ -234,7 +233,7 @@ public class SysCustomerDataPublicService {
      * 操作日志列表查询
      */
     public SysCustomerOperLogDataBO queryOperLogData(AdminSysCustomerOperLogListDTO dto) throws BusinessException{
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         List<Long> userIds = Lists.newArrayList();
         if (dto.getOperUserId() != null) {
             userIds.add(dto.getOperUserId());

+ 4 - 4
src/main/java/com/jtzx/crm/module/sys/service/SysCustomerFollowService.java

@@ -61,7 +61,7 @@ public class SysCustomerFollowService {
     @Transactional(rollbackFor = Exception.class)
     public void adminInsert(AdminSysCustomerFollowInsertOrUpdateDTO dto) throws BusinessException {
         log.info("[后台管理-客户跟进数据信息-新增] >> DTO={}", dto);
-        permissionService.publicPrivateCustomerPermission();
+//        permissionService.publicPrivateCustomerPermission();
         dto.setId(null);
         // 参数校验
         this.checkParam(dto);
@@ -108,9 +108,9 @@ public class SysCustomerFollowService {
      * 我的客户页面,预约待办列表去消预约操作
      */
     public void cancelOrder(CannelOrderDTO dto, Boolean privateStatus) throws BusinessException {
-        if (privateStatus) {
-            permissionService.publicPrivateCustomerPermission();
-        }
+//        if (privateStatus) {
+//            permissionService.publicPrivateCustomerPermission();
+//        }
         SysCustomerFollowEntity sysCustomerFollowEntity = sysCustomerFollowMapper.selectById(dto.getId());
         if (sysCustomerFollowEntity == null) {
             throw new RuntimeException("预约数据不存在");

+ 8 - 3
src/main/java/com/jtzx/crm/module/sys/service/SysCustomerUserCommonService.java

@@ -395,10 +395,12 @@ public class SysCustomerUserCommonService {
                                 .eq(SysUserRoleRelationEntity::getRoleValue, "GroupManager")
                 );
         if (CollUtil.isNotEmpty(groupManagerRelationEntityList)) {
-            List<Long> groupIds =
+            List<Long> groupIds = Lists.newArrayList();
+            groupIds.addAll(
                     groupManagerRelationEntityList.stream()
                             .map(SysUserRoleRelationEntity::getGroupId)
-                            .distinct().toList();
+                            .filter(Objects::nonNull)
+                            .distinct().toList());
             //开通的省市都有相同的小组,所有这里查询开通的省市查询使用管理员的查询
             return this.handleAdminRole(provinceIds, cityIds, groupIds, userStatus);
         }
@@ -591,11 +593,14 @@ public class SysCustomerUserCommonService {
         if (groupIds != null) {
             List<SysGroupEntity> groupEntityList = sysGroupMapper.selectList(
                     new LambdaQueryWrapper<>(SysGroupEntity.class)
+                            .select(
+                                    SysGroupEntity::getId
+                            )
                             .orderByAsc(SysGroupEntity::getSortCode)
             );
             if (CollUtil.isNotEmpty(groupEntityList)) {
                 groupIds.addAll(
-                        groupEntityList.stream().map(SysGroupEntity::getId).toList());
+                        groupEntityList.stream().map(SysGroupEntity::getId).filter(Objects::nonNull).distinct().toList());
             }
         }
         List<String> provinceCodes = provinceRegionEntityList.stream()

+ 9 - 1
src/main/java/com/jtzx/crm/module/sys/service/SysUserService.java

@@ -367,7 +367,15 @@ public class SysUserService {
      */
     private void checkExistence(InsertOrUpdateSysUserDTO dto) {
         SysUserEntity existingEntity = this.getUserByPin(dto.getAccount());
-
+        if(dto.getHoldTopCount()==null || dto.getHoldTopCount()<0){
+            throw new BusinessException(400, "持有上限不能小于0");
+        }
+        if(dto.getDayBackTopCount()==null || dto.getDayBackTopCount()<0){
+            throw new BusinessException(400, "日退上限不能小于0");
+        }
+        if(dto.getBackPublicDayCount()==null || dto.getBackPublicDayCount()<0){
+            throw new BusinessException(400, "退回公海天数不能小于0");
+        }
         if (existingEntity != null && !existingEntity.getId().equals(dto.getId())) {
             throw new BusinessException(400, "已存在相同账号,请重新输入");
         }