Commit 6624a93a84f9b90ebdfc5e2d13f16cdff7e5d6aa

Authored by YunaiV
1 parent ca552825

CRM:跟进记录 code review

yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/followup/CrmFollowUpRecordController.java
... ... @@ -38,7 +38,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
38 38 public class CrmFollowUpRecordController {
39 39  
40 40 @Resource
41   - private CrmFollowUpRecordService crmFollowUpRecordService;
  41 + private CrmFollowUpRecordService followUpRecordService;
42 42 @Resource
43 43 private CrmContactService contactService;
44 44 @Resource
... ... @@ -48,7 +48,7 @@ public class CrmFollowUpRecordController {
48 48 @Operation(summary = "创建跟进记录")
49 49 @PreAuthorize("@ss.hasPermission('crm:follow-up-record:create')")
50 50 public CommonResult<Long> createFollowUpRecord(@Valid @RequestBody CrmFollowUpRecordSaveReqVO createReqVO) {
51   - return success(crmFollowUpRecordService.createFollowUpRecord(createReqVO));
  51 + return success(followUpRecordService.createFollowUpRecord(createReqVO));
52 52 }
53 53  
54 54 @DeleteMapping("/delete")
... ... @@ -56,7 +56,7 @@ public class CrmFollowUpRecordController {
56 56 @Parameter(name = "id", description = "编号", required = true)
57 57 @PreAuthorize("@ss.hasPermission('crm:follow-up-record:delete')")
58 58 public CommonResult<Boolean> deleteFollowUpRecord(@RequestParam("id") Long id) {
59   - crmFollowUpRecordService.deleteFollowUpRecord(id, getLoginUserId());
  59 + followUpRecordService.deleteFollowUpRecord(id, getLoginUserId());
60 60 return success(true);
61 61 }
62 62  
... ... @@ -65,7 +65,7 @@ public class CrmFollowUpRecordController {
65 65 @Parameter(name = "id", description = "编号", required = true, example = "1024")
66 66 @PreAuthorize("@ss.hasPermission('crm:follow-up-record:query')")
67 67 public CommonResult<CrmFollowUpRecordRespVO> getFollowUpRecord(@RequestParam("id") Long id) {
68   - CrmFollowUpRecordDO followUpRecord = crmFollowUpRecordService.getFollowUpRecord(id);
  68 + CrmFollowUpRecordDO followUpRecord = followUpRecordService.getFollowUpRecord(id);
69 69 return success(BeanUtils.toBean(followUpRecord, CrmFollowUpRecordRespVO.class));
70 70 }
71 71  
... ... @@ -73,7 +73,7 @@ public class CrmFollowUpRecordController {
73 73 @Operation(summary = "获得跟进记录分页")
74 74 @PreAuthorize("@ss.hasPermission('crm:follow-up-record:query')")
75 75 public CommonResult<PageResult<CrmFollowUpRecordRespVO>> getFollowUpRecordPage(@Valid CrmFollowUpRecordPageReqVO pageReqVO) {
76   - PageResult<CrmFollowUpRecordDO> pageResult = crmFollowUpRecordService.getFollowUpRecordPage(pageReqVO);
  76 + PageResult<CrmFollowUpRecordDO> pageResult = followUpRecordService.getFollowUpRecordPage(pageReqVO);
77 77 /// 拼接数据
78 78 Map<Long, CrmContactDO> contactMap = convertMap(contactService.getContactList(
79 79 convertSetByFlatMap(pageResult.getList(), item -> item.getContactIds().stream())), CrmContactDO::getId);
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/business/bo/CrmBusinessUpdateFollowUpReqBO.java
... ... @@ -7,6 +7,7 @@ import lombok.Data;
7 7  
8 8 import java.time.LocalDateTime;
9 9  
  10 +// TODO @puhui999:是不是搞个通用的 ReqBO 就好了
10 11 /**
11 12 * 商机跟进信息 Update Req BO
12 13 *
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/bo/CrmClueUpdateFollowUpReqBO.java
... ... @@ -7,6 +7,7 @@ import lombok.Data;
7 7  
8 8 import java.time.LocalDateTime;
9 9  
  10 +// TODO @puhui999:是不是搞个通用的 ReqBO 就好了
10 11 /**
11 12 * 线索跟进信息 Update Req BO
12 13 *
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contact/CrmContactService.java
... ... @@ -65,7 +65,6 @@ public interface CrmContactService {
65 65 */
66 66 void updateContactFollowUpBatch(List<CrmContactUpdateFollowUpReqBO> updateFollowUpReqBOList);
67 67  
68   -
69 68 /**
70 69 * 获得联系人
71 70 *
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contact/bo/CrmContactUpdateFollowUpReqBO.java
... ... @@ -7,6 +7,7 @@ import lombok.Data;
7 7  
8 8 import java.time.LocalDateTime;
9 9  
  10 +// TODO @puhui999:是不是搞个通用的 ReqBO 就好了
10 11 /**
11 12 * 联系人跟进信息 Update Req BO
12 13 *
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contract/bo/CrmContractUpdateFollowUpReqBO.java
... ... @@ -7,6 +7,7 @@ import lombok.Data;
7 7  
8 8 import java.time.LocalDateTime;
9 9  
  10 +// TODO @puhui999:是不是搞个通用的 ReqBO 就好了
10 11 /**
11 12 * 合同跟进信息 Update Req BO
12 13 *
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
... ... @@ -227,15 +227,16 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
227 227 // 1.3. 校验客户是否锁定
228 228 validateCustomerIsLocked(customer, true);
229 229  
230   - // 2. 设置负责人为 NULL
  230 + // 2.1 设置负责人为 NULL
231 231 int updateOwnerUserIncr = customerMapper.updateOwnerUserIdById(customer.getId(), null);
232 232 if (updateOwnerUserIncr == 0) {
233 233 throw exception(CUSTOMER_UPDATE_OWNER_USER_FAIL);
234 234 }
235   - // 3. 删除负责人数据权限
  235 + // 2.2 删除负责人数据权限
236 236 permissionService.deletePermission(CrmBizTypeEnum.CRM_CUSTOMER.getType(), customer.getId(),
237 237 CrmPermissionLevelEnum.OWNER.getLevel());
238   - // 联系人的负责人,也要设置为 null;这块和领取是对应的;因为领取后,负责人也要关联过来;
  238 +
  239 + // 3. 联系人的负责人,也要设置为 null。因为:因为领取后,负责人也要关联过来,这块和 receiveCustomer 是对应的
239 240 contactService.updateOwnerUserIdByCustomerId(customer.getId(), null);
240 241  
241 242 // 记录操作日志上下文
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/bo/CrmCustomerUpdateFollowUpReqBO.java
... ... @@ -6,6 +6,7 @@ import lombok.Data;
6 6  
7 7 import java.time.LocalDateTime;
8 8  
  9 +// TODO @puhui999:是不是搞个通用的 ReqBO 就好了
9 10 /**
10 11 * 跟进信息 Update Req BO
11 12 *
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/followup/CrmFollowUpRecordServiceImpl.java
... ... @@ -59,10 +59,11 @@ public class CrmFollowUpRecordServiceImpl implements CrmFollowUpRecordService {
59 59 crmFollowUpRecordMapper.insert(followUpRecord);
60 60  
61 61 LocalDateTime now = LocalDateTime.now();
62   - // 更新 bizId 对应的记录;
  62 + // 2. 更新 bizId 对应的记录;
63 63 followUpHandlers.forEach(handler -> handler.execute(followUpRecord, now));
64   - // 更新 contactIds 对应的记录
  64 + // 3.1 更新 contactIds 对应的记录
65 65 if (CollUtil.isNotEmpty(createReqVO.getContactIds())) {
  66 + // TODO @puhui999:可以用链式设置哈
66 67 contactService.updateContactFollowUpBatch(convertList(createReqVO.getContactIds(), contactId -> {
67 68 CrmContactUpdateFollowUpReqBO crmContactUpdateFollowUpReqBO = new CrmContactUpdateFollowUpReqBO();
68 69 crmContactUpdateFollowUpReqBO.setId(contactId).setContactNextTime(followUpRecord.getNextTime())
... ... @@ -70,7 +71,7 @@ public class CrmFollowUpRecordServiceImpl implements CrmFollowUpRecordService {
70 71 return crmContactUpdateFollowUpReqBO;
71 72 }));
72 73 }
73   - // 需要更新 businessIds、contactIds 对应的记录
  74 + // 3.2 需要更新 businessIds、contactIds 对应的记录
74 75 if (CollUtil.isNotEmpty(createReqVO.getBusinessIds())) {
75 76 businessService.updateContactFollowUpBatch(convertList(createReqVO.getBusinessIds(), businessId -> {
76 77 CrmBusinessUpdateFollowUpReqBO crmBusinessUpdateFollowUpReqBO = new CrmBusinessUpdateFollowUpReqBO();
... ...
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/followup/handle/CrmFollowUpHandler.java
... ... @@ -11,6 +11,7 @@ import java.time.LocalDateTime;
11 11 */
12 12 public interface CrmFollowUpHandler {
13 13  
  14 + // TODO @puhui999:需要考虑,下次联系时间为空;
14 15 /**
15 16 * 执行更新
16 17 *
... ...