顺丰创建店铺,地址改成 去掉省市区的详细地址。 提现通知日志修改

This commit is contained in:
Jack 2025-10-18 16:36:34 +08:00
parent b7701a8685
commit d061510a5e
4 changed files with 25 additions and 18 deletions

View File

@ -33,7 +33,7 @@ public class AddressParseResultTO implements java.io.Serializable {
private String joinArea; private String joinArea;
/** /**
* 详细地址 * 去掉省市县的详细地址
*/ */
private String detailAddress; private String detailAddress;

View File

@ -112,7 +112,7 @@ public class AddressUtil {
* System.out.println("详细地址: " + parsedAddress.getDetailAddress()); // 西山镇新安街粤桂花城1102号 * System.out.println("详细地址: " + parsedAddress.getDetailAddress()); // 西山镇新安街粤桂花城1102号
*/ */
public static void main(String[] args) { public static void main(String[] args) {
String fullAddress = "广西壮族自治区贵港市桂平市西山镇新安街粤桂花城1102号"; String fullAddress = "广西壮族自治区贵港市桂平市桂平西山镇新安街粤桂花城1102号";
AddressParseResultTO parsedAddress = AddressUtil.parseAddress(fullAddress); AddressParseResultTO parsedAddress = AddressUtil.parseAddress(fullAddress);
System.out.println("省: " + parsedAddress.getProvince()); System.out.println("省: " + parsedAddress.getProvince());
System.out.println("市: " + parsedAddress.getCity()); System.out.println("市: " + parsedAddress.getCity());

View File

@ -3628,13 +3628,13 @@ public class LakalaApiServiceImpl implements LakalaApiService {
*/ */
@Override @Override
public JSONObject ewalletWithDrawNotify(HttpServletRequest request) { public JSONObject ewalletWithDrawNotify(HttpServletRequest request) {
log.debug("[拉卡拉提现结果通知] 开始处理拉卡拉提现结果通知"); log.debug("[拉卡拉D1提现结果通知] 开始处理拉卡拉提现结果通知");
try { try {
// 1. 验签处理 - 验证通知来源的合法性 // 1. 验签处理 - 验证通知来源的合法性
Pair<Boolean, String> signCheckResult = LakalaUtil.chkLklApiNotifySign(request, lklNotifyCerPath, false); Pair<Boolean, String> signCheckResult = LakalaUtil.chkLklApiNotifySign(request, lklNotifyCerPath, false);
if (!signCheckResult.getFirst()) { if (!signCheckResult.getFirst()) {
log.warn("[LklOrderDraw] 验签失败: {}", signCheckResult.getSecond()); log.warn("[拉卡拉D1提现结果通知] 验签失败: {}", signCheckResult.getSecond());
return JSONUtil.createObj() return JSONUtil.createObj()
.set("code", "FAIL") .set("code", "FAIL")
.set("message", signCheckResult.getSecond()); .set("message", signCheckResult.getSecond());
@ -3643,7 +3643,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
// 2. 解析回调参数 // 2. 解析回调参数
JSONObject paramsJSON = JSONUtil.parseObj(signCheckResult.getSecond()); JSONObject paramsJSON = JSONUtil.parseObj(signCheckResult.getSecond());
if (paramsJSON == null) { if (paramsJSON == null) {
log.warn("[拉卡拉提现结果通知] 回调参数解析失败"); log.warn("[拉卡拉D1提现结果通知] 回调参数解析失败");
return JSONUtil.createObj() return JSONUtil.createObj()
.set("code", "FAIL") .set("code", "FAIL")
.set("message", "回调参数解析失败"); .set("message", "回调参数解析失败");
@ -3653,7 +3653,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
String mercId = paramsJSON.getStr("mercId"); String mercId = paramsJSON.getStr("mercId");
String merOrderNo = paramsJSON.getStr("merOrderNo"); String merOrderNo = paramsJSON.getStr("merOrderNo");
log.info("[拉卡拉提现结果通知] 提现通知参数: drawState={}, mercId={}, merOrderNo={}", drawState, mercId, merOrderNo); log.info("[拉卡拉D1提现结果通知] 提现通知参数: drawState={}, mercId={}, merOrderNo={}", drawState, mercId, merOrderNo);
if (StrUtil.isBlank(mercId) || StrUtil.isBlank(merOrderNo) || StrUtil.isBlank(drawState)) { if (StrUtil.isBlank(mercId) || StrUtil.isBlank(merOrderNo) || StrUtil.isBlank(drawState)) {
log.warn("[拉卡拉提现结果通知] 回调参数缺失: drawState={}, mercId={}, merOrderNo={}", drawState, mercId, merOrderNo); log.warn("[拉卡拉提现结果通知] 回调参数缺失: drawState={}, mercId={}, merOrderNo={}", drawState, mercId, merOrderNo);
@ -3664,7 +3664,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
// 只处理成功的提现状态 // 只处理成功的提现状态
if (!"DRAW.SUCCESS".equals(drawState)) { if (!"DRAW.SUCCESS".equals(drawState)) {
log.debug("[拉卡拉提现结果通知] 提现状态未成功,忽略处理: drawState={}", drawState); log.debug("[拉卡拉D1提现结果通知] 提现状态未成功,忽略处理: drawState={}", drawState);
return JSONUtil.createObj() return JSONUtil.createObj()
.set("code", "SUCCESS") // 返回成功避免重复通知 .set("code", "SUCCESS") // 返回成功避免重复通知
.set("message", "状态未成功,忽略处理"); .set("message", "状态未成功,忽略处理");
@ -3673,7 +3673,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
// 3. 转换参数并更新数据 // 3. 转换参数并更新数据
String snakeCaseJson = StringUtils.convertCamelToSnake(signCheckResult.getSecond()); String snakeCaseJson = StringUtils.convertCamelToSnake(signCheckResult.getSecond());
if (StringUtils.isBlank(snakeCaseJson)) { if (StringUtils.isBlank(snakeCaseJson)) {
log.error("[拉卡拉提现结果通知] 回调参数转换失败mercId={} merOrderNo={}", mercId, merOrderNo); log.error("[拉卡拉D1提现结果通知] 回调参数转换失败mercId={} merOrderNo={}", mercId, merOrderNo);
return JSONUtil.createObj() return JSONUtil.createObj()
.set("code", "FAIL") .set("code", "FAIL")
.set("message", "回调参数转换失败"); .set("message", "回调参数转换失败");
@ -3681,7 +3681,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
LklOrderDraw lklOrderDraw = JSONUtil.toBean(snakeCaseJson, LklOrderDraw.class); LklOrderDraw lklOrderDraw = JSONUtil.toBean(snakeCaseJson, LklOrderDraw.class);
if (lklOrderDraw == null) { if (lklOrderDraw == null) {
log.error("[拉卡拉提现结果通知] 回调参数转换为对象失败mercId={} merOrderNo={}", mercId, merOrderNo); log.error("[拉卡拉D1提现结果通知] 回调参数转换为对象失败mercId={} merOrderNo={}", mercId, merOrderNo);
return JSONUtil.createObj() return JSONUtil.createObj()
.set("code", "FAIL") .set("code", "FAIL")
.set("message", "回调参数转换失败"); .set("message", "回调参数转换失败");
@ -3689,13 +3689,13 @@ public class LakalaApiServiceImpl implements LakalaApiService {
boolean isSuccess = lklOrderDrawService.addOrUpdateByMercIdAndMerOrderNo(lklOrderDraw); boolean isSuccess = lklOrderDrawService.addOrUpdateByMercIdAndMerOrderNo(lklOrderDraw);
if (!isSuccess) { if (!isSuccess) {
log.error("[拉卡拉提现结果通知] 数据更新失败mercId={} merOrderNo={}", mercId, merOrderNo); log.error("[拉卡拉D1提现结果通知] 数据更新失败mercId={} merOrderNo={}", mercId, merOrderNo);
return JSONUtil.createObj() return JSONUtil.createObj()
.set("code", "FAIL") .set("code", "FAIL")
.set("message", "数据更新失败"); .set("message", "数据更新失败");
} }
log.info("[拉卡拉提现结果通知] 拉卡拉提现结果通知处理成功mercId={} merOrderNo={}", mercId, merOrderNo); log.info("[拉卡拉D1提现结果通知] 拉卡拉提现结果通知处理成功mercId={} merOrderNo={}", mercId, merOrderNo);
// 4. 返回成功响应 // 4. 返回成功响应
return JSONUtil.createObj() return JSONUtil.createObj()
@ -3703,7 +3703,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
.set("message", "处理成功"); .set("message", "处理成功");
} catch (Exception e) { } catch (Exception e) {
log.error("[拉卡拉提现结果通知] 处理拉卡拉提现结果通知异常", e); log.error("[拉卡拉D1提现结果通知] 处理拉卡拉提现结果通知异常", e);
return JSONUtil.createObj() return JSONUtil.createObj()
.set("code", "FAIL") .set("code", "FAIL")
.set("message", "系统处理异常"); .set("message", "系统处理异常");

View File

@ -24,10 +24,8 @@ import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase;
import com.suisung.mall.common.modules.store.ShopStoreSfOrder; import com.suisung.mall.common.modules.store.ShopStoreSfOrder;
import com.suisung.mall.common.pojo.req.*; import com.suisung.mall.common.pojo.req.*;
import com.suisung.mall.common.pojo.res.ThirdApiRes; import com.suisung.mall.common.pojo.res.ThirdApiRes;
import com.suisung.mall.common.utils.CheckUtil; import com.suisung.mall.common.pojo.to.AddressParseResultTO;
import com.suisung.mall.common.utils.CommonUtil; import com.suisung.mall.common.utils.*;
import com.suisung.mall.common.utils.I18nUtil;
import com.suisung.mall.common.utils.JsonUtil;
import com.suisung.mall.shop.message.service.PushMessageService; import com.suisung.mall.shop.message.service.PushMessageService;
import com.suisung.mall.shop.order.service.ShopOrderBaseService; import com.suisung.mall.shop.order.service.ShopOrderBaseService;
import com.suisung.mall.shop.order.service.ShopOrderInfoService; import com.suisung.mall.shop.order.service.ShopOrderInfoService;
@ -162,15 +160,23 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
return Pair.of(false, "联系人手机号不能为空"); return Pair.of(false, "联系人手机号不能为空");
} }
AddressParseResultTO addressParseResultTO = AddressUtil.parseAddress(shopMchEntry.getStore_address());
// 解析城市名称 // 解析城市名称
String cityName = "桂平市"; // 默认城市 String cityName = "桂平市"; // 默认城市
// 去掉省市区的详细地址
String storeAddress = addressParseResultTO.getDetailAddress();
if (StrUtil.isNotBlank(shopMchEntry.getStore_area())) { if (StrUtil.isNotBlank(shopMchEntry.getStore_area())) {
String[] areaNames = shopMchEntry.getStore_area().split("/"); String[] areaNames = shopMchEntry.getStore_area().split("/");
if (areaNames.length > 0) { if (areaNames.length >= 3) {
cityName = areaNames[areaNames.length - 1]; cityName = areaNames[areaNames.length - 1];
} else { } else {
cityName = shopMchEntry.getStore_area().replace("/", ""); cityName = shopMchEntry.getStore_area().replace("/", "");
} }
} else {
cityName = addressParseResultTO.getCity();
} }
// 如果解析后城市名为空使用默认值 // 如果解析后城市名为空使用默认值
@ -184,12 +190,13 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
// 为了其他顺丰店同名店铺名称加上[门店ID]; xxxx[xxxx] 聚万家生鲜超市[69] // 为了其他顺丰店同名店铺名称加上[门店ID]; xxxx[xxxx] 聚万家生鲜超市[69]
String shopStoreName = String.format("%s[%s]", shopMchEntry.getStore_name(), shopMchEntry.getStore_id()); String shopStoreName = String.format("%s[%s]", shopMchEntry.getStore_name(), shopMchEntry.getStore_id());
// 调用创建店铺方法 // 调用创建店铺方法
Pair<Boolean, String> result = createSfExpressShop( Pair<Boolean, String> result = createSfExpressShop(
Convert.toInt(shopMchEntry.getStore_id()), Convert.toInt(shopMchEntry.getStore_id()),
shopStoreName, shopStoreName,
cityName, cityName,
shopMchEntry.getStore_address(), storeAddress,
shopMchEntry.getContact_name(), shopMchEntry.getContact_name(),
contactMobile, contactMobile,
shopMchEntry.getStore_longitude(), shopMchEntry.getStore_longitude(),