Commit b41d469d46cd0dcbb22d6ae68a7c4dfcc0ccc301
1 parent
77d7bcc7
crm-客户管理:新增客户放入公海和领取公海客户
Showing
7 changed files
with
138 additions
and
117 deletions
yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java
| ... | ... | @@ -37,6 +37,9 @@ public interface ErrorCodeConstants { |
| 37 | 37 | ErrorCode CUSTOMER_OWNER_EXISTS = new ErrorCode(1_020_006_001, "客户已存在所属负责人"); |
| 38 | 38 | ErrorCode CUSTOMER_LOCKED = new ErrorCode(1_020_006_002, "客户状态已锁定"); |
| 39 | 39 | ErrorCode CUSTOMER_ALREADY_DEAL = new ErrorCode(1_020_006_003, "客户已交易"); |
| 40 | + ErrorCode CUSTOMER_NOT_IN_POOL = new ErrorCode(1_020_006_004, "客户领取失败,原因:不是公海客户"); | |
| 41 | + ErrorCode CUSTOMER_IN_POOL = new ErrorCode(1_020_006_005, "客户放入公海失败,原因:已经是公海客户"); | |
| 42 | + ErrorCode CUSTOMER_LOCKED_PUT_POOL_FAIL = new ErrorCode(1_020_006_006, "客户放入公海失败,原因:客户已锁定"); | |
| 40 | 43 | // TODO @wanwan:这 2 个单独配置段噢 |
| 41 | 44 | ErrorCode CUSTOMER_POOL_CONFIG_ERROR = new ErrorCode(1_020_006_001, "客户公海规则设置不正确"); |
| 42 | 45 | ErrorCode CUSTOMER_LIMIT_CONFIG_NOT_EXISTS = new ErrorCode(1_020_006_002, "客户限制配置不存在"); | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
| ... | ... | @@ -8,8 +8,6 @@ import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; |
| 8 | 8 | import cn.iocoder.yudao.module.crm.controller.admin.customer.vo.*; |
| 9 | 9 | import cn.iocoder.yudao.module.crm.convert.customer.CrmCustomerConvert; |
| 10 | 10 | import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO; |
| 11 | -import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission; | |
| 12 | -import cn.iocoder.yudao.module.crm.framework.enums.CrmPermissionLevelEnum; | |
| 13 | 11 | import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService; |
| 14 | 12 | import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService; |
| 15 | 13 | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| ... | ... | @@ -103,23 +101,21 @@ public class CrmCustomerController { |
| 103 | 101 | return success(CrmCustomerConvert.INSTANCE.convert(customer, userMap, deptMap)); |
| 104 | 102 | } |
| 105 | 103 | |
| 106 | - // TODO @puhui999:领取公海客户,是不是放到客户那更合适哈? | |
| 107 | 104 | @PutMapping("/receive") |
| 108 | - @Operation(summary = "领取公海数据") | |
| 109 | - @PreAuthorize("@ss.hasPermission('crm:permission:update')") | |
| 110 | - public CommonResult<Boolean> receive(@RequestParam("bizType") Integer bizType, @RequestParam("bizId") Long bizId) { | |
| 111 | - permissionService.receiveBiz(bizType, bizId, getLoginUserId()); | |
| 105 | + @Operation(summary = "领取客户公海数据") | |
| 106 | + @Parameter(name = "id", description = "客户编号", required = true, example = "1024") | |
| 107 | + @PreAuthorize("@ss.hasPermission('crm:customer:update')") | |
| 108 | + public CommonResult<Boolean> receive(@RequestParam("id") Long id) { | |
| 109 | + customerService.receive(id, getLoginUserId()); | |
| 112 | 110 | return success(true); |
| 113 | 111 | } |
| 114 | 112 | |
| 115 | - // TODO @puhui999:是不是放到客户那更合适哈? | |
| 116 | 113 | @PutMapping("/put-pool") |
| 117 | 114 | @Operation(summary = "数据放入公海") |
| 118 | - @PreAuthorize("@ss.hasPermission('crm:permission:update')") | |
| 119 | - @CrmPermission(bizTypeValue = "#bizType", bizId = "#bizId" | |
| 120 | - , level = CrmPermissionLevelEnum.OWNER) | |
| 121 | - public CommonResult<Boolean> putPool(@RequestParam(value = "bizType") Integer bizType, @RequestParam("bizId") Long bizId) { | |
| 122 | - permissionService.putPool(bizType, bizId, getLoginUserId()); | |
| 115 | + @Parameter(name = "id", description = "客户编号", required = true, example = "1024") | |
| 116 | + @PreAuthorize("@ss.hasPermission('crm:customer:update')") | |
| 117 | + public CommonResult<Boolean> putPool(@RequestParam("id") Long id) { | |
| 118 | + customerService.putPool(id); | |
| 123 | 119 | return success(true); |
| 124 | 120 | } |
| 125 | 121 | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/permission/CrmPermissionMapper.java
| ... | ... | @@ -5,7 +5,6 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 5 | 5 | import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; |
| 6 | 6 | import org.apache.ibatis.annotations.Mapper; |
| 7 | 7 | |
| 8 | -import java.util.Collection; | |
| 9 | 8 | import java.util.List; |
| 10 | 9 | |
| 11 | 10 | /** |
| ... | ... | @@ -35,10 +34,10 @@ public interface CrmPermissionMapper extends BaseMapperX<CrmPermissionDO> { |
| 35 | 34 | .eq(CrmPermissionDO::getUserId, userId)); |
| 36 | 35 | } |
| 37 | 36 | |
| 38 | - default List<CrmPermissionDO> selectListByBizTypeAndBizIdsAndLevel(Integer bizType, Collection<Long> bizIds, Integer level) { | |
| 37 | + default List<CrmPermissionDO> selectListByBizTypeAndBizIdAndLevel(Integer bizType, Long bizId, Integer level) { | |
| 39 | 38 | return selectList(new LambdaQueryWrapperX<CrmPermissionDO>() |
| 40 | 39 | .eq(CrmPermissionDO::getBizType, bizType) |
| 41 | - .in(CrmPermissionDO::getBizId, bizIds) | |
| 40 | + .eq(CrmPermissionDO::getBizId, bizId) | |
| 42 | 41 | .eq(CrmPermissionDO::getLevel, level)); |
| 43 | 42 | } |
| 44 | 43 | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerService.java
| ... | ... | @@ -86,21 +86,38 @@ public interface CrmCustomerService { |
| 86 | 86 | void lockCustomer(@Valid CrmCustomerUpdateReqVO updateReqVO); |
| 87 | 87 | |
| 88 | 88 | // TODO @xiaqing:根据 controller 的建议,改下 |
| 89 | + | |
| 89 | 90 | /** |
| 90 | 91 | * 领取公海客户 |
| 91 | 92 | * |
| 92 | 93 | * @param ids 要领取的客户 id |
| 93 | 94 | */ |
| 94 | - void receive(List<Long>ids); | |
| 95 | + void receive(List<Long> ids); | |
| 95 | 96 | |
| 96 | 97 | // TODO @xiaqing:根据 controller 的建议,改下 |
| 98 | + | |
| 97 | 99 | /** |
| 98 | 100 | * 分配公海客户 |
| 99 | 101 | * |
| 100 | - * @param cIds 要分配的客户 id | |
| 102 | + * @param cIds 要分配的客户 id | |
| 101 | 103 | * @param ownerId 分配的负责人id |
| 102 | 104 | * @author xiaqing |
| 103 | 105 | */ |
| 104 | - void distributeByIds(List<Long>cIds,Long ownerId); | |
| 106 | + void distributeByIds(List<Long> cIds, Long ownerId); | |
| 107 | + | |
| 108 | + /** | |
| 109 | + * 领取公海客户 | |
| 110 | + * | |
| 111 | + * @param id 编号 | |
| 112 | + * @param userId 用户编号 | |
| 113 | + */ | |
| 114 | + void receive(Long id, Long userId); | |
| 115 | + | |
| 116 | + /** | |
| 117 | + * 客户放入公海 | |
| 118 | + * | |
| 119 | + * @param id 客户编号 | |
| 120 | + */ | |
| 121 | + void putPool(Long id); | |
| 105 | 122 | |
| 106 | 123 | } | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
| ... | ... | @@ -135,8 +135,9 @@ public class CrmCustomerServiceImpl implements CrmCustomerService { |
| 135 | 135 | |
| 136 | 136 | @Override |
| 137 | 137 | @Transactional(rollbackFor = Exception.class) |
| 138 | + @CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#reqVO.id", level = CrmPermissionLevelEnum.OWNER) | |
| 138 | 139 | public void transferCustomer(CrmCustomerTransferReqVO reqVO, Long userId) { |
| 139 | - // 1. 校验合同是否存在 | |
| 140 | + // 1. 校验客户是否存在 | |
| 140 | 141 | validateCustomer(reqVO.getId()); |
| 141 | 142 | |
| 142 | 143 | // 2. 数据权限转移 |
| ... | ... | @@ -169,6 +170,50 @@ public class CrmCustomerServiceImpl implements CrmCustomerService { |
| 169 | 170 | transferCustomerOwner(cIds,ownerId); |
| 170 | 171 | } |
| 171 | 172 | |
| 173 | + @Override | |
| 174 | + @Transactional(rollbackFor = Exception.class) | |
| 175 | + public void receive(Long id, Long userId) { | |
| 176 | + // 1. 校验存在 | |
| 177 | + CrmCustomerDO customer = customerMapper.selectById(id); | |
| 178 | + if (customer == null) { | |
| 179 | + throw exception(CUSTOMER_NOT_EXISTS); | |
| 180 | + } | |
| 181 | + // 1.2. 校验是否为公海数据 | |
| 182 | + if (customer.getOwnerUserId() != null) { | |
| 183 | + throw exception(CUSTOMER_NOT_IN_POOL); | |
| 184 | + } | |
| 185 | + | |
| 186 | + // 2. 领取公海数据-设置负责人 | |
| 187 | + customerMapper.updateById(new CrmCustomerDO().setId(customer.getId()).setOwnerUserId(userId)); | |
| 188 | + // 3. 创建负责人数据权限 | |
| 189 | + crmPermissionService.createPermission(new CrmPermissionCreateReqBO().setBizType(CrmBizTypeEnum.CRM_CUSTOMER.getType()) | |
| 190 | + .setBizId(customer.getId()).setUserId(userId).setLevel(CrmPermissionLevelEnum.OWNER.getLevel())); // 设置当前操作的人为负责人 | |
| 191 | + } | |
| 192 | + | |
| 193 | + @Override | |
| 194 | + @CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#id", level = CrmPermissionLevelEnum.OWNER) | |
| 195 | + public void putPool(Long id) { | |
| 196 | + // 1. 校验存在 | |
| 197 | + CrmCustomerDO customer = customerMapper.selectById(id); | |
| 198 | + if (customer == null) { | |
| 199 | + throw exception(CUSTOMER_NOT_EXISTS); | |
| 200 | + } | |
| 201 | + // 1.2. 校验是否为公海数据 | |
| 202 | + if (customer.getOwnerUserId() == null) { | |
| 203 | + throw exception(CUSTOMER_IN_POOL); | |
| 204 | + } | |
| 205 | + // 1.3. 校验客户是否锁定、 | |
| 206 | + if (customer.getLockStatus()) { | |
| 207 | + throw exception(CUSTOMER_LOCKED_PUT_POOL_FAIL); | |
| 208 | + } | |
| 209 | + | |
| 210 | + // 2. 公海数据-设置负责人 NULL | |
| 211 | + customerMapper.updateById(new CrmCustomerDO().setId(customer.getId()).setOwnerUserId(null)); | |
| 212 | + // 3. 删除负责人数据权限 | |
| 213 | + crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_CUSTOMER.getType(), customer.getId(), | |
| 214 | + CrmPermissionLevelEnum.OWNER.getLevel()); | |
| 215 | + } | |
| 216 | + | |
| 172 | 217 | private void transferCustomerOwner(List <Long> cIds, Long ownerId){ |
| 173 | 218 | // 先一次性校验完成客户是否可用 |
| 174 | 219 | // TODO @xiaqing:批量一次性加载客户列表,然后去逐个校验; | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionService.java
| ... | ... | @@ -4,6 +4,7 @@ package cn.iocoder.yudao.module.crm.service.permission; |
| 4 | 4 | import cn.iocoder.yudao.module.crm.controller.admin.permission.vo.CrmPermissionUpdateReqVO; |
| 5 | 5 | import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO; |
| 6 | 6 | import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum; |
| 7 | +import cn.iocoder.yudao.module.crm.framework.enums.CrmPermissionLevelEnum; | |
| 7 | 8 | import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO; |
| 8 | 9 | import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionTransferReqBO; |
| 9 | 10 | |
| ... | ... | @@ -34,6 +35,13 @@ public interface CrmPermissionService { |
| 34 | 35 | void updatePermission(CrmPermissionUpdateReqVO updateReqVO); |
| 35 | 36 | |
| 36 | 37 | /** |
| 38 | + * 数据权限转移 | |
| 39 | + * | |
| 40 | + * @param crmPermissionTransferReqBO 数据权限转移请求 | |
| 41 | + */ | |
| 42 | + void transferPermission(@Valid CrmPermissionTransferReqBO crmPermissionTransferReqBO); | |
| 43 | + | |
| 44 | + /** | |
| 37 | 45 | * 删除数据权限 |
| 38 | 46 | * |
| 39 | 47 | * @param ids 编号 |
| ... | ... | @@ -41,14 +49,13 @@ public interface CrmPermissionService { |
| 41 | 49 | void deletePermission(Collection<Long> ids); |
| 42 | 50 | |
| 43 | 51 | /** |
| 44 | - * 获取用户数据权限通过 数据类型 x 某个数据 x 用户编号 | |
| 52 | + * 删除数据权限 | |
| 45 | 53 | * |
| 46 | 54 | * @param bizType 数据类型,关联 {@link CrmBizTypeEnum} |
| 47 | 55 | * @param bizId 数据编号,关联 {@link CrmBizTypeEnum} 对应模块 DO#getId() |
| 48 | - * @param userId 用户编号,AdminUser#id | |
| 49 | - * @return Crm 数据权限 | |
| 56 | + * @param level 数据权限级别,关联 {@link CrmPermissionLevelEnum} | |
| 50 | 57 | */ |
| 51 | - CrmPermissionDO getPermissionByBizTypeAndBizIdAndUserId(Integer bizType, Long bizId, Long userId); | |
| 58 | + void deletePermission(Integer bizType, Long bizId, Integer level); | |
| 52 | 59 | |
| 53 | 60 | /** |
| 54 | 61 | * 获取用户数据权限通过 权限编号 x 用户编号 |
| ... | ... | @@ -69,22 +76,12 @@ public interface CrmPermissionService { |
| 69 | 76 | List<CrmPermissionDO> getPermissionByBizTypeAndBizId(Integer bizType, Long bizId); |
| 70 | 77 | |
| 71 | 78 | /** |
| 72 | - * 获取数据权限列表,通过 数据类型 x 某个数据 | |
| 79 | + * 获得数据权限列表 | |
| 73 | 80 | * |
| 74 | - * @param bizType 数据类型,关联 {@link CrmBizTypeEnum} | |
| 75 | - * @param bizIds 数据编号,关联 {@link CrmBizTypeEnum} 对应模块 DO#getId() | |
| 76 | - * @param level 权限级别 | |
| 77 | - * @return Crm 数据权限列表 | |
| 81 | + * @param ids 数据权限编号列表 | |
| 82 | + * @return 数据权限列表 | |
| 78 | 83 | */ |
| 79 | - List<CrmPermissionDO> getPermissionByBizTypeAndBizIdsAndLevel(Integer bizType, Collection<Long> bizIds, Integer level); | |
| 80 | - | |
| 81 | 84 | List<CrmPermissionDO> getPermissionListByIds(Collection<Long> ids); |
| 82 | - /** | |
| 83 | - * 数据权限转移 | |
| 84 | - * | |
| 85 | - * @param crmPermissionTransferReqBO 数据权限转移请求 | |
| 86 | - */ | |
| 87 | - void transferPermission(@Valid CrmPermissionTransferReqBO crmPermissionTransferReqBO); | |
| 88 | 85 | |
| 89 | 86 | /** |
| 90 | 87 | * 获取用户参与的模块数据列表 |
| ... | ... | @@ -95,22 +92,4 @@ public interface CrmPermissionService { |
| 95 | 92 | */ |
| 96 | 93 | List<CrmPermissionDO> getPermissionListByBizTypeAndUserId(Integer bizType, Long userId); |
| 97 | 94 | |
| 98 | - /** | |
| 99 | - * 领取公海数据 | |
| 100 | - * | |
| 101 | - * @param bizType 数据类型,关联 {@link CrmBizTypeEnum} | |
| 102 | - * @param bizId 数据编号,关联 {@link CrmBizTypeEnum} 对应模块 DO#getId() | |
| 103 | - * @param userId 用户编号,AdminUser#id | |
| 104 | - */ | |
| 105 | - void receiveBiz(Integer bizType, Long bizId, Long userId); | |
| 106 | - | |
| 107 | - /** | |
| 108 | - * 数据放入公海 | |
| 109 | - * | |
| 110 | - * @param bizType 数据类型,关联 {@link CrmBizTypeEnum} | |
| 111 | - * @param bizId 数据编号,关联 {@link CrmBizTypeEnum} 对应模块 DO#getId() | |
| 112 | - * @param userId 用户编号,AdminUser#id | |
| 113 | - */ | |
| 114 | - void putPool(Integer bizType, Long bizId, Long userId); | |
| 115 | - | |
| 116 | 95 | } | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionServiceImpl.java
| ... | ... | @@ -21,6 +21,7 @@ import java.util.Collections; |
| 21 | 21 | import java.util.List; |
| 22 | 22 | |
| 23 | 23 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 24 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | |
| 24 | 25 | import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*; |
| 25 | 26 | import static cn.iocoder.yudao.module.crm.framework.enums.CrmPermissionLevelEnum.isOwner; |
| 26 | 27 | |
| ... | ... | @@ -63,52 +64,6 @@ public class CrmPermissionServiceImpl implements CrmPermissionService { |
| 63 | 64 | |
| 64 | 65 | @Override |
| 65 | 66 | @Transactional(rollbackFor = Exception.class) |
| 66 | - public void deletePermission(Collection<Long> ids) { | |
| 67 | - // 校验存在 | |
| 68 | - validateCrmPermissionExists(ids); | |
| 69 | - | |
| 70 | - // 删除 | |
| 71 | - crmPermissionMapper.deleteBatchIds(ids); | |
| 72 | - } | |
| 73 | - | |
| 74 | - @Override | |
| 75 | - public CrmPermissionDO getPermissionByBizTypeAndBizIdAndUserId(Integer bizType, Long bizId, Long userId) { | |
| 76 | - return crmPermissionMapper.selectByBizTypeAndBizIdByUserId(bizType, bizId, userId); | |
| 77 | - } | |
| 78 | - | |
| 79 | - @Override | |
| 80 | - public CrmPermissionDO getPermissionByIdAndUserId(Long id, Long userId) { | |
| 81 | - return crmPermissionMapper.selectByIdAndUserId(id, userId); | |
| 82 | - } | |
| 83 | - | |
| 84 | - @Override | |
| 85 | - public List<CrmPermissionDO> getPermissionByBizTypeAndBizId(Integer bizType, Long bizId) { | |
| 86 | - return crmPermissionMapper.selectByBizTypeAndBizId(bizType, bizId); | |
| 87 | - } | |
| 88 | - | |
| 89 | - @Override | |
| 90 | - public List<CrmPermissionDO> getPermissionByBizTypeAndBizIdsAndLevel(Integer bizType, Collection<Long> bizIds, Integer level) { | |
| 91 | - return crmPermissionMapper.selectListByBizTypeAndBizIdsAndLevel(bizType, bizIds, level); | |
| 92 | - } | |
| 93 | - | |
| 94 | - @Override | |
| 95 | - public List<CrmPermissionDO> getPermissionListByIds(Collection<Long> ids) { | |
| 96 | - if (CollUtil.isEmpty(ids)) { | |
| 97 | - return Collections.emptyList(); | |
| 98 | - } | |
| 99 | - return crmPermissionMapper.selectBatchIds(ids); | |
| 100 | - } | |
| 101 | - | |
| 102 | - private void validateCrmPermissionExists(Collection<Long> ids) { | |
| 103 | - List<CrmPermissionDO> permissionList = crmPermissionMapper.selectBatchIds(ids); | |
| 104 | - // 校验存在 | |
| 105 | - if (ObjUtil.notEqual(permissionList.size(), ids.size())) { | |
| 106 | - throw exception(CRM_PERMISSION_NOT_EXISTS); | |
| 107 | - } | |
| 108 | - } | |
| 109 | - | |
| 110 | - @Override | |
| 111 | - @Transactional(rollbackFor = Exception.class) | |
| 112 | 67 | public void transferPermission(CrmPermissionTransferReqBO transferReqBO) { |
| 113 | 68 | // 1. 校验数据权限-是否是负责人,只有负责人才可以转移 |
| 114 | 69 | CrmPermissionDO oldPermission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(transferReqBO.getBizType(), |
| ... | ... | @@ -149,30 +104,57 @@ public class CrmPermissionServiceImpl implements CrmPermissionService { |
| 149 | 104 | } |
| 150 | 105 | |
| 151 | 106 | @Override |
| 152 | - public List<CrmPermissionDO> getPermissionListByBizTypeAndUserId(Integer bizType, Long userId) { | |
| 153 | - return crmPermissionMapper.selectListByBizTypeAndUserId(bizType, userId); | |
| 107 | + @Transactional(rollbackFor = Exception.class) | |
| 108 | + public void deletePermission(Collection<Long> ids) { | |
| 109 | + // 校验存在 | |
| 110 | + validateCrmPermissionExists(ids); | |
| 111 | + | |
| 112 | + // 删除 | |
| 113 | + crmPermissionMapper.deleteBatchIds(ids); | |
| 154 | 114 | } |
| 155 | 115 | |
| 156 | 116 | @Override |
| 157 | 117 | @Transactional(rollbackFor = Exception.class) |
| 158 | - public void receiveBiz(Integer bizType, Long bizId, Long userId) { | |
| 159 | - //CrmPermissionDO permission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(bizType, bizId, CrmPermissionDO.POOL_USER_ID); | |
| 160 | - //if (permission == null) { // 不存在则模块数据也不存在 | |
| 161 | - // throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, CrmBizTypeEnum.getNameByType(bizType)); | |
| 162 | - //} | |
| 163 | - // | |
| 164 | - //crmPermissionMapper.updateById(new CrmPermissionDO().setId(permission.getId()).setUserId(userId)); | |
| 165 | - // TODO puhui999: 领取数据后需要创建一个负责人数据权限 | |
| 118 | + public void deletePermission(Integer bizType, Long bizId, Integer level) { | |
| 119 | + List<CrmPermissionDO> permissions = crmPermissionMapper.selectListByBizTypeAndBizIdAndLevel(bizType, bizId, level); | |
| 120 | + // 校验存在 | |
| 121 | + if (CollUtil.isEmpty(permissions)) { | |
| 122 | + throw exception(CRM_PERMISSION_NOT_EXISTS); | |
| 123 | + } | |
| 124 | + | |
| 125 | + // 删除数据权限 | |
| 126 | + crmPermissionMapper.deleteBatchIds(convertSet(permissions, CrmPermissionDO::getId)); | |
| 166 | 127 | } |
| 167 | 128 | |
| 168 | 129 | @Override |
| 169 | - @Transactional(rollbackFor = Exception.class) | |
| 170 | - public void putPool(Integer bizType, Long bizId, Long userId) { | |
| 171 | - CrmPermissionDO permission = crmPermissionMapper.selectByBizTypeAndBizIdByUserId(bizType, bizId, userId); | |
| 172 | - if (permission == null) { // 不存在则模块数据也不存在 | |
| 173 | - throw exception(CRM_PERMISSION_MODEL_NOT_EXISTS, CrmBizTypeEnum.getNameByType(bizType)); | |
| 130 | + public CrmPermissionDO getPermissionByIdAndUserId(Long id, Long userId) { | |
| 131 | + return crmPermissionMapper.selectByIdAndUserId(id, userId); | |
| 132 | + } | |
| 133 | + | |
| 134 | + @Override | |
| 135 | + public List<CrmPermissionDO> getPermissionByBizTypeAndBizId(Integer bizType, Long bizId) { | |
| 136 | + return crmPermissionMapper.selectByBizTypeAndBizId(bizType, bizId); | |
| 137 | + } | |
| 138 | + | |
| 139 | + @Override | |
| 140 | + public List<CrmPermissionDO> getPermissionListByIds(Collection<Long> ids) { | |
| 141 | + if (CollUtil.isEmpty(ids)) { | |
| 142 | + return Collections.emptyList(); | |
| 143 | + } | |
| 144 | + return crmPermissionMapper.selectBatchIds(ids); | |
| 145 | + } | |
| 146 | + | |
| 147 | + private void validateCrmPermissionExists(Collection<Long> ids) { | |
| 148 | + List<CrmPermissionDO> permissionList = crmPermissionMapper.selectBatchIds(ids); | |
| 149 | + // 校验存在 | |
| 150 | + if (ObjUtil.notEqual(permissionList.size(), ids.size())) { | |
| 151 | + throw exception(CRM_PERMISSION_NOT_EXISTS); | |
| 174 | 152 | } |
| 175 | - // TODO puhui999: 数据放入公海后删除负责人的数据权限,完事数据负责人设置为 null | |
| 153 | + } | |
| 154 | + | |
| 155 | + @Override | |
| 156 | + public List<CrmPermissionDO> getPermissionListByBizTypeAndUserId(Integer bizType, Long userId) { | |
| 157 | + return crmPermissionMapper.selectListByBizTypeAndUserId(bizType, userId); | |
| 176 | 158 | } |
| 177 | 159 | |
| 178 | 160 | } | ... | ... |