抽离礼金

This commit is contained in:
Leo
2025-04-08 15:36:04 +08:00
parent 02346ebff0
commit 9c48e02531

View File

@@ -182,30 +182,44 @@ public class JDUtil {
return "地址格式不匹配";
}
public void sendOrderToWxByOrderDefault(String order, String fromWxid) {
logger.info("执行 sendOrderToWxByOrderDefault 方法order: {}, fromWxid: {}", order, fromWxid);
public void sendOrderToWxByOrderDefault(String order, String fromWxid) {
logger.info("执行 sendOrderToWxByOrderDefault 方法order: {}, fromWxid: {}", order, fromWxid);
if ("".equals(order)) {
// 确保缓存中有消息内容
String cachedMessage = cacheMap.get("giftMessage" + fromWxid);
if (cachedMessage == null || cachedMessage.trim().isEmpty()) {
wxUtil.sendTextMessage(fromWxid, "未找到商品链接,请重新输入包含商品链接的消息。", 1, fromWxid, false);
return;
}
handleGiftCommand(fromWxid);
} else {
handleUserInteraction(fromWxid, order);
}
}
if ("".equals(order)) {
handleGiftCommand(fromWxid, cacheMap.get("giftMessage" + fromWxid));
} else {
handleUserInteraction(fromWxid, order);
}
}
/**
* 处理“礼”指令,直接进入礼金创建流程
*/
private void handleGiftCommand(String fromWxid, String message) {
private void handleGiftCommand(String fromWxid) {
try {
// 1. 提取 u.jd.com 链接
List<String> urls = extractUJDUrls(message);
// 从缓存中获取消息内容
String cachedMessage = cacheMap.get("giftMessage" + fromWxid);
if (cachedMessage == null || cachedMessage.trim().isEmpty()) {
wxUtil.sendTextMessage(fromWxid, "未找到商品链接,请重新输入包含商品链接的消息。", 1, fromWxid, false);
return;
}
// 提取 u.jd.com 链接
List<String> urls = extractUJDUrls(cachedMessage);
if (urls.isEmpty()) {
wxUtil.sendTextMessage(fromWxid, "未找到有效的商品链接,请检查输入格式。", 1, fromWxid, false);
return;
}
// 2. 查询商品信息,筛选有效商品
// 查询商品信息,筛选有效商品
List<GoodsQueryResult> validProducts = new ArrayList<>();
for (String url : urls) {
try {
@@ -223,7 +237,7 @@ private void handleGiftCommand(String fromWxid, String message) {
return;
}
// 3. 缓存商品信息
// 缓存商品信息
String key = INTERACTION_STATE_PREFIX + fromWxid;
UserInteractionState state = loadOrCreateState(key);
@@ -236,7 +250,7 @@ private void handleGiftCommand(String fromWxid, String message) {
saveState(key, state);
// 4. 提示用户输入金额
// 提示用户输入金额
wxUtil.sendTextMessage(fromWxid, "请输入开通金额1-50元支持小数点后两位", 1, fromWxid, false);
} catch (Exception e) {