超时退出

This commit is contained in:
Van0313
2025-05-02 09:32:30 +08:00
parent f3a198f977
commit 6907836bad

View File

@@ -1589,41 +1589,43 @@ public class JDUtil {
try {
// 从 Redis 获取当前日期的订单计数器
String s = redisTemplate.opsForValue().get(redisKey);
count = s != null ? Integer.parseInt(s) : 1;
count = s != null ? Integer.parseInt(s) : 0; // 初始为 0后面再 ++
logger.info("sendOrderToWxByOrderD.count beforeFor {}", count);
Integer num = 1;
try {
num = Integer.valueOf(split[4].trim());
} catch (NumberFormatException e) {
logger.error("sendOrderToWxByOrderD 订单数量格式错误,请输入正确的数字", e);
wxUtil.sendTextMessage(fromWxid, "订单数量格式错误,请输入正确的数字", 1, fromWxid, false);
return;
}
// 先一次性增加计数器,并设置到 Redis原子性操作
int startCount = count + 1;
int endCount = count + num;
// 更新 Redis 的计数器为最终值
redisTemplate.opsForValue().set(redisKey, String.valueOf(endCount), 1, TimeUnit.DAYS);
// 批量生成订单号并发送
for (int i = 0; i < num; i++) {
count++; // 递增计数器
logger.info("sendOrderToWxByOrderD.count inFor {}", count);
int currentCount = startCount + i;
String orderID = today + String.format("%03d", currentCount); // 格式化为三位数
// 将新的计数器值保存回 Redis
redisTemplate.opsForValue().set(redisKey, String.valueOf(count), 1, TimeUnit.DAYS);
// 生成订单号
String orderID = today + String.format("%03d", count); // 格式化为 3 位数字,不足补零
// 替换模板中的占位符
temp = temp.replace("{单号}", orderID);
temp = temp.replace("{分销标记}", split[1]);
temp = temp.replace("{链接}", split[3]);
temp = temp.replace("{地址}", split[5]);
temp = temp.replace("{型号}", split[2]);
temp = temp.replaceAll("[|]", "");
// 每次使用原始模板进行替换,避免污染
String currentTemp = WENAN_D.replace("{单号}", orderID).replace("{分销标记}", split[1]).replace("{链接}", split[3]).replace("{地址}", split[5]).replace("{型号}", split[2]).replaceAll("[|]", "");
// 发送订单信息到微信
wxUtil.sendTextMessage(fromWxid, temp, 1, fromWxid, true);
wxUtil.sendTextMessage(fromWxid, currentTemp, 1, fromWxid, true);
}
} catch (Exception e) {
logger.error("生成订单号时发生异常 - 用户: {}, 日期: {}", fromWxid, today, e);
wxUtil.sendTextMessage(fromWxid, "生成订单号时发生异常,请重试", 1, fromWxid, false);
}
}
public void sendOrderToWxByOrderP(String order, String fromWxid) {