From d061510a5e18a38369560befa5052442b39d201a Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Sat, 18 Oct 2025 16:36:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E4=B8=B0=E5=88=9B=E5=BB=BA=E5=BA=97?= =?UTF-8?q?=E9=93=BA=EF=BC=8C=E5=9C=B0=E5=9D=80=E6=94=B9=E6=88=90=20?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E7=9C=81=E5=B8=82=E5=8C=BA=E7=9A=84=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E5=9C=B0=E5=9D=80=E3=80=82=20=E6=8F=90=E7=8E=B0?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E6=97=A5=E5=BF=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/pojo/to/AddressParseResultTO.java | 2 +- .../mall/common/utils/AddressUtil.java | 2 +- .../service/impl/LakalaApiServiceImpl.java | 20 +++++++++---------- .../service/impl/SFExpressApiServiceImpl.java | 19 ++++++++++++------ 4 files changed, 25 insertions(+), 18 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/to/AddressParseResultTO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/to/AddressParseResultTO.java index 5907b161..900eca77 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/pojo/to/AddressParseResultTO.java +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/to/AddressParseResultTO.java @@ -33,7 +33,7 @@ public class AddressParseResultTO implements java.io.Serializable { private String joinArea; /** - * 详细地址 + * (去掉省市县的)详细地址 */ private String detailAddress; diff --git a/mall-common/src/main/java/com/suisung/mall/common/utils/AddressUtil.java b/mall-common/src/main/java/com/suisung/mall/common/utils/AddressUtil.java index e4013607..e6aa08c7 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/utils/AddressUtil.java +++ b/mall-common/src/main/java/com/suisung/mall/common/utils/AddressUtil.java @@ -112,7 +112,7 @@ public class AddressUtil { * System.out.println("详细地址: " + parsedAddress.getDetailAddress()); // 西山镇新安街粤桂花城1102号 */ public static void main(String[] args) { - String fullAddress = "广西壮族自治区贵港市桂平市西山镇新安街粤桂花城1102号"; + String fullAddress = "广西壮族自治区贵港市桂平市桂平西山镇新安街粤桂花城1102号"; AddressParseResultTO parsedAddress = AddressUtil.parseAddress(fullAddress); System.out.println("省: " + parsedAddress.getProvince()); System.out.println("市: " + parsedAddress.getCity()); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java index ba045ddf..f7dcddf1 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java @@ -3628,13 +3628,13 @@ public class LakalaApiServiceImpl implements LakalaApiService { */ @Override public JSONObject ewalletWithDrawNotify(HttpServletRequest request) { - log.debug("[拉卡拉提现结果通知] 开始处理拉卡拉提现结果通知"); + log.debug("[拉卡拉D1提现结果通知] 开始处理拉卡拉提现结果通知"); try { // 1. 验签处理 - 验证通知来源的合法性 Pair signCheckResult = LakalaUtil.chkLklApiNotifySign(request, lklNotifyCerPath, false); if (!signCheckResult.getFirst()) { - log.warn("[LklOrderDraw] 验签失败: {}", signCheckResult.getSecond()); + log.warn("[拉卡拉D1提现结果通知] 验签失败: {}", signCheckResult.getSecond()); return JSONUtil.createObj() .set("code", "FAIL") .set("message", signCheckResult.getSecond()); @@ -3643,7 +3643,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 2. 解析回调参数 JSONObject paramsJSON = JSONUtil.parseObj(signCheckResult.getSecond()); if (paramsJSON == null) { - log.warn("[拉卡拉提现结果通知] 回调参数解析失败"); + log.warn("[拉卡拉D1提现结果通知] 回调参数解析失败"); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "回调参数解析失败"); @@ -3653,7 +3653,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { String mercId = paramsJSON.getStr("mercId"); 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)) { log.warn("[拉卡拉提现结果通知] 回调参数缺失: drawState={}, mercId={}, merOrderNo={}", drawState, mercId, merOrderNo); @@ -3664,7 +3664,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 只处理成功的提现状态 if (!"DRAW.SUCCESS".equals(drawState)) { - log.debug("[拉卡拉提现结果通知] 提现状态未成功,忽略处理: drawState={}", drawState); + log.debug("[拉卡拉D1提现结果通知] 提现状态未成功,忽略处理: drawState={}", drawState); return JSONUtil.createObj() .set("code", "SUCCESS") // 返回成功,避免重复通知 .set("message", "状态未成功,忽略处理"); @@ -3673,7 +3673,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 3. 转换参数并更新数据 String snakeCaseJson = StringUtils.convertCamelToSnake(signCheckResult.getSecond()); if (StringUtils.isBlank(snakeCaseJson)) { - log.error("[拉卡拉提现结果通知] 回调参数转换失败,mercId={} merOrderNo={}", mercId, merOrderNo); + log.error("[拉卡拉D1提现结果通知] 回调参数转换失败,mercId={} merOrderNo={}", mercId, merOrderNo); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "回调参数转换失败"); @@ -3681,7 +3681,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { LklOrderDraw lklOrderDraw = JSONUtil.toBean(snakeCaseJson, LklOrderDraw.class); if (lklOrderDraw == null) { - log.error("[拉卡拉提现结果通知] 回调参数转换为对象失败,mercId={} merOrderNo={}", mercId, merOrderNo); + log.error("[拉卡拉D1提现结果通知] 回调参数转换为对象失败,mercId={} merOrderNo={}", mercId, merOrderNo); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "回调参数转换失败"); @@ -3689,13 +3689,13 @@ public class LakalaApiServiceImpl implements LakalaApiService { boolean isSuccess = lklOrderDrawService.addOrUpdateByMercIdAndMerOrderNo(lklOrderDraw); if (!isSuccess) { - log.error("[拉卡拉提现结果通知] 数据更新失败,mercId={} merOrderNo={}", mercId, merOrderNo); + log.error("[拉卡拉D1提现结果通知] 数据更新失败,mercId={} merOrderNo={}", mercId, merOrderNo); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "数据更新失败"); } - log.info("[拉卡拉提现结果通知] 拉卡拉提现结果通知处理成功,mercId={} merOrderNo={}", mercId, merOrderNo); + log.info("[拉卡拉D1提现结果通知] 拉卡拉提现结果通知处理成功,mercId={} merOrderNo={}", mercId, merOrderNo); // 4. 返回成功响应 return JSONUtil.createObj() @@ -3703,7 +3703,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { .set("message", "处理成功"); } catch (Exception e) { - log.error("[拉卡拉提现结果通知] 处理拉卡拉提现结果通知异常", e); + log.error("[拉卡拉D1提现结果通知] 处理拉卡拉提现结果通知异常", e); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "系统处理异常"); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java index 492a9e7f..3f3f298d 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java @@ -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.pojo.req.*; import com.suisung.mall.common.pojo.res.ThirdApiRes; -import com.suisung.mall.common.utils.CheckUtil; -import com.suisung.mall.common.utils.CommonUtil; -import com.suisung.mall.common.utils.I18nUtil; -import com.suisung.mall.common.utils.JsonUtil; +import com.suisung.mall.common.pojo.to.AddressParseResultTO; +import com.suisung.mall.common.utils.*; import com.suisung.mall.shop.message.service.PushMessageService; import com.suisung.mall.shop.order.service.ShopOrderBaseService; import com.suisung.mall.shop.order.service.ShopOrderInfoService; @@ -162,15 +160,23 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { return Pair.of(false, "联系人手机号不能为空"); } + + AddressParseResultTO addressParseResultTO = AddressUtil.parseAddress(shopMchEntry.getStore_address()); // 解析城市名称 String cityName = "桂平市"; // 默认城市 + + // 去掉省市区的详细地址 + String storeAddress = addressParseResultTO.getDetailAddress(); + if (StrUtil.isNotBlank(shopMchEntry.getStore_area())) { String[] areaNames = shopMchEntry.getStore_area().split("/"); - if (areaNames.length > 0) { + if (areaNames.length >= 3) { cityName = areaNames[areaNames.length - 1]; } else { cityName = shopMchEntry.getStore_area().replace("/", ""); } + } else { + cityName = addressParseResultTO.getCity(); } // 如果解析后城市名为空,使用默认值 @@ -184,12 +190,13 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 为了其他顺丰店同名,店铺名称加上[门店ID]; 如:xxxx[xxxx] 聚万家生鲜超市[69] String shopStoreName = String.format("%s[%s]", shopMchEntry.getStore_name(), shopMchEntry.getStore_id()); + // 调用创建店铺方法 Pair result = createSfExpressShop( Convert.toInt(shopMchEntry.getStore_id()), shopStoreName, cityName, - shopMchEntry.getStore_address(), + storeAddress, shopMchEntry.getContact_name(), contactMobile, shopMchEntry.getStore_longitude(),