Files
nuttyreading-java/src/main/java/com/peanut/modules/job/task/ExpressTask.java
2023-11-28 17:37:45 +08:00

71 lines
3.2 KiB
Java

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<BuyOrder> wrapper = new LambdaQueryWrapper();
wrapper.eq(BuyOrder::getOrderStatus,"2");
List<BuyOrder> list = buyOrderService.list(wrapper);
if (list.size() > 0){
for (BuyOrder buyOrder : list) {
MPJLambdaWrapper<BuyOrderProduct> w = new MPJLambdaWrapper();
w.selectAll(ExpressOrder.class);
w.eq(BuyOrderProduct::getOrderId,buyOrder.getOrderId());
w.leftJoin(ExpressOrder.class,ExpressOrder::getId,BuyOrderProduct::getExpressOrderId);
List<Map<String,Object>> plist = productService.listMaps(w);
if (plist.size() > 0){
boolean flag = false;
for (Map<String,Object> 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定时任务执行完毕------");
}
}