Commit 227a4f126ab2f85b5b8666d3447ff6149fa361f4

Authored by puhui999
1 parent f366d440

CRM: 完善跟进 TODO

yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/followup/CrmFollowUpRecordServiceImpl.java
... ... @@ -66,88 +66,34 @@ public class CrmFollowUpRecordServiceImpl implements CrmFollowUpRecordService {
66 66 crmFollowUpRecordMapper.insert(followUpRecord);
67 67  
68 68 LocalDateTime now = LocalDateTime.now();
69   - // TODO @puhui999:感觉可以这里基于 type 做 102 到 104 这种判断;然后,每个类型的调用封装一个小方法,之后调用这些小方法;再之后,74-76、80-82 也是等价的处理;
  69 + CrmUpdateFollowUpReqBO updateFollowUpReqBO = new CrmUpdateFollowUpReqBO().setBizId(followUpRecord.getBizId())
  70 + .setContactLastTime(now).setContactNextTime(followUpRecord.getNextTime()).setContactLastContent(followUpRecord.getContent());
70 71 // 2. 更新 bizId 对应的记录;
71   - updateBizTypeFollowUp(followUpRecord, now);
72   - // 3.1 更新 contactIds 对应的记录
73   - if (CollUtil.isNotEmpty(createReqVO.getContactIds())) {
74   - contactService.updateContactFollowUpBatch(convertList(createReqVO.getContactIds(), contactId ->
75   - new CrmUpdateFollowUpReqBO().setBizId(contactId).setContactNextTime(followUpRecord.getNextTime())
76   - .setContactLastTime(now).setContactLastContent(followUpRecord.getContent())));
  72 + if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_BUSINESS.getType(), followUpRecord.getBizType())) { // 更新商机跟进信息
  73 + businessService.updateBusinessFollowUpBatch(Collections.singletonList(updateFollowUpReqBO));
77 74 }
78   - // 3.2 需要更新 businessIds、contactIds 对应的记录
79   - if (CollUtil.isNotEmpty(createReqVO.getBusinessIds())) {
80   - businessService.updateBusinessFollowUpBatch(convertList(createReqVO.getBusinessIds(), businessId ->
81   - new CrmUpdateFollowUpReqBO().setBizId(businessId).setContactNextTime(followUpRecord.getNextTime())
82   - .setContactLastTime(now).setContactLastContent(followUpRecord.getContent())));
  75 + if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_LEADS.getType(), followUpRecord.getBizType())) { // 更新线索跟进信息
  76 + clueService.updateClueFollowUp(updateFollowUpReqBO);
83 77 }
84   - return followUpRecord.getId();
85   - }
86   -
87   - /**
88   - * 执行更新
89   - *
90   - * @param followUpRecord 跟进记录
91   - * @param now 跟进时间
92   - */
93   - private void updateBizTypeFollowUp(CrmFollowUpRecordDO followUpRecord, LocalDateTime now) {
94   - updateBusinessFollowUp(followUpRecord, now);
95   - updateClueFollowUp(followUpRecord, now);
96   - updateContactFollowUp(followUpRecord, now);
97   - updateContractFollowUp(followUpRecord, now);
98   - updateCustomerFollowUp(followUpRecord, now);
99   - }
100   -
101   - private void updateBusinessFollowUp(CrmFollowUpRecordDO followUpRecord, LocalDateTime now) {
102   - if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_BUSINESS.getType(), followUpRecord.getBizType())) {
103   - return;
  78 + if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_CONTACT.getType(), followUpRecord.getBizType())) { // 更新联系人跟进信息
  79 + contactService.updateContactFollowUpBatch(Collections.singletonList(updateFollowUpReqBO));
104 80 }
105   -
106   - // 更新商机跟进信息
107   - businessService.updateBusinessFollowUpBatch(Collections.singletonList(new CrmUpdateFollowUpReqBO()
108   - .setBizId(followUpRecord.getBizId()).setContactNextTime(followUpRecord.getNextTime()).setContactLastTime(now)
109   - .setContactLastContent(followUpRecord.getContent())));
110   - }
111   -
112   - private void updateClueFollowUp(CrmFollowUpRecordDO followUpRecord, LocalDateTime now) {
113   - if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_LEADS.getType(), followUpRecord.getBizType())) {
114   - return;
  81 + if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_CONTRACT.getType(), followUpRecord.getBizType())) { // 更新合同跟进信息
  82 + contractService.updateContractFollowUp(updateFollowUpReqBO);
115 83 }
116   -
117   - // 更新线索跟进信息
118   - clueService.updateClueFollowUp(new CrmUpdateFollowUpReqBO().setBizId(followUpRecord.getBizId()).setContactLastTime(now)
119   - .setContactNextTime(followUpRecord.getNextTime()).setContactLastContent(followUpRecord.getContent()));
120   - }
121   -
122   - private void updateContactFollowUp(CrmFollowUpRecordDO followUpRecord, LocalDateTime now) {
123   - if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_CONTACT.getType(), followUpRecord.getBizType())) {
124   - return;
  84 + if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_CUSTOMER.getType(), followUpRecord.getBizType())) { // 更新客户跟进信息
  85 + customerService.updateCustomerFollowUp(updateFollowUpReqBO);
125 86 }
126 87  
127   - // 更新联系人跟进信息
128   - contactService.updateContactFollowUpBatch(Collections.singletonList(new CrmUpdateFollowUpReqBO()
129   - .setBizId(followUpRecord.getBizId()).setContactNextTime(followUpRecord.getNextTime()).setContactLastTime(now)
130   - .setContactLastContent(followUpRecord.getContent())));
131   - }
132   -
133   - private void updateContractFollowUp(CrmFollowUpRecordDO followUpRecord, LocalDateTime now) {
134   - if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_CONTRACT.getType(), followUpRecord.getBizType())) {
135   - return;
  88 + // 3.1 更新 contactIds 对应的记录
  89 + if (CollUtil.isNotEmpty(createReqVO.getContactIds())) {
  90 + contactService.updateContactFollowUpBatch(convertList(createReqVO.getContactIds(), updateFollowUpReqBO::setBizId));
136 91 }
137   -
138   - // 更新合同跟进信息
139   - contractService.updateContractFollowUp(new CrmUpdateFollowUpReqBO().setBizId(followUpRecord.getBizId()).setContactLastTime(now)
140   - .setContactNextTime(followUpRecord.getNextTime()).setContactLastContent(followUpRecord.getContent()));
141   - }
142   -
143   - private void updateCustomerFollowUp(CrmFollowUpRecordDO followUpRecord, LocalDateTime now) {
144   - if (ObjUtil.notEqual(CrmBizTypeEnum.CRM_CUSTOMER.getType(), followUpRecord.getBizType())) {
145   - return;
  92 + // 3.2 需要更新 businessIds、contactIds 对应的记录
  93 + if (CollUtil.isNotEmpty(createReqVO.getBusinessIds())) {
  94 + businessService.updateBusinessFollowUpBatch(convertList(createReqVO.getBusinessIds(), updateFollowUpReqBO::setBizId));
146 95 }
147   -
148   - // 更新客户跟进信息
149   - customerService.updateCustomerFollowUp(new CrmUpdateFollowUpReqBO().setBizId(followUpRecord.getBizId()).setContactLastTime(now)
150   - .setContactNextTime(followUpRecord.getNextTime()).setContactLastContent(followUpRecord.getContent()));
  96 + return followUpRecord.getId();
151 97 }
152 98  
153 99 @Override
... ...