From 85fefef6c862c543117ad8d2691817bfeae69f41 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 23 六月 2023 11:11:15 +0800
Subject: [PATCH] 修改bug
---
user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java | 229 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 122 insertions(+), 107 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..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
@@ -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,15 @@
@Autowired
private IDriverService driverService;
+
+ @Autowired
+ private IRechargeRecordService rechargeRecordService;
+
+ @Autowired
+ private IAccountChangeDetailService accountChangeDetailService;
+
+ @Autowired
+ private IDivisionRecordService divisionRecordService;
@@ -247,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"));
}
@@ -256,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();
@@ -349,59 +352,45 @@
/**
* 订单微信支付回调处理
- * @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("支付回调验签失败");
}
-
-
-// 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 +398,95 @@
/**
- * 异步分账回调
+ * 转账回调
+ * @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 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())){
+ 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