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 2d4d3342..e0c316a9 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 @@ -20,6 +20,7 @@ import com.baiye.util.QueryHelp; import com.baiye.util.RedisUtils; import com.baiye.util.SecurityUtils; import lombok.extern.slf4j.Slf4j; +import org.hibernate.boot.jaxb.SourceType; import org.springframework.context.event.EventListener; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -78,6 +79,19 @@ public class ClueBoostServiceImpl implements ClueBoostService { CommonLog.info("赔付线索:" + integer + "条"); } + /** + * 时间比较 精确到分钟 + * + * @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; + return between <= i; + } + @EventListener(ClueBoostDTO.class) @Transactional(rollbackFor = Exception.class) public void boost(ClueBoostDTO clueBoostDTO) { @@ -92,20 +106,18 @@ public class ClueBoostServiceImpl implements ClueBoostService { //上一次拨打距离当前时间间隔1小时 Date lastTime = clueBoost.getLastTime(); - long betweenLast = DateUtil.between(lastTime, DateUtil.date(), DateUnit.HOUR); - if (betweenLast < DefaultNumberConstants.ONE_NUMBER) { + if (timeCompare(lastTime, DateUtil.date(), DefaultNumberConstants.ONE_NUMBER)) { return; } //第一次拨打后 24小时内需2通 Date firstTime = clueBoost.getFirstTime(); - long betweenFirst = DateUtil.between(firstTime, DateUtil.date(), DateUnit.HOUR); Integer callNum = clueBoost.getCallNum(); - if (betweenFirst <= DefaultNumberConstants.TWENTY_THREE) { + if (timeCompare(firstTime, DateUtil.date(), DefaultNumberConstants.TWENTY_FOUR)) { clueBoost.setCallNum(callNum + 1); clueBoost.setLastTime(DateUtil.date()); - redisUtils.set(KEY + clueBoostDTO.getClueId(), clueBoost, 48 - betweenFirst, TimeUnit.MILLISECONDS); + redisUtils.set(KEY + clueBoostDTO.getClueId(), clueBoost, 48, TimeUnit.HOURS); return; - } else if (betweenFirst <= DefaultNumberConstants.FORTY_EIGHT) { + } 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());