From 433bc1e314ecfd483379ca0e2e74e7c815d3261f Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 20 十月 2025 09:15:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java | 89 +++++++++++++++++++++++++++++++++++++++-----
1 files changed, 78 insertions(+), 11 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java
index c1db0bb..6620b43 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java
@@ -301,6 +301,7 @@
org.apache.http.HttpResponse response1 = post(LakalaConfig.getServerUrl() + "sit/api/v3/sacs/separate", jsonString, authorization1);
String responseStr = IOUtils.toString(response1.getEntity().getContent(), ENCODING);
+ System.err.println(responseStr);
JSONObject jsonObject = JSONObject.parseObject(responseStr);
if ("成功".equals(jsonObject.getString("msg"))) {
@@ -323,6 +324,8 @@
@RequestMapping("/messageSeparateHandle")
@ApiOperation(value = "拉卡拉分账信息回调接口")
public Object messageSeparateHandle(HttpServletRequest request) throws Exception {
+
+ System.err.println("拉卡拉分账信息回调接口---------进入");
String body = this.getBody(request);
// 先处理支付完成 修改状态 后处理分账 后走分账回调
JSONObject jsonObject1 = JSONObject.parseObject(body);
@@ -333,8 +336,9 @@
JSONArray jsonArray = JSONArray.parseArray(detail_datas.toString());
if("SEPARATE".equals(cmd_type.toString())){
TErpProcurement erpProcurement = erpProcurementService.getOne(new LambdaQueryWrapper<TErpProcurement>().eq(TErpProcurement::getOutSeparateNo, o.toString()));
- if ( erpProcurement!=null && "SUCCESS".equals(status) && erpProcurement.getRefundStatus()!=1) {
+ if ( erpProcurement!=null && "SUCCESS".equals(status) && erpProcurement.getRefundStatus()==1) {
erpProcurement.setRefundStatus(1);
+ erpProcurement.setIsPlatformCommission(1);
erpProcurementService.updateById(erpProcurement);
// 修改分账状态
List<TErpProcurementGoods> list1 = erpProcurementGoodsService.list(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, erpProcurement.getId()));
@@ -346,6 +350,7 @@
JSONObject jsonObject = new JSONObject();
jsonObject.put("code", "SUCCESS");
jsonObject.put("message", "执行成功");
+ System.err.println("拉卡拉分账信息回调接口---------完成");
return jsonObject;
}
}else if("FALLBACK".equals(cmd_type.toString())){
@@ -371,21 +376,27 @@
String apiPath = "sit/api/v3/rfd/refund_front/refund";
String body1 = "{\n" +
- "\t\"req_time\": \"" + time + "\",\n" +
- "\t\"version\": \"3.0\",\n" +
"\t\"req_data\": {\n" +
"\t\t\"merchant_no\": \""+erpProcurement.getMerchantNo()+"\",\n" +
"\t\t\"term_no\": \""+erpProcurement.getTermNo()+"\",\n" +
- "\t\t\"refund_amount\": " + refund_amount + ",\n" +
"\t\t\"out_trade_no\": \"" + outTradeNo + "\",\n" +
+ "\t\t\"refund_amount\": \"" + refund_amount + "\",\n" +
+ "\t\t\"refund_reason\": \"退款\",\n" +
"\t\t\"notify_url\": \"" + "http://221.182.45.100:8089/t-sys-order/messageRefundHandle" + "\",\n" +
- "\t\t\"origin_log_no\": \"" + erpProcurement.getPayTransactionId() + "\",\n" +
+ "\t\t\"origin_out_trade_no\": \"" + erpProcurement.getPayNumber() + "\",\n" +
+ "\t\t\"refund_acc_mode\": \"00\",\n" +
+ "\t\t\"refund_amt_sts\": \"00\",\n" +
"\t\t\"location_info\": {\n" +
- "\t\t\t\"request_ip\": \"" + ipAddr + "\"\n" +
+ "\t\t\t\"request_ip\": \"" + ipAddr + "\",\n" +
+ "\t\t\t\"location\": \"\"\n" +
+ "\t\t}\n" +
"\t\t},\n" +
+ "\t\"version\": \"3.0\",\n" +
+ "\t\"req_time\": \"" + time + "\"\n" +
"\t}\n" +
"}";
String authorization = getAuthorization(body1);
+
org.apache.http.HttpResponse response = post(LakalaConfig.getServerUrl() + apiPath, body1, authorization);
if (response.getStatusLine().getStatusCode() != 200) {
return R.fail(500, "请求失败,statusCode " + response.getStatusLine()
@@ -399,7 +410,7 @@
erpProcurement.setRefundNo(outTradeNo);
erpProcurementService.updateById(erpProcurement);
-
+ System.err.println("拉卡拉分账信息回调接口---------完成"+responseStr);
// 响应success
@@ -415,6 +426,7 @@
@RequestMapping("/messageRefundHandle")
@ApiOperation(value = "拉卡拉退款信息回调接口")
public Object messageRefundHandle(HttpServletRequest request) throws Exception {
+ System.err.println("拉卡拉退款信息回调接口---------进入");
String body = this.getBody(request);
// 先处理支付完成 修改状态 后处理分账 后走分账回调
JSONObject jsonObject1 = JSONObject.parseObject(body);
@@ -452,11 +464,65 @@
erpProcurementService.updateById(erpProcurement);
return R.ok("操作成功");
}
- // 还未分账成功不能退款
- if(erpProcurement.getStatus()==null || erpProcurement.getStatus()!=1){
- return R.fail("订单处理中,请稍后操作");
- }
+ // 判断回退没有回退了直接退款
+ long count = erpProcurementGoodsService.count(new LambdaQueryWrapper<TErpProcurementGoods>().eq(TErpProcurementGoods::getProcurementId, id).eq(TErpProcurementGoods::getStatus, 1));
+ if(count==0){
+ // 发起退款
+ String time = DateUtils.dateTimeNow();
+ String ipAddr = IpUtils.getIpAddr(request);
+ // SYMBOLS 随机取4位数
+ String str = "";
+ for (int i = 0; i < 6; i++) {
+ str += SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
+ }
+ String outTradeNo = time + str;
+ String refund_amount = erpProcurement.getPayMoney().multiply(BigDecimal.valueOf(100)).intValue() + "";
+ String apiPath = "sit/api/v3/rfd/refund_front/refund";
+ String body1 = "{\n" +
+
+ "\t\"req_data\": {\n" +
+ "\t\t\"merchant_no\": \""+erpProcurement.getMerchantNo()+"\",\n" +
+ "\t\t\"term_no\": \""+erpProcurement.getTermNo()+"\",\n" +
+ "\t\t\"out_trade_no\": \"" + outTradeNo + "\",\n" +
+ "\t\t\"refund_amount\": \"" + refund_amount + "\",\n" +
+ "\t\t\"refund_reason\": \"退款\",\n" +
+ "\t\t\"notify_url\": \"" + "http://221.182.45.100:8089/t-sys-order/messageRefundHandle" + "\",\n" +
+ "\t\t\"origin_out_trade_no\": \"" + erpProcurement.getPayNumber() + "\",\n" +
+ "\t\t\"refund_acc_mode\": \"00\",\n" +
+ "\t\t\"refund_amt_sts\": \"00\",\n" +
+ "\t\t\"location_info\": {\n" +
+ "\t\t\t\"request_ip\": \"" + ipAddr + "\",\n" +
+ "\t\t\t\"location\": \"\"\n" +
+ "\t\t}\n" +
+ "\t\t},\n" +
+ "\t\"version\": \"3.0\",\n" +
+ "\t\"req_time\": \"" + time + "\"\n" +
+ "\t}\n" +
+ "}";
+
+ String authorization = getAuthorization(body1);
+
+ org.apache.http.HttpResponse response = post(LakalaConfig.getServerUrl() + apiPath, body1, authorization);
+ if (response.getStatusLine().getStatusCode() != 200) {
+ return R.fail(500, "请求失败,statusCode " + response.getStatusLine()
+ + IOUtils.toString(response.getEntity().getContent(), ENCODING));
+ }
+ String responseStr = IOUtils.toString(response.getEntity().getContent(), ENCODING);
+ JSONObject jsonObject = JSONObject.parseObject(responseStr);
+ JSONObject jsonObject2 = jsonObject.getJSONObject("resp_data");
+ String code = jsonObject2.getString("log_no");
+ erpProcurement.setRefundLogNo(code);
+ erpProcurement.setRefundNo(outTradeNo);
+ erpProcurementService.updateById(erpProcurement);
+ return R.ok("操作成功");
+ }
+ // 还未分账成功不能退款
+ if(erpProcurement.getIsPlatformCommission()==2){
+ return R.fail("订单处理中,请稍后操作");
+ }
+
+
String time = DateUtils.dateTimeNow();
@@ -510,6 +576,7 @@
String responseStr = IOUtils.toString(response1.getEntity().getContent(), ENCODING);
+
// post.body(jsonString);
// HttpResponse response = post.execute();
// String responseStr = response.body();
--
Gitblit v1.7.1