Commit 4ce9271ecedf39e1f06e0213bd8bfb4c396b0c2c

Authored by min
1 parent ba4f9207

CRM:【线索】创建、删除线索时同时创建、删除数据权限

yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/CrmClueServiceImpl.java
... ... @@ -21,16 +21,21 @@ import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPerm
21 21 import cn.iocoder.yudao.module.crm.service.clue.bo.CrmClueUpdateFollowUpReqBO;
22 22 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService;
23 23 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
  24 +import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
24 25 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
25 26 import jakarta.annotation.Resource;
26 27 import org.springframework.stereotype.Service;
27 28 import org.springframework.transaction.annotation.Transactional;
28 29 import org.springframework.validation.annotation.Validated;
29 30  
30   -import java.util.*;
  31 +import java.util.Collection;
  32 +import java.util.List;
  33 +import java.util.Objects;
  34 +import java.util.Set;
31 35  
32 36 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
33 37 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
  38 +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
34 39 import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
35 40 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_NOT_EXISTS;
36 41  
... ... @@ -56,15 +61,24 @@ public class CrmClueServiceImpl implements CrmClueService {
56 61 private AdminUserApi adminUserApi;
57 62  
58 63 @Override
59   - // TODO @min:补充相关几个方法的操作日志;
  64 + @Transactional(rollbackFor = Exception.class)
60 65 public Long createClue(CrmClueSaveReqVO createReqVO) {
61   - // 校验关联数据
  66 + // 1. 校验关联数据
62 67 validateRelationDataExists(createReqVO);
63 68  
64   - // 插入
  69 + // 2. 插入
65 70 CrmClueDO clue = BeanUtils.toBean(createReqVO, CrmClueDO.class);
66 71 clueMapper.insert(clue);
67   - // 返回
  72 +
  73 + // 3. 创建数据权限
  74 + CrmPermissionCreateReqBO createReqBO = new CrmPermissionCreateReqBO()
  75 + .setBizType(CrmBizTypeEnum.CRM_LEADS.getType())
  76 + .setBizId(clue.getId())
  77 + // 设置当前操作的人为负责人
  78 + .setUserId(getLoginUserId())
  79 + .setLevel(CrmPermissionLevelEnum.OWNER.getLevel());
  80 + crmPermissionService.createPermission(createReqBO);
  81 +
68 82 return clue.getId();
69 83 }
70 84  
... ... @@ -87,20 +101,26 @@ public class CrmClueServiceImpl implements CrmClueService {
87 101 }
88 102  
89 103 @Override
  104 + @Transactional(rollbackFor = Exception.class)
90 105 @CrmPermission(bizType = CrmBizTypeEnum.CRM_LEADS, bizId = "#id", level = CrmPermissionLevelEnum.OWNER)
91 106 public void deleteClue(Long id) {
92   - // 校验存在
93   - validateClueExists(id);
94   - // 删除
  107 + // 1. 校验存在
  108 + CrmClueDO clue = validateClueExists(id);
  109 +
  110 + // 2. 删除
95 111 clueMapper.deleteById(id);
96   - // 删除数据权限
  112 +
  113 + // 3. 删除数据权限
97 114 crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_LEADS.getType(), id);
  115 +
98 116 }
99 117  
100   - private void validateClueExists(Long id) {
101   - if (clueMapper.selectById(id) == null) {
  118 + private CrmClueDO validateClueExists(Long id) {
  119 + CrmClueDO crmClueDO = clueMapper.selectById(id);
  120 + if (crmClueDO == null) {
102 121 throw exception(CLUE_NOT_EXISTS);
103 122 }
  123 + return crmClueDO;
104 124 }
105 125  
106 126 @Override
... ...