no message
This commit is contained in:
parent
ce8015b836
commit
3cf9951bb3
|
|
@ -1400,38 +1400,62 @@ public class OrderServiceImpl implements OrderService {
|
||||||
|
|
||||||
for (OrderDetail orderDetail : orderDetails) {
|
for (OrderDetail orderDetail : orderDetails) {
|
||||||
try {
|
try {
|
||||||
Date updateTime = orderDetail.getUpdateTime();
|
|
||||||
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
|
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
|
||||||
|
|
||||||
if (orderMaster == null || updateTime == null) {
|
if (orderMaster == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
long waitTimeMillis;
|
Date targetTime;
|
||||||
String logType;
|
String logType = "已设置";
|
||||||
|
|
||||||
// 根据发货类型判断等待时间
|
// 优先使用已设置的确认截止时间
|
||||||
if (orderMaster.getDeliveryType() == 2 || orderMaster.getDeliveryType() == 3) {
|
if (orderDetail.getConfirmStartTime() != null) {
|
||||||
// 送货上门或自提:8小时
|
targetTime = orderDetail.getConfirmStartTime();
|
||||||
waitTimeMillis = 8 * 60 * 60 * 1000L; // 8小时的毫秒数
|
log.debug("订单[{}]使用已设置的确认截止时间:{}", orderDetail.getCode(),
|
||||||
logType = orderMaster.getDeliveryType() == 2 ? "送货上门" : "自提";
|
com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", targetTime));
|
||||||
} else if (orderMaster.getDeliveryType() == 1) {
|
|
||||||
// 发快递/物流:4天
|
|
||||||
waitTimeMillis = 4 * 24 * 60 * 60 * 1000L; // 4天的毫秒数
|
|
||||||
logType = "发快递/物流";
|
|
||||||
} else {
|
} else {
|
||||||
// 未知发货类型,跳过处理
|
// 兼容旧数据,重新计算确认截止时间
|
||||||
log.warn("订单[{}]发货类型未知[{}],跳过处理", orderDetail.getCode(), orderMaster.getDeliveryType());
|
Date updateTime = orderDetail.getUpdateTime();
|
||||||
continue;
|
if (updateTime == null) {
|
||||||
|
log.warn("订单[{}]更新时间为空,跳过处理", orderDetail.getCode());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
long waitTimeMillis;
|
||||||
|
|
||||||
|
// 根据发货类型判断等待时间
|
||||||
|
if (orderMaster.getDeliveryType() == 2 || orderMaster.getDeliveryType() == 3) {
|
||||||
|
// 送货上门或自提:8小时
|
||||||
|
waitTimeMillis = 8 * 60 * 60 * 1000L; // 8小时的毫秒数
|
||||||
|
logType = orderMaster.getDeliveryType() == 2 ? "送货上门" : "自提";
|
||||||
|
} else if (orderMaster.getDeliveryType() == 1) {
|
||||||
|
// 发快递/物流:4天
|
||||||
|
waitTimeMillis = 4 * 24 * 60 * 60 * 1000L; // 4天的毫秒数
|
||||||
|
logType = "发快递/物流";
|
||||||
|
} else {
|
||||||
|
// 未知发货类型,跳过处理
|
||||||
|
log.warn("订单[{}]发货类型未知[{}],跳过处理", orderDetail.getCode(), orderMaster.getDeliveryType());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算确认截止时间
|
||||||
|
targetTime = new Date(updateTime.getTime() + waitTimeMillis);
|
||||||
|
|
||||||
|
// 回写到数据库,避免下次重复计算
|
||||||
|
OrderDetail updateOrderDetail = new OrderDetail();
|
||||||
|
updateOrderDetail.setId(orderDetail.getId());
|
||||||
|
updateOrderDetail.setConfirmStartTime(targetTime);
|
||||||
|
orderDetailService.updateOrderDetail(updateOrderDetail);
|
||||||
|
|
||||||
|
log.info("订单[{}]补充设置确认截止时间,发货类型[{}],截止时间:{}",
|
||||||
|
orderDetail.getCode(), logType,
|
||||||
|
com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", targetTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 计算应该转为确认中的时间
|
|
||||||
Date targetTime = new Date(updateTime.getTime() + waitTimeMillis);
|
|
||||||
|
|
||||||
orderDetail.setConfirmStartTime(targetTime);
|
|
||||||
// 检查是否到达目标时间
|
// 检查是否到达目标时间
|
||||||
if (now.after(targetTime)) {
|
if (now.after(targetTime)) {
|
||||||
log.info("订单[{}]发货类型[{}]已到达等待时间,开始转为确认中状态", orderDetail.getCode(), logType);
|
log.info("订单[{}]确认截止时间已到,开始转为确认中状态", orderDetail.getCode());
|
||||||
|
|
||||||
// 更新订单状态为确认中
|
// 更新订单状态为确认中
|
||||||
int result = orderDetailService.updateStatus(orderDetail.getId(), OrderStatus.FINISH_CHECK.code());
|
int result = orderDetailService.updateStatus(orderDetail.getId(), OrderStatus.FINISH_CHECK.code());
|
||||||
|
|
@ -1442,8 +1466,8 @@ public class OrderServiceImpl implements OrderService {
|
||||||
log.error("订单[{}]状态更新失败", orderDetail.getCode());
|
log.error("订单[{}]状态更新失败", orderDetail.getCode());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.debug("订单[{}]发货类型[{}]尚未到达等待时间,目标时间:{}",
|
log.debug("订单[{}]尚未到达确认截止时间,截止时间:{}",
|
||||||
orderDetail.getCode(), logType,
|
orderDetail.getCode(),
|
||||||
com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", targetTime));
|
com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", targetTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue