售后关闭功能同步

This commit is contained in:
chc 2024-01-29 18:33:47 +08:00
parent f0a80338da
commit a53eb3cfde
4 changed files with 27 additions and 1 deletions

View File

@ -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<OrderItem> 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<OrderItem> orderItemsList = orderItems.stream()
.map((orderItem) -> {

View File

@ -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<OrderItem> {
*/
@Select("SELECT * FROM li_order_item AS oi INNER JOIN li_order AS o ON oi.order_sn=o.sn ${ew.customSqlSegment}")
List<OrderItem> waitOperationOrderItem(@Param(Constants.WRAPPER) Wrapper<OrderSimpleVO> 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);
}

View File

@ -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> {
OrderItem getByOrderSnAndSkuId(String orderSn, String skuId);
List<OrderItem> waitOperationOrderItem(OrderItemOperationDTO orderItemOperationDTO);
void expiredAfterSaleStatusExecuteByAfterSale(DateTime receiveTime);
}

View File

@ -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<OrderItemMapper, OrderItem
queryWrapper.eq(CharSequenceUtil.isNotEmpty(dto.getComplainStatus()), "oi.complain_status", dto.getComplainStatus());
return this.baseMapper.waitOperationOrderItem(queryWrapper);
}
@Override
public void expiredAfterSaleStatusExecuteByAfterSale(DateTime receiveTime) {
this.baseMapper.expiredAfterSaleStatusExecuteByAfterSale(receiveTime);
}
}