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 c56ca586..276104ac 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 @@ -2924,7 +2924,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 3. 提取关键参数并校验 - 确保必要参数完整 String logNo = paramsJson.getStr("log_no"); // 合单订单是子单(确认收货)流水号,非合单时是主单(确认收货)流水号 String separateNo = paramsJson.getStr("separate_no"); - String outSeparateNo = paramsJson.getStr("out_separate_no"); + String outSeparateNo = paramsJson.getStr("out_separate_no"); // 商城的订单号 String status = paramsJson.getStr("status"); String finalStatus = paramsJson.getStr("final_status"); @@ -3758,17 +3758,17 @@ public class LakalaApiServiceImpl implements LakalaApiService { request.setMerchantNo(mercId); request.setMerOrderNo(merOrderNo); request.setPayType(payType); + request.setNotifyUrl(projectDomain + "/api/mobile/shop/lakala/ewallet/drawNotify"); // 分转元,保留两位小数点,不要四舍五入 String drawAmtYuan = drawAmtDecimal.divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN).toString(); request.setDrawAmt(drawAmtYuan); // 单位:元 request.setRemark(remark); + if (StrUtil.isNotBlank(summary)) { request.setSummary(summary); } - request.setNotifyUrl(projectDomain + "/api/mobile/shop/lakala/ewallet/drawNotify"); - // 4. 发送请求 String responseStr = LKLSDK.httpPost(request); if (StrUtil.isBlank(responseStr)) { @@ -3840,16 +3840,19 @@ public class LakalaApiServiceImpl implements LakalaApiService { */ @Override public JSONObject ewalletWithDrawNotify(HttpServletRequest request, String merchantNo, String drawJnl) { - log.debug("[拉卡拉D1提现结果通知] 开始处理拉卡拉提现结果通知"); + String signTag = "[拉卡拉提现结果通知]"; + + log.debug("{} 开始处理", signTag); try { JSONObject paramsJSON; + Pair signCheckResult = null; if (request != null) { // 1. 验签处理 - 验证通知来源的合法性 signCheckResult = LakalaUtil.chkLklApiNotifySign(request, lklNotifyCerPath, false); if (signCheckResult != null && !signCheckResult.getFirst()) { - log.warn("[拉卡拉D1提现结果通知] 验签失败: {}", signCheckResult.getSecond()); + log.warn("{} 验签失败: {}", signTag, signCheckResult.getSecond()); return JSONUtil.createObj() .set("code", "FAIL") .set("message", signCheckResult.getSecond()); @@ -3859,12 +3862,12 @@ public class LakalaApiServiceImpl implements LakalaApiService { paramsJSON = JSONUtil.parseObj(signCheckResult.getSecond()); } else { // 补偿机制。主动从拉卡拉上获取提现结果 + signTag = "[查询拉卡拉提现结果补偿]"; paramsJSON = ewalletWithdrawQuery(merchantNo, drawJnl); } - if (JSONUtil.isNull(paramsJSON)) { - log.warn("[拉卡拉D1提现结果通知] 回调参数解析失败"); + log.warn("{} 回调参数解析失败", signTag); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "回调参数解析失败"); @@ -3875,10 +3878,10 @@ public class LakalaApiServiceImpl implements LakalaApiService { String merOrderNo = paramsJSON.getStr("merOrderNo"); String drawJnlRemote = paramsJSON.getStr("drawJnl"); - log.info("[拉卡拉D1提现结果通知] 提现通知参数: drawState={}, mercId={}, merOrderNo={},drawJnlRemote={}", drawState, mercId, merOrderNo, drawJnlRemote); + log.info("{} 提现通知参数: drawState={}, mercId={}, merOrderNo={},drawJnlRemote={}", signTag, drawState, mercId, merOrderNo, drawJnlRemote); if (StrUtil.hasBlank(mercId, merOrderNo, drawJnl, drawState)) { - log.warn("[拉卡拉提现结果通知] 回调参数缺失: drawState={}, mercId={}, merOrderNo={}, drawJnlRemote={}", drawState, mercId, merOrderNo, drawJnlRemote); + log.warn("{} 回调参数缺失: drawState={}, mercId={}, merOrderNo={}, drawJnlRemote={}", signTag, drawState, mercId, merOrderNo, drawJnlRemote); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "回调参数错误"); @@ -3886,7 +3889,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { Boolean isCompensate = lklOrderDrawService.isOrderDrawed(mercId, drawJnl); if (isCompensate) { - log.warn("[拉卡拉D1提现结果通知] 提现结果通知已处理,忽略处理: mercId={}, merOrderNo={}, drawJnl={}", mercId, merOrderNo, drawJnl); + log.warn("{} 提现结果通知已处理,忽略处理: mercId={}, merOrderNo={}, drawJnl={}", signTag, mercId, merOrderNo, drawJnl); return JSONUtil.createObj() .set("code", "SUCCESS") .set("message", "提现结果通知已处理"); @@ -3894,7 +3897,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 只处理成功的提现状态 if (!"DRAW.SUCCESS".equals(drawState)) { - log.debug("[拉卡拉D1提现结果通知] 提现状态未成功,忽略处理: drawState={}", drawState); + log.debug("{} 提现状态未成功,忽略处理: drawState={}", signTag, drawState); return JSONUtil.createObj() .set("code", "FAIL") // 返回成功,避免重复通知 .set("message", "状态未成功,忽略处理"); @@ -3903,7 +3906,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 3. 转换参数并更新数据 String snakeCaseJson = StringUtils.convertCamelToSnake(signCheckResult.getSecond()); if (StringUtils.isBlank(snakeCaseJson)) { - log.error("[拉卡拉D1提现结果通知] 回调参数转换失败,mercId={} merOrderNo={}", mercId, merOrderNo); + log.error("{} 回调参数转换失败,mercId={} merOrderNo={}", signTag, mercId, merOrderNo); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "回调参数转换失败"); @@ -3911,21 +3914,22 @@ public class LakalaApiServiceImpl implements LakalaApiService { LklOrderDraw lklOrderDraw = JSONUtil.toBean(snakeCaseJson, LklOrderDraw.class); if (lklOrderDraw == null) { - log.error("[拉卡拉D1提现结果通知] 回调参数转换为对象失败,mercId={} merOrderNo={}", mercId, merOrderNo); + log.error("{} 回调参数转换为对象失败,mercId={} merOrderNo={}", signTag, mercId, merOrderNo); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "回调参数转换失败"); } + lklOrderDraw.setRemark(lklOrderDraw.getRemark() + " " + signTag); boolean isSuccess = lklOrderDrawService.addOrUpdateByMercIdAndMerOrderNo(lklOrderDraw); if (!isSuccess) { - log.error("[拉卡拉D1提现结果通知] 数据更新失败,mercId={} merOrderNo={}", mercId, merOrderNo); + log.error("{} 数据更新失败,mercId={} merOrderNo={}", signTag, mercId, merOrderNo); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "数据更新失败"); } - log.info("[拉卡拉D1提现结果通知] 拉卡拉提现结果通知处理成功,mercId={} merOrderNo={}", mercId, merOrderNo); + log.info("{} 拉卡拉提现结果通知处理成功,mercId={} merOrderNo={}", signTag, mercId, merOrderNo); // 4. 返回成功响应 return JSONUtil.createObj() @@ -3933,7 +3937,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { .set("message", "处理成功"); } catch (Exception e) { - log.error("[拉卡拉D1提现结果通知] 处理拉卡拉提现结果通知异常", e); + log.error(signTag + " 处理拉卡拉提现结果通知异常", e); return JSONUtil.createObj() .set("code", "FAIL") .set("message", "系统处理异常"); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java index af3dd928..26eec971 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderInfoServiceImpl.java @@ -901,12 +901,15 @@ public class ShopOrderInfoServiceImpl extends BaseServiceImpl