From 7ee9bc8fb2e42ce2e82cd1eacb57ba584611dfc5 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 23 六月 2023 11:04:32 +0800
Subject: [PATCH] 修改bug

---
 user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java |   80 +++++++++++++++++++++-------------------
 1 files changed, 42 insertions(+), 38 deletions(-)

diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java
index 4fcd34e..43c629a 100644
--- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java
+++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java
@@ -57,6 +57,12 @@
     @Autowired
     private IRechargeRecordService rechargeRecordService;
 
+    @Autowired
+    private IAccountChangeDetailService accountChangeDetailService;
+
+    @Autowired
+    private IDivisionRecordService divisionRecordService;
+
 
 
 
@@ -244,7 +250,7 @@
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"),
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResponseWarpper<OrderPriceWarpper> queryOrderPrice(Long orderId){
+    public ResponseWarpper<OrderPriceInfoWarpper> queryOrderPrice(Long orderId){
         if(null == orderId){
             return ResponseWarpper.success(ResultUtil.paranErr("orderId"));
         }
@@ -253,7 +259,7 @@
             if(null == uid){
                 return ResponseWarpper.success(ResultUtil.tokenErr());
             }
-            OrderPriceWarpper orderPriceWarpper = orderService.queryOrderPrice(uid, orderId);
+            OrderPriceInfoWarpper orderPriceWarpper = orderService.queryOrderPrice(uid, orderId);
             return ResponseWarpper.success(orderPriceWarpper);
         }catch (Exception e){
             e.printStackTrace();
@@ -346,39 +352,41 @@
 
     /**
      * 订单微信支付回调处理
-     * @param request
      * @param response
      */
     @ResponseBody
     @PostMapping("/base/order/orderPayCallback")
-    public void orderPayCallback(HttpServletRequest request, HttpServletResponse response){
+    public void orderPayCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){
         try {
-            String code = request.getParameter("code");
-            String version = request.getParameter("version");
-            String msg = request.getParameter("msg");
-            String date = request.getParameter("date");
-            String result = request.getParameter("result");
-            String sign = request.getParameter("sign");
-            InterfaceResponse interfaceResponse = new InterfaceResponse();
-            interfaceResponse.setCode(code);
-            interfaceResponse.setVersion(version);
-            interfaceResponse.setMsg(msg);
-            interfaceResponse.setDate(date);
-            interfaceResponse.setResult(result);
-            interfaceResponse.setSign(sign);
             // 验签
             boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign());
             if (verify) {//验签成功业务处理逻辑
-                JSONObject jsonObject = JSON.parseObject(result);
-                String merOrderId = jsonObject.getString("merOrderId");
-                String orderId = jsonObject.getString("parameter1");
-                ResultUtil resultUtil = orderService.orderPayCallback(orderId, merOrderId);
-                if(resultUtil.getCode() == 10000){
-                    response.setStatus(200);
-                    PrintWriter out = response.getWriter();
-                    out.print("OK");
-                    out.flush();
-                    out.close();
+                if("0000".equals(interfaceResponse.getCode())){
+                    JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult());
+                    Integer status = jsonObject.getInteger("status");
+                    String orderId = jsonObject.getString("parameter1");
+                    String parameter2 = jsonObject.getString("parameter2");
+                    if(2 == status){
+                        Order order = orderService.selectById(orderId);
+                        AccountChangeDetail accountChangeDetail = accountChangeDetailService.selectById(parameter2);
+                        Double m = accountChangeDetail.getOldData() - accountChangeDetail.getNewData();
+                        AppUser appUser1 = appUserService.selectById(order.getUserId());
+                        appUser1.setAccountBalance(appUser1.getAccountBalance() + m);
+                        appUserService.updateById(appUser1);
+                        accountChangeDetailService.deleteById(accountChangeDetail.getId());
+                        System.err.println("支付失败");
+                    }
+                    if(1 == status){
+                        String merOrderId = jsonObject.getString("merOrderId");
+                        ResultUtil resultUtil = orderService.orderPayCallback(orderId, merOrderId);
+                        if(resultUtil.getCode() == 10000){
+                            response.setStatus(200);
+                            PrintWriter out = response.getWriter();
+                            out.print("OK");
+                            out.flush();
+                            out.close();
+                        }
+                    }
                 }
             } else {//验签失败业务处理逻辑
                 System.err.println("支付回调验签失败");
@@ -443,24 +451,20 @@
                         return;
                     }
                     String merOrderId = jsonObject.getString("merOrderId");
-                    String orderId = jsonObject.getString("parameter1");
+                    String divisionRecordId = jsonObject.getString("parameter1");
                     //确认收货
                     new Timer().schedule(new TimerTask() {
                         @Override
                         public void run() {
-                            Order order = orderService.selectById(orderId);
-                            List<Revenue> revenues = revenueService.selectList(new EntityWrapper<Revenue>().eq("userType", 2).eq("orderId", order.getId()));
+                            DivisionRecord divisionRecord = divisionRecordService.selectById(divisionRecordId);
                             Receive receive = new Receive();//确认收货
                             receive.setOriginalMerOrderId(merOrderId);
-                            receive.setRcvAmount(String.valueOf(order.getPayMoney() * 100));
+                            receive.setRcvAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
                             List<ReceiveUser> splitList = new ArrayList<>();
-                            for (Revenue revenue : revenues) {
-                                Driver driver = driverService.selectById(revenue.getUserId());
-                                ReceiveUser receiveUser = new ReceiveUser();
-                                receiveUser.setSplitUserId(driver.getMerchantNumber());
-                                receiveUser.setRcvSplitAmount(revenue.getAmount().toString());
-                                splitList.add(receiveUser);
-                            }
+                            ReceiveUser receiveUser = new ReceiveUser();
+                            receiveUser.setSplitUserId(divisionRecord.getMerchantNumber());
+                            receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
+                            splitList.add(receiveUser);
                             receive.setSplitList(splitList);
                             TrhRequest<Receive> request1 = new TrhRequest();
                             InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE);

--
Gitblit v1.7.1