确认收货通知 url 方法改成异步操作,防止微信的api时长限制
This commit is contained in:
parent
c5f5978b41
commit
ff7acb1b73
@ -86,7 +86,6 @@ public class LklReceiveNotifyLogServiceImpl extends BaseServiceImpl<LklReceiveNo
|
|||||||
try {
|
try {
|
||||||
log.debug("[LklReceiveNotifyLog] 开始查询拉卡拉确认收货通知记录,订单号={}", orderId);
|
log.debug("[LklReceiveNotifyLog] 开始查询拉卡拉确认收货通知记录,订单号={}", orderId);
|
||||||
|
|
||||||
|
|
||||||
QueryWrapper<LklReceiveNotifyLog> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<LklReceiveNotifyLog> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("order_id", orderId);
|
queryWrapper.eq("order_id", orderId);
|
||||||
|
|
||||||
|
|||||||
@ -385,8 +385,10 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ThreadPoolExecutor executor;
|
private ThreadPoolExecutor executor;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DataSourceTransactionManager transactionManager;
|
private DataSourceTransactionManager transactionManager;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TransactionDefinition transactionDefinition;
|
private TransactionDefinition transactionDefinition;
|
||||||
|
|
||||||
@ -5053,6 +5055,8 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
|
|
||||||
log.info("[确认收货] 符合条件的订单数量: eligibleCount={}, totalChecked={}", receive_id_row.size(), order_rows.size());
|
log.info("[确认收货] 符合条件的订单数量: eligibleCount={}, totalChecked={}", receive_id_row.size(), order_rows.size());
|
||||||
|
|
||||||
|
// 收集需要处理跳转路径的订单ID
|
||||||
|
List<String> jumpPathOrderIds = new ArrayList<>();
|
||||||
// 处理符合条件的订单
|
// 处理符合条件的订单
|
||||||
for (ShopOrderBase order_row : order_rows) {
|
for (ShopOrderBase order_row : order_rows) {
|
||||||
// 只处理符合条件的订单
|
// 只处理符合条件的订单
|
||||||
@ -5076,7 +5080,8 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// 服务号确认收货通知跳转链接设置
|
/// 服务号确认收货通知跳转链接设置
|
||||||
wxOrderShippingService.setMsgJumpPath(order_id);
|
jumpPathOrderIds.add(order_row.getOrder_id());
|
||||||
|
// wxOrderShippingService.setMsgJumpPath(order_id);
|
||||||
|
|
||||||
BigDecimal order_points_add = order_data_row.getOrder_points_add();
|
BigDecimal order_points_add = order_data_row.getOrder_points_add();
|
||||||
BigDecimal order_double_points_add = order_data_row.getOrder_double_points_add();
|
BigDecimal order_double_points_add = order_data_row.getOrder_double_points_add();
|
||||||
@ -5126,6 +5131,11 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 异步批量处理延迟跳转路径设置
|
||||||
|
if (!jumpPathOrderIds.isEmpty()) {
|
||||||
|
processOrderJumpPathAsync(jumpPathOrderIds);
|
||||||
|
}
|
||||||
|
|
||||||
// 修改订单状态, 随机去一个订单获取店铺编号
|
// 修改订单状态, 随机去一个订单获取店铺编号
|
||||||
ShopOrderBase shopOrderBase = order_rows.stream()
|
ShopOrderBase shopOrderBase = order_rows.stream()
|
||||||
.filter(order -> receive_id_row.contains(order.getOrder_id()))
|
.filter(order -> receive_id_row.contains(order.getOrder_id()))
|
||||||
@ -5176,10 +5186,39 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
log.info("[确认收货] 处理完成: processedOrders={}", receive_id_row.size());
|
log.info("[确认收货] 处理完成: processedOrders={}", receive_id_row.size());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 延迟 消息跳转路径设置接口
|
||||||
|
*
|
||||||
|
* @param orderIds
|
||||||
|
*/
|
||||||
|
private void processOrderJumpPathAsync(List<String> orderIds) {
|
||||||
|
if (CollectionUtils.isEmpty(orderIds)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CompletableFuture.runAsync(() -> {
|
||||||
|
for (String orderId : orderIds) {
|
||||||
|
try {
|
||||||
|
// 控制API调用频率
|
||||||
|
Thread.sleep(300); // 根据实际API限制调整
|
||||||
|
wxOrderShippingService.setMsgJumpPath(orderId);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
log.warn("[异步处理] 线程中断,订单ID: {}", orderId);
|
||||||
|
break;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("[异步处理] 消息跳转路径设置失败,订单ID: {}, 错误: {}", orderId, e.getMessage());
|
||||||
|
// 继续处理下一个订单
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, executor);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单确认收货(定时任务用途)
|
* 订单确认收货(定时任务用途)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user