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; 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; /** * 子订单数据处理层 * * @author Chopper * @since 2020/11/17 7:34 下午 */ public interface OrderItemMapper extends BaseMapper { /** * 获取等待操作订单子项目 * * @param queryWrapper 查询条件 * @return 订单子项列表 */ @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 oi INNER JOIN li_order AS o ON oi.order_sn=o.sn set after_sale_status = 'EXPIRED' where after_sale_status = " + "'NOT_APPLIED' and o.complete_time < #{expiredTime}") void expiredAfterSaleStatus(DateTime expiredTime); /** * 检查售后表,根据售后表中的业务判定是否需要更新售后状态 * * @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); }