mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	CRM:完善模块数据放入公海、公海数据领取
This commit is contained in:
		| @@ -32,10 +32,13 @@ import java.util.Collections; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Set; | ||||
| import java.util.function.Predicate; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||
| import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.anyMatch; | ||||
| import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | ||||
| import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; | ||||
|  | ||||
| @Tag(name = "管理后台 - CRM 数据权限(数据团队成员操作)") | ||||
| @RestController | ||||
| @@ -44,7 +47,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. | ||||
| public class CrmPermissionController { | ||||
|  | ||||
|     @Resource | ||||
|     private CrmPermissionService crmPermissionService; | ||||
|     private CrmPermissionService permissionService; | ||||
|  | ||||
|     @Resource | ||||
|     private AdminUserApi adminUserApi; | ||||
| @@ -59,11 +62,27 @@ public class CrmPermissionController { | ||||
|     @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#reqVO.bizType", bizId = "#reqVO.bizId" | ||||
|             , level = CrmPermissionLevelEnum.OWNER) | ||||
|     public CommonResult<Boolean> addPermission(@Valid @RequestBody CrmPermissionCreateReqVO reqVO) { | ||||
|         // 2. 加入成员 | ||||
|         crmPermissionService.createPermission(CrmPermissionConvert.INSTANCE.convert(reqVO)); | ||||
|         permissionService.createPermission(CrmPermissionConvert.INSTANCE.convert(reqVO)); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     @PutMapping("/receive") | ||||
|     @Operation(summary = "领取公海数据") | ||||
|     @PreAuthorize("@ss.hasPermission('crm:permission:update')") | ||||
|     public CommonResult<Boolean> receive(@RequestParam("bizType") Integer bizType, @RequestParam("bizId") Long bizId) { | ||||
|         permissionService.receiveBiz(bizType, bizId, getLoginUserId()); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     @PutMapping("/put-pool") | ||||
|     @Operation(summary = "数据放入公海") | ||||
|     @PreAuthorize("@ss.hasPermission('crm:permission:update')") | ||||
|     @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#bizType", bizId = "#bizId" | ||||
|             , level = CrmPermissionLevelEnum.OWNER) | ||||
|     public CommonResult<Boolean> putPool(@RequestParam(value = "bizType") Integer bizType, @RequestParam("bizId") Long bizId) { | ||||
|         permissionService.putPool(bizType, bizId, getLoginUserId()); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     @PutMapping("/update") | ||||
|     @Operation(summary = "编辑团队成员") | ||||
| @@ -71,7 +90,7 @@ public class CrmPermissionController { | ||||
|     @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#updateReqVO.bizType", bizId = "#updateReqVO.bizId" | ||||
|             , level = CrmPermissionLevelEnum.WRITE) | ||||
|     public CommonResult<Boolean> updatePermission(@Valid @RequestBody CrmPermissionUpdateReqVO updateReqVO) { | ||||
|         crmPermissionService.updatePermission(CrmPermissionConvert.INSTANCE.convert(updateReqVO)); | ||||
|         permissionService.updatePermission(CrmPermissionConvert.INSTANCE.convert(updateReqVO)); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
| @@ -88,7 +107,7 @@ public class CrmPermissionController { | ||||
|     public CommonResult<Boolean> deletePermission(@RequestParam("bizType") Integer bizType, | ||||
|                                                   @RequestParam("bizId") Long bizId, | ||||
|                                                   @RequestParam("id") Long id) { | ||||
|         crmPermissionService.deletePermission(id); | ||||
|         permissionService.deletePermission(id); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
| @@ -101,12 +120,16 @@ public class CrmPermissionController { | ||||
|     @PreAuthorize("@ss.hasPermission('crm:permission:query')") | ||||
|     public CommonResult<List<CrmPermissionRespVO>> getPermissionList(@RequestParam("bizType") Integer bizType, | ||||
|                                                                      @RequestParam("bizId") Long bizId) { | ||||
|         List<CrmPermissionDO> permission = crmPermissionService.getPermissionByBizTypeAndBizId(bizType, bizId); | ||||
|         List<CrmPermissionDO> permission = permissionService.getPermissionByBizTypeAndBizId(bizType, bizId); | ||||
|         if (CollUtil.isEmpty(permission)) { | ||||
|             return success(Collections.emptyList()); | ||||
|         } | ||||
|         // TODO @puhui999:池子的逻辑; | ||||
|         permission.removeIf(item -> ObjUtil.equal(item.getUserId(), CrmPermissionDO.POOL_USER_ID)); // 排除 | ||||
|         // 判断是否是公海数据 | ||||
|         Predicate<CrmPermissionDO> filter = item -> ObjUtil.equal(item.getUserId(), CrmPermissionDO.POOL_USER_ID); | ||||
|         if (anyMatch(permission, filter)) { | ||||
|             permission.removeIf(filter); // 排除 | ||||
|         } | ||||
|  | ||||
|         // 拼接数据 | ||||
|         List<AdminUserRespDTO> userList = adminUserApi.getUserList(convertSet(permission, CrmPermissionDO::getUserId)); | ||||
|   | ||||
| @@ -85,4 +85,22 @@ public interface CrmPermissionService { | ||||
|      */ | ||||
|     List<CrmPermissionDO> getPermissionListByBizTypeAndUserId(Integer bizType, Long userId); | ||||
|  | ||||
|     /** | ||||
|      * 领取公海数据 | ||||
|      * | ||||
|      * @param bizType 数据类型,关联 {@link CrmBizTypeEnum} | ||||
|      * @param bizId   数据编号,关联 {@link CrmBizTypeEnum} 对应模块 DO#getId() | ||||
|      * @param userId  用户编号,AdminUser#id | ||||
|      */ | ||||
|     void receiveBiz(Integer bizType, Long bizId, Long userId); | ||||
|  | ||||
|     /** | ||||
|      * 数据放入公海 | ||||
|      * | ||||
|      * @param bizType 数据类型,关联 {@link CrmBizTypeEnum} | ||||
|      * @param bizId   数据编号,关联 {@link CrmBizTypeEnum} 对应模块 DO#getId() | ||||
|      * @param userId  用户编号,AdminUser#id | ||||
|      */ | ||||
|     void putPool(Integer bizType, Long bizId, Long userId); | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -141,4 +141,24 @@ public class CrmPermissionServiceImpl implements CrmPermissionService { | ||||
|         return crmPermissionMapper.selectListByBizTypeAndUserId(bizType, userId); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void receiveBiz(Integer bizType, Long bizId, Long userId) { | ||||
|         CrmPermissionDO permission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(bizType, bizId, CrmPermissionDO.POOL_USER_ID); | ||||
|         if (permission == null) { // 不存在则模块数据也不存在 | ||||
|             throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, CrmBizTypeEnum.getNameByType(bizType)); | ||||
|         } | ||||
|  | ||||
|         crmPermissionMapper.updateById(new CrmPermissionDO().setId(permission.getId()).setUserId(userId)); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void putPool(Integer bizType, Long bizId, Long userId) { | ||||
|         CrmPermissionDO permission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(bizType, bizId, userId); | ||||
|         if (permission == null) { // 不存在则模块数据也不存在 | ||||
|             throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, CrmBizTypeEnum.getNameByType(bizType)); | ||||
|         } | ||||
|  | ||||
|         crmPermissionMapper.updateById(new CrmPermissionDO().setId(permission.getId()).setUserId(CrmPermissionDO.POOL_USER_ID)); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 puhui999
					puhui999