From e0faebd41278c2e9389a26f39b2bfff63d68103d Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期五, 02 六月 2023 23:36:08 +0800 Subject: [PATCH] 更新部分代码 --- user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java | 171 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 91 insertions(+), 80 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 b21d6a9..4fcd34e 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 @@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.supersavedriving.user.core.common.annotion.ServiceLog; import com.supersavedriving.user.core.util.ToolUtil; -import com.supersavedriving.user.modular.system.model.AppUser; -import com.supersavedriving.user.modular.system.model.Driver; -import com.supersavedriving.user.modular.system.model.Order; -import com.supersavedriving.user.modular.system.model.Revenue; +import com.supersavedriving.user.modular.system.model.*; import com.supersavedriving.user.modular.system.service.*; import com.supersavedriving.user.modular.system.util.MallBook.model.InterfaceResponse; import com.supersavedriving.user.modular.system.util.MallBook.model.Receive; @@ -22,10 +19,7 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -59,6 +53,9 @@ @Autowired private IDriverService driverService; + + @Autowired + private IRechargeRecordService rechargeRecordService; @@ -386,22 +383,6 @@ } else {//验签失败业务处理逻辑 System.err.println("支付回调验签失败"); } - - -// Map<String, String> map = payMoneyUtil.weixinpayCallback(request); -// if(null != map){ -// String out_trade_no = map.get("out_trade_no"); -// String transaction_id = map.get("transaction_id"); -// String result = map.get("result"); -// String orderId = out_trade_no.substring(17); -// ResultUtil resultUtil = orderService.orderPayCallback(orderId, transaction_id); -// if(resultUtil.getCode() == 10000){ -// PrintWriter out = response.getWriter(); -// out.print(result); -// out.flush(); -// out.close(); -// } -// } }catch (Exception e){ e.printStackTrace(); } @@ -409,69 +390,99 @@ /** - * 异步分账回调 + * 转账回调 + * @param execute + * @param response */ @ResponseBody - @PostMapping("/base/order/ledgerCallback") - public void ledgerCallback(HttpServletRequest request, 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"); - //确认收货 - 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())); - Receive receive = new Receive();//确认收货 - receive.setOriginalMerOrderId(merOrderId); - receive.setRcvAmount(String.valueOf(order.getPayMoney() * 100)); - 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); - } - receive.setSplitList(splitList); - TrhRequest<Receive> request1 = new TrhRequest(); - InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE); - if(!"0000".equals(execute.getCode())){ - System.err.println("确认收货" + execute.getMsg()); - } - JSONObject jsonObject = JSON.parseObject(execute.getResult()); - String status = jsonObject.getString("status"); - if("2".equals(status)){ - System.err.println("确认收货失败"); - } - if("0".equals(status)){ - System.err.println("确认收货处理中"); - } - } - }, 30000); + @PostMapping("/base/order/zhaunzhangCallback") + public void zhaunzhangCallback(@RequestBody InterfaceResponse execute, HttpServletResponse response){ + try { + if("0000".equals(execute.getCode())){ + JSONObject jsonObject = JSON.parseObject(execute.getResult()); + Integer status = jsonObject.getInteger("status");//0:待处理;1:成功;2:失败 + if(2 == status){ + System.err.println("转账失败"); + return; + } + String parameter1 = jsonObject.getString("parameter1"); + RechargeRecord rechargeRecord = rechargeRecordService.selectById(parameter1); + + response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); + }else{ + System.err.println("转账失败:" + execute.getMsg()); + return; + } + }catch (Exception e){ + e.printStackTrace(); + } + } + + + + /** + * 异步分账回调 + */ + @ResponseBody + @PostMapping("/base/order/ledgerCallback") + public void ledgerCallback(@RequestBody InterfaceResponse execute, HttpServletResponse response){ + try{ + // 验签 + boolean verify = RSASignature.validate(execute.content(), execute.getSign()); + if (verify) {//验签成功业务处理逻辑 + if("0000".equals(execute.getCode())){ + JSONObject jsonObject = JSON.parseObject(execute.getResult()); + Integer status = jsonObject.getInteger("status"); + if(2 == status){ + System.err.println("异步分账回调异常"); + return; + } + String merOrderId = jsonObject.getString("merOrderId"); + String orderId = 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())); + Receive receive = new Receive();//确认收货 + receive.setOriginalMerOrderId(merOrderId); + receive.setRcvAmount(String.valueOf(order.getPayMoney() * 100)); + 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); + } + receive.setSplitList(splitList); + TrhRequest<Receive> request1 = new TrhRequest(); + InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE); + if(!"0000".equals(execute.getCode())){ + System.err.println("确认收货" + execute.getMsg()); + } + JSONObject jsonObject = JSON.parseObject(execute.getResult()); + String status = jsonObject.getString("status"); + if("2".equals(status)){ + System.err.println("确认收货失败"); + } + if("0".equals(status)){ + System.err.println("确认收货处理中"); + } + } + }, 15000); + response.setStatus(200); + PrintWriter out = response.getWriter(); + out.print("OK"); + out.flush(); + out.close(); + } } else {//验签失败业务处理逻辑 System.err.println("支付回调验签失败"); } -- Gitblit v1.7.1