From 02b30385384920dd96f10b3f501954aa936635de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A9=E9=B9=8F=E8=BE=89?= <18322780655@163.com> Date: Mon, 12 Jun 2023 14:59:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8B=89=E5=8D=A1=E6=8B=89?= =?UTF-8?q?=E9=80=80=E6=AC=BE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MerchantOrderController.java | 9 ++- .../cn/pluss/platform/pos/BasePosReq.java | 5 ++ .../pluss/platform/pos/PosTradeQueryReq.java | 4 +- .../klk/service/LkLPayServiceImpl.java | 65 ++++++++++++++++++- .../impl/MerchantOrderServiceImpl.java | 6 +- 5 files changed, 83 insertions(+), 6 deletions(-) diff --git a/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantOrderController.java b/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantOrderController.java index 6c76d6b..986be1d 100644 --- a/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantOrderController.java +++ b/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantOrderController.java @@ -22,6 +22,7 @@ import cn.pluss.platform.merchantMenberRecharge.MerchantMenberRechargeService; import cn.pluss.platform.merchantOrder.MerchantOrderService; import cn.pluss.platform.notice.NoticeService; import cn.pluss.platform.pay.PayService; +import cn.pluss.platform.pos.BasePosReq; import cn.pluss.platform.pos.PosTradeQueryReq; import cn.pluss.platform.pos.ReturnFundsReq; import cn.pluss.platform.ryx.pay.RyxPayService; @@ -473,14 +474,16 @@ public class MerchantOrderController { @PostMapping(value = "orderList") - public Result posTradeQuery(HttpServletRequest request, @RequestBody PosTradeQueryReq req){ + public Result posTradeQuery(HttpServletRequest request, @RequestBody BasePosReq req){ verify(req.getTimestamp(),req.getRequestId(),req.getAppId(),req.getToken()); - DeviceStock deviceStock = deviceStockService.checkBind(req.getSn()); + + PosTradeQueryReq tradeQueryReq=JSONObject.parseObject(req.getReqData(),PosTradeQueryReq.class); + DeviceStock deviceStock = deviceStockService.checkBind(tradeQueryReq.getSn()); MsgException.checkNull(deviceStock,"不存在的设备信息"); MerchantBaseInfo merchantBaseInfoById = merchantBaseInfoService.getMerchantBaseInfoById(Integer.valueOf(deviceStock.getActMercId())); MsgException.checkNull(merchantBaseInfoById, "该设备对应的商户信息不存在"); - return merchantOrderService.posTradeQuery(req.getRequestId(),merchantBaseInfoById.getMerchantCode(),req.getDate(),req.getType(),req.getPage(),req.getSize()); + return merchantOrderService.posTradeQuery(req.getRequestId(),merchantBaseInfoById.getMerchantCode(),tradeQueryReq.getDate(),tradeQueryReq.getType(),tradeQueryReq.getPage(),tradeQueryReq.getSize()); } diff --git a/pluss-model-bundle/src/main/java/cn/pluss/platform/pos/BasePosReq.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/pos/BasePosReq.java index 01810c1..292d632 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/pos/BasePosReq.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/pos/BasePosReq.java @@ -21,6 +21,11 @@ public class BasePosReq implements Serializable { */ private String token; + /** + * 具体参数 + */ + private String reqData; + /** * timestamp时间戳(pos机) */ diff --git a/pluss-model-bundle/src/main/java/cn/pluss/platform/pos/PosTradeQueryReq.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/pos/PosTradeQueryReq.java index 4bddaff..c2552ff 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/pos/PosTradeQueryReq.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/pos/PosTradeQueryReq.java @@ -4,8 +4,10 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Data; +import java.io.Serializable; + @Data -public class PosTradeQueryReq extends BasePosReq{ +public class PosTradeQueryReq implements Serializable { /** * 订单号 diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/klk/service/LkLPayServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/klk/service/LkLPayServiceImpl.java index bf52569..b4951b0 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/klk/service/LkLPayServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/klk/service/LkLPayServiceImpl.java @@ -255,7 +255,70 @@ public class LkLPayServiceImpl implements PayService { @Override public Map refundPay(MerchantOrder order, String mchNo) { - return null; + + QueryWrapper baseQueyWrapper = new QueryWrapper<>(); + baseQueyWrapper.eq("merchantCode", mchNo); + MerchantBaseInfo baseInfo = merchantBaseInfoMapper.selectOne(baseQueyWrapper); + MsgException.checkNull(baseInfo, "商户基本信息错误"); + + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("merchant_code", mchNo); + queryWrapper.eq("channel", "5"); + queryWrapper.eq("user_no", LaKalaInterfaceImpl.userNo); + + MerchantBackLkl merchantBackLkl = merchantBackLklMapper.selectOne(queryWrapper); + MsgException.checkNull(merchantBackLkl, "进件信息不存在"); + + + + String req_time = DateUtils.getSdfTimes(); + Long order_amt = changeY2F(order.getConsumeFee()); + + + String refundNo = "LKLR" + StringUtil.getBillno(); + + String body="{\n" + + " \"req_time\":\""+req_time+"\",\n" + + " \"version\":\"3.0\",\n" + + " \"out_org_code\":\""+lakalaConfig.getAppid()+"\",\n" + + " \"req_data\":{\n" + + " \"merchant_no\":\""+merchantBackLkl.getExternalCustomerNo()+"\",\n" + + " \"term_no\":\""+merchantBackLkl.getTermNos()+"\",\n" + + " \"out_trade_no\":\""+refundNo+"\",\n" + + " \"refund_amount\":\""+order_amt+"\",\n" + + " \"refund_reason\":\"退款\",\n" + + " \"origin_out_trade_no\":\""+order.getOrderNumber()+"\",\n" + + " \"location_info\":{\n" + + " \"request_ip\":\""+order.getIp()+"\",\n" + + " \"location\":\"+37.123456789,-121.123456789\"\n" + + " }\n" + + " }\n" + + "}\n" + + "\n"; + + Map result = new HashMap<>(4); + result.put("refundNo", refundNo); + result.put("status", "3"); + result.put("code", ResultCode.FAIL.code()); + + String response = lklPayService.req(body, "api/v3/labs/relation/refund"); + if(ObjectUtil.isNotEmpty(response)){ + JSONObject object=JSONObject.parseObject(response); + if(object.containsKey("code")&&"BBS00000".equals(object.getString("code"))){ + result.put("msg", "退款成功!"); + result.put("data", object.getJSONObject("resp_data")); + result.put("status", "1"); + result.put("code", ResultCode.SUCCESS.code()); + return result; + }else { + result.put("msg", object.getString("msg")); + return result; + } + } + + result.put("msg", "退款失败!"); + return result; } @Override diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java index aec9d5b..2bb5a1d 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java @@ -1541,7 +1541,11 @@ public class MerchantOrderServiceImpl extends ServiceImpl