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

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 detailAddress;

View File

@ -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());

View File

@ -3628,13 +3628,13 @@ public class LakalaApiServiceImpl implements LakalaApiService {
*/
@Override
public JSONObject ewalletWithDrawNotify(HttpServletRequest request) {
log.debug("[拉卡拉提现结果通知] 开始处理拉卡拉提现结果通知");
log.debug("[拉卡拉D1提现结果通知] 开始处理拉卡拉提现结果通知");
try {
// 1. 验签处理 - 验证通知来源的合法性
Pair<Boolean, String> 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", "系统处理异常");

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.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<Boolean, String> result = createSfExpressShop(
Convert.toInt(shopMchEntry.getStore_id()),
shopStoreName,
cityName,
shopMchEntry.getStore_address(),
storeAddress,
shopMchEntry.getContact_name(),
contactMobile,
shopMchEntry.getStore_longitude(),