Commit 388e07c8346ba7d13b963d5885c7a8dc8e58a60d

Authored by puhui999
1 parent 533b7295

CRM:完善模块数据放入公海、公海数据领取

yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/permission/CrmPermissionController.java
@@ -32,10 +32,13 @@ import java.util.Collections; @@ -32,10 +32,13 @@ import java.util.Collections;
32 import java.util.List; 32 import java.util.List;
33 import java.util.Map; 33 import java.util.Map;
34 import java.util.Set; 34 import java.util.Set;
  35 +import java.util.function.Predicate;
35 import java.util.stream.Collectors; 36 import java.util.stream.Collectors;
36 37
37 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 38 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  39 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.anyMatch;
38 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; 40 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
  41 +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
39 42
40 @Tag(name = "管理后台 - CRM 数据权限(数据团队成员操作)") 43 @Tag(name = "管理后台 - CRM 数据权限(数据团队成员操作)")
41 @RestController 44 @RestController
@@ -44,7 +47,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. @@ -44,7 +47,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
44 public class CrmPermissionController { 47 public class CrmPermissionController {
45 48
46 @Resource 49 @Resource
47 - private CrmPermissionService crmPermissionService; 50 + private CrmPermissionService permissionService;
48 51
49 @Resource 52 @Resource
50 private AdminUserApi adminUserApi; 53 private AdminUserApi adminUserApi;
@@ -59,11 +62,27 @@ public class CrmPermissionController { @@ -59,11 +62,27 @@ public class CrmPermissionController {
59 @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#reqVO.bizType", bizId = "#reqVO.bizId" 62 @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#reqVO.bizType", bizId = "#reqVO.bizId"
60 , level = CrmPermissionLevelEnum.OWNER) 63 , level = CrmPermissionLevelEnum.OWNER)
61 public CommonResult<Boolean> addPermission(@Valid @RequestBody CrmPermissionCreateReqVO reqVO) { 64 public CommonResult<Boolean> addPermission(@Valid @RequestBody CrmPermissionCreateReqVO reqVO) {
62 - // 2. 加入成员  
63 - crmPermissionService.createPermission(CrmPermissionConvert.INSTANCE.convert(reqVO)); 65 + permissionService.createPermission(CrmPermissionConvert.INSTANCE.convert(reqVO));
64 return success(true); 66 return success(true);
65 } 67 }
66 68
  69 + @PutMapping("/receive")
  70 + @Operation(summary = "领取公海数据")
  71 + @PreAuthorize("@ss.hasPermission('crm:permission:update')")
  72 + public CommonResult<Boolean> receive(@RequestParam("bizType") Integer bizType, @RequestParam("bizId") Long bizId) {
  73 + permissionService.receiveBiz(bizType, bizId, getLoginUserId());
  74 + return success(true);
  75 + }
  76 +
  77 + @PutMapping("/put-pool")
  78 + @Operation(summary = "数据放入公海")
  79 + @PreAuthorize("@ss.hasPermission('crm:permission:update')")
  80 + @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#bizType", bizId = "#bizId"
  81 + , level = CrmPermissionLevelEnum.OWNER)
  82 + public CommonResult<Boolean> putPool(@RequestParam(value = "bizType") Integer bizType, @RequestParam("bizId") Long bizId) {
  83 + permissionService.putPool(bizType, bizId, getLoginUserId());
  84 + return success(true);
  85 + }
67 86
68 @PutMapping("/update") 87 @PutMapping("/update")
69 @Operation(summary = "编辑团队成员") 88 @Operation(summary = "编辑团队成员")
@@ -71,7 +90,7 @@ public class CrmPermissionController { @@ -71,7 +90,7 @@ public class CrmPermissionController {
71 @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#updateReqVO.bizType", bizId = "#updateReqVO.bizId" 90 @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#updateReqVO.bizType", bizId = "#updateReqVO.bizId"
72 , level = CrmPermissionLevelEnum.WRITE) 91 , level = CrmPermissionLevelEnum.WRITE)
73 public CommonResult<Boolean> updatePermission(@Valid @RequestBody CrmPermissionUpdateReqVO updateReqVO) { 92 public CommonResult<Boolean> updatePermission(@Valid @RequestBody CrmPermissionUpdateReqVO updateReqVO) {
74 - crmPermissionService.updatePermission(CrmPermissionConvert.INSTANCE.convert(updateReqVO)); 93 + permissionService.updatePermission(CrmPermissionConvert.INSTANCE.convert(updateReqVO));
75 return success(true); 94 return success(true);
76 } 95 }
77 96
@@ -88,7 +107,7 @@ public class CrmPermissionController { @@ -88,7 +107,7 @@ public class CrmPermissionController {
88 public CommonResult<Boolean> deletePermission(@RequestParam("bizType") Integer bizType, 107 public CommonResult<Boolean> deletePermission(@RequestParam("bizType") Integer bizType,
89 @RequestParam("bizId") Long bizId, 108 @RequestParam("bizId") Long bizId,
90 @RequestParam("id") Long id) { 109 @RequestParam("id") Long id) {
91 - crmPermissionService.deletePermission(id); 110 + permissionService.deletePermission(id);
92 return success(true); 111 return success(true);
93 } 112 }
94 113
@@ -101,12 +120,16 @@ public class CrmPermissionController { @@ -101,12 +120,16 @@ public class CrmPermissionController {
101 @PreAuthorize("@ss.hasPermission('crm:permission:query')") 120 @PreAuthorize("@ss.hasPermission('crm:permission:query')")
102 public CommonResult<List<CrmPermissionRespVO>> getPermissionList(@RequestParam("bizType") Integer bizType, 121 public CommonResult<List<CrmPermissionRespVO>> getPermissionList(@RequestParam("bizType") Integer bizType,
103 @RequestParam("bizId") Long bizId) { 122 @RequestParam("bizId") Long bizId) {
104 - List<CrmPermissionDO> permission = crmPermissionService.getPermissionByBizTypeAndBizId(bizType, bizId); 123 + List<CrmPermissionDO> permission = permissionService.getPermissionByBizTypeAndBizId(bizType, bizId);
105 if (CollUtil.isEmpty(permission)) { 124 if (CollUtil.isEmpty(permission)) {
106 return success(Collections.emptyList()); 125 return success(Collections.emptyList());
107 } 126 }
108 // TODO @puhui999:池子的逻辑; 127 // TODO @puhui999:池子的逻辑;
109 - permission.removeIf(item -> ObjUtil.equal(item.getUserId(), CrmPermissionDO.POOL_USER_ID)); // 排除 128 + // 判断是否是公海数据
  129 + Predicate<CrmPermissionDO> filter = item -> ObjUtil.equal(item.getUserId(), CrmPermissionDO.POOL_USER_ID);
  130 + if (anyMatch(permission, filter)) {
  131 + permission.removeIf(filter); // 排除
  132 + }
110 133
111 // 拼接数据 134 // 拼接数据
112 List<AdminUserRespDTO> userList = adminUserApi.getUserList(convertSet(permission, CrmPermissionDO::getUserId)); 135 List<AdminUserRespDTO> userList = adminUserApi.getUserList(convertSet(permission, CrmPermissionDO::getUserId));
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionService.java
@@ -85,4 +85,22 @@ public interface CrmPermissionService { @@ -85,4 +85,22 @@ public interface CrmPermissionService {
85 */ 85 */
86 List<CrmPermissionDO> getPermissionListByBizTypeAndUserId(Integer bizType, Long userId); 86 List<CrmPermissionDO> getPermissionListByBizTypeAndUserId(Integer bizType, Long userId);
87 87
  88 + /**
  89 + * 领取公海数据
  90 + *
  91 + * @param bizType 数据类型,关联 {@link CrmBizTypeEnum}
  92 + * @param bizId 数据编号,关联 {@link CrmBizTypeEnum} 对应模块 DO#getId()
  93 + * @param userId 用户编号,AdminUser#id
  94 + */
  95 + void receiveBiz(Integer bizType, Long bizId, Long userId);
  96 +
  97 + /**
  98 + * 数据放入公海
  99 + *
  100 + * @param bizType 数据类型,关联 {@link CrmBizTypeEnum}
  101 + * @param bizId 数据编号,关联 {@link CrmBizTypeEnum} 对应模块 DO#getId()
  102 + * @param userId 用户编号,AdminUser#id
  103 + */
  104 + void putPool(Integer bizType, Long bizId, Long userId);
  105 +
88 } 106 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionServiceImpl.java
@@ -141,4 +141,24 @@ public class CrmPermissionServiceImpl implements CrmPermissionService { @@ -141,4 +141,24 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
141 return crmPermissionMapper.selectListByBizTypeAndUserId(bizType, userId); 141 return crmPermissionMapper.selectListByBizTypeAndUserId(bizType, userId);
142 } 142 }
143 143
  144 + @Override
  145 + public void receiveBiz(Integer bizType, Long bizId, Long userId) {
  146 + CrmPermissionDO permission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(bizType, bizId, CrmPermissionDO.POOL_USER_ID);
  147 + if (permission == null) { // 不存在则模块数据也不存在
  148 + throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, CrmBizTypeEnum.getNameByType(bizType));
  149 + }
  150 +
  151 + crmPermissionMapper.updateById(new CrmPermissionDO().setId(permission.getId()).setUserId(userId));
  152 + }
  153 +
  154 + @Override
  155 + public void putPool(Integer bizType, Long bizId, Long userId) {
  156 + CrmPermissionDO permission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(bizType, bizId, userId);
  157 + if (permission == null) { // 不存在则模块数据也不存在
  158 + throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, CrmBizTypeEnum.getNameByType(bizType));
  159 + }
  160 +
  161 + crmPermissionMapper.updateById(new CrmPermissionDO().setId(permission.getId()).setUserId(CrmPermissionDO.POOL_USER_ID));
  162 + }
  163 +
144 } 164 }