From 037252120a4c05ff12f2a724fa763a62b534a09c Mon Sep 17 00:00:00 2001 From: wjt Date: Fri, 30 Jun 2023 19:27:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E7=B4=A2=E8=B5=94=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../telemarkting/api/ClueBoostController.java | 18 ++ .../dao/AllCallInfoRepository.java | 15 +- .../telemarkting/dao/ClueBoostRepository.java | 4 +- .../telemarkting/entity/ClueBoost.java | 23 ++- .../telemarkting/entity/dto/ClueBoostDTO.java | 4 +- .../entity/dto/ClueBoostQueryCriteria.java | 2 +- .../telemarkting/entity/vo/ClueBoostVO.java | 17 ++ .../service/ClueBoostService.java | 5 + .../service/impl/ClueBoostServiceImpl.java | 158 ++++++++++++------ .../impl/TelephoneCallServiceImpl.java | 12 +- 10 files changed, 192 insertions(+), 66 deletions(-) create mode 100644 ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/vo/ClueBoostVO.java diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/ClueBoostController.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/ClueBoostController.java index cc64e28f..c8111ae9 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/ClueBoostController.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/ClueBoostController.java @@ -1,5 +1,6 @@ package com.baiye.modules.telemarkting.api; +import com.baiye.annotation.Inner; import com.baiye.annotation.Log; import com.baiye.http.CommonResponse; import com.baiye.modules.telemarkting.entity.dto.ClueBoostQueryCriteria; @@ -38,4 +39,21 @@ public class ClueBoostController { return CommonResponse.createBySuccess(); } + @ApiOperation("赔付详情") + @GetMapping("/compensateInfo") + @Inner(value = false) + public CommonResponse compensateInfo(@RequestParam("clueId") Long clueId) { + return clueBoostService.queryCurrentStatus(clueId); + } + + @ApiOperation("赔付详情") + @GetMapping("/testCall") + @Inner(value = false) + public CommonResponse testCall(@RequestParam("clueId") Long clueId + , @RequestParam("memberId") Long memberId + , @RequestParam("whichUserId") Long whichUserId + , @RequestParam("status") Boolean status) { + clueBoostService.testCall(clueId, memberId, whichUserId, status); + return CommonResponse.createBySuccess(); + } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/AllCallInfoRepository.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/AllCallInfoRepository.java index 1ef8867a..8e91e4c9 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/AllCallInfoRepository.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/AllCallInfoRepository.java @@ -25,11 +25,6 @@ public interface AllCallInfoRepository extends JpaRepository, */ AllCallInfo findBySessionId(String sessionId); - - @Modifying - @Query(value = "update AllCallInfo d set d.status =?1 where d.sessionId = ?2") - void updateByStatus(Integer status, String sessionId); - /** * 修改录音 * @@ -102,4 +97,14 @@ public interface AllCallInfoRepository extends JpaRepository, */ @Query(value = "select a from AllCallInfo a where a.clueId = ?1 order by a.createTime desc ") List findAllByClueId(Long clueId); + + /** + * 查看线索是否有接通记录 + * + * @param clueId + * @param status + * @return + */ + Integer countByClueIdAndStatus(Long clueId, Integer status); + } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ClueBoostRepository.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ClueBoostRepository.java index 2d5ffbe1..1a922932 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ClueBoostRepository.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ClueBoostRepository.java @@ -16,5 +16,7 @@ public interface ClueBoostRepository extends JpaRepository, Jpa @Modifying @Query("UPDATE ClueBoost set status = ?1 where id in ?2") - Integer updateStatusByIds(Boolean status, Set ids); + Integer updateStatusByIds(Integer status, Set ids); + + ClueBoost findByClueId(Long clueId); } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/ClueBoost.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/ClueBoost.java index b44addb6..cf1c96d8 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/ClueBoost.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/ClueBoost.java @@ -43,8 +43,8 @@ public class ClueBoost { private Long whichUserId; @Column(name = "status") - @ApiModelProperty(value = "是否赔付") - private Boolean status; + @ApiModelProperty(value = "1-一阶段 2-二阶段 3-满足未赔付 4-满足已赔付") + private Integer status=1; @Column(name = "create_time") @ApiModelProperty(value = "创建时间") @@ -54,14 +54,29 @@ public class ClueBoost { @ApiModelProperty(value = "修改时间") private Date updateTime; - public ClueBoost addClueBoost(Long clueId, Long memberId, Integer clueType, Long whichUserId) { + @Column(name = "first_time") + @ApiModelProperty(value = "第一次未接通时间") + private Date firstTime; + + @Column(name = "last_time") + @ApiModelProperty(value = "最近一次未接通时间") + private Date lastTime; + + @Column(name = "call_num") + @ApiModelProperty(value = "拨打次数") + private Integer callNum; + + public ClueBoost addClueBoost(Long clueId, Long memberId, Integer clueType, Long whichUserId, Date firstTime) { this.setClueId(clueId); this.setMemberId(memberId); this.setClueType(clueType); this.setCreateTime(DateUtil.date()); this.setUpdateTime(DateUtil.date()); this.setWhichUserId(whichUserId); - this.setStatus(false); + this.setStatus(1); + this.setFirstTime(firstTime); + this.setLastTime(firstTime); + this.setCallNum(1); return this; } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/ClueBoostDTO.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/ClueBoostDTO.java index edf4a05d..d372fd9c 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/ClueBoostDTO.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/ClueBoostDTO.java @@ -38,12 +38,14 @@ public class ClueBoostDTO { */ private Boolean status; - public ClueBoostDTO addClueBoostDTO(Long clueId, Long memberId, Long whichUserId, Integer clueType, Boolean status) { + public ClueBoostDTO addClueBoostDTO(Long clueId, Long memberId, Long whichUserId, Integer clueType, Boolean status, Date firstTime) { this.setClueId(clueId); this.setMemberId(memberId); this.setWhichUserId(whichUserId); this.setClueType(clueType); this.setStatus(status); + this.setFirstTime(firstTime); + this.setLastTime(firstTime); return this; } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/ClueBoostQueryCriteria.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/ClueBoostQueryCriteria.java index cef66efa..9a84b837 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/ClueBoostQueryCriteria.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/ClueBoostQueryCriteria.java @@ -13,7 +13,7 @@ import java.util.List; @Data public class ClueBoostQueryCriteria { @Query - private Boolean status = false; + private Integer status = 3; @Query private Long whichUserId; diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/vo/ClueBoostVO.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/vo/ClueBoostVO.java new file mode 100644 index 00000000..caef62d2 --- /dev/null +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/vo/ClueBoostVO.java @@ -0,0 +1,17 @@ +package com.baiye.modules.telemarkting.entity.vo; + +import lombok.Data; + +/** + * @author wjt + * @date 2023/6/27 + * 线索赔付 + */ +@Data +public class ClueBoostVO { + private Integer status; + private String firstTime; + private String secondTime; + private String thirdTime; + +} diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/ClueBoostService.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/ClueBoostService.java index 71025c27..76ddc8a7 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/ClueBoostService.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/ClueBoostService.java @@ -1,5 +1,6 @@ package com.baiye.modules.telemarkting.service; +import com.baiye.http.CommonResponse; import com.baiye.modules.telemarkting.entity.dto.ClueBoostQueryCriteria; import org.springframework.data.domain.Pageable; @@ -14,4 +15,8 @@ public interface ClueBoostService { Object queryAll(ClueBoostQueryCriteria clueBoostQueryCriteria, Pageable pageable); void compensate(Set ids); + + CommonResponse queryCurrentStatus(Long clueId); + + void testCall(Long clueId,Long memberId,Long whichUserId,Boolean status); } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ClueBoostServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ClueBoostServiceImpl.java index 8de890aa..73f7eb6f 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ClueBoostServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ClueBoostServiceImpl.java @@ -1,23 +1,25 @@ package com.baiye.modules.telemarkting.service.impl; -import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baiye.common.CommonLog; import com.baiye.constant.DefaultNumberConstants; import com.baiye.feign.SourceClueClient; +import com.baiye.http.CommonResponse; import com.baiye.modules.agent.repository.ChannelCustomRepository; +import com.baiye.modules.telemarkting.dao.AllCallInfoRepository; import com.baiye.modules.telemarkting.dao.ClueBoostRecordRepository; import com.baiye.modules.telemarkting.dao.ClueBoostRepository; import com.baiye.modules.telemarkting.entity.ClueBoost; import com.baiye.modules.telemarkting.entity.ClueBoostRecord; import com.baiye.modules.telemarkting.entity.dto.ClueBoostDTO; import com.baiye.modules.telemarkting.entity.dto.ClueBoostQueryCriteria; +import com.baiye.modules.telemarkting.entity.vo.ClueBoostVO; import com.baiye.modules.telemarkting.service.ClueBoostService; import com.baiye.util.PageUtil; import com.baiye.util.QueryHelp; -import com.baiye.util.RedisUtils; import com.baiye.util.SecurityUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.context.event.EventListener; @@ -31,7 +33,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Date; import java.util.Set; -import java.util.concurrent.TimeUnit; /** * @author wjt @@ -42,10 +43,6 @@ import java.util.concurrent.TimeUnit; @Slf4j public class ClueBoostServiceImpl implements ClueBoostService { - private static final String KEY = "boost:"; - - @Resource - private RedisUtils redisUtils; @Resource private ClueBoostRepository clueBoostRepository; @Resource @@ -54,6 +51,8 @@ public class ClueBoostServiceImpl implements ClueBoostService { private ChannelCustomRepository channelCustomRepository; @Resource private ClueBoostRecordRepository clueBoostRecordRepository; + @Resource + private AllCallInfoRepository allCallInfoRepository; @Override public Object queryAll(ClueBoostQueryCriteria clueBoostQueryCriteria, Pageable pageable) { @@ -66,7 +65,7 @@ public class ClueBoostServiceImpl implements ClueBoostService { @Override @Transactional(rollbackFor = Exception.class) public void compensate(Set ids) { - Integer integer = clueBoostRepository.updateStatusByIds(true, ids); + Integer integer = clueBoostRepository.updateStatusByIds(DefaultNumberConstants.FOUR_NUMBER, ids); Long currentUserId = SecurityUtils.getCurrentUserId(); channelCustomRepository.updateSurplusNumByUserId(currentUserId, integer); @@ -79,61 +78,124 @@ public class ClueBoostServiceImpl implements ClueBoostService { } /** - * 时间比较 精确到分钟 + * 返回当前线索的赔付阶段 1: 0-24小时内拨打第一次 2: 0-24小时内拨打第二次 3: 24-48小时内拨打一次 + */ + @Override + public CommonResponse queryCurrentStatus(Long clueId) { + ClueBoost clueBoost = clueBoostRepository.findByClueId(clueId); + if (ObjectUtil.isNotEmpty(clueBoost)) { + ClueBoostVO clueBoostVO = new ClueBoostVO(); + if (clueBoost.getStatus() == DefaultNumberConstants.ONE_NUMBER) { + clueBoostVO.setStatus(DefaultNumberConstants.ONE_NUMBER); + } else if (clueBoost.getStatus() == DefaultNumberConstants.TWO_NUMBER) { + clueBoostVO.setStatus(DefaultNumberConstants.TWO_NUMBER); + } else { + clueBoostVO.setStatus(DefaultNumberConstants.THREE_NUMBER); + } + Date firstTime = clueBoost.getFirstTime(); + clueBoostVO.setFirstTime(DateUtil.format(firstTime, "MM-dd HH:mm")); + DateTime dateTime = DateUtil.offsetMinute(firstTime, 61); + DateTime dateTime1 = DateUtil.offsetMinute(firstTime, 24 * 60 - 1); + String second = DateUtil.format(dateTime, "MM-dd HH:mm") + "至" + DateUtil.format(dateTime1, "MM-dd HH:mm"); + clueBoostVO.setSecondTime(second); + DateTime dateTime2 = DateUtil.offsetMinute(dateTime1, 62); + DateTime dateTime3 = DateUtil.offsetMinute(firstTime, 48 * 60 - 1); + String third = DateUtil.format(dateTime2, "MM-dd HH:mm") + "至" + DateUtil.format(dateTime3, "MM-dd HH:mm"); + clueBoostVO.setThirdTime(third); + return CommonResponse.createBySuccess(clueBoostVO); + } + return CommonResponse.createBySuccess(); + + } + + @Override + public void testCall(Long clueId, Long memberId, Long whichUserId, Boolean status) { + ClueBoostDTO clueBoostDTO = new ClueBoostDTO().addClueBoostDTO(clueId, memberId, whichUserId, 4, null, DateUtil.date()); + clueBoostDTO.setStatus(status); + boost(clueBoostDTO); + } + + /** + * 时间比较 精确到秒 * * @param startTime 开始时间 * @param endTime 结束时间 * @param interval 间隔小时 */ - private Boolean timeCompare(Date startTime, Date endTime, int interval) { - long between = DateUtil.between(startTime, endTime, DateUnit.MINUTE, true); - long i = interval * 60L; + private static Boolean timeCompare(Date startTime, Date endTime, int interval) { + long between = DateUtil.between(startTime, endTime, DateUnit.SECOND, true); + long i = interval * 60L * 60L; return between <= i; } @EventListener(ClueBoostDTO.class) @Transactional(rollbackFor = Exception.class) public void boost(ClueBoostDTO clueBoostDTO) { - Object o = redisUtils.get(KEY + clueBoostDTO.getClueId()); - if (ObjectUtil.isNotEmpty(o)) { - if (clueBoostDTO.getStatus()) { - redisUtils.del(KEY + clueBoostDTO.getClueId()); - return; + ClueBoost byClueId = clueBoostRepository.findByClueId(clueBoostDTO.getClueId()); + if (ObjectUtil.isEmpty(byClueId)) { + if (!clueBoostDTO.getStatus() && !isConnectInfo(clueBoostDTO.getClueId())) { + //持久化 + ClueBoost clueBoostNew = new ClueBoost().addClueBoost(clueBoostDTO.getClueId(), clueBoostDTO.getMemberId(), clueBoostDTO.getClueType(), clueBoostDTO.getWhichUserId(), clueBoostDTO.getFirstTime()); + clueBoostRepository.save(clueBoostNew); } - //redis数据 - ClueBoostDTO clueBoost = BeanUtil.toBean(o, ClueBoostDTO.class); + } else { + Date lastTime = byClueId.getLastTime(); + Date firstTime = byClueId.getFirstTime(); + Integer callNum = byClueId.getCallNum(); + //当前拨打时间 + Date lastTimeNew = clueBoostDTO.getLastTime(); + dealBoostClue(lastTime, firstTime, callNum, lastTimeNew, byClueId); + } + } - //上一次拨打距离当前时间间隔1小时 - Date lastTime = clueBoost.getLastTime(); - if (timeCompare(lastTime, DateUtil.date(), DefaultNumberConstants.ONE_NUMBER)) { - return; - } - //第一次拨打后 24小时内需2通 - Date firstTime = clueBoost.getFirstTime(); - Integer callNum = clueBoost.getCallNum(); - if (timeCompare(firstTime, DateUtil.date(), DefaultNumberConstants.TWENTY_FOUR)) { - clueBoost.setCallNum(callNum + 1); - clueBoost.setLastTime(DateUtil.date()); - redisUtils.set(KEY + clueBoostDTO.getClueId(), clueBoost, 48, TimeUnit.HOURS); + /** + * + */ + private void dealBoostClue(Date lastTime, Date firstTime, Integer callNum, Date lastTimeNew, ClueBoost clueBoost) { + if (clueBoost.getStatus() > DefaultNumberConstants.TWO_NUMBER) { + return; + } + //判断距离上一次拨打时间是否超过1小时 + if (timeCompare(lastTime, DateUtil.date(), DefaultNumberConstants.ONE_NUMBER)) { + return; + } + //第一次拨打后 24小时内需2通 + if (timeCompare(firstTime, lastTimeNew, DefaultNumberConstants.TWENTY_FOUR)) { + clueBoost.setCallNum(callNum + 1); + clueBoost.setLastTime(lastTimeNew); + clueBoost.setStatus(DefaultNumberConstants.TWO_NUMBER); + clueBoostRepository.save(clueBoost); + return; + } + //第一次拨打后 48小时内需1通 + if (timeCompare(firstTime, lastTimeNew, DefaultNumberConstants.FORTY_EIGHT)) { + if (callNum < DefaultNumberConstants.TWO_NUMBER) { + //重置 + clueBoost.setCallNum(DefaultNumberConstants.ONE_NUMBER); + clueBoost.setLastTime(lastTimeNew); + clueBoost.setFirstTime(lastTimeNew); + clueBoost.setStatus(DefaultNumberConstants.ONE_NUMBER); + clueBoostRepository.save(clueBoost); return; - } else if (timeCompare(firstTime, DateUtil.date(), DefaultNumberConstants.FORTY_EIGHT)) { - if (callNum >= DefaultNumberConstants.TWO_NUMBER) { - //满足补量 - ClueBoost clueBoostNew = new ClueBoost().addClueBoost(clueBoost.getClueId(), clueBoost.getMemberId(), clueBoost.getClueType(), clueBoostDTO.getWhichUserId()); - // 修改线索为冻结 - sourceClueClient.updateTalkClueFreeze(clueBoost.getClueId(), true); - clueBoostRepository.save(clueBoostNew); - CommonLog.info("赔付线索.id=" + clueBoost.getClueId()); - redisUtils.del(KEY + clueBoostDTO.getClueId()); - return; - } } + + // 1.满足补量 2.修改线索为冻结 + sourceClueClient.updateTalkClueFreeze(clueBoost.getClueId(), true); + clueBoost.setCallNum(clueBoost.getCallNum() + 1); + clueBoost.setLastTime(lastTimeNew); + clueBoost.setStatus(DefaultNumberConstants.THREE_NUMBER); + clueBoostRepository.save(clueBoost); + + CommonLog.info("赔付线索.id=" + clueBoost.getClueId()); } - if (!clueBoostDTO.getStatus()) { - clueBoostDTO.setLastTime(DateUtil.date()); - clueBoostDTO.setFirstTime(DateUtil.date()); - clueBoostDTO.setCallNum(1); - redisUtils.set(KEY + clueBoostDTO.getClueId(), clueBoostDTO, 24, TimeUnit.HOURS); - } + } + + + /** + * 是否有接通记录 + */ + public Boolean isConnectInfo(Long clueId) { + Integer count = allCallInfoRepository.countByClueIdAndStatus(clueId, DefaultNumberConstants.TWO_NUMBER); + return count > 0; } } \ No newline at end of file diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/TelephoneCallServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/TelephoneCallServiceImpl.java index e1eae453..ed5fdb70 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/TelephoneCallServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/TelephoneCallServiceImpl.java @@ -1,5 +1,6 @@ package com.baiye.modules.telemarkting.service.impl; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; @@ -8,7 +9,6 @@ import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.baiye.common.CommonLog; import com.baiye.constant.BusinessPartyType; -import com.baiye.constant.ClueTypeConstants; import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.KeyFieldConstants; import com.baiye.exception.BadRequestException; @@ -38,7 +38,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Arrays; import java.util.Date; import java.util.Objects; import java.util.concurrent.CompletableFuture; @@ -326,8 +325,8 @@ public class TelephoneCallServiceImpl implements TelephoneCallService { CompletableFuture.runAsync(() -> updateSourceCallStatus(allCallInfo.getClueId(), DefaultNumberConstants.ONE_NUMBER, allCallInfo.getClueType(), traceId)); status = false; } - if (Arrays.asList(ClueTypeConstants.TOKER_TYPE).contains(allCallInfo.getClueType())) { - ClueBoostDTO clueBoostDTO = new ClueBoostDTO().addClueBoostDTO(allCallInfo.getClueId(), allCallInfo.getMemberId(), whichUserId, allCallInfo.getClueType(), null); + if (allCallInfo.getClueType() == DefaultNumberConstants.FOUR_NUMBER) { + ClueBoostDTO clueBoostDTO = new ClueBoostDTO().addClueBoostDTO(allCallInfo.getClueId(), allCallInfo.getMemberId(), whichUserId, allCallInfo.getClueType(), null, DateUtil.date()); clueBoostDTO.setStatus(status); applicationContext.publishEvent(clueBoostDTO); } @@ -432,9 +431,10 @@ public class TelephoneCallServiceImpl implements TelephoneCallService { CompletableFuture.runAsync(() -> updateSourceCallStatus(allCallInfo.getClueId(), DefaultNumberConstants.ONE_NUMBER, allCallInfo.getClueType(), traceId)); status = false; } + DateTime date = DateUtil.date(); //投流的才能享受赔付 if (allCallInfo.getClueType() == DefaultNumberConstants.FOUR_NUMBER) { - ClueBoostDTO clueBoostDTO = new ClueBoostDTO().addClueBoostDTO(allCallInfo.getClueId(), allCallInfo.getMemberId(), whichUserId, allCallInfo.getClueType(), null); + ClueBoostDTO clueBoostDTO = new ClueBoostDTO().addClueBoostDTO(allCallInfo.getClueId(), allCallInfo.getMemberId(), whichUserId, allCallInfo.getClueType(), null, date); clueBoostDTO.setStatus(status); applicationContext.publishEvent(clueBoostDTO); } @@ -445,7 +445,7 @@ public class TelephoneCallServiceImpl implements TelephoneCallService { allCallInfo.setRecordFlag(0); allCallInfo.setRecordFileDownloadUrl(null); } - allCallInfo.setCreateTime(DateUtil.date()); + allCallInfo.setCreateTime(date); int between = (int) DateUtil.between(response.getCalllog().getCallerRingTime(), response.getCalllog().getHangupTime(), DateUnit.SECOND); allCallInfo.setExtensionRingTime(between); allCallInfoRepository.save(allCallInfo);