Commit 492adfe8e582b7cfcc7450ba8517f81fa7f4813b

Authored by YunaiV
1 parent 455f8e49

crm:code review 数据权限

yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
... ... @@ -35,6 +35,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
35 35 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSetByFlatMap;
36 36 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
37 37 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
  38 +import static java.util.Collections.singletonList;
38 39  
39 40 @Tag(name = "管理后台 - CRM 客户")
40 41 @RestController
... ... @@ -114,6 +115,7 @@ public class CrmCustomerController {
114 115 @OperateLog(type = EXPORT)
115 116 public void exportCustomerExcel(@Valid CrmCustomerPageReqVO pageVO,
116 117 HttpServletResponse response) throws IOException {
  118 + // TODO @puhui999:看看复用 getCustomerPage 方法;然后可以禁用下分页;
117 119 List<CrmCustomerDO> list = customerService.getCustomerPage(pageVO, getLoginUserId()).getList();
118 120 // 导出 Excel
119 121 List<CrmCustomerExcelVO> datas = CrmCustomerConvert.INSTANCE.convertList02(list);
... ... @@ -167,7 +169,8 @@ public class CrmCustomerController {
167 169 public CommonResult<Boolean> distributeCustomer(@RequestParam(value = "ids") List<Long> ids,
168 170 @RequestParam(value = "ownerUserId") Long ownerUserId) {
169 171 // 校验负责人是否存在
170   - adminUserApi.validateUserList(java.util.Collections.singletonList(ownerUserId));
  172 + // TODO @puhui999:这个校验,是不是可以收到 validateUserList
  173 + adminUserApi.validateUserList(singletonList(ownerUserId));
171 174 // 领取公海数据
172 175 customerService.receiveCustomer(ids, ownerUserId);
173 176 return success(true);
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/convert/permission/CrmPermissionConvert.java
... ... @@ -61,6 +61,6 @@ public interface CrmPermissionConvert {
61 61 id -> new CrmPermissionDO().setId(id).setLevel(updateReqVO.getLevel()));
62 62 }
63 63  
64   - List<CrmPermissionDO> convertList(List<CrmPermissionCreateReqBO> createBOs);
  64 + List<CrmPermissionDO> convertList(List<CrmPermissionCreateReqBO> list);
65 65  
66 66 }
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
... ... @@ -213,7 +213,6 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
213 213 if (customer.getOwnerUserId() != null) {
214 214 throw exception(CUSTOMER_OWNER_EXISTS, customer.getName());
215 215 }
216   -
217 216 }
218 217  
219 218 private void validateCustomerIsLocked(CrmCustomerDO customer, Boolean pool) {
... ... @@ -228,54 +227,6 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
228 227 }
229 228 }
230 229  
231   - // TODO @puhui999:合并到 receiveCustomer 里
232   - @Override
233   - @Transactional(rollbackFor = Exception.class)
234   - public void receive(Long id, Long userId) {
235   - // 1. 校验存在
236   - CrmCustomerDO customer = customerMapper.selectById(id);
237   - if (customer == null) {
238   - throw exception(CUSTOMER_NOT_EXISTS);
239   - }
240   - // 1.2. 校验是否为公海数据
241   - if (customer.getOwnerUserId() != null) {
242   - throw exception(CUSTOMER_NOT_IN_POOL);
243   - }
244   -
245   - // 2. 领取公海数据-设置负责人
246   - customerMapper.updateById(new CrmCustomerDO().setId(customer.getId()).setOwnerUserId(userId));
247   - // 3. 创建负责人数据权限
248   - crmPermissionService.createPermission(new CrmPermissionCreateReqBO().setBizType(CrmBizTypeEnum.CRM_CUSTOMER.getType())
249   - .setBizId(customer.getId()).setUserId(userId).setLevel(CrmPermissionLevelEnum.OWNER.getLevel())); // 设置当前操作的人为负责人
250   - }
251   -
252   - @Override
253   - @Transactional(rollbackFor = Exception.class)
254   - @CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#id", level = CrmPermissionLevelEnum.OWNER)
255   - public void putCustomerPool(Long id) {
256   - // 1. 校验存在
257   - CrmCustomerDO customer = customerMapper.selectById(id);
258   - if (customer == null) {
259   - throw exception(CUSTOMER_NOT_EXISTS);
260   - }
261   - // TODO puhui999:校验合并到 validateCustomerOwnerExists、validateCustomerIsLocked
262   - // 1.2. 校验是否为公海数据
263   - if (customer.getOwnerUserId() == null) {
264   - throw exception(CUSTOMER_IN_POOL);
265   - }
266   - // 1.3. 校验客户是否锁定
267   - if (customer.getLockStatus()) {
268   - throw exception(CUSTOMER_LOCKED_PUT_POOL_FAIL);
269   - }
270   -
271   - // 2. 设置负责人为 NULL
272   - // TODO @puhui999:updateById 这么操作,是无法设置 null 的;
273   - customerMapper.updateById(new CrmCustomerDO().setId(customer.getId()).setOwnerUserId(null));
274   - // 3. 删除负责人数据权限
275   - crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_CUSTOMER.getType(), customer.getId(),
276   - CrmPermissionLevelEnum.OWNER.getLevel());
277   - }
278   -
279 230 @Override
280 231 public List<CrmCustomerDO> getCustomerList() {
281 232 return customerMapper.selectList();
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionService.java
... ... @@ -61,6 +61,7 @@ public interface CrmPermissionService {
61 61 * 批量删除数据权限
62 62 *
63 63 * @param ids 权限编号
  64 + * @param userId 用户编号
64 65 */
65 66 void deletePermissionBatch(Collection<Long> ids, Long userId);
66 67  
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionServiceImpl.java
... ... @@ -19,7 +19,6 @@ import javax.annotation.Resource;
19 19 import java.util.Collection;
20 20 import java.util.Collections;
21 21 import java.util.List;
22   -import java.util.Set;
23 22  
24 23 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
25 24 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
... ... @@ -141,8 +140,8 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
141 140 if (CollUtil.isEmpty(permissions)) {
142 141 throw exception(CRM_PERMISSION_NOT_EXISTS);
143 142 }
144   - Set<Long> bizIds = convertSet(permissions, CrmPermissionDO::getBizId);
145   - if (bizIds.size() > 1) { // 情况一:数据权限的模块数据编号是一致的不可能存在两个
  143 + // 校验:数据权限的模块数据编号是一致的不可能存在两个
  144 + if (convertSet(permissions, CrmPermissionDO::getBizId).size() > 1) {
146 145 throw exception(CRM_PERMISSION_DELETE_FAIL);
147 146 }
148 147 // 校验操作人是否为负责人
... ...
yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/businessstatus/CrmBusinessStatusServiceImplTest.java deleted
yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/businessstatustype/CrmBusinessStatusTypeServiceImplTest.java deleted