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,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 | } |