菜单优化
This commit is contained in:
BIN
.idea/.cache/.Apifox_Helper/.toolWindow.db
generated
Normal file
BIN
.idea/.cache/.Apifox_Helper/.toolWindow.db
generated
Normal file
Binary file not shown.
9
.idea/jpa-buddy-datasource.xml
generated
Normal file
9
.idea/jpa-buddy-datasource.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JpbDataSourceConfig">
|
||||
<data-source-infos>
|
||||
<data-source-info id="eb8a6f9c-c8ff-4224-9875-8dd3cf91a680" persistence-unit-name="jd:jd" />
|
||||
<data-source-info id="cc2bffcd-366e-45f1-9199-7c59c6f5def9" persistence-unit-name="jd:entityManagerFactory" />
|
||||
</data-source-infos>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/sqldialects.xml
generated
Normal file
6
.idea/sqldialects.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="SqlDialectMappings">
|
||||
<file url="file://$PROJECT_DIR$/src/main/java/cn/van/business/model/jd/update-schema.sql" dialect="MySQL" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -1152,28 +1152,8 @@ public class JDUtil {
|
||||
case GIFT_MONEY_FLOW:
|
||||
handleGiftMoneyFlow(fromWxid, message, state);
|
||||
break;
|
||||
|
||||
case DISINFECTANT_CABINET:
|
||||
if ("退出".equals(message)) {
|
||||
state.setCurrentState(INIT);
|
||||
wxUtil.sendTextMessage(fromWxid, "退出登记", 1, fromWxid);
|
||||
logger.debug("User {} exited DISINFECTANT_CABINET state", fromWxid);
|
||||
} else {
|
||||
state.getCollectedFields().put(state.getCurrentField(), message);
|
||||
if (state.getCurrentField().equals("orderId")) {
|
||||
state.setCurrentField("recipientName");
|
||||
wxUtil.sendTextMessage(fromWxid, "请输入收件人姓名:", 1, fromWxid);
|
||||
} else if (state.getCurrentField().equals("recipientName")) {
|
||||
state.setCurrentField("recipientPhone");
|
||||
wxUtil.sendTextMessage(fromWxid, "请输入收件人电话:", 1, fromWxid);
|
||||
} else if (state.getCurrentField().equals("recipientPhone")) {
|
||||
// 所有字段收集完毕,保存订单
|
||||
saveProductOrder(state.getCollectedFields());
|
||||
state.setCurrentState(INIT);
|
||||
wxUtil.sendTextMessage(fromWxid, "订单已登记", 1, fromWxid);
|
||||
logger.debug("User {} completed order registration", fromWxid);
|
||||
}
|
||||
}
|
||||
case PRODUCT_ORDER_REGISTRATION:
|
||||
handleProductOrderRegistration(fromWxid, message, state);
|
||||
break;
|
||||
default:
|
||||
wxUtil.sendTextMessage(fromWxid, "无效的状态,请重新开始对话", 1, fromWxid);
|
||||
@@ -1190,18 +1170,7 @@ public class JDUtil {
|
||||
}
|
||||
}
|
||||
|
||||
private void saveProductOrder(Map<String, String> fields) {
|
||||
// 创建 ProductOrder 对象并保存到数据库
|
||||
ProductOrder productOrder = new ProductOrder();
|
||||
productOrder.setOrderId(fields.get("orderId"));
|
||||
productOrder.setOrderTime(new Date());
|
||||
productOrder.setRecipientName(fields.get("recipientName"));
|
||||
// 设置其他字段...
|
||||
|
||||
// 保存到数据库
|
||||
productOrderRepository.save(productOrder);
|
||||
logger.debug("Saved product order: {}", productOrder);
|
||||
}
|
||||
|
||||
// 新增礼金流程处理方法
|
||||
private void handleGiftMoneyFlow(String fromWxid, String message, UserInteractionState state) {
|
||||
@@ -1213,26 +1182,26 @@ public class JDUtil {
|
||||
|
||||
try {
|
||||
switch (state.getCurrentStep()) {
|
||||
//case STEP_PRODUCT_LINK:
|
||||
// // 解析商品链接获取SKU
|
||||
// String skuId = parseSkuFromUrl(message);
|
||||
// Map<String, String> productInfo = queryProductInfo(skuId);
|
||||
// state.getCollectedFields().put("skuId", skuId);
|
||||
// state.getCollectedFields().put("productInfo", productInfo.get("name") + "\n价格:" + productInfo.get("price"));
|
||||
//
|
||||
// state.setCurrentStep(STEP_AMOUNT);
|
||||
// wxUtil.sendTextMessage(fromWxid, "商品信息:\n" + productInfo.get("name") + "\n当前价格:" + productInfo.get("price") + "\n请输入开通金额(元):", 1, fromWxid);
|
||||
// break;
|
||||
//
|
||||
//case STEP_AMOUNT:
|
||||
// if (!isValidAmount(message)) {
|
||||
// wxUtil.sendTextMessage(fromWxid, "金额格式错误,请重新输入", 1, fromWxid);
|
||||
// return;
|
||||
// }
|
||||
// state.getCollectedFields().put("amount", message);
|
||||
// state.setCurrentStep(STEP_QUANTITY);
|
||||
// wxUtil.sendTextMessage(fromWxid, "请输入开通数量:", 1, fromWxid);
|
||||
// break;
|
||||
case STEP_PRODUCT_LINK:
|
||||
// 解析商品链接获取SKU
|
||||
String skuId = parseSkuFromUrl(message);
|
||||
Map<String, String> productInfo = queryProductInfo(skuId);
|
||||
state.getCollectedFields().put("skuId", skuId);
|
||||
state.getCollectedFields().put("productInfo", productInfo.get("name") + "\n价格:" + productInfo.get("price"));
|
||||
|
||||
state.setCurrentStep(STEP_AMOUNT);
|
||||
wxUtil.sendTextMessage(fromWxid, "商品信息:\n" + productInfo.get("name") + "\n当前价格:" + productInfo.get("price") + "\n请输入开通金额(元):", 1, fromWxid);
|
||||
break;
|
||||
|
||||
case STEP_AMOUNT:
|
||||
if (!isValidAmount(message)) {
|
||||
wxUtil.sendTextMessage(fromWxid, "金额格式错误,请重新输入", 1, fromWxid);
|
||||
return;
|
||||
}
|
||||
state.getCollectedFields().put("amount", message);
|
||||
state.setCurrentStep(STEP_QUANTITY);
|
||||
wxUtil.sendTextMessage(fromWxid, "请输入开通数量:", 1, fromWxid);
|
||||
break;
|
||||
|
||||
case STEP_QUANTITY:
|
||||
if (!isValidQuantity(message)) {
|
||||
@@ -1255,6 +1224,14 @@ public class JDUtil {
|
||||
state.reset();
|
||||
}
|
||||
}
|
||||
private String parseSkuFromUrl(String url) {
|
||||
// 实现从URL中解析SKU的逻辑
|
||||
return "123456"; // 示例返回值
|
||||
}
|
||||
|
||||
private boolean isValidAmount(String input) {
|
||||
return input.matches("^\\d+(\\.\\d{1,2})?$");
|
||||
}
|
||||
|
||||
private Map<String, String> queryProductInfo(String skuId) {
|
||||
// 调用京东商品查询API(需要实现)
|
||||
@@ -1269,7 +1246,7 @@ public class JDUtil {
|
||||
// 实现实际的开通接口调用
|
||||
return true;
|
||||
}
|
||||
public void handleProductOrderRegistration(String fromWxid, String message, UserInteractionState state) {
|
||||
private void handleProductOrderRegistration(String fromWxid, String message, UserInteractionState state) {
|
||||
switch (state.getCurrentProductOrderStep()) {
|
||||
case STEP_ORDER_ID:
|
||||
if (!message.matches("^\\d{10,20}$")) {
|
||||
@@ -1326,7 +1303,7 @@ public class JDUtil {
|
||||
}
|
||||
}
|
||||
|
||||
// 构建确认信息模板
|
||||
|
||||
private String buildConfirmMessage(UserInteractionState state) {
|
||||
return "📋 请确认登记信息:\n" +
|
||||
"────────────────\n" +
|
||||
@@ -1340,7 +1317,6 @@ public class JDUtil {
|
||||
"回复【确认】提交,其他内容重新开始";
|
||||
}
|
||||
|
||||
// 保存完整订单
|
||||
private boolean saveFullProductOrder(UserInteractionState state, String fromWxid) {
|
||||
try {
|
||||
ProductOrder order = new ProductOrder();
|
||||
@@ -1365,22 +1341,18 @@ public class JDUtil {
|
||||
}
|
||||
}
|
||||
|
||||
// 获取商品类型描述
|
||||
private String getTypeDesc(String skuType) {
|
||||
switch (skuType) {
|
||||
case "1":
|
||||
return "家电";
|
||||
case "2":
|
||||
return "数码";
|
||||
case "3":
|
||||
return "服饰";
|
||||
default:
|
||||
return "未知类型";
|
||||
}
|
||||
return switch (skuType) {
|
||||
case "1" -> "家电";
|
||||
case "2" -> "数码";
|
||||
case "3" -> "服饰";
|
||||
default -> "未知类型";
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 定义一个内部类来存储用户交互状态
|
||||
@Getter
|
||||
@Setter
|
||||
|
||||
Reference in New Issue
Block a user