package com.peanut.modules.job.task; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.modules.book.entity.BuyOrder; import com.peanut.modules.book.entity.BuyOrderProduct; import com.peanut.modules.book.entity.ExpressOrder; import com.peanut.modules.book.entity.ExpressQueryResponse; import com.peanut.modules.book.service.BuyOrderProductService; import com.peanut.modules.book.service.BuyOrderService; import com.peanut.modules.book.service.ExpressOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; @Component("expressTask") public class ExpressTask implements ITask{ @Autowired private BuyOrderService buyOrderService; @Autowired private BuyOrderProductService productService; @Autowired private ExpressOrderService expressOrderService; @Override public void run(String params) { System.out.println("------expressTask定时任务正在执行------"); System.out.println("------查询快递修改状态定时任务正在执行------"); System.out.println("------expressTask定时任务正在执行------"); LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); wrapper.eq(BuyOrder::getOrderStatus,"2"); List list = buyOrderService.list(wrapper); if (list.size() > 0){ for (BuyOrder buyOrder : list) { MPJLambdaWrapper w = new MPJLambdaWrapper(); w.selectAll(ExpressOrder.class); w.eq(BuyOrderProduct::getOrderId,buyOrder.getOrderId()); w.leftJoin(ExpressOrder.class,ExpressOrder::getId,BuyOrderProduct::getExpressOrderId); List> plist = productService.listMaps(w); if (plist.size() > 0){ boolean flag = false; for (Map m : plist){ String expressOrderSn = m.get("express_order_sn").toString(); String consigneeMobile = m.get("consignee_mobile").toString(); String expressCompanyCode = m.get("express_company_code").toString(); String tel = consigneeMobile.substring(consigneeMobile.length()-4); ExpressQueryResponse expressQueryResponse = expressOrderService.queryExpressOrder(expressCompanyCode, expressOrderSn, tel); if ("3".equals(expressQueryResponse.getState())){ flag = true; }else { flag = false; } } if (flag){ buyOrder.setOrderStatus("3"); buyOrderService.saveOrUpdate(buyOrder); } } } } System.out.println("------expressTask定时任务执行完毕------"); System.out.println("------查询快递修改状态定时任务执行完毕------"); System.out.println("------expressTask定时任务执行完毕------"); } }