From a53eb3cfde5279d67cbf4eecfa27cc77cfa02e2a Mon Sep 17 00:00:00 2001 From: chc <1501738723@qq.com> Date: Mon, 29 Jan 2024 18:33:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=94=AE=E5=90=8E=E5=85=B3=E9=97=AD=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/order/OrderEveryDayTaskExecute.java | 2 +- .../order/order/mapper/OrderItemMapper.java | 17 +++++++++++++++++ .../order/order/service/OrderItemService.java | 3 +++ .../order/serviceimpl/OrderItemServiceImpl.java | 6 ++++++ 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/consumer/src/main/java/cn/lili/timetask/handler/impl/order/OrderEveryDayTaskExecute.java b/consumer/src/main/java/cn/lili/timetask/handler/impl/order/OrderEveryDayTaskExecute.java index 5e7b481b..1f43d695 100644 --- a/consumer/src/main/java/cn/lili/timetask/handler/impl/order/OrderEveryDayTaskExecute.java +++ b/consumer/src/main/java/cn/lili/timetask/handler/impl/order/OrderEveryDayTaskExecute.java @@ -183,7 +183,6 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute { } //订单关闭售后申请时间 = 当前时间 - 自动关闭售后申请天数 DateTime receiveTime = DateUtil.offsetDay(DateUtil.date(), -orderSetting.getCloseAfterSale()); - //关闭售后订单=未售后订单+小于订单关闭售后申请时间 OrderItemOperationDTO build = OrderItemOperationDTO.builder().receiveTime(receiveTime).afterSaleStatus(OrderItemAfterSaleStatusEnum.NOT_APPLIED.name()).build(); List orderItems = orderItemService.waitOperationOrderItem(build); @@ -199,6 +198,7 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute { .set(OrderItem::getAfterSaleStatus, OrderItemAfterSaleStatusEnum.EXPIRED.name()) .in(OrderItem::getId, orderItemIdList); orderItemService.update(lambdaUpdateWrapper); + orderItemService.expiredAfterSaleStatusExecuteByAfterSale(receiveTime); //修改订售后状态 List orderItemsList = orderItems.stream() .map((orderItem) -> { diff --git a/framework/src/main/java/cn/lili/modules/order/order/mapper/OrderItemMapper.java b/framework/src/main/java/cn/lili/modules/order/order/mapper/OrderItemMapper.java index 199b2f63..563c0e07 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/mapper/OrderItemMapper.java +++ b/framework/src/main/java/cn/lili/modules/order/order/mapper/OrderItemMapper.java @@ -1,5 +1,6 @@ package cn.lili.modules.order.order.mapper; +import cn.hutool.core.date.DateTime; import cn.lili.modules.order.order.entity.dos.OrderItem; import cn.lili.modules.order.order.entity.vo.OrderSimpleVO; import com.baomidou.mybatisplus.core.conditions.Wrapper; @@ -7,6 +8,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; import java.util.List; @@ -26,4 +28,19 @@ public interface OrderItemMapper extends BaseMapper { */ @Select("SELECT * FROM li_order_item AS oi INNER JOIN li_order AS o ON oi.order_sn=o.sn ${ew.customSqlSegment}") List waitOperationOrderItem(@Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 检查售后表,根据售后表中的业务判定是否需要更新售后状态 + * + * @param expiredTime 过期时间 + */ + @Update(" UPDATE li_order_item AS oi " + + "INNER JOIN li_order AS o ON oi.order_sn = o.sn " + + "INNER JOIN li_after_sale AS af ON af.order_item_sn = oi.sn " + + "SET oi.after_sale_status = 'EXPIRED' " + + "WHERE " + + "oi.after_sale_status in ('ALREADY_APPLIED','PART_AFTER_SALE') " + + "AND af.service_status in ('COMPLETE','REFUSE','SELLER_TERMINATION','BUYER_CANCEL') " + + "AND o.complete_time < #{expiredTime} ") + void expiredAfterSaleStatusExecuteByAfterSale(DateTime expiredTime); } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/order/order/service/OrderItemService.java b/framework/src/main/java/cn/lili/modules/order/order/service/OrderItemService.java index 703c85af..be89db7d 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/service/OrderItemService.java +++ b/framework/src/main/java/cn/lili/modules/order/order/service/OrderItemService.java @@ -1,5 +1,6 @@ package cn.lili.modules.order.order.service; +import cn.hutool.core.date.DateTime; import cn.lili.modules.order.order.entity.dos.OrderItem; import cn.lili.modules.order.order.entity.dto.OrderItemOperationDTO; import cn.lili.modules.order.order.entity.enums.CommentStatusEnum; @@ -75,4 +76,6 @@ public interface OrderItemService extends IService { OrderItem getByOrderSnAndSkuId(String orderSn, String skuId); List waitOperationOrderItem(OrderItemOperationDTO orderItemOperationDTO); + + void expiredAfterSaleStatusExecuteByAfterSale(DateTime receiveTime); } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderItemServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderItemServiceImpl.java index e4841bd8..3a06b72f 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderItemServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderItemServiceImpl.java @@ -1,5 +1,6 @@ package cn.lili.modules.order.order.serviceimpl; +import cn.hutool.core.date.DateTime; import cn.hutool.core.text.CharSequenceUtil; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; @@ -104,4 +105,9 @@ public class OrderItemServiceImpl extends ServiceImpl