فهرست منبع

crm:code review 数据权限

YunaiV 1 سال پیش
والد
کامیت
492adfe8e5

+ 4 - 1
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.
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSetByFlatMap;
 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+import static java.util.Collections.singletonList;
 
 @Tag(name = "管理后台 - CRM 客户")
 @RestController
@@ -114,6 +115,7 @@ public class CrmCustomerController {
     @OperateLog(type = EXPORT)
     public void exportCustomerExcel(@Valid CrmCustomerPageReqVO pageVO,
                                     HttpServletResponse response) throws IOException {
+        // TODO @puhui999:看看复用 getCustomerPage 方法;然后可以禁用下分页;
         List<CrmCustomerDO> list = customerService.getCustomerPage(pageVO, getLoginUserId()).getList();
         // 导出 Excel
         List<CrmCustomerExcelVO> datas = CrmCustomerConvert.INSTANCE.convertList02(list);
@@ -167,7 +169,8 @@ public class CrmCustomerController {
     public CommonResult<Boolean> distributeCustomer(@RequestParam(value = "ids") List<Long> ids,
                                                     @RequestParam(value = "ownerUserId") Long ownerUserId) {
         // 校验负责人是否存在
-        adminUserApi.validateUserList(java.util.Collections.singletonList(ownerUserId));
+        // TODO @puhui999:这个校验,是不是可以收到 validateUserList
+        adminUserApi.validateUserList(singletonList(ownerUserId));
         // 领取公海数据
         customerService.receiveCustomer(ids, ownerUserId);
         return success(true);

+ 1 - 1
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 {
                 id -> new CrmPermissionDO().setId(id).setLevel(updateReqVO.getLevel()));
     }
 
-    List<CrmPermissionDO> convertList(List<CrmPermissionCreateReqBO> createBOs);
+    List<CrmPermissionDO> convertList(List<CrmPermissionCreateReqBO> list);
 
 }

+ 0 - 49
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 {
         if (customer.getOwnerUserId() != null) {
             throw exception(CUSTOMER_OWNER_EXISTS, customer.getName());
         }
-
     }
 
     private void validateCustomerIsLocked(CrmCustomerDO customer, Boolean pool) {
@@ -228,54 +227,6 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
         }
     }
 
-    // TODO @puhui999:合并到 receiveCustomer 里
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void receive(Long id, Long userId) {
-        // 1. 校验存在
-        CrmCustomerDO customer = customerMapper.selectById(id);
-        if (customer == null) {
-            throw exception(CUSTOMER_NOT_EXISTS);
-        }
-        // 1.2. 校验是否为公海数据
-        if (customer.getOwnerUserId() != null) {
-            throw exception(CUSTOMER_NOT_IN_POOL);
-        }
-
-        // 2. 领取公海数据-设置负责人
-        customerMapper.updateById(new CrmCustomerDO().setId(customer.getId()).setOwnerUserId(userId));
-        // 3. 创建负责人数据权限
-        crmPermissionService.createPermission(new CrmPermissionCreateReqBO().setBizType(CrmBizTypeEnum.CRM_CUSTOMER.getType())
-                .setBizId(customer.getId()).setUserId(userId).setLevel(CrmPermissionLevelEnum.OWNER.getLevel())); // 设置当前操作的人为负责人
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    @CrmPermission(bizType = CrmBizTypeEnum.CRM_CUSTOMER, bizId = "#id", level = CrmPermissionLevelEnum.OWNER)
-    public void putCustomerPool(Long id) {
-        // 1. 校验存在
-        CrmCustomerDO customer = customerMapper.selectById(id);
-        if (customer == null) {
-            throw exception(CUSTOMER_NOT_EXISTS);
-        }
-        // TODO puhui999:校验合并到 validateCustomerOwnerExists、validateCustomerIsLocked
-        // 1.2. 校验是否为公海数据
-        if (customer.getOwnerUserId() == null) {
-            throw exception(CUSTOMER_IN_POOL);
-        }
-        // 1.3. 校验客户是否锁定
-        if (customer.getLockStatus()) {
-            throw exception(CUSTOMER_LOCKED_PUT_POOL_FAIL);
-        }
-
-        // 2. 设置负责人为 NULL
-        // TODO @puhui999:updateById 这么操作,是无法设置 null 的;
-        customerMapper.updateById(new CrmCustomerDO().setId(customer.getId()).setOwnerUserId(null));
-        // 3. 删除负责人数据权限
-        crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_CUSTOMER.getType(), customer.getId(),
-                CrmPermissionLevelEnum.OWNER.getLevel());
-    }
-
     @Override
     public List<CrmCustomerDO> getCustomerList() {
         return customerMapper.selectList();

+ 1 - 0
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 {
      * 批量删除数据权限
      *
      * @param ids 权限编号
+     * @param userId 用户编号
      */
     void deletePermissionBatch(Collection<Long> ids, Long userId);
 

+ 2 - 3
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;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
-import java.util.Set;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
@@ -141,8 +140,8 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
         if (CollUtil.isEmpty(permissions)) {
             throw exception(CRM_PERMISSION_NOT_EXISTS);
         }
-        Set<Long> bizIds = convertSet(permissions, CrmPermissionDO::getBizId);
-        if (bizIds.size() > 1) { // 情况一:数据权限的模块数据编号是一致的不可能存在两个
+        // 校验:数据权限的模块数据编号是一致的不可能存在两个
+        if (convertSet(permissions, CrmPermissionDO::getBizId).size() > 1) {
             throw exception(CRM_PERMISSION_DELETE_FAIL);
         }
         // 校验操作人是否为负责人

+ 0 - 0
yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/businessstatus/CrmBusinessStatusServiceImplTest.java


+ 0 - 0
yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/businessstatustype/CrmBusinessStatusTypeServiceImplTest.java