👍 修复自动确认收货的逻辑,后台手动传递确认时限
This commit is contained in:
@@ -27,28 +27,24 @@ public class AutoReceiptJob implements JobHandler {
|
||||
|
||||
@Override
|
||||
public String execute(String param) throws Exception {
|
||||
|
||||
Integer day = Integer.valueOf(param);
|
||||
|
||||
List<TenantDO> tenants = tenantService.getTenantList(new TenantExportReqVO());
|
||||
|
||||
AtomicReference<Integer> num = new AtomicReference<>(0);
|
||||
tenants.forEach(tenantDO -> {
|
||||
|
||||
TenantContextHolder.setTenantId(tenantDO.getId());
|
||||
// 10天未启动收货的订单
|
||||
List<YxStoreOrder> orders = storeOrderService.listTimeoutOrders(day);
|
||||
|
||||
// 每隔30分钟查询7天之前的订单 ,准备自动收获
|
||||
// 测试环境3分钟 TIMESTAMPDIFF(minute,pay_time,{0}) > 3
|
||||
// 线上环境7天 TIMESTAMPDIFF(dat,pay_time,{0}) > 7
|
||||
List<YxStoreOrder> orders = storeOrderService.list(new LambdaQueryWrapper<YxStoreOrder>()
|
||||
.eq(YxStoreOrder::getPaid, OrderInfoEnum.PAY_STATUS_1.getValue())
|
||||
.eq(YxStoreOrder::getStatus, OrderInfoEnum.STATUS_1.getValue())
|
||||
.apply("TIMESTAMPDIFF(day,pay_time,{0}) > 7 ",LocalDateTime.now())
|
||||
);
|
||||
num.updateAndGet(v -> v + orders.size());
|
||||
orders.forEach(yxStoreOrder -> {
|
||||
storeOrderService.takeOrder(yxStoreOrder.getOrderId(), null);
|
||||
});
|
||||
TenantContextHolder.setTenantId(null);
|
||||
});
|
||||
|
||||
return StrUtil.format("合计处理{}个租户,自动收货订单{}条", tenants.size(), num);
|
||||
return StrUtil.format("合计处理{}个租户,按照{}天自动收货订单{}条", tenants.size(), day, num);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -320,4 +320,12 @@ public interface YxStoreOrderService extends BaseService<YxStoreOrder>{
|
||||
|
||||
|
||||
YxStoreOrderDto getOrderDetailByOrderId(Long orderId);
|
||||
|
||||
/**
|
||||
* 获取收货超时的订单
|
||||
* @param day 天数
|
||||
* @return
|
||||
*/
|
||||
List<YxStoreOrder> listTimeoutOrders(Integer day);
|
||||
|
||||
}
|
||||
|
||||
+4
@@ -3084,4 +3084,8 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<YxStoreOrder> listTimeoutOrders(Integer day) {
|
||||
return storeOrderMapper.listTimeoutOrders(day);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,4 +75,15 @@ public interface StoreOrderMapper extends CoreMapper<YxStoreOrder> {
|
||||
" GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d') " +
|
||||
" ORDER BY create_time ASC")
|
||||
List<ChartDataDto> chartListT(@Param("time") Date time);
|
||||
|
||||
@Select("SELECT yso.* FROM " +
|
||||
" `yx_store_order` AS yso " +
|
||||
" LEFT JOIN yx_store_order_status AS ysos ON ysos.oid = yso.id " +
|
||||
"WHERE " +
|
||||
" yso.`status` = 1 " +
|
||||
" AND yso.paid = 1 " +
|
||||
" AND ysos.change_type = 'delivery_goods' " +
|
||||
" AND TIMESTAMPDIFF(day,ysos.change_time,now()) > #{day}")
|
||||
List<YxStoreOrder> listTimeoutOrders(@Param("day") Integer day);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user