fix: 订单定时任务可能存在极端情况,影响其他业务流程,做一下兼容处理,以免部分数据导致订单定时任务无法处理

This commit is contained in:
Chopper711 2023-05-10 14:03:16 +08:00
parent 54b40c35f4
commit b4aef1461c
3 changed files with 44 additions and 18 deletions

View File

@ -2,8 +2,6 @@ package cn.lili.timetask.handler.impl.order;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
@ -88,14 +86,30 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
throw new ServiceException(ResultCode.ORDER_SETTING_ERROR);
}
try {
//自动确认收货
completedOrder(orderSetting);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
try {
//自动好评
memberEvaluation(orderSetting);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
try {
//关闭允许售后申请
closeAfterSale(orderSetting);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
try {
//关闭允许投诉
closeComplaint(orderSetting);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
/**
@ -115,6 +129,7 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
queryWrapper.le(Order::getLogisticsTime, receiveTime);
List<Order> list = orderService.list(queryWrapper);
try {
//判断是否有符合条件的订单进行订单完成处理
if (!list.isEmpty()) {
List<String> receiveSnList = list.stream().map(Order::getSn).collect(Collectors.toList());
@ -122,6 +137,9 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
orderService.systemComplete(orderSn);
}
}
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
/**
@ -152,7 +170,12 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
memberEvaluationDTO.setDescriptionScore(5);
memberEvaluationDTO.setServiceScore(5);
try {
memberEvaluationService.addMemberEvaluation(memberEvaluationDTO, false);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
}
}
@ -164,7 +187,6 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
* @param orderSetting 订单设置
*/
private void closeAfterSale(OrderSetting orderSetting) {
//订单关闭售后申请时间 = 当前时间 - 自动关闭售后申请天数
DateTime receiveTime = DateUtil.offsetDay(DateUtil.date(), -orderSetting.getCloseAfterSale());

View File

@ -19,6 +19,7 @@ import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "lili.data.rocketmq")
public class RocketmqCustomProperties {
private String promotionTopic;
private String promotionGroup;

View File

@ -122,6 +122,9 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
} else {
//获取用户信息 非自己评价时读取数据库
member = memberService.getById(order.getMemberId());
if (member == null) {
throw new ServiceException(ResultCode.USER_NOT_EXIST);
}
}
//获取商品信息
GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(memberEvaluationDTO.getSkuId());