Commit bac476c1314e46b27ba3dd6da7f34040a0981aa3

Authored by 芋道源码
Committed by Gitee
2 parents 38e410ca dca262c6

!871 fix: 根据code-review修改Crm Backlog

Merge pull request !871 from dhb52/develop
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/clue/CrmClueMapper.java
@@ -56,15 +56,14 @@ public interface CrmClueMapper extends BaseMapperX<CrmClueDO> { @@ -56,15 +56,14 @@ public interface CrmClueMapper extends BaseMapperX<CrmClueDO> {
56 return selectJoinList(CrmClueDO.class, query); 56 return selectJoinList(CrmClueDO.class, query);
57 } 57 }
58 58
59 - // TODO @dhb52:db 统一都是 select 关键字;  
60 - default Long getFollowLeadsCount(Long userId) { 59 + default Long selectFollowLeadsCount(Long userId) {
61 MPJLambdaWrapperX<CrmClueDO> query = new MPJLambdaWrapperX<>(); 60 MPJLambdaWrapperX<CrmClueDO> query = new MPJLambdaWrapperX<>();
62 // 我负责的 + 非公海 61 // 我负责的 + 非公海
63 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_LEADS.getType(), 62 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_LEADS.getType(),
64 CrmClueDO::getId, userId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE); 63 CrmClueDO::getId, userId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE);
65 - // 未跟进 + 未转化 TODO @dhb52:是不是 eq 会更好哈;mysql 不等于,对索引不友好  
66 - query.ne(CrmClueDO::getFollowUpStatus, true)  
67 - .ne(CrmClueDO::getTransformStatus, true); 64 + // 未跟进 + 未转化
  65 + query.eq(CrmClueDO::getFollowUpStatus, false)
  66 + .eq(CrmClueDO::getTransformStatus, false);
68 return selectCount(query); 67 return selectCount(query);
69 } 68 }
70 69
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/contract/CrmContractMapper.java
@@ -88,8 +88,7 @@ public interface CrmContractMapper extends BaseMapperX&lt;CrmContractDO&gt; { @@ -88,8 +88,7 @@ public interface CrmContractMapper extends BaseMapperX&lt;CrmContractDO&gt; {
88 return selectCount(CrmContractDO::getBusinessId, businessId); 88 return selectCount(CrmContractDO::getBusinessId, businessId);
89 } 89 }
90 90
91 - // TODO @dhb52:db 统一都是 select 关键字;  
92 - default Long getCheckContractCount(Long userId) { 91 + default Long selectCheckContractCount(Long userId) {
93 MPJLambdaWrapperX<CrmContractDO> query = new MPJLambdaWrapperX<>(); 92 MPJLambdaWrapperX<CrmContractDO> query = new MPJLambdaWrapperX<>();
94 // 我负责的 + 非公海 93 // 我负责的 + 非公海
95 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CONTRACT.getType(), 94 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CONTRACT.getType(),
@@ -99,8 +98,7 @@ public interface CrmContractMapper extends BaseMapperX&lt;CrmContractDO&gt; { @@ -99,8 +98,7 @@ public interface CrmContractMapper extends BaseMapperX&lt;CrmContractDO&gt; {
99 return selectCount(query); 98 return selectCount(query);
100 } 99 }
101 100
102 - // TODO @dhb52:db 统一都是 select 关键字;  
103 - default Long getEndContractCount(Long userId) { 101 + default Long selectEndContractCount(Long userId) {
104 MPJLambdaWrapperX<CrmContractDO> query = new MPJLambdaWrapperX<>(); 102 MPJLambdaWrapperX<CrmContractDO> query = new MPJLambdaWrapperX<>();
105 // 我负责的 + 非公海 103 // 我负责的 + 非公海
106 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CONTRACT.getType(), 104 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CONTRACT.getType(),
@@ -108,7 +106,7 @@ public interface CrmContractMapper extends BaseMapperX&lt;CrmContractDO&gt; { @@ -108,7 +106,7 @@ public interface CrmContractMapper extends BaseMapperX&lt;CrmContractDO&gt; {
108 // 即将到期 106 // 即将到期
109 LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now()); 107 LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now());
110 LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now()); 108 LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now());
111 - // TODO: @芋艿 需要配置 提前提醒天数 109 + // TODO: @dhb52 需要配置 提前提醒天数
112 int REMIND_DAYS = 20; 110 int REMIND_DAYS = 20;
113 query.eq(CrmContractDO::getAuditStatus, CrmAuditStatusEnum.APPROVE.getStatus()) 111 query.eq(CrmContractDO::getAuditStatus, CrmAuditStatusEnum.APPROVE.getStatus())
114 .between(CrmContractDO::getEndTime, beginOfToday, endOfToday.plusDays(REMIND_DAYS)); 112 .between(CrmContractDO::getEndTime, beginOfToday, endOfToday.plusDays(REMIND_DAYS));
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java
@@ -148,8 +148,7 @@ public interface CrmCustomerMapper extends BaseMapperX&lt;CrmCustomerDO&gt; { @@ -148,8 +148,7 @@ public interface CrmCustomerMapper extends BaseMapperX&lt;CrmCustomerDO&gt; {
148 return selectCount(query); 148 return selectCount(query);
149 } 149 }
150 150
151 - // TODO @dhb52:db 统一都是 select 关键字;  
152 - default Long getTodayCustomerCount(Long userId) { 151 + default Long selectTodayCustomerCount(Long userId) {
153 MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>(); 152 MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
154 // 我负责的 + 非公海 153 // 我负责的 + 非公海
155 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(), 154 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
@@ -161,14 +160,13 @@ public interface CrmCustomerMapper extends BaseMapperX&lt;CrmCustomerDO&gt; { @@ -161,14 +160,13 @@ public interface CrmCustomerMapper extends BaseMapperX&lt;CrmCustomerDO&gt; {
161 return selectCount(query); 160 return selectCount(query);
162 } 161 }
163 162
164 - // TODO @dhb52:db 统一都是 select 关键字;  
165 - default Long getFollowCustomerCount(Long userId) { 163 + default Long selectFollowCustomerCount(Long userId) {
166 MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>(); 164 MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
167 // 我负责的 + 非公海 165 // 我负责的 + 非公海
168 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(), 166 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
169 CrmCustomerDO::getId, userId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE); 167 CrmCustomerDO::getId, userId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE);
170 - // 未跟进 TODO @dhb52:是不是 eq 会更好哈;mysql 不等于,对索引不友好  
171 - query.ne(CrmClueDO::getFollowUpStatus, true); 168 + // 未跟进
  169 + query.eq(CrmClueDO::getFollowUpStatus, false);
172 return selectCount(query); 170 return selectCount(query);
173 } 171 }
174 172
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivableMapper.java
@@ -62,8 +62,7 @@ public interface CrmReceivableMapper extends BaseMapperX&lt;CrmReceivableDO&gt; { @@ -62,8 +62,7 @@ public interface CrmReceivableMapper extends BaseMapperX&lt;CrmReceivableDO&gt; {
62 return selectJoinList(CrmReceivableDO.class, query); 62 return selectJoinList(CrmReceivableDO.class, query);
63 } 63 }
64 64
65 - // TODO @dhb52:db 统一都是 select 关键字;  
66 - default Long getCheckReceivablesCount(Long userId) { 65 + default Long selectCheckReceivablesCount(Long userId) {
67 MPJLambdaWrapperX<CrmReceivableDO> query = new MPJLambdaWrapperX<>(); 66 MPJLambdaWrapperX<CrmReceivableDO> query = new MPJLambdaWrapperX<>();
68 // 我负责的 + 非公海 67 // 我负责的 + 非公海
69 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_RECEIVABLE.getType(), 68 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_RECEIVABLE.getType(),
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivablePlanMapper.java
@@ -50,21 +50,19 @@ public interface CrmReceivablePlanMapper extends BaseMapperX&lt;CrmReceivablePlanDO @@ -50,21 +50,19 @@ public interface CrmReceivablePlanMapper extends BaseMapperX&lt;CrmReceivablePlanDO
50 .orderByDesc(CrmReceivablePlanDO::getId); 50 .orderByDesc(CrmReceivablePlanDO::getId);
51 51
52 // Backlog: 回款提醒类型 52 // Backlog: 回款提醒类型
  53 + // TODO: @dhb52 需要配置 提前提醒天数
  54 + int REMIND_DAYS = 20;
53 LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now()); 55 LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now());
54 LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now()); 56 LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now());
55 if (CrmReceivablePlanPageReqVO.REMIND_TYPE_NEEDED.equals(pageReqVO.getRemindType())) { // 待回款 57 if (CrmReceivablePlanPageReqVO.REMIND_TYPE_NEEDED.equals(pageReqVO.getRemindType())) { // 待回款
56 query.isNull(CrmReceivablePlanDO::getReceivableId) 58 query.isNull(CrmReceivablePlanDO::getReceivableId)
57 - .gt(CrmReceivablePlanDO::getReturnTime, beginOfToday)  
58 - // TODO @dhb52:这里看看怎么改成不要使用 to_days  
59 - .apply("to_days(return_time) <= to_days(now())+ remind_days"); 59 + .between(CrmReceivablePlanDO::getReturnTime, beginOfToday, endOfToday.plusDays(REMIND_DAYS));
60 } else if (CrmReceivablePlanPageReqVO.REMIND_TYPE_EXPIRED.equals(pageReqVO.getRemindType())) { // 已逾期 60 } else if (CrmReceivablePlanPageReqVO.REMIND_TYPE_EXPIRED.equals(pageReqVO.getRemindType())) { // 已逾期
61 query.isNull(CrmReceivablePlanDO::getReceivableId) 61 query.isNull(CrmReceivablePlanDO::getReceivableId)
62 .lt(CrmReceivablePlanDO::getReturnTime, endOfToday); 62 .lt(CrmReceivablePlanDO::getReturnTime, endOfToday);
63 } else if (CrmReceivablePlanPageReqVO.REMIND_TYPE_RECEIVED.equals(pageReqVO.getRemindType())) { // 已回款 63 } else if (CrmReceivablePlanPageReqVO.REMIND_TYPE_RECEIVED.equals(pageReqVO.getRemindType())) { // 已回款
64 query.isNotNull(CrmReceivablePlanDO::getReceivableId) 64 query.isNotNull(CrmReceivablePlanDO::getReceivableId)
65 - .gt(CrmReceivablePlanDO::getReturnTime, beginOfToday)  
66 - // TODO @dhb52:这里看看怎么改成不要使用 to_days  
67 - .apply("to_days(return_time) <= to_days(now()) + remind_days"); 65 + .between(CrmReceivablePlanDO::getReturnTime, beginOfToday, endOfToday.plusDays(REMIND_DAYS));;
68 } 66 }
69 67
70 return selectJoinPage(pageReqVO, CrmReceivablePlanDO.class, query); 68 return selectJoinPage(pageReqVO, CrmReceivablePlanDO.class, query);
@@ -79,17 +77,17 @@ public interface CrmReceivablePlanMapper extends BaseMapperX&lt;CrmReceivablePlanDO @@ -79,17 +77,17 @@ public interface CrmReceivablePlanMapper extends BaseMapperX&lt;CrmReceivablePlanDO
79 return selectJoinList(CrmReceivablePlanDO.class, query); 77 return selectJoinList(CrmReceivablePlanDO.class, query);
80 } 78 }
81 79
82 - // TODO @dhb52:db 统一都是 select 关键字;  
83 - default Long getRemindReceivablePlanCount(Long userId) { 80 + default Long selectRemindReceivablePlanCount(Long userId) {
84 MPJLambdaWrapperX<CrmReceivablePlanDO> query = new MPJLambdaWrapperX<>(); 81 MPJLambdaWrapperX<CrmReceivablePlanDO> query = new MPJLambdaWrapperX<>();
85 // 我负责的 + 非公海 82 // 我负责的 + 非公海
86 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_RECEIVABLE_PLAN.getType(), 83 CrmQueryWrapperUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_RECEIVABLE_PLAN.getType(),
87 CrmReceivablePlanDO::getId, userId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE); 84 CrmReceivablePlanDO::getId, userId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE);
88 - // 待回款 TODO @dhb52:to_days(return_time) <= to_days(now())+ remind_days 看看怎么改成,不用数据库自己去计算这样的时间; 85 + // TODO: @dhb52 需要配置 提前提醒天数
  86 + int REMIND_DAYS = 20;
89 LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now()); 87 LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now());
  88 + LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now());
90 query.isNull(CrmReceivablePlanDO::getReceivableId) 89 query.isNull(CrmReceivablePlanDO::getReceivableId)
91 - .gt(CrmReceivablePlanDO::getReturnTime, beginOfToday)  
92 - .apply("to_days(return_time) <= to_days(now())+ remind_days"); 90 + .between(CrmReceivablePlanDO::getReturnTime, beginOfToday, endOfToday.plusDays(REMIND_DAYS));
93 return selectCount(query); 91 return selectCount(query);
94 } 92 }
95 93
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/CrmClueServiceImpl.java
@@ -274,7 +274,7 @@ public class CrmClueServiceImpl implements CrmClueService { @@ -274,7 +274,7 @@ public class CrmClueServiceImpl implements CrmClueService {
274 274
275 @Override 275 @Override
276 public Long getFollowLeadsCount(Long userId) { 276 public Long getFollowLeadsCount(Long userId) {
277 - return clueMapper.getFollowLeadsCount(userId); 277 + return clueMapper.selectFollowLeadsCount(userId);
278 } 278 }
279 279
280 } 280 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
@@ -364,12 +364,12 @@ public class CrmContractServiceImpl implements CrmContractService { @@ -364,12 +364,12 @@ public class CrmContractServiceImpl implements CrmContractService {
364 364
365 @Override 365 @Override
366 public Long getCheckContractCount(Long userId) { 366 public Long getCheckContractCount(Long userId) {
367 - return contractMapper.getCheckContractCount(userId); 367 + return contractMapper.selectCheckContractCount(userId);
368 } 368 }
369 369
370 @Override 370 @Override
371 public Long getEndContractCount(Long userId) { 371 public Long getEndContractCount(Long userId) {
372 - return contractMapper.getEndContractCount(userId); 372 + return contractMapper.selectEndContractCount(userId);
373 } 373 }
374 374
375 } 375 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
@@ -482,12 +482,12 @@ public class CrmCustomerServiceImpl implements CrmCustomerService { @@ -482,12 +482,12 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
482 482
483 @Override 483 @Override
484 public Long getTodayCustomerCount(Long userId) { 484 public Long getTodayCustomerCount(Long userId) {
485 - return customerMapper.getTodayCustomerCount(userId); 485 + return customerMapper.selectTodayCustomerCount(userId);
486 } 486 }
487 487
488 @Override 488 @Override
489 public Long getFollowCustomerCount(Long userId) { 489 public Long getFollowCustomerCount(Long userId) {
490 - return customerMapper.getFollowCustomerCount(userId); 490 + return customerMapper.selectFollowCustomerCount(userId);
491 } 491 }
492 492
493 // ======================= 校验相关 ======================= 493 // ======================= 校验相关 =======================
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivablePlanServiceImpl.java
@@ -164,7 +164,7 @@ public class CrmReceivablePlanServiceImpl implements CrmReceivablePlanService { @@ -164,7 +164,7 @@ public class CrmReceivablePlanServiceImpl implements CrmReceivablePlanService {
164 164
165 @Override 165 @Override
166 public Long getRemindReceivablePlanCount(Long userId) { 166 public Long getRemindReceivablePlanCount(Long userId) {
167 - return receivablePlanMapper.getRemindReceivablePlanCount(userId); 167 + return receivablePlanMapper.selectRemindReceivablePlanCount(userId);
168 } 168 }
169 169
170 } 170 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivableServiceImpl.java
@@ -184,7 +184,7 @@ public class CrmReceivableServiceImpl implements CrmReceivableService { @@ -184,7 +184,7 @@ public class CrmReceivableServiceImpl implements CrmReceivableService {
184 184
185 @Override 185 @Override
186 public Long getCheckReceivablesCount(Long userId) { 186 public Long getCheckReceivablesCount(Long userId) {
187 - return receivableMapper.getCheckReceivablesCount(userId); 187 + return receivableMapper.selectCheckReceivablesCount(userId);
188 } 188 }
189 189
190 } 190 }