Commit f6736d020d23b99b849a1ac447419615a20c87a1

Authored by 张志伟
1 parent 27de82a1

修复公共线索跟进失败的bug

fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/task/PublicClueTask.java
1 package cn.fw.valhalla.controller.task; 1 package cn.fw.valhalla.controller.task;
2 2
3 import cn.fw.valhalla.common.utils.DateUtil; 3 import cn.fw.valhalla.common.utils.DateUtil;
  4 +import cn.fw.valhalla.domain.db.customer.AffiliationRecord;
4 import cn.fw.valhalla.domain.db.pool.PublicCluePool; 5 import cn.fw.valhalla.domain.db.pool.PublicCluePool;
5 import cn.fw.valhalla.domain.db.pool.PublicPool; 6 import cn.fw.valhalla.domain.db.pool.PublicPool;
6 import cn.fw.valhalla.domain.dto.CustomerDetailDto; 7 import cn.fw.valhalla.domain.dto.CustomerDetailDto;
  8 +import cn.fw.valhalla.domain.enums.CustomerChangeTypeEnum;
7 import cn.fw.valhalla.domain.enums.DefeatReasonEnum; 9 import cn.fw.valhalla.domain.enums.DefeatReasonEnum;
8 import cn.fw.valhalla.domain.enums.PublicClueStateEnum; 10 import cn.fw.valhalla.domain.enums.PublicClueStateEnum;
9 import cn.fw.valhalla.domain.enums.PublicPoolTypeEnum; 11 import cn.fw.valhalla.domain.enums.PublicPoolTypeEnum;
10 import cn.fw.valhalla.service.bus.cust.CustomerBizService; 12 import cn.fw.valhalla.service.bus.cust.CustomerBizService;
11 import cn.fw.valhalla.service.bus.follow.PCFollowBizService; 13 import cn.fw.valhalla.service.bus.follow.PCFollowBizService;
  14 +import cn.fw.valhalla.service.data.AffiliationRecordService;
12 import cn.fw.valhalla.service.data.PublicCluePoolService; 15 import cn.fw.valhalla.service.data.PublicCluePoolService;
13 import cn.fw.valhalla.service.data.PublicPoolService; 16 import cn.fw.valhalla.service.data.PublicPoolService;
14 import cn.fw.valhalla.service.data.StammkundePoolService; 17 import cn.fw.valhalla.service.data.StammkundePoolService;
@@ -23,6 +26,7 @@ import org.springframework.stereotype.Component; @@ -23,6 +26,7 @@ import org.springframework.stereotype.Component;
23 import org.springframework.transaction.annotation.Transactional; 26 import org.springframework.transaction.annotation.Transactional;
24 import org.springframework.util.CollectionUtils; 27 import org.springframework.util.CollectionUtils;
25 28
  29 +import java.time.LocalDateTime;
26 import java.util.Date; 30 import java.util.Date;
27 import java.util.List; 31 import java.util.List;
28 import java.util.Objects; 32 import java.util.Objects;
@@ -43,6 +47,7 @@ public class PublicClueTask { @@ -43,6 +47,7 @@ public class PublicClueTask {
43 private final StammkundePoolService stammkundePoolService; 47 private final StammkundePoolService stammkundePoolService;
44 private final PCFollowBizService pcFollowBizService; 48 private final PCFollowBizService pcFollowBizService;
45 private final ApplicationEventPublisher eventPublisher; 49 private final ApplicationEventPublisher eventPublisher;
  50 + private final AffiliationRecordService affiliationRecordService;
46 51
47 @Autowired 52 @Autowired
48 public PublicClueTask(final PublicCluePoolService publicCluePoolService, 53 public PublicClueTask(final PublicCluePoolService publicCluePoolService,
@@ -50,13 +55,15 @@ public class PublicClueTask { @@ -50,13 +55,15 @@ public class PublicClueTask {
50 final CustomerBizService customerBizService, 55 final CustomerBizService customerBizService,
51 final StammkundePoolService stammkundePoolService, 56 final StammkundePoolService stammkundePoolService,
52 final PCFollowBizService pcFollowBizService, 57 final PCFollowBizService pcFollowBizService,
53 - final ApplicationEventPublisher eventPublisher) { 58 + final ApplicationEventPublisher eventPublisher,
  59 + final AffiliationRecordService affiliationRecordService) {
54 this.publicCluePoolService = publicCluePoolService; 60 this.publicCluePoolService = publicCluePoolService;
55 this.publicPoolService = publicPoolService; 61 this.publicPoolService = publicPoolService;
56 this.customerBizService = customerBizService; 62 this.customerBizService = customerBizService;
57 this.stammkundePoolService = stammkundePoolService; 63 this.stammkundePoolService = stammkundePoolService;
58 this.pcFollowBizService = pcFollowBizService; 64 this.pcFollowBizService = pcFollowBizService;
59 this.eventPublisher = eventPublisher; 65 this.eventPublisher = eventPublisher;
  66 + this.affiliationRecordService = affiliationRecordService;
60 } 67 }
61 68
62 69
@@ -91,11 +98,9 @@ public class PublicClueTask { @@ -91,11 +98,9 @@ public class PublicClueTask {
91 } 98 }
92 } 99 }
93 100
94 - @Transactional(rollbackFor = Exception.class)  
95 public void doSomething(PublicCluePool cluePool) { 101 public void doSomething(PublicCluePool cluePool) {
96 cluePool.setCloseTime(new Date()); 102 cluePool.setCloseTime(new Date());
97 cluePool.setState(PublicClueStateEnum.DEFEAT); 103 cluePool.setState(PublicClueStateEnum.DEFEAT);
98 -  
99 Long customerId = cluePool.getCustomerId(); 104 Long customerId = cluePool.getCustomerId();
100 CustomerDetailDto detailDto = customerBizService.queryById(customerId); 105 CustomerDetailDto detailDto = customerBizService.queryById(customerId);
101 if (Objects.isNull(detailDto)) { 106 if (Objects.isNull(detailDto)) {
@@ -104,13 +109,25 @@ public class PublicClueTask { @@ -104,13 +109,25 @@ public class PublicClueTask {
104 detailDto.setAdviserId(cluePool.getAdviserId()); 109 detailDto.setAdviserId(cluePool.getAdviserId());
105 detailDto.setAdviserName(cluePool.getAdviserName()); 110 detailDto.setAdviserName(cluePool.getAdviserName());
106 detailDto.setShopId(cluePool.getShopId()); 111 detailDto.setShopId(cluePool.getShopId());
  112 + AffiliationRecord record = new AffiliationRecord();
  113 + record.setCustomerId(detailDto.getId());
  114 + record.setType(CustomerChangeTypeEnum.DEFEAT);
  115 + record.setDefeatTime(DateUtil.localDateTime2Date(LocalDateTime.now()));
  116 + record.setOriginUserId(cluePool.getAdviserId());
  117 + record.setOriginShopId(cluePool.getShopId());
  118 + record.setCreateTime(DateUtil.localDateTime2Date(LocalDateTime.now()));
  119 + record.setReason("公共客户线索到期战败");
  120 + saveData(cluePool, detailDto, record);
  121 + }
107 122
  123 + @Transactional(rollbackFor = Exception.class)
  124 + public void saveData(PublicCluePool cluePool, CustomerDetailDto detailDto, AffiliationRecord record) {
108 PublicPool publicPool = customerBizService.createPublicPool(detailDto, PublicPoolTypeEnum.PD, PublicPoolTypeEnum.PD.getName()); 125 PublicPool publicPool = customerBizService.createPublicPool(detailDto, PublicPoolTypeEnum.PD, PublicPoolTypeEnum.PD.getName());
109 stammkundePoolService.reject(cluePool.getCustomerId(), cluePool.getGroupId(), DefeatReasonEnum.LC); 126 stammkundePoolService.reject(cluePool.getCustomerId(), cluePool.getGroupId(), DefeatReasonEnum.LC);
110 customerBizService.move2PublicPool(detailDto.getId()); 127 customerBizService.move2PublicPool(detailDto.getId());
111 publicPoolService.save(publicPool); 128 publicPoolService.save(publicPool);
112 publicCluePoolService.updateById(cluePool); 129 publicCluePoolService.updateById(cluePool);
113 - 130 + affiliationRecordService.save(record);
114 PublicPoolEvent poolEvent = new PublicPoolEvent(detailDto.getFrameNo(), detailDto.getGroupId()); 131 PublicPoolEvent poolEvent = new PublicPoolEvent(detailDto.getFrameNo(), detailDto.getGroupId());
115 eventPublisher.publishEvent(poolEvent); 132 eventPublisher.publishEvent(poolEvent);
116 } 133 }