From 4f8b61980b0db5995c16139d8eb9542b66da8a9f Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 27 六月 2023 11:58:21 +0800 Subject: [PATCH] 修改bug --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java | 81 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 78 insertions(+), 3 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java index 2844803..ee7f73e 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java @@ -2,11 +2,17 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.supersavedriving.driver.modular.system.model.DivisionRecord; import com.supersavedriving.driver.modular.system.model.Driver; import com.supersavedriving.driver.modular.system.model.Order; import com.supersavedriving.driver.modular.system.model.RechargeRecord; +import com.supersavedriving.driver.modular.system.service.IDivisionRecordService; import com.supersavedriving.driver.modular.system.service.IRechargeRecordService; import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceResponse; +import com.supersavedriving.driver.modular.system.util.MallBook.model.Receive; +import com.supersavedriving.driver.modular.system.util.MallBook.model.ReceiveUser; +import com.supersavedriving.driver.modular.system.util.MallBook.util.RSASignature; +import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest; import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil; import com.supersavedriving.driver.modular.system.util.rongyun.model.CloudRecordingCallback; import com.supersavedriving.driver.modular.system.warpper.*; @@ -20,6 +26,8 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -28,9 +36,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 订单控制器 @@ -40,6 +46,8 @@ @RestController @RequestMapping("") public class OrderController { + + Logger logger = LoggerFactory.getLogger(OrderController.class); @Autowired private IOrderService orderService; @@ -52,6 +60,9 @@ @Autowired private IRechargeRecordService rechargeRecordService; + + @Autowired + private IDivisionRecordService divisionRecordService; @@ -556,4 +567,68 @@ return new ResponseWarpper(500, e.getMessage()); } } + + + + /** + * 异步分账回调 + */ + @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){ + logger.warn("异步分账回调异常"); + return; + } + String merOrderId = jsonObject.getString("merOrderId"); + String divisionRecordId = jsonObject.getString("parameter1"); + //确认收货 + new Timer().schedule(new TimerTask() { + @Override + public void run() { + DivisionRecord divisionRecord = divisionRecordService.selectById(divisionRecordId); + Receive receive = new Receive();//确认收货 + receive.setOriginalMerOrderId(merOrderId); + receive.setRcvAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); + List<ReceiveUser> splitList = new ArrayList<>(); + 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); + if(!"0000".equals(execute.getCode())){ + logger.warn("确认收货" + execute.getMsg()); + } + JSONObject jsonObject = JSON.parseObject(execute.getResult()); + String status = jsonObject.getString("status"); + if("2".equals(status)){ + logger.warn("确认收货失败"); + } + if("0".equals(status)){ + logger.warn("确认收货处理中"); + } + } + }, 15000); + response.setStatus(200); + PrintWriter out = response.getWriter(); + out.print("OK"); + out.flush(); + out.close(); + } + } else {//验签失败业务处理逻辑 + logger.warn("支付回调验签失败"); + } + }catch (Exception e){ + e.printStackTrace(); + } + } } -- Gitblit v1.7.1