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