拼多多地址
This commit is contained in:
@@ -152,6 +152,34 @@ public class JDUtil {
|
|||||||
return todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 13 || orderRow.getValidCode() == 25 || orderRow.getValidCode() == 26 || orderRow.getValidCode() == 27 || orderRow.getValidCode() == 28 || orderRow.getValidCode() == 29);
|
return todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 13 || orderRow.getValidCode() == 25 || orderRow.getValidCode() == 26 || orderRow.getValidCode() == 27 || orderRow.getValidCode() == 28 || orderRow.getValidCode() == 29);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拼多多地址
|
||||||
|
*/
|
||||||
|
public String convertAddress(String input) {
|
||||||
|
try {
|
||||||
|
// 正则表达式分解输入内容
|
||||||
|
Pattern pattern = Pattern.compile("^(.+?)\\[(\\d+)\\]\\s+(\\d+)\\s+(.+)\\[\\d+\\]$");
|
||||||
|
Matcher matcher = pattern.matcher(input);
|
||||||
|
|
||||||
|
if (matcher.matches()) {
|
||||||
|
// 提取各部分内容
|
||||||
|
String name = matcher.group(1);
|
||||||
|
String code = matcher.group(2);
|
||||||
|
String phone = matcher.group(3);
|
||||||
|
String address = matcher.group(4).trim();
|
||||||
|
|
||||||
|
// 构造新地址格式
|
||||||
|
return String.format("%s 13068923963 %s联系客户%s转%s",
|
||||||
|
name,
|
||||||
|
address,
|
||||||
|
phone,
|
||||||
|
code);
|
||||||
|
}
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
return "地址格式不匹配";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void sendOrderToWxByOrderDefault(String order, String fromWxid) {
|
public void sendOrderToWxByOrderDefault(String order, String fromWxid) {
|
||||||
logger.info("执行 sendOrderToWxByOrderDefault 方法,order: {}, fromWxid: {}", order, fromWxid);
|
logger.info("执行 sendOrderToWxByOrderDefault 方法,order: {}, fromWxid: {}", order, fromWxid);
|
||||||
handleUserInteraction(fromWxid, order);
|
handleUserInteraction(fromWxid, order);
|
||||||
@@ -186,6 +214,11 @@ public class JDUtil {
|
|||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendOrderToWxByOrderPDD(String order, String fromWxid) {
|
||||||
|
String convertAddress = convertAddress(order);
|
||||||
|
wxUtil.sendTextMessage(fromWxid, convertAddress, 0, fromWxid, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 接收京粉指令指令
|
* 接收京粉指令指令
|
||||||
@@ -617,6 +650,22 @@ public class JDUtil {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
//public UnionOpenGoodsBigfieldQueryResponse getUnionOpenGoodsBigfieldQueryResponse(){
|
||||||
|
// JdClient client = new DefaultJdClient(SERVER_URL, ACCESS_TOKEN, APP_KEY, SECRET_KEY);
|
||||||
|
//
|
||||||
|
// UnionOpenGoodsBigfieldQueryRequest request=new UnionOpenGoodsBigfieldQueryRequest();
|
||||||
|
// BigFieldGoodsReq goodsReq=new BigFieldGoodsReq();
|
||||||
|
// goodsReq.setSkuIds();
|
||||||
|
// request.setGoodsReq(goodsReq);
|
||||||
|
// request.setVersion("1.0");
|
||||||
|
// UnionOpenGoodsBigfieldQueryResponse response= null;
|
||||||
|
// try {
|
||||||
|
// response = client.execute(request);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// throw new RuntimeException(e);
|
||||||
|
// }
|
||||||
|
// return response;
|
||||||
|
//}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消毒柜部分的业务逻辑
|
* 消毒柜部分的业务逻辑
|
||||||
@@ -638,22 +687,6 @@ public class JDUtil {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//public UnionOpenGoodsBigfieldQueryResponse getUnionOpenGoodsBigfieldQueryResponse(){
|
|
||||||
// JdClient client = new DefaultJdClient(SERVER_URL, ACCESS_TOKEN, APP_KEY, SECRET_KEY);
|
|
||||||
//
|
|
||||||
// UnionOpenGoodsBigfieldQueryRequest request=new UnionOpenGoodsBigfieldQueryRequest();
|
|
||||||
// BigFieldGoodsReq goodsReq=new BigFieldGoodsReq();
|
|
||||||
// goodsReq.setSkuIds();
|
|
||||||
// request.setGoodsReq(goodsReq);
|
|
||||||
// request.setVersion("1.0");
|
|
||||||
// UnionOpenGoodsBigfieldQueryResponse response= null;
|
|
||||||
// try {
|
|
||||||
// response = client.execute(request);
|
|
||||||
// } catch (Exception e) {
|
|
||||||
// throw new RuntimeException(e);
|
|
||||||
// }
|
|
||||||
// return response;
|
|
||||||
//}
|
|
||||||
|
|
||||||
private void handleUserInteraction(String fromWxid, String message) {
|
private void handleUserInteraction(String fromWxid, String message) {
|
||||||
String key = INTERACTION_STATE_PREFIX + fromWxid;
|
String key = INTERACTION_STATE_PREFIX + fromWxid;
|
||||||
@@ -702,7 +735,6 @@ public class JDUtil {
|
|||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private boolean isStateExpired(UserInteractionState state) {
|
private boolean isStateExpired(UserInteractionState state) {
|
||||||
LocalDateTime lastTime = LocalDateTime.parse(state.getLastInteractionTime(), DATE_TIME_FORMATTER);
|
LocalDateTime lastTime = LocalDateTime.parse(state.getLastInteractionTime(), DATE_TIME_FORMATTER);
|
||||||
return ChronoUnit.MINUTES.between(lastTime, LocalDateTime.now()) > TIMEOUT_MINUTES;
|
return ChronoUnit.MINUTES.between(lastTime, LocalDateTime.now()) > TIMEOUT_MINUTES;
|
||||||
@@ -932,7 +964,6 @@ public class JDUtil {
|
|||||||
saveState(INTERACTION_STATE_PREFIX + wxid, state);
|
saveState(INTERACTION_STATE_PREFIX + wxid, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 在发送提示信息时增加进度指示
|
// 在发送提示信息时增加进度指示
|
||||||
private void sendStepPrompt(String wxid, int step, int totalSteps) {
|
private void sendStepPrompt(String wxid, int step, int totalSteps) {
|
||||||
String progress = String.format("[%d/%d] ", step, totalSteps);
|
String progress = String.format("[%d/%d] ", step, totalSteps);
|
||||||
@@ -1083,7 +1114,6 @@ public class JDUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成转链和方案的方法
|
* 生成转链和方案的方法
|
||||||
*
|
*
|
||||||
@@ -1487,7 +1517,6 @@ public class JDUtil {
|
|||||||
return urls;
|
return urls;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过这个可以将u.jd.*** 查询到对应的商品信息 和 商品图片,甚至可以查询到是不是自营的商品
|
* 通过这个可以将u.jd.*** 查询到对应的商品信息 和 商品图片,甚至可以查询到是不是自营的商品
|
||||||
*/
|
*/
|
||||||
@@ -1573,7 +1602,6 @@ public class JDUtil {
|
|||||||
return queryResult;
|
return queryResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 新增礼金创建方法
|
// 新增礼金创建方法
|
||||||
public String createGiftCoupon(String skuId, double amount, int quantity, String owner, String skuName) throws Exception {
|
public String createGiftCoupon(String skuId, double amount, int quantity, String owner, String skuName) throws Exception {
|
||||||
logger.debug("准备创建礼金:SKU={}, 金额={}元,数量={}, Owner={}", skuId, amount, quantity, owner);
|
logger.debug("准备创建礼金:SKU={}, 金额={}元,数量={}, Owner={}", skuId, amount, quantity, owner);
|
||||||
@@ -1643,7 +1671,6 @@ public class JDUtil {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 修改activateGiftMoney方法调用真实接口
|
// 修改activateGiftMoney方法调用真实接口
|
||||||
private boolean activateGiftMoney(String skuId, double amount, int quantity, String owner) {
|
private boolean activateGiftMoney(String skuId, double amount, int quantity, String owner) {
|
||||||
return false;
|
return false;
|
||||||
@@ -1667,7 +1694,6 @@ public class JDUtil {
|
|||||||
return "200".equals(response.getCode());
|
return "200".equals(response.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
boolean isValidAmount(String input) {
|
boolean isValidAmount(String input) {
|
||||||
// 新增:直接处理 null 或空字符串
|
// 新增:直接处理 null 或空字符串
|
||||||
if (input == null || input.trim().isEmpty()) {
|
if (input == null || input.trim().isEmpty()) {
|
||||||
@@ -1681,7 +1707,6 @@ public class JDUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private boolean isValidQuantity(String input) {
|
private boolean isValidQuantity(String input) {
|
||||||
if (input == null || input.trim().isEmpty()) {
|
if (input == null || input.trim().isEmpty()) {
|
||||||
logger.error("数量为空或无效: {}", input);
|
logger.error("数量为空或无效: {}", input);
|
||||||
|
|||||||
@@ -247,7 +247,19 @@ private void handlePrivateMessage(WxMessage wxMessage) throws Exception {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String msg = innerData.getMsg();
|
String msg = innerData.getMsg();
|
||||||
|
if (msg.startsWith("京")) {
|
||||||
|
logger.info("消息以京开头,处理京东指令消息");
|
||||||
|
jdUtils.sendOrderToWxByOrderJD(msg.replace("京", ""), fromWxid);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
logger.info("消息不以京开头");
|
||||||
|
}
|
||||||
|
if (msg.startsWith("拼")) {
|
||||||
|
logger.info("消息以拼开头,处理拼多多指令消息");
|
||||||
|
jdUtils.sendOrderToWxByOrderPDD(msg.replace("拼", ""), fromWxid);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
logger.info("未命中前置指令,开始命中 Default 流程");
|
||||||
jdUtils.sendOrderToWxByOrderDefault(msg, fromWxid);
|
jdUtils.sendOrderToWxByOrderDefault(msg, fromWxid);
|
||||||
}
|
}
|
||||||
private void handleGroupMessage (WxMessage wxMessage) {
|
private void handleGroupMessage (WxMessage wxMessage) {
|
||||||
@@ -269,16 +281,11 @@ private void handlePrivateMessage(WxMessage wxMessage) throws Exception {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String msg = innerData.getMsg();
|
String msg = innerData.getMsg();
|
||||||
|
if (msg.startsWith("拼")) {
|
||||||
|
logger.info("消息以拼开头,处理拼多多指令消息");
|
||||||
if (msg.startsWith("京")) {
|
jdUtils.sendOrderToWxByOrderPDD(msg.replace("拼", ""), fromWxid);
|
||||||
logger.info("消息以京开头,处理京东指令消息");
|
|
||||||
jdUtils.sendOrderToWxByOrderJD(msg.replace("京", ""), fromWxid);
|
|
||||||
return;
|
return;
|
||||||
} else {
|
|
||||||
logger.info("消息不以京开头");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("未命中前置指令,开始命中 Default 流程");
|
logger.info("未命中前置指令,开始命中 Default 流程");
|
||||||
jdUtils.sendOrderToWxByOrderDefault(msg, fromWxid);
|
jdUtils.sendOrderToWxByOrderDefault(msg, fromWxid);
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user