Commit 388e07c8346ba7d13b963d5885c7a8dc8e58a60d
1 parent
533b7295
CRM:完善模块数据放入公海、公海数据领取
Showing
3 changed files
with
68 additions
and
7 deletions
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 | 32 | import java.util.List; |
| 33 | 33 | import java.util.Map; |
| 34 | 34 | import java.util.Set; |
| 35 | +import java.util.function.Predicate; | |
| 35 | 36 | import java.util.stream.Collectors; |
| 36 | 37 | |
| 37 | 38 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 39 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.anyMatch; | |
| 38 | 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 | 43 | @Tag(name = "管理后台 - CRM 数据权限(数据团队成员操作)") |
| 41 | 44 | @RestController |
| ... | ... | @@ -44,7 +47,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. |
| 44 | 47 | public class CrmPermissionController { |
| 45 | 48 | |
| 46 | 49 | @Resource |
| 47 | - private CrmPermissionService crmPermissionService; | |
| 50 | + private CrmPermissionService permissionService; | |
| 48 | 51 | |
| 49 | 52 | @Resource |
| 50 | 53 | private AdminUserApi adminUserApi; |
| ... | ... | @@ -59,11 +62,27 @@ public class CrmPermissionController { |
| 59 | 62 | @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#reqVO.bizType", bizId = "#reqVO.bizId" |
| 60 | 63 | , level = CrmPermissionLevelEnum.OWNER) |
| 61 | 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 | 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 | 87 | @PutMapping("/update") |
| 69 | 88 | @Operation(summary = "编辑团队成员") |
| ... | ... | @@ -71,7 +90,7 @@ public class CrmPermissionController { |
| 71 | 90 | @CrmPermission(bizType = CrmBizTypeEnum.CRM_PERMISSION, bizTypeValue = "#updateReqVO.bizType", bizId = "#updateReqVO.bizId" |
| 72 | 91 | , level = CrmPermissionLevelEnum.WRITE) |
| 73 | 92 | public CommonResult<Boolean> updatePermission(@Valid @RequestBody CrmPermissionUpdateReqVO updateReqVO) { |
| 74 | - crmPermissionService.updatePermission(CrmPermissionConvert.INSTANCE.convert(updateReqVO)); | |
| 93 | + permissionService.updatePermission(CrmPermissionConvert.INSTANCE.convert(updateReqVO)); | |
| 75 | 94 | return success(true); |
| 76 | 95 | } |
| 77 | 96 | |
| ... | ... | @@ -88,7 +107,7 @@ public class CrmPermissionController { |
| 88 | 107 | public CommonResult<Boolean> deletePermission(@RequestParam("bizType") Integer bizType, |
| 89 | 108 | @RequestParam("bizId") Long bizId, |
| 90 | 109 | @RequestParam("id") Long id) { |
| 91 | - crmPermissionService.deletePermission(id); | |
| 110 | + permissionService.deletePermission(id); | |
| 92 | 111 | return success(true); |
| 93 | 112 | } |
| 94 | 113 | |
| ... | ... | @@ -101,12 +120,16 @@ public class CrmPermissionController { |
| 101 | 120 | @PreAuthorize("@ss.hasPermission('crm:permission:query')") |
| 102 | 121 | public CommonResult<List<CrmPermissionRespVO>> getPermissionList(@RequestParam("bizType") Integer bizType, |
| 103 | 122 | @RequestParam("bizId") Long bizId) { |
| 104 | - List<CrmPermissionDO> permission = crmPermissionService.getPermissionByBizTypeAndBizId(bizType, bizId); | |
| 123 | + List<CrmPermissionDO> permission = permissionService.getPermissionByBizTypeAndBizId(bizType, bizId); | |
| 105 | 124 | if (CollUtil.isEmpty(permission)) { |
| 106 | 125 | return success(Collections.emptyList()); |
| 107 | 126 | } |
| 108 | 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 | 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 | 85 | */ |
| 86 | 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 | 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 | } | ... | ... |