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.DateTime;
import cn.hutool.core.date.DateUtil; 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.hutool.json.JSONUtil;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
@ -88,14 +86,30 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
throw new ServiceException(ResultCode.ORDER_SETTING_ERROR); throw new ServiceException(ResultCode.ORDER_SETTING_ERROR);
} }
//自动确认收货 try {
completedOrder(orderSetting); //自动确认收货
//自动好评 completedOrder(orderSetting);
memberEvaluation(orderSetting); } catch (Exception e) {
//关闭允许售后申请 log.error(e.getMessage(), e);
closeAfterSale(orderSetting); }
//关闭允许投诉 try {
closeComplaint(orderSetting); //自动好评
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,12 +129,16 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
queryWrapper.le(Order::getLogisticsTime, receiveTime); queryWrapper.le(Order::getLogisticsTime, receiveTime);
List<Order> list = orderService.list(queryWrapper); List<Order> list = orderService.list(queryWrapper);
//判断是否有符合条件的订单进行订单完成处理 try {
if (!list.isEmpty()) { //判断是否有符合条件的订单进行订单完成处理
List<String> receiveSnList = list.stream().map(Order::getSn).collect(Collectors.toList()); if (!list.isEmpty()) {
for (String orderSn : receiveSnList) { List<String> receiveSnList = list.stream().map(Order::getSn).collect(Collectors.toList());
orderService.systemComplete(orderSn); for (String orderSn : receiveSnList) {
orderService.systemComplete(orderSn);
}
} }
} catch (Exception e) {
log.error(e.getMessage(), e);
} }
} }
@ -152,7 +170,12 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
memberEvaluationDTO.setDescriptionScore(5); memberEvaluationDTO.setDescriptionScore(5);
memberEvaluationDTO.setServiceScore(5); memberEvaluationDTO.setServiceScore(5);
memberEvaluationService.addMemberEvaluation(memberEvaluationDTO, false); try {
memberEvaluationService.addMemberEvaluation(memberEvaluationDTO, false);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
} }
} }
} }
@ -164,7 +187,6 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
* @param orderSetting 订单设置 * @param orderSetting 订单设置
*/ */
private void closeAfterSale(OrderSetting orderSetting) { private void closeAfterSale(OrderSetting orderSetting) {
//订单关闭售后申请时间 = 当前时间 - 自动关闭售后申请天数 //订单关闭售后申请时间 = 当前时间 - 自动关闭售后申请天数
DateTime receiveTime = DateUtil.offsetDay(DateUtil.date(), -orderSetting.getCloseAfterSale()); DateTime receiveTime = DateUtil.offsetDay(DateUtil.date(), -orderSetting.getCloseAfterSale());
@ -187,7 +209,7 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
orderItemService.update(lambdaUpdateWrapper); orderItemService.update(lambdaUpdateWrapper);
//修改订售后状态 //修改订售后状态
List<OrderItem> orderItemsList = orderItems.stream() List<OrderItem> orderItemsList = orderItems.stream()
.map((orderItem)->{ .map((orderItem) -> {
orderItem.setAfterSaleStatus(OrderItemAfterSaleStatusEnum.EXPIRED.name()); orderItem.setAfterSaleStatus(OrderItemAfterSaleStatusEnum.EXPIRED.name());
return orderItem; return orderItem;
}) })

View File

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

View File

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