超时退出
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user