Commit 036717fa3eff3a33534fc1388ee1ad5ed64a928c

Authored by 张志伟
1 parent efe55351

:sparkles: feat(*): 新增查询某个档案的全部跟进记录

-  新增查询某个档案的全部跟进记录
fw-shirasawa-domain/src/main/java/cn/fw/shirasawa/domain/enums/FollowTypeEnum.java
... ... @@ -27,6 +27,7 @@ public enum FollowTypeEnum implements IEnum<Integer> {
27 27 PL(10, "公共池跟进"),
28 28 SF(11, "补贴跟进"),
29 29 RC(12, "区域线索"),
  30 + MA(13, "市场行动"),
30 31 /**
31 32 * 其他
32 33 * 目前只用于设置,并不参与具体跟进业务
... ...
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
... ... @@ -10,7 +10,7 @@
10 10 <relativePath>../pom.xml</relativePath>
11 11 </parent>
12 12 <artifactId>fw-shirasawa-sdk</artifactId>
13   - <version>1.1.2</version>
  13 + <version>1.1.3</version>
14 14 <packaging>jar</packaging>
15 15 <name>fw-shirasawa-sdk</name>
16 16  
... ...
fw-shirasawa-sdk/src/main/java/cn/fw/shirasawa/sdk/enums/DataTypeEnum.java
... ... @@ -26,6 +26,7 @@ public enum DataTypeEnum {
26 26 PL(10, "售后公共池"),
27 27 SF(11, "补贴跟进"),
28 28 RC(12, "区域线索"),
  29 + MA(13, "市场行动"),
29 30 ;
30 31  
31 32 /**
... ...
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 +}
... ...
... ... @@ -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 -->
... ...