From d83f6f06ae0224a06a6dccc2cee762b8b4a611bf Mon Sep 17 00:00:00 2001 From: hurui <177768073@qq.com> Date: Wed, 7 Jun 2023 10:48:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/v1/NotifyController.java | 11 +++- open-api/src/main/resources/dev/logback.xml | 63 ++++++++++++++++++ open-api/src/main/resources/prod/logback.xml | 44 +++++++++++++ .../lakala/LaKaLaTradeSeparateService.java | 17 ++++- .../channel/lakala/LaKaLaTradeService.java | 13 ++++ .../channel/lakala/LaKaLaWalletService.java | 64 +++++++++++++++++-- .../hfkj/service/impl/BsMerServiceImpl.java | 1 + 7 files changed, 204 insertions(+), 9 deletions(-) diff --git a/open-api/src/main/java/com/api/controller/v1/NotifyController.java b/open-api/src/main/java/com/api/controller/v1/NotifyController.java index c3a1dac..6dd5f24 100644 --- a/open-api/src/main/java/com/api/controller/v1/NotifyController.java +++ b/open-api/src/main/java/com/api/controller/v1/NotifyController.java @@ -48,7 +48,8 @@ public class NotifyController { @ApiOperation(value = "拉卡拉交易通知") public void lakala(@RequestBody String reqBody, HttpServletResponse response) { try { - log.info("拉卡拉交易通知:", reqBody); + log.info("========= Start 拉卡拉交易通知 Start ==========="); + log.info("平台接收拉卡拉交易通知:", reqBody); System.out.println(reqBody); JSONObject body = JSONObject.parseObject(reqBody); @@ -86,7 +87,11 @@ public class NotifyController { responseQueryTradeModel.setPayTime(tradeOrder.getPayTime()); responseQueryTradeModel.setAttach(tradeOrder.getAttach()); responseQueryTradeModel.setSign(SignatureUtil.createSign(responseQueryTradeModel, merKeyService.getKeyByMerNo(tradeOrder.getMerNo()))); + + log.info("发送URL:", order.getPayNotifyUrl()); + log.info("发送参数:", JSONObject.toJSONString(responseQueryTradeModel)); JSONObject result = HttpsUtils.doPost(order.getPayNotifyUrl(), JSONObject.toJSONString(responseQueryTradeModel)); + log.info("响应参数:", result); BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); out.write(result.toJSONString().getBytes()); out.flush(); @@ -94,7 +99,9 @@ public class NotifyController { } } catch (Exception e) { - log.error("login error!",e); + log.info("出现异常", e); + } finally { + log.info("========= END 拉卡拉交易通知 END ==========="); } } diff --git a/open-api/src/main/resources/dev/logback.xml b/open-api/src/main/resources/dev/logback.xml index 6011524..604f1ad 100644 --- a/open-api/src/main/resources/dev/logback.xml +++ b/open-api/src/main/resources/dev/logback.xml @@ -112,4 +112,67 @@ + + + + log/requestV1.log + + log/requestV1/requestV1.log.%d.%i + + + 64 MB + + + + + %d %p (%file:%line\)- %m%n + + UTF-8 + + + + + + + + log/laklalog.log + + log/laklalog/laklalog.log.%d.%i + + + 64 MB + + + + + %d %p (%file:%line\)- %m%n + + UTF-8 + + + + + + + + + log/lklTradeNotify.log + + log/lklTradeNotify/lklTradeNotify.log.%d.%i + + + 64 MB + + + + + %d %p (%file:%line\)- %m%n + + UTF-8 + + + + + + diff --git a/open-api/src/main/resources/prod/logback.xml b/open-api/src/main/resources/prod/logback.xml index 60947fa..c1ce5a6 100644 --- a/open-api/src/main/resources/prod/logback.xml +++ b/open-api/src/main/resources/prod/logback.xml @@ -91,6 +91,7 @@ + log/hsg.log @@ -111,4 +112,47 @@ + + + + log/requestV1.log + + log/requestV1/requestV1.log.%d.%i + + + 64 MB + + + + + %d %p (%file:%line\)- %m%n + + UTF-8 + + + + + + + + + log/lklTradeNotify.log + + log/lklTradeNotify/lklTradeNotify.log.%d.%i + + + 64 MB + + + + + %d %p (%file:%line\)- %m%n + + UTF-8 + + + + + + diff --git a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeSeparateService.java b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeSeparateService.java index c42a13a..9413fc5 100644 --- a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeSeparateService.java +++ b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeSeparateService.java @@ -15,6 +15,8 @@ import com.hfkj.model.MerBasisModel; import com.hfkj.service.*; import com.hfkj.sysenum.*; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -28,6 +30,8 @@ import java.util.*; @Service public class LaKaLaTradeSeparateService { + private static Logger log = LoggerFactory.getLogger(LaKaLaTradeSeparateService.class); + @Resource private BsTradeOrderService tradeOrderService; @Resource @@ -43,6 +47,7 @@ public class LaKaLaTradeSeparateService { * @return */ public BsTradeOrderProfitSharing separate(String profitSharingOrderNo) { + log.info("========= Start 分账 Start ==========="); // 交易分账 BsTradeOrderProfitSharing tradeOrderProfitSharing = tradeOrderProfitSharingService.getDetailByProfitSharingOrderNo(profitSharingOrderNo); if (null == tradeOrderProfitSharing) { @@ -90,7 +95,9 @@ public class LaKaLaTradeSeparateService { Map heard = new HashMap<>(); heard.put("Authorization", reqParam.get("Authorization")); + log.info("请求参数:",JSONObject.toJSONString(commonParam)); JSONObject responseBody = HttpsUtils.doPost(CommonSysConst.getSysConfig().getLkl_request_url() + "/api/v3/sacs/separate", commonParam, heard); + log.info("响应参数:", responseBody.toJSONString()); System.out.println("body:" + JSONObject.toJSONString(commonParam)); System.out.println("response:" + responseBody.toJSONString()); @@ -124,7 +131,7 @@ public class LaKaLaTradeSeparateService { tradeOrderProfitSharingReceiverService.editData(receiver); } } - + log.info("========= END 分账 END ==========="); return tradeOrderProfitSharing; } @@ -169,6 +176,7 @@ public class LaKaLaTradeSeparateService { * @return */ public JSONObject cancel(String profitSharingOrderNo) { + log.info("========= Start 分账撤销 Start ==========="); // 交易订单分账 BsTradeOrderProfitSharing tradeOrderProfitSharing = tradeOrderProfitSharingService.getDetailByProfitSharingOrderNo(profitSharingOrderNo); if (null == tradeOrderProfitSharing) { @@ -190,7 +198,9 @@ public class LaKaLaTradeSeparateService { Map heard = new HashMap<>(); heard.put("Authorization", reqParam.get("Authorization")); + log.info("请求参数:",JSONObject.toJSONString(commonParam)); JSONObject responseBody = HttpsUtils.doPost(CommonSysConst.getSysConfig().getLkl_request_url() + "/api/v3/sacs/cancel", commonParam, heard); + log.info("响应参数:", responseBody.toJSONString()); System.out.println("body:" + JSONObject.toJSONString(commonParam)); System.out.println("response:" + responseBody.toJSONString()); if (!responseBody.getString("code").equals("SACS0000")) { @@ -199,6 +209,7 @@ public class LaKaLaTradeSeparateService { tradeOrderProfitSharing.setStatus(ProfitSharingStatusEnum.status2.getNumber()); tradeOrderProfitSharing.setPlatformProfitSharingOrderNo(responseBody.getJSONObject("resp_data").getString("separate_no")); tradeOrderProfitSharingService.editData(tradeOrderProfitSharing); + log.info("========= end 分账撤销 end ==========="); return responseBody.getJSONObject("resp_data"); } @@ -256,6 +267,7 @@ public class LaKaLaTradeSeparateService { * @return */ public JSONObject query(String profitSharingOrderNo) { + log.info("========= Start 分账结果查询 Start ==========="); // 交易订单分账 BsTradeOrderProfitSharing tradeOrderProfitSharing = tradeOrderProfitSharingService.getDetailByProfitSharingOrderNo(profitSharingOrderNo); if (null == tradeOrderProfitSharing) { @@ -276,12 +288,15 @@ public class LaKaLaTradeSeparateService { Map heard = new HashMap<>(); heard.put("Authorization", reqParam.get("Authorization")); + log.info("请求参数:",JSONObject.toJSONString(commonParam)); JSONObject responseBody = HttpsUtils.doPost(CommonSysConst.getSysConfig().getLkl_request_url() + "/api/v3/sacs/query", commonParam, heard); + log.info("响应参数:", responseBody.toJSONString()); System.out.println("body:" + JSONObject.toJSONString(commonParam)); System.out.println("response:" + responseBody.toJSONString()); if (!responseBody.getString("code").equals("SACS0000")) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, responseBody.getString("msg")); } + log.info("========= end 分账结果查询 end ==========="); return responseBody.getJSONObject("resp_data"); } diff --git a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java index 1a06b2e..c2c72fe 100644 --- a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java +++ b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java @@ -12,6 +12,8 @@ import com.hfkj.channel.lakala.config.LaKaLaConfig; import com.hfkj.service.*; import com.hfkj.sysenum.*; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -25,6 +27,8 @@ import java.util.*; @Service("lklTradeService") public class LaKaLaTradeService { + private static Logger log = LoggerFactory.getLogger(LaKaLaTradeService.class); + @Resource private BsTradeOrderService tradeOrderService; @@ -173,6 +177,7 @@ public class LaKaLaTradeService { * @param tradeNo 订单号 */ public Map preorder(String tradeNo) { + log.info("========= Start 交易【主扫】 Start ==========="); // 查询交易订单 BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(tradeNo); if (order == null) { @@ -246,6 +251,7 @@ public class LaKaLaTradeService { heard.put("Authorization", reqParam.get("Authorization")); // 请求记录 + log.info("请求参数:", JSONObject.toJSONString(commonParam)); Map requestMap = new HashMap<>(); requestMap.put("Authorization", reqParam.get("Authorization")); requestMap.put("req_data", JSONObject.toJSONString(commonParam)); @@ -257,6 +263,7 @@ public class LaKaLaTradeService { // 请求拉卡拉接口 JSONObject responseBody = HttpsUtils.doPost(CommonSysConst.getSysConfig().getLkl_request_url() + "/api/v3/labs/trans/preorder", commonParam, heard); + log.info("响应参数:", JSONObject.toJSONString(responseBody)); orderMsg.setResponseContent(responseBody.toJSONString()); tradeOrderMsgService.editTradeOrderMsg(orderMsg); @@ -269,6 +276,8 @@ public class LaKaLaTradeService { returnMap.put("payMode", order.getPayMode()); returnMap.put("platformType", PlatformTypeEnum.type1.getNumber()); returnMap.put("payParam", responseBody.getJSONObject("resp_data")); + log.info("========= END 交易【主扫】 END ==========="); + return returnMap; } @@ -278,6 +287,7 @@ public class LaKaLaTradeService { * @param refundNo 订单号 */ public Map refund(String refundNo,BigDecimal refundAmount) { + log.info("========= Start 交易退款 Start ==========="); // 查询交易订单 BsTradeOrderRefund orderRefund = tradeOrderRefundService.getRefundByRefundNo(refundNo); if (orderRefund == null) { @@ -330,6 +340,7 @@ public class LaKaLaTradeService { heard.put("Authorization", reqParam.get("Authorization")); // 请求记录 + log.info("请求参数:", JSONObject.toJSONString(commonParam)); Map requestMap = new HashMap<>(); requestMap.put("Authorization", reqParam.get("Authorization")); requestMap.put("req_data", JSONObject.toJSONString(commonParam)); @@ -350,6 +361,7 @@ public class LaKaLaTradeService { // 请求拉卡拉退款接口 JSONObject responseBody = HttpsUtils.doPost(CommonSysConst.getSysConfig().getLkl_request_url() + "/api/v3/labs/relation/refund", commonParam, heard); + log.info("响应参数:", JSONObject.toJSONString(responseBody)); orderMsg.setResponseContent(responseBody.toJSONString()); tradeOrderMsgService.editTradeOrderMsg(orderMsg); @@ -376,6 +388,7 @@ public class LaKaLaTradeService { Map returnMap = new HashMap<>(); returnMap.put("order", order); returnMap.put("orderRefund", orderRefund); + log.info("========= END 交易退款 END ==========="); return returnMap; } diff --git a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaWalletService.java b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaWalletService.java index b4c2304..1d96640 100644 --- a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaWalletService.java +++ b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaWalletService.java @@ -8,8 +8,13 @@ import com.hfkj.common.exception.SysCode; import com.hfkj.common.utils.GenerateUtil; import com.hfkj.common.utils.HttpsUtils; import com.hfkj.config.CommonSysConst; +import com.hfkj.entity.BsMer; +import com.hfkj.entity.BsMerPlatformNo; +import com.hfkj.service.BsMerPlatformNoService; +import com.hfkj.service.BsMerService; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; @@ -22,12 +27,24 @@ import java.util.Map; @Service("laKaLaWalletService") public class LaKaLaWalletService { + @Resource + private BsMerPlatformNoService merPlatformNoService; + @Resource + private BsMerService merService; + /** * 商户开通主动结算业务 * @param merCupNo * @return */ public JSONObject activeSettleApply(String merCupNo) { + // 查询平台商户号 + BsMerPlatformNo merPlatform = merPlatformNoService.getPlatformNoByCupNo(merCupNo); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到平台商户号"); + } + BsMer mer = merService.getMer(merPlatform.getMerId()); + // 请求参数 Map param = new HashMap<>(); param.put("timestamp", new Date().getTime()); @@ -38,7 +55,7 @@ public class LaKaLaWalletService { Map map = new HashMap<>(); map.put("version", "1.0"); map.put("orderNo", System.currentTimeMillis()+""); - map.put("orgCode", CommonSysConst.getSysConfig().getLkl_org_code()); + map.put("orgCode", mer.getOrgNo()); map.put("merCupNo", merCupNo); param.put("reqData", map); @@ -65,6 +82,13 @@ public class LaKaLaWalletService { * @return */ public JSONObject ewalletWithdrawD1(String merCupNo, BigDecimal drawAmt, String remark) { + // 查询平台商户号 + BsMerPlatformNo merPlatform = merPlatformNoService.getPlatformNoByCupNo(merCupNo); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到平台商户号"); + } + BsMer mer = merService.getMer(merPlatform.getMerId()); + // 请求参数 Map param = new HashMap<>(); param.put("timestamp", new Date().getTime()); @@ -73,7 +97,7 @@ public class LaKaLaWalletService { param.put("reqId", new Date().getTime()); Map map = new HashMap<>(); - map.put("orgNo", CommonSysConst.getSysConfig().getLkl_org_code()); + map.put("orgNo", mer.getOrgNo()); map.put("merchantNo", merCupNo); map.put("drawAmt", drawAmt); map.put("notifyUrl", ""); @@ -105,6 +129,13 @@ public class LaKaLaWalletService { * @return */ public JSONObject ewalletBalanceQuery(String merCupNo, String payNo, String payType) { + // 查询平台商户号 + BsMerPlatformNo merPlatform = merPlatformNoService.getPlatformNoByCupNo(merCupNo); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到平台商户号"); + } + BsMer mer = merService.getMer(merPlatform.getMerId()); + // 请求参数 Map param = new HashMap<>(); param.put("timestamp", new Date().getTime()); @@ -113,7 +144,7 @@ public class LaKaLaWalletService { param.put("reqId", new Date().getTime()); Map map = new HashMap<>(); - map.put("orgNo", CommonSysConst.getSysConfig().getLkl_org_code()); + map.put("orgNo", mer.getOrgNo()); map.put("merchantNo", merCupNo); map.put("payNo", payNo); map.put("payType", payType); @@ -142,6 +173,13 @@ public class LaKaLaWalletService { * @return */ public JSONObject ewalletWithdrawQuery(String merCupNo,String drawJnl) { + // 查询平台商户号 + BsMerPlatformNo merPlatform = merPlatformNoService.getPlatformNoByCupNo(merCupNo); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到平台商户号"); + } + BsMer mer = merService.getMer(merPlatform.getMerId()); + // 请求参数 Map param = new HashMap<>(); param.put("timestamp", new Date().getTime()); @@ -150,7 +188,7 @@ public class LaKaLaWalletService { param.put("reqId", new Date().getTime()); Map map = new HashMap<>(); - map.put("orgNo", CommonSysConst.getSysConfig().getLkl_org_code()); + map.put("orgNo", mer.getOrgNo()); map.put("merchantNo", merCupNo); map.put("drawJnl", drawJnl); param.put("reqData", map); @@ -180,6 +218,13 @@ public class LaKaLaWalletService { * @return */ public JSONObject ewalletSettleProfile(String merCupNo, String settleType, String settleTime) { + // 查询平台商户号 + BsMerPlatformNo merPlatform = merPlatformNoService.getPlatformNoByCupNo(merCupNo); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到平台商户号"); + } + BsMer mer = merService.getMer(merPlatform.getMerId()); + // 请求参数 Map param = new HashMap<>(); param.put("timestamp", new Date().getTime()); @@ -188,7 +233,7 @@ public class LaKaLaWalletService { param.put("reqId", new Date().getTime()); Map map = new HashMap<>(); - map.put("bmcpNo", CommonSysConst.getSysConfig().getLkl_org_code()); + map.put("bmcpNo", mer.getOrgNo()); map.put("mercId", merCupNo); map.put("settleType", settleType); map.put("settleTime", settleTime); @@ -218,6 +263,13 @@ public class LaKaLaWalletService { * @return */ public JSONObject ewalletSettleQuery(String merCupNo) { + // 查询平台商户号 + BsMerPlatformNo merPlatform = merPlatformNoService.getPlatformNoByCupNo(merCupNo); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到平台商户号"); + } + BsMer mer = merService.getMer(merPlatform.getMerId()); + // 请求参数 Map param = new HashMap<>(); param.put("timestamp", new Date().getTime()); @@ -226,7 +278,7 @@ public class LaKaLaWalletService { param.put("reqId", new Date().getTime()); Map map = new HashMap<>(); - map.put("bmcpNo", CommonSysConst.getSysConfig().getLkl_org_code()); + map.put("bmcpNo", mer.getOrgNo()); map.put("mercId", merCupNo); param.put("reqData", map); diff --git a/service/src/main/java/com/hfkj/service/impl/BsMerServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsMerServiceImpl.java index f164eba..de5ec41 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsMerServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsMerServiceImpl.java @@ -421,6 +421,7 @@ public class BsMerServiceImpl implements BsMerService { } @Override + @Cached(cacheType = CacheType.REMOTE, name="MER:", key = "#merId") public BsMer getMer(Long merId) { return merMapper.selectByPrimaryKey(merId); }