Commit 036717fa3eff3a33534fc1388ee1ad5ed64a928c
1 parent
efe55351
feat(*): 新增查询某个档案的全部跟进记录
- 新增查询某个档案的全部跟进记录
Showing
9 changed files
with
127 additions
and
6 deletions
fw-shirasawa-domain/src/main/java/cn/fw/shirasawa/domain/enums/FollowTypeEnum.java
fw-shirasawa-domain/src/main/java/cn/fw/shirasawa/domain/vo/follow/MADetailVO.java
0 → 100644
1 | +package cn.fw.shirasawa.domain.vo.follow; | |
2 | + | |
3 | +import lombok.Data; | |
4 | +import lombok.EqualsAndHashCode; | |
5 | +import lombok.ToString; | |
6 | + | |
7 | +import java.time.LocalDateTime; | |
8 | + | |
9 | +/** | |
10 | + * @author : kurisu | |
11 | + * @className : ACDetailVO | |
12 | + * @description : 事故车跟进详情 | |
13 | + * @date: 2020-08-17 15:17 | |
14 | + */ | |
15 | +@Data | |
16 | +@ToString(callSuper = true) | |
17 | +@EqualsAndHashCode(callSuper = true) | |
18 | +public class MADetailVO extends FollowDetailVO { | |
19 | + /** | |
20 | + * 车牌号 | |
21 | + */ | |
22 | + private String plateNo; | |
23 | + /** | |
24 | + * 专属顾问 | |
25 | + */ | |
26 | + private String adviserName; | |
27 | + /** | |
28 | + * 购车日期 | |
29 | + */ | |
30 | + private LocalDateTime buyDate; | |
31 | +} | ... | ... |
fw-shirasawa-sdk/pom.xml
fw-shirasawa-sdk/src/main/java/cn/fw/shirasawa/sdk/enums/DataTypeEnum.java
fw-shirasawa-server/src/main/java/cn/fw/shirasawa/server/controller/app/FollowQueryController.java
... | ... | @@ -168,8 +168,11 @@ public class FollowQueryController { |
168 | 168 | @GetMapping("/customer/history/record") |
169 | 169 | @IgnoreAuth |
170 | 170 | @ControllerMethod("查询客户的跟进历史记录") |
171 | - public Message<List<FollowRecordHistoryVO>> customerRecord(@NotNull(message = "档案id不能为空") final Long customerId, @NotNull(message = "业态类型不能为空") final Integer bizType) { | |
172 | - return success(followBizService.queryHistoryByCustomer(customerId, bizType)); | |
171 | + public Message<List<FollowRecordHistoryVO>> customerRecord(@NotNull(message = "档案id不能为空") final Long customerId, | |
172 | + @NotNull(message = "业态类型不能为空") final Integer bizType, | |
173 | + final Integer type | |
174 | + ) { | |
175 | + return success(followBizService.queryHistoryByCustomer(customerId, bizType, type)); | |
173 | 176 | } |
174 | 177 | |
175 | 178 | /** | ... | ... |
fw-shirasawa-service/src/main/java/cn/fw/shirasawa/service/bus/follow/FollowBizService.java
... | ... | @@ -762,14 +762,17 @@ public class FollowBizService { |
762 | 762 | * |
763 | 763 | * @param customerId 客户档案用户id |
764 | 764 | * @param bizType 业态类型 |
765 | + * @param type 跟进类型 | |
765 | 766 | */ |
766 | - public List<FollowRecordHistoryVO> queryHistoryByCustomer(Long customerId, Integer bizType) { | |
767 | + public List<FollowRecordHistoryVO> queryHistoryByCustomer(Long customerId, Integer bizType, Integer type) { | |
768 | + FollowTypeEnum typeEnum = FollowTypeEnum.ofValue(type); | |
767 | 769 | List<FollowRecord> followRecordList = followRecordService.list(Wrappers.<FollowRecord>lambdaQuery() |
768 | 770 | .eq(FollowRecord::getCustomerId, customerId) |
769 | 771 | .eq(FollowRecord::getBizType, bizType) |
770 | 772 | .eq(FollowRecord::getFollowStatus, FollowStatusEnum.CLOSED) |
771 | 773 | .eq(FollowRecord::getYn, Boolean.TRUE) |
772 | 774 | .eq(FollowRecord::getAddTodo, Boolean.TRUE) |
775 | + .eq(Objects.nonNull(typeEnum), FollowRecord::getType, typeEnum) | |
773 | 776 | ); |
774 | 777 | if (CollectionUtils.isEmpty(followRecordList)) { |
775 | 778 | return new ArrayList<>(); | ... | ... |
fw-shirasawa-service/src/main/java/cn/fw/shirasawa/service/bus/follow/strategy/AbstractFollowStrategy.java
... | ... | @@ -116,7 +116,11 @@ public abstract class AbstractFollowStrategy implements FollowStrategy { |
116 | 116 | } else if (BizTypeEnum.PS.equals(task.getBizType())) { |
117 | 117 | assembleCompleteTelStatus(record, task); |
118 | 118 | } else { |
119 | - record.setCompelTel(ValidationUtils.checkMobile(record.getContacts())); | |
119 | + if (FollowTypeEnum.AF.equals(task.getType())) { | |
120 | + record.setCompelTel(Boolean.FALSE); | |
121 | + } else { | |
122 | + record.setCompelTel(ValidationUtils.checkMobile(record.getContacts())); | |
123 | + } | |
120 | 124 | } |
121 | 125 | if (StringUtils.isEmpty(record.getContacts())) { |
122 | 126 | record.setContacts(originalData.getContacts()); | ... | ... |
fw-shirasawa-service/src/main/java/cn/fw/shirasawa/service/bus/follow/strategy/impl/MAFollowStrategy.java
0 → 100644
1 | +package cn.fw.shirasawa.service.bus.follow.strategy.impl; | |
2 | + | |
3 | +import cn.fw.shirasawa.common.utils.DateUtil; | |
4 | +import cn.fw.shirasawa.domain.db.follow.FollowRecord; | |
5 | +import cn.fw.shirasawa.domain.db.follow.FollowTask; | |
6 | +import cn.fw.shirasawa.domain.enums.FollowTypeEnum; | |
7 | +import cn.fw.shirasawa.domain.vo.follow.MADetailVO; | |
8 | +import cn.fw.shirasawa.rpc.valhalla.ValhallaRpcService; | |
9 | +import cn.fw.shirasawa.rpc.valhalla.dto.ValhallaCustomerDTO; | |
10 | +import cn.fw.shirasawa.service.bus.follow.strategy.AbstractFollowStrategy; | |
11 | +import lombok.extern.slf4j.Slf4j; | |
12 | +import org.springframework.beans.factory.annotation.Autowired; | |
13 | +import org.springframework.stereotype.Component; | |
14 | + | |
15 | +import java.util.Objects; | |
16 | + | |
17 | +import static cn.fw.common.businessvalidator.Validator.BV; | |
18 | + | |
19 | +/** | |
20 | + * @author : kurisu | |
21 | + * @className : MAFollowStrategy | |
22 | + * @description : 市场行动策略 | |
23 | + * @date: 2020-08-17 10:48 | |
24 | + */ | |
25 | +@Slf4j | |
26 | +@Component | |
27 | +public class MAFollowStrategy extends AbstractFollowStrategy { | |
28 | + | |
29 | + private final ValhallaRpcService valhallaRpcService; | |
30 | + | |
31 | + @Autowired | |
32 | + public MAFollowStrategy(final ValhallaRpcService valhallaRpcService) { | |
33 | + this.valhallaRpcService = valhallaRpcService; | |
34 | + } | |
35 | + | |
36 | + @Override | |
37 | + public FollowTypeEnum getFollowType() { | |
38 | + return FollowTypeEnum.MA; | |
39 | + } | |
40 | + | |
41 | + @Override | |
42 | + public MADetailVO queryDetail(FollowRecord record) { | |
43 | + FollowTask followTask = followTaskService.getById(record.getTaskId()); | |
44 | + BV.notNull(followTask, "跟进任务不存在"); | |
45 | + MADetailVO vo = new MADetailVO(); | |
46 | + assembleRecordDetail(vo, record, followTask); | |
47 | + vo.setTaskDeadline(followTask.getDeadline()); | |
48 | + ValhallaCustomerDTO dto = valhallaRpcService.queryByVin(record.getVin(), record.getGroupId()); | |
49 | + if (Objects.nonNull(dto)) { | |
50 | + vo.setCustomerId(dto.getId()); | |
51 | + vo.setPlateNo(dto.getPlateNo()); | |
52 | + vo.setAdviserName(dto.getAdviserName()); | |
53 | + vo.setBuyDate(DateUtil.date2LocalDateTime(dto.getBuyDate())); | |
54 | + } | |
55 | + vo.setVin(followTask.getVin()); | |
56 | + return vo; | |
57 | + } | |
58 | + | |
59 | + @Override | |
60 | + public MADetailVO followPoolDetail(FollowTask task) { | |
61 | + MADetailVO vo = new MADetailVO(); | |
62 | + vo.setCustomerId(task.getCustomerId()); | |
63 | + vo.setCustomerName(task.getCustomerName()); | |
64 | + vo.setPlateNo(task.getPlateNo()); | |
65 | + vo.setVin(task.getVin()); | |
66 | + vo.setType(task.getType().getValue()); | |
67 | + vo.setBizType(task.getBizType().getValue()); | |
68 | + vo.setTaskId(task.getId()); | |
69 | + vo.setDeadline(task.getDeadline()); | |
70 | + vo.setTimes(task.getTimes()); | |
71 | + ValhallaCustomerDTO dto = valhallaRpcService.queryByVin(task.getVin(), task.getGroupId()); | |
72 | + if (Objects.nonNull(dto)) { | |
73 | + vo.setCustomerId(dto.getId()); | |
74 | + vo.setCustomerName(dto.getName()); | |
75 | + } | |
76 | + return vo; | |
77 | + } | |
78 | +} | ... | ... |
pom.xml
... | ... | @@ -28,7 +28,7 @@ |
28 | 28 | <properties> |
29 | 29 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
30 | 30 | <java.version>1.8</java.version> |
31 | - <fw.shirasawa.sdk>1.1.2</fw.shirasawa.sdk> | |
31 | + <fw.shirasawa.sdk>1.1.3</fw.shirasawa.sdk> | |
32 | 32 | <!-- util --> |
33 | 33 | <spring-retry.version>1.2.4.RELEASE</spring-retry.version> |
34 | 34 | <!-- database --> | ... | ... |