|
|
|
@ -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());
|
|
|
|
|