From 83396a38be3c69c81f8acc4681c18f5dd0e698be Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Tue, 08 Jul 2025 21:17:41 +0800
Subject: [PATCH] 完善提交订单逻辑
---
oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnQueryCriteria.java | 3
oying-system/src/main/resources/config/application-dev.yml | 8
oying-system/src/main/resources/mapper/sh/OrderMapper.xml | 15 +
oying-system/src/main/java/com/oying/modules/hwc/service/CallbackService.java | 11 +
oying-system/src/main/java/com/oying/modules/hwc/rest/SwiftPassController.java | 8
oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnMapper.java | 4
oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java | 113 ++++++++++++++
oying-system/src/main/java/com/oying/modules/sh/rest/OrderController.java | 16 +
oying-system/src/main/resources/config/application-prod.yml | 8
oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java | 18 +
oying-common/src/main/java/com/oying/utils/enums/PayTypeEnum.java | 5
pom.xml | 7
oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java | 107 +++----------
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java | 41 +++++
oying-system/src/main/java/com/oying/modules/security/config/SwiftPassProperties.java | 4
oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java | 9 +
oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml | 15 +
oying-system/src/main/java/com/oying/modules/sh/mapper/OrderMapper.java | 7
oying-system/src/main/java/com/oying/modules/hwc/service/SwiftPassService.java | 13 -
oying-system/src/main/java/com/oying/modules/system/domain/UserStore.java | 2
oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java | 4
oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java | 14 +
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java | 24 ++
23 files changed, 336 insertions(+), 120 deletions(-)
diff --git a/oying-common/src/main/java/com/oying/utils/enums/PayTypeEnum.java b/oying-common/src/main/java/com/oying/utils/enums/PayTypeEnum.java
index cdca695..305d014 100644
--- a/oying-common/src/main/java/com/oying/utils/enums/PayTypeEnum.java
+++ b/oying-common/src/main/java/com/oying/utils/enums/PayTypeEnum.java
@@ -13,7 +13,10 @@
public enum PayTypeEnum {
/* 支付类型 汇旺财 */
- HWC("HWC", "汇旺财"),
+ HWC("HWC", "汇旺财1721415002"),
+
+ /* 支付类型 汇旺财 */
+ HWC2("HWC2", "汇旺财1721753752"),
UNKNOWN("UNKNOWN", "暂未开放");
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/rest/SwiftPassController.java b/oying-system/src/main/java/com/oying/modules/hwc/rest/SwiftPassController.java
index f544bdb..9718207 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/rest/SwiftPassController.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/rest/SwiftPassController.java
@@ -1,7 +1,7 @@
package com.oying.modules.hwc.rest;
import com.oying.annotation.rest.AnonymousPostMapping;
-import com.oying.modules.hwc.service.SwiftPassService;
+import com.oying.modules.hwc.service.CallbackService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@@ -22,17 +22,17 @@
@RequestMapping("/api/swiftPass")
public class SwiftPassController {
- private final SwiftPassService swiftPassService;
+ private final CallbackService callbackService;
@ApiOperation("HWS支付回调")
@AnonymousPostMapping(value = "/alipayCallback")
public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
- swiftPassService.alipayCallback(request, response);
+ callbackService.alipayCallback(request, response);
}
@ApiOperation("HWS退款回调")
@AnonymousPostMapping(value = "/returnNotify")
public void returnNotify(HttpServletRequest request, HttpServletResponse response) {
- swiftPassService.returnNotify(request, response);
+ callbackService.returnNotify(request, response);
}
}
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/service/CallbackService.java b/oying-system/src/main/java/com/oying/modules/hwc/service/CallbackService.java
new file mode 100644
index 0000000..ff0a1e9
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/hwc/service/CallbackService.java
@@ -0,0 +1,11 @@
+package com.oying.modules.hwc.service;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public interface CallbackService {
+
+ void alipayCallback(HttpServletRequest request, HttpServletResponse response);
+
+ void returnNotify(HttpServletRequest request, HttpServletResponse response);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/service/SwiftPassService.java b/oying-system/src/main/java/com/oying/modules/hwc/service/SwiftPassService.java
index 20be22e..5c6c7c5 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/service/SwiftPassService.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/service/SwiftPassService.java
@@ -4,10 +4,7 @@
import com.oying.modules.hwc.domain.HwcResponse;
import com.oying.utils.enums.PayTypeEnum;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
-import java.io.IOException;
import java.util.Map;
/**
@@ -32,9 +29,9 @@
*
* @see [类、类#方法、类#成员]
*/
- JSONObject query(String orderNum, PayTypeEnum status) throws IOException;
+ JSONObject query(String orderNum, PayTypeEnum status);
- void closeOrder(String outTradeNo, PayTypeEnum status) throws IOException;
+ void closeOrder(String outTradeNo, PayTypeEnum status);
/**
* <一句话功能简述>
@@ -43,9 +40,5 @@
* @see [类、类#方法、类#成员]
*/
Map<String, String> refund(String returnNum, String orderNum, @NotNull(message = "备注不能为空") String reason,
- long refund, long total, PayTypeEnum payType) throws IOException;
-
- void alipayCallback(HttpServletRequest request, HttpServletResponse response);
-
- void returnNotify(HttpServletRequest request, HttpServletResponse response);
+ long refund, long total, PayTypeEnum payType);
}
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
new file mode 100644
index 0000000..23ff7af
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
@@ -0,0 +1,113 @@
+package com.oying.modules.hwc.service.impl;
+
+import com.oying.exception.BadRequestException;
+import com.oying.modules.hwc.service.CallbackService;
+import com.oying.modules.hwc.utils.SignUtil;
+import com.oying.modules.hwc.utils.XmlUtils;
+import com.oying.modules.security.config.SwiftPassProperties;
+import com.oying.modules.sh.domain.Order;
+import com.oying.modules.sh.domain.OrderReturn;
+import com.oying.modules.sh.service.OrderReturnService;
+import com.oying.modules.sh.service.OrderService;
+import com.oying.utils.enums.PayStateEnum;
+import com.oying.utils.enums.PayTypeEnum;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * @author xin
+ * @description
+ * @date 2025/7/8 18:47
+ */
+@SuppressWarnings({"unchecked", "all"})
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class CallbackServiceImpl implements CallbackService {
+
+ private final OrderService orderService;
+ private final OrderReturnService returnService;
+ private final SwiftPassProperties properties;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ String resString = XmlUtils.parseRequest(request);
+ String respString = "error";
+ if (!resString.isEmpty()) {
+ Map<String, String> map = XmlUtils.toMap(resString.getBytes(), "utf-8");
+ String sign_type = map.get("sign_type");
+ String reSign = map.get("sign");
+ if (map.containsKey("sign")) {
+ Order order = orderService.getByOrderNum(map.get("out_trade_no"));
+ PayTypeEnum status = PayTypeEnum.find(order.getPayType());
+ if (SignUtil.verifySign(reSign, sign_type, map, properties, status)) {
+ log.error("验证签名错误!:{}", map.toString());
+ } else {
+ if ("0".equals(map.get("status"))) {
+ if ("0".equals(map.get("result_code"))) {
+ //业务处理
+ if (PayStateEnum.SUCCESS.getKey().equals(order.getPayState())) {
+ // 已处理
+ respString = "success";
+ } else {
+ PayStateEnum stateEnum = PayStateEnum.NOTPAY;
+ if ("0".equals(map.get("pay_result"))) {
+ stateEnum = PayStateEnum.SUCCESS;
+ }
+ orderService.updatePayStatus(map.get("out_trade_no"), stateEnum, map.get("pay_info"), map.get("time_end"));
+ // 处理成功
+ respString = "success";
+ }
+ }
+ }
+ }
+ }
+ }
+ response.getWriter().write(respString);
+ } catch (Exception e) {
+ throw new BadRequestException("操作失败,原因:" + e.getMessage());
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void returnNotify(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ String resString = XmlUtils.parseRequest(request);
+ String respString = "error";
+ if (!resString.isEmpty()) {
+ Map<String, String> map = XmlUtils.toMap(resString.getBytes(), "utf-8");
+ String sign_type = map.get("sign_type");
+ String reSign = map.get("sign");
+ if (map.containsKey("sign")) {
+ OrderReturn order = returnService.getByReturnNum(map.get("out_refund_no"));
+ PayTypeEnum status = PayTypeEnum.find(order.getPayType());
+ if (SignUtil.verifySign(reSign, sign_type, map, properties, status)) {
+ log.error("验证签名错误!:{}", map.toString());
+ } else {
+ if ("0".equals(map.get("status"))) {
+ if ("0".equals(map.get("result_code"))) {
+ // 业务处理
+ returnService.updatePayStatus(map.get("out_refund_no"), map.get("refund_status"),
+ map.get("refund_time"));
+ // 业务处理
+ respString = "success";
+ }
+ }
+ }
+ }
+ }
+ response.getWriter().write(respString);
+ } catch (Exception e) {
+ System.out.println("操作失败,原因:" + e.getMessage());
+ }
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java
index e300f79..4a63f07 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java
@@ -1,6 +1,7 @@
package com.oying.modules.hwc.service.impl;
import com.alibaba.fastjson2.JSONObject;
+import com.google.gson.Gson;
import com.oying.exception.BadRequestException;
import com.oying.modules.hwc.domain.HwcResponse;
import com.oying.modules.hwc.service.SwiftPassService;
@@ -9,8 +10,6 @@
import com.oying.modules.hwc.utils.XmlUtils;
import com.oying.modules.security.config.SwiftPassProperties;
import com.oying.modules.security.config.WeiXinProperties;
-import com.oying.modules.sh.service.OrderReturnService;
-import com.oying.modules.sh.service.OrderService;
import com.oying.utils.CloseUtil;
import com.oying.utils.enums.PayTypeEnum;
import lombok.RequiredArgsConstructor;
@@ -24,9 +23,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
import java.util.*;
/**
@@ -48,14 +44,12 @@
private final static String service_close = "unified.trade.close";
private final SwiftPassProperties properties;
- private final OrderService orderService;
- private final OrderReturnService returnService;
private final WeiXinProperties weiXinProperties;
@Override
@Transactional(rollbackFor = Exception.class)
public HwcResponse pay(String ip, String total, String timeExpire, String description, String openId,
- String orderNum, PayTypeEnum status) {
+ String orderNum, PayTypeEnum status) {
SortedMap<String, String> map = new TreeMap<>();
map.put("service", service_pay);
map.put("version", version);
@@ -75,6 +69,9 @@
switch (status) {
case HWC:
map.put("mch_id", properties.getMchId());
+ break;
+ case HWC2:
+ map.put("mch_id", properties.getMchId2());
break;
default:
throw new BadRequestException("汇旺财类型错误");
@@ -106,9 +103,8 @@
throw new BadRequestException("验证签名错误");
} else {
if ("0".equals(resultMap.get("status")) && "0".equals(resultMap.get("result_code"))) {
-// Gson gson = new Gson();
-// return gson.fromJson(resultMap.get("pay_info"), HwcResponse.class);
- return null;
+ Gson gson = new Gson();
+ return gson.fromJson(resultMap.get("pay_info"), HwcResponse.class);
} else {
throw new BadRequestException(resultMap.get("err_code") + " : " + resultMap.get("err_msg") + "\n" +
resultMap.get("status") + " : " + resultMap.get("message"));
@@ -132,7 +128,7 @@
}
@Override
- public JSONObject query(String orderNum, PayTypeEnum status) throws IOException {
+ public JSONObject query(String orderNum, PayTypeEnum status) {
// 参数
SortedMap<String, String> map = new TreeMap<>();
map.put("service", service_query);
@@ -143,6 +139,9 @@
switch (status) {
case HWC:
map.put("mch_id", properties.getMchId());
+ break;
+ case HWC2:
+ map.put("mch_id", properties.getMchId2());
break;
default:
throw new BadRequestException("汇旺财类型错误");
@@ -190,16 +189,16 @@
throw new BadRequestException("操作失败,原因:" + e.getMessage());
} finally {
if (response != null) {
- response.close();
+ CloseUtil.close(response);
}
if (client != null) {
- client.close();
+ CloseUtil.close(client);
}
}
}
@Override
- public void closeOrder(String outTradeNo, PayTypeEnum status) throws IOException {
+ public void closeOrder(String outTradeNo, PayTypeEnum status) {
// 参数
SortedMap<String, String> map = new TreeMap<>();
map.put("service", service_close);
@@ -210,6 +209,9 @@
switch (status) {
case HWC:
map.put("mch_id", properties.getMchId());
+ break;
+ case HWC2:
+ map.put("mch_id", properties.getMchId2());
break;
default:
throw new BadRequestException("汇旺财类型错误");
@@ -254,10 +256,10 @@
throw new BadRequestException("操作失败,原因:" + e.getMessage());
} finally {
if (response != null) {
- response.close();
+ CloseUtil.close(response);
}
if (client != null) {
- client.close();
+ CloseUtil.close(client);
}
}
}
@@ -265,7 +267,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String, String> refund(String returnNum, String orderNum, String reason, long refund,
- long total, PayTypeEnum payType) throws IOException {
+ long total, PayTypeEnum payType) {
// 参数
SortedMap<String, String> map = new TreeMap<>();
map.put("service", service_refund);
@@ -281,6 +283,10 @@
case HWC:
map.put("mch_id", properties.getMchId());
map.put("op_user_id", properties.getMchId());
+ break;
+ case HWC2:
+ map.put("mch_id", properties.getMchId2());
+ map.put("op_user_id", properties.getMchId2());
break;
default:
throw new BadRequestException("汇旺财类型错误");
@@ -324,74 +330,13 @@
throw new BadRequestException("操作失败,原因:" + e);
} finally {
if (response != null) {
- response.close();
+ CloseUtil.close(response);
}
if (client != null) {
- client.close();
+ CloseUtil.close(client);
}
}
}
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
- try {
- String resString = XmlUtils.parseRequest(request);
- String respString = "error";
- if (!resString.isEmpty()) {
- Map<String, String> map = XmlUtils.toMap(resString.getBytes(), "utf-8");
- String sign_type = map.get("sign_type");
- String reSign = map.get("sign");
- if (map.containsKey("sign")) {
-// OrderDto order = orderService.findByOrderNum(map.get("out_trade_no"));
- PayTypeEnum status = PayTypeEnum.find("order.getPayType()");
- if (SignUtil.verifySign(reSign, sign_type, map, properties, status)) {
- System.out.println("验证签名错误!:" + map);
- } else {
- if ("0".equals(map.get("status"))) {
- if ("0".equals(map.get("result_code"))) {
- //业务处理
- respString = "success";
- response.getWriter().write(respString);
- }
- }
- }
- }
- }
- response.getWriter().write(respString);
- } catch (Exception e) {
- throw new BadRequestException("操作失败,原因:" + e.getMessage());
- }
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void returnNotify(HttpServletRequest request, HttpServletResponse response) {
- try {
- String resString = XmlUtils.parseRequest(request);
- String respString = "error";
- if (!resString.isEmpty()) {
- Map<String, String> map = XmlUtils.toMap(resString.getBytes(), "utf-8");
- String sign_type = map.get("sign_type");
- String reSign = map.get("sign");
- if (map.containsKey("sign")) {
-// ReturnOrder returnOrder = returnOrderRepository.findByReturnNum(map.get("out_refund_no"));
- PayTypeEnum status = PayTypeEnum.find("order.getPayType()");
- if (SignUtil.verifySign(reSign, sign_type, map, properties, status)) {
- System.out.println("验证签名错误!:" + map);
- } else {
- if ("0".equals(map.get("status"))) {
- if ("0".equals(map.get("result_code"))) {
- // 业务处理
- respString = "success";
- }
- }
- }
- }
- }
- response.getWriter().write(respString);
- } catch (Exception e) {
- System.out.println("操作失败,原因:" + e.getMessage());
- }
- }
}
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java b/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java
index b2a80cb..1bb9545 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java
@@ -27,8 +27,11 @@
throw new BadRequestException(e1.getMessage());
}
} else {
- if (status.equals(PayTypeEnum.HWC)) {
- return MD5.sign(preStr, "&key=" + properties.getKey(), "utf-8");
+ switch (status) {
+ case HWC:
+ return MD5.sign(preStr, "&key=" + properties.getKey(), "utf-8");
+ case HWC2:
+ return MD5.sign(preStr, "&key=" + properties.getKey2(), "utf-8");
}
throw new BadRequestException("汇旺财类型错误");
}
@@ -45,8 +48,11 @@
String preStr = builder.toString();
return !SignUtil.verifySign(preStr, sign, "RSA_1_256", properties.getPlatPublicKey());
} else if ("MD5".equals(signType)) {
- if (status.equals(PayTypeEnum.HWC)) {
- return !SignUtils.checkParam(resultMap, properties.getKey());
+ switch (status) {
+ case HWC:
+ return !SignUtils.checkParam(resultMap, properties.getKey());
+ case HWC2:
+ return !SignUtils.checkParam(resultMap, properties.getKey2());
}
throw new BadRequestException("汇旺财类型错误");
}
diff --git a/oying-system/src/main/java/com/oying/modules/security/config/SwiftPassProperties.java b/oying-system/src/main/java/com/oying/modules/security/config/SwiftPassProperties.java
index e420159..14e156a 100644
--- a/oying-system/src/main/java/com/oying/modules/security/config/SwiftPassProperties.java
+++ b/oying-system/src/main/java/com/oying/modules/security/config/SwiftPassProperties.java
@@ -17,12 +17,16 @@
public class SwiftPassProperties {
// 交易密钥1
private String key;
+ // 交易密钥2
+ private String key2;
// 平台私钥
private String mchPrivateKey;
// 平台公钥
private String platPublicKey;
// 门店编号1
private String mchId;
+ // 门店编号2
+ private String mchId2;
// 签名方式
private String signType;
// 原生JS
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java b/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java
index a9c58a6..06a4865 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java
@@ -4,11 +4,13 @@
import cn.hutool.core.bean.BeanUtil;
import io.swagger.annotations.ApiModelProperty;
import cn.hutool.core.bean.copier.CopyOptions;
+
import java.sql.Timestamp;
import java.math.BigDecimal;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
+
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -16,10 +18,10 @@
import lombok.Setter;
/**
-* @description /
-* @author lixin
-* @date 2025-06-11
-**/
+ * @author lixin
+ * @description /
+ * @date 2025-06-11
+ **/
@Getter
@Setter
@TableName("sh_order_return")
@@ -44,6 +46,10 @@
@NotBlank
@ApiModelProperty(value = "订单号")
private String orderNum;
+
+ @NotBlank
+ @ApiModelProperty(value = "支付类型")
+ private String payType;
@NotNull
@ApiModelProperty(value = "用户")
@@ -110,7 +116,7 @@
@ApiModelProperty(value = "审核信息")
private String auditMessage;
- public void copy(OrderReturn source){
- BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ public void copy(OrderReturn source) {
+ BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
}
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnQueryCriteria.java
index cd54935..710cd22 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnQueryCriteria.java
@@ -27,6 +27,9 @@
@ApiModelProperty(value = "订单号")
private String orderNum;
+ @ApiModelProperty(value = "支付类型")
+ private String payType;
+
@ApiModelProperty(value = "用户")
private Long userId;
diff --git a/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderMapper.java b/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderMapper.java
index f300317..e7fb24b 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderMapper.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderMapper.java
@@ -3,6 +3,7 @@
import com.oying.modules.sh.domain.Order;
import com.oying.modules.sh.domain.dto.OrderQueryCriteria;
import java.util.List;
+
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -19,4 +20,10 @@
IPage<Order> findAll(@Param("criteria") OrderQueryCriteria criteria, Page<Object> page);
List<Order> findAll(@Param("criteria") OrderQueryCriteria criteria);
+
+ Order getByOrderNum(String orderNum);
+
+ void updatePayStatus(String orderNum, String payState, String payMessage, String payTime);
+
+ void updateCloseStatus(String orderNum, String payState);
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnMapper.java b/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnMapper.java
index 401db5c..451b94f 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnMapper.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnMapper.java
@@ -19,4 +19,8 @@
IPage<OrderReturn> findAll(@Param("criteria") OrderReturnQueryCriteria criteria, Page<Object> page);
List<OrderReturn> findAll(@Param("criteria") OrderReturnQueryCriteria criteria);
+
+ OrderReturn getByReturnNum(String returnNum);
+
+ void updatePayStatus(String returnNum, String status, String time);
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderController.java b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderController.java
index 32d8f30..3ee152d 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderController.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderController.java
@@ -64,7 +64,7 @@
}
@GetMapping("mini")
- @ApiOperation("小程序:查询订单信息")
+ @ApiOperation("小程序:查询订单信息列")
public ResponseEntity<Object> miniQueryOrder(OrderQueryCriteria criteria) {
Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
criteria.setUserId(SecurityUtils.getCurrentUserId());
@@ -92,4 +92,18 @@
orderService.deleteAll(ids);
return new ResponseEntity<>(R.success(), HttpStatus.OK);
}
+
+ @Log("关闭订单")
+ @ApiOperation("关闭订单")
+ @PostMapping(value = "/closeOrder")
+ public ResponseEntity<Object> closeOrder(@RequestParam String orderNum) {
+ orderService.closeOrder(orderNum);
+ return new ResponseEntity<>(R.success(), HttpStatus.OK);
+ }
+
+ @ApiOperation("订单号查询订单")
+ @GetMapping(value = "/getByOrderNum")
+ public ResponseEntity<Object> getByOrderNum(@RequestParam String orderNum) {
+ return new ResponseEntity<>(R.success(orderService.getByOrderNum(orderNum)), HttpStatus.OK);
+ }
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java b/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java
index cabc3b3..bdab037 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java
@@ -56,4 +56,8 @@
* @throws IOException /
*/
void download(List<OrderReturn> all, HttpServletResponse response) throws IOException;
+
+ OrderReturn getByReturnNum(String outRefundNo);
+
+ void updatePayStatus(String outRefundNo, String status, String time);
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java b/oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java
index e19d9e9..1ae08fb 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java
@@ -14,6 +14,7 @@
import com.oying.modules.sh.domain.request.SubmitOrder;
import com.oying.modules.sh.domain.vo.OrderInfo;
import com.oying.utils.PageResult;
+import com.oying.utils.enums.PayStateEnum;
/**
* @author lixin
@@ -42,6 +43,12 @@
OrderInfo generatorOrder(GeneratorOrder generator);
Order submitOrder(SubmitOrder submit, HttpServletRequest request);
+
+ Order getByOrderNum(String orderNum);
+
+ void paySuccess(Order order);
+
+ void updatePayStatus(String outTradeNo, PayStateEnum stateEnum, String payInfo, String timeEnd);
/**
* 创建
@@ -72,4 +79,6 @@
* @throws IOException /
*/
void download(List<Order> all, HttpServletResponse response) throws IOException;
+
+ void closeOrder(String orderNum);
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java
index b362171..1c7ced3 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java
@@ -12,19 +12,21 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.oying.utils.PageUtil;
+
import java.util.List;
import java.util.Map;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
+
import com.oying.utils.PageResult;
/**
-* @description 服务实现
-* @author lixin
-* @date 2025-06-11
-**/
+ * @author lixin
+ * @description 服务实现
+ * @date 2025-06-11
+ **/
@Service
@RequiredArgsConstructor
public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, OrderReturn> implements OrderReturnService {
@@ -32,16 +34,26 @@
private final OrderReturnMapper orderReturnMapper;
@Override
- public PageResult<OrderReturn> queryAll(OrderReturnQueryCriteria criteria, Page<Object> page){
+ public PageResult<OrderReturn> queryAll(OrderReturnQueryCriteria criteria, Page<Object> page) {
return PageUtil.toPage(orderReturnMapper.findAll(criteria, page));
}
@Override
- public List<OrderReturn> queryAll(OrderReturnQueryCriteria criteria){
+ public List<OrderReturn> queryAll(OrderReturnQueryCriteria criteria) {
return orderReturnMapper.findAll(criteria);
}
@Override
+ public OrderReturn getByReturnNum(String returnNum) {
+ return orderReturnMapper.getByReturnNum(returnNum);
+ }
+
+ @Override
+ public void updatePayStatus(String returnNum, String status, String time) {
+ orderReturnMapper.updatePayStatus(returnNum, status, time);
+ }
+
+ @Override
@Transactional(rollbackFor = Exception.class)
public void create(OrderReturn resources) {
orderReturnMapper.insert(resources);
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java
index 82885bb..c185dc3 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java
@@ -196,6 +196,47 @@
@Override
@Transactional(rollbackFor = Exception.class)
+ public Order getByOrderNum(String orderNum) {
+ return orderMapper.getByOrderNum(orderNum);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void paySuccess(Order order) {
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void updatePayStatus(String orderNum, PayStateEnum payState, String payMessage, String payTime) {
+ orderMapper.updatePayStatus(orderNum, payState.getKey(), payMessage, payTime);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void closeOrder(String orderNum) {
+ Order order = getByOrderNum(orderNum);
+ if (order == null) {
+ throw new BadRequestException("订单不存在");
+ }
+ PayTypeEnum anEnum = PayTypeEnum.find(order.getPayType());
+ switch (anEnum) {
+ case HWC:
+ case HWC2:
+ JSONObject object = swiftPassService.query(orderNum, anEnum);
+ if (object.getString("trade_state").equals(PayStateEnum.SUCCESS.getKey())) {
+ throw new BadRequestException("订单已支付");
+ }
+ if (object.getString("trade_state").equals(PayStateEnum.CLOSED.getKey())) {
+ throw new BadRequestException("订单已关闭");
+ }
+ swiftPassService.closeOrder(orderNum, anEnum);
+ break;
+ }
+ orderMapper.updateCloseStatus(orderNum, PayStateEnum.CLOSED.getKey());
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
public void create(Order resources) {
orderMapper.insert(resources);
}
diff --git a/oying-system/src/main/java/com/oying/modules/system/domain/UserStore.java b/oying-system/src/main/java/com/oying/modules/system/domain/UserStore.java
index c90c772..8a0cb9b 100644
--- a/oying-system/src/main/java/com/oying/modules/system/domain/UserStore.java
+++ b/oying-system/src/main/java/com/oying/modules/system/domain/UserStore.java
@@ -28,11 +28,9 @@
@ApiModelProperty(value = "ID", hidden = true)
private Long managerId;
- @TableId(value = "store_id")
@ApiModelProperty(value = "门店id")
private Long storeId;
- @TableId(value = "user_id")
@ApiModelProperty(value = "用户id")
private Long userId;
diff --git a/oying-system/src/main/resources/config/application-dev.yml b/oying-system/src/main/resources/config/application-dev.yml
index 4aa5a20..afb8b1c 100644
--- a/oying-system/src/main/resources/config/application-dev.yml
+++ b/oying-system/src/main/resources/config/application-dev.yml
@@ -152,12 +152,16 @@
swift-pass:
# 密钥
key: vJB6683s4NtQtXBgHTvE1hWOUtcre7nj
+ # 密钥2
+ key-2: s7Jf1eEM5QlxihWSxZh673pDhGY7p0s0
# 私钥
mch-private-key: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC2YNuGqSAFcIVOc9mnmIbnVfQoyyMBoyGqTD3beiy/UsXZrGF4OIrPEevwXnwHktURupjHAKvt92PL4L9wTz7cknaQkF0NH5saOdY3sL88xH7F3qSgIwHPvkRileFeEHx+pKnXBms8yiliDqPk0MV3iRRoXKhRnojrWAYJhyz+1iJ13qWXCWcpr9hf77Uu/r1N7wsJKN4Z75M2qQC6LgRTaHoBroLGVtld4PM30ee6o9RR8yiFVx4FDVukinGR15nTsrNh+sUx3piVXqYrq23UPjUWVtJlf9cEvfNVXCMsa71LGEzUl0zxDfeyXRQhel3E27p2oovEYvhl5s+pZhtXAgMBAAECggEBAKXZLKinccwgh8lRBrQmuz7x5ieWms3pWDryPCozTy/pCKyq2rQlzu0BIiqi8W09tG773eTSEodDOkhzqANsvQB+XD2YWlYN0NEnmUtpem67TYGItvI9A2+0WaHBJIGSwnO0MBKu7qQIP1vBbn8s7vWF/b3tzM70ORSzJkJR37QY435+ZG9rKMKyL/tuGW7E5AgrHmyl2aK9me3vgUrZct2e9l5XLrn9oU1niEmbDbFARhphXDCEPIvFiu7WtFDBmp/jEOc4u/y/sYMjS1RWpO9iOyTZDO8Mi9iofXugmoot4Tn0lBckeR6YVRb/I3EcVADoMfk1iaN1aWv1u+Ska8ECgYEA3ZFYMvo5y7SztrEbyLpWGsp6aM4a5ght8p52/rFhSHD5CGS7Uywhp4LxxIjLTRBNa/UkBzOq1Xt1+PVDNHf0E1yYZqEv9OXWC0yiCsnwO6b7o9hc3VnnX4jw7FkS0+pjfgCK4/A9hFj9xUI+qX3L3+pOCseioUeYofqTc2bn7ncCgYEA0rhvvNO30EisLACdOIem8XgbL4LjKJ47FnYS/TEZ9cDhJW5G2pAxgyFsqhN/GuTVg8uSQ7a6PlcBxzTuOwdZg05RcCAdmsXUdGjVbKk2i4CBp0K1j4QYfr8Wt18x0RLfzIQDrZQajWssVGjo8sfMn8qmjbRNbMmokRTflGIkEiECgYEAxChaYn9fzbYEaRixlWtKsdtSthjKfZ8239ZlWSVnEEBcaY7svTzT6r6mFq5Y9rgZIxvbsriOZQQxtKBGyFvubXnLvwizMWiNsGE/ELgphFZYcH0r8hgXHGBbk5NkdNMNFE+cpyJZBCPZP9tfKKUjavC/+RE3LPv66GS0SDXx3g8CgYAYOIT3cmqFcWUA5c0si0MgLEsLqgLMT2vBSC8klTlDqzj14XgZdUuLpBLmdbk9cSIttP+J8v3zXnLg3++mL1EVq7HmrnpYqPajrs0hYU3YuRuuCxfteCSMpRBKYZHLU10QF/iIQibPLIt65FgqV9boYxXD4f6oS4Gps3mDh8hXoQKBgBKojPBWgp4/WBMfh8nUzFzTiW7ACyG2jAxGtu0dtqfwx2LkesUKGhD1JGlxdDQ6jSv9tbhAgbZjTAULSo03626ZaiSDF+nCwFsobd3wRiij8LiL9amW5t6XBeX6bS5SCh45GbgnNBtzBqUI19/CGH09YXNpCYnADsY4fab4wNpR
# 公钥
plat-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmDbhqkgBXCFTnPZp5iG51X0KMsjAaMhqkw923osv1LF2axheDiKzxHr8F58B5LVEbqYxwCr7fdjy+C/cE8+3JJ2kJBdDR+bGjnWN7C/PMR+xd6koCMBz75EYpXhXhB8fqSp1wZrPMopYg6j5NDFd4kUaFyoUZ6I61gGCYcs/tYidd6llwlnKa/YX++1Lv69Te8LCSjeGe+TNqkAui4EU2h6Aa6CxlbZXeDzN9HnuqPUUfMohVceBQ1bpIpxkdeZ07KzYfrFMd6YlV6mK6tt1D41FlbSZX/XBL3zVVwjLGu9SxhM1JdM8Q33sl0UIXpdxNu6dqKLxGL4ZebPqWYbVwIDAQAB
# 门店编号
mch-id: 1030238092
+ # 门店编号2
+ mch-id-2: 1030238093
# 签名方式
sign-type: MD5
# 原生JS
@@ -167,9 +171,9 @@
# 请求url
req-url: https://pay.hstypay.com/v2/pay/gateway
# 支付通知地址
- notify-url: http://1.95.124.88:8088/oying/api/swiftPass/alipayCallback
+ notify-url: http://1.95.124.88:8088/api/swiftPass/alipayCallback
# 退款通知地址
- refund-url: https://1.95.124.88:8088/oying/api/swiftPass/returnNotify
+ refund-url: https://1.95.124.88:8088/api/swiftPass/returnNotify
obs:
access_key_id: RZ1UIOZDZ58DD4NWPD6Q
diff --git a/oying-system/src/main/resources/config/application-prod.yml b/oying-system/src/main/resources/config/application-prod.yml
index 57f5446..2f4bb75 100644
--- a/oying-system/src/main/resources/config/application-prod.yml
+++ b/oying-system/src/main/resources/config/application-prod.yml
@@ -163,12 +163,16 @@
swift-pass:
# 密钥
key: vJB6683s4NtQtXBgHTvE1hWOUtcre7nj
+ # 密钥2
+ key-2: s7Jf1eEM5QlxihWSxZh673pDhGY7p0s0
# 私钥
mch-private-key: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC2YNuGqSAFcIVOc9mnmIbnVfQoyyMBoyGqTD3beiy/UsXZrGF4OIrPEevwXnwHktURupjHAKvt92PL4L9wTz7cknaQkF0NH5saOdY3sL88xH7F3qSgIwHPvkRileFeEHx+pKnXBms8yiliDqPk0MV3iRRoXKhRnojrWAYJhyz+1iJ13qWXCWcpr9hf77Uu/r1N7wsJKN4Z75M2qQC6LgRTaHoBroLGVtld4PM30ee6o9RR8yiFVx4FDVukinGR15nTsrNh+sUx3piVXqYrq23UPjUWVtJlf9cEvfNVXCMsa71LGEzUl0zxDfeyXRQhel3E27p2oovEYvhl5s+pZhtXAgMBAAECggEBAKXZLKinccwgh8lRBrQmuz7x5ieWms3pWDryPCozTy/pCKyq2rQlzu0BIiqi8W09tG773eTSEodDOkhzqANsvQB+XD2YWlYN0NEnmUtpem67TYGItvI9A2+0WaHBJIGSwnO0MBKu7qQIP1vBbn8s7vWF/b3tzM70ORSzJkJR37QY435+ZG9rKMKyL/tuGW7E5AgrHmyl2aK9me3vgUrZct2e9l5XLrn9oU1niEmbDbFARhphXDCEPIvFiu7WtFDBmp/jEOc4u/y/sYMjS1RWpO9iOyTZDO8Mi9iofXugmoot4Tn0lBckeR6YVRb/I3EcVADoMfk1iaN1aWv1u+Ska8ECgYEA3ZFYMvo5y7SztrEbyLpWGsp6aM4a5ght8p52/rFhSHD5CGS7Uywhp4LxxIjLTRBNa/UkBzOq1Xt1+PVDNHf0E1yYZqEv9OXWC0yiCsnwO6b7o9hc3VnnX4jw7FkS0+pjfgCK4/A9hFj9xUI+qX3L3+pOCseioUeYofqTc2bn7ncCgYEA0rhvvNO30EisLACdOIem8XgbL4LjKJ47FnYS/TEZ9cDhJW5G2pAxgyFsqhN/GuTVg8uSQ7a6PlcBxzTuOwdZg05RcCAdmsXUdGjVbKk2i4CBp0K1j4QYfr8Wt18x0RLfzIQDrZQajWssVGjo8sfMn8qmjbRNbMmokRTflGIkEiECgYEAxChaYn9fzbYEaRixlWtKsdtSthjKfZ8239ZlWSVnEEBcaY7svTzT6r6mFq5Y9rgZIxvbsriOZQQxtKBGyFvubXnLvwizMWiNsGE/ELgphFZYcH0r8hgXHGBbk5NkdNMNFE+cpyJZBCPZP9tfKKUjavC/+RE3LPv66GS0SDXx3g8CgYAYOIT3cmqFcWUA5c0si0MgLEsLqgLMT2vBSC8klTlDqzj14XgZdUuLpBLmdbk9cSIttP+J8v3zXnLg3++mL1EVq7HmrnpYqPajrs0hYU3YuRuuCxfteCSMpRBKYZHLU10QF/iIQibPLIt65FgqV9boYxXD4f6oS4Gps3mDh8hXoQKBgBKojPBWgp4/WBMfh8nUzFzTiW7ACyG2jAxGtu0dtqfwx2LkesUKGhD1JGlxdDQ6jSv9tbhAgbZjTAULSo03626ZaiSDF+nCwFsobd3wRiij8LiL9amW5t6XBeX6bS5SCh45GbgnNBtzBqUI19/CGH09YXNpCYnADsY4fab4wNpR
# 公钥
plat-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmDbhqkgBXCFTnPZp5iG51X0KMsjAaMhqkw923osv1LF2axheDiKzxHr8F58B5LVEbqYxwCr7fdjy+C/cE8+3JJ2kJBdDR+bGjnWN7C/PMR+xd6koCMBz75EYpXhXhB8fqSp1wZrPMopYg6j5NDFd4kUaFyoUZ6I61gGCYcs/tYidd6llwlnKa/YX++1Lv69Te8LCSjeGe+TNqkAui4EU2h6Aa6CxlbZXeDzN9HnuqPUUfMohVceBQ1bpIpxkdeZ07KzYfrFMd6YlV6mK6tt1D41FlbSZX/XBL3zVVwjLGu9SxhM1JdM8Q33sl0UIXpdxNu6dqKLxGL4ZebPqWYbVwIDAQAB
# 门店编号
mch-id: 1030238092
+ # 门店编号2
+ mch-id-2: 1030238093
# 签名方式
sign-type: MD5
# 原生JS
@@ -178,9 +182,9 @@
# 请求url
req-url: https://pay.hstypay.com/v2/pay/gateway
# 支付通知地址
- notify-url: http://1.95.124.88:8088/oying/api/swiftPass/alipayCallback
+ notify-url: http://1.95.124.88:8088/api/swiftPass/alipayCallback
# 退款通知地址
- refund-url: https://1.95.124.88:8088/oying/api/swiftPass/returnNotify
+ refund-url: https://1.95.124.88:8088/api/swiftPass/returnNotify
obs:
access_key_id: RZ1UIOZDZ58DD4NWPD6Q
diff --git a/oying-system/src/main/resources/mapper/sh/OrderMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderMapper.xml
index 44a5e20..c647e5f 100644
--- a/oying-system/src/main/resources/mapper/sh/OrderMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/OrderMapper.xml
@@ -37,6 +37,15 @@
order_id, order_num, order_status, order_status_describe, user_id, username, store_id, store_name, store_logo, order_describe, original_price, paid_price, actually_pay_price, pay_state, pay_message, pay_type, pay_time, expire_time, openid, app_id, timestamp, nonce_str, package_val, sign_type, pay_sign, create_by, create_time, update_by, update_time
</sql>
+ <update id="updatePayStatus">
+ update sh_order set pay_state = #{payState}, pay_message = #{payMessage},
+ pay_time = #{payTime} where order_num = #{orderNum}
+ </update>
+
+ <update id="updateCloseStatus">
+ update sh_order set pay_state = #{payState} where order_num = #{orderNum}
+ </update>
+
<select id="findAll" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
@@ -75,4 +84,10 @@
</where>
order by order_id desc
</select>
+ <select id="getByOrderNum" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from sh_order
+ where order_num = #{orderNum}
+ </select>
</mapper>
diff --git a/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
index 3a37432..4b091cd 100644
--- a/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
@@ -7,6 +7,7 @@
<result column="return_status" property="returnStatus"/>
<result column="return_status_describe" property="returnStatusDescribe"/>
<result column="order_num" property="orderNum"/>
+ <result column="pay_type" property="payType"/>
<result column="user_id" property="userId"/>
<result column="username" property="username"/>
<result column="store_id" property="storeId"/>
@@ -33,8 +34,12 @@
</resultMap>
<sql id="Base_Column_List">
- return_id, return_num, return_status, return_status_describe, order_num, user_id, username, store_id, store_name, store_logo, original_price, paid_price, actually_pay_price, refund_price, refund_status, success_time, channel, reason, remark, photos, audit_status, audit_user, audit_time, audit_message, create_by, create_time, update_by, update_time
+ return_id, return_num, return_status, return_status_describe, order_num, pay_type, user_id, username, store_id, store_name, store_logo, original_price, paid_price, actually_pay_price, refund_price, refund_status, success_time, channel, reason, remark, photos, audit_status, audit_user, audit_time, audit_message, create_by, create_time, update_by, update_time
</sql>
+ <update id="updatePayStatus">
+ update sh_order_return set return_status = #{payState}, success_time = #{payTime}
+ where order_num = #{orderNum}
+ </update>
<select id="findAll" resultMap="BaseResultMap">
select
@@ -49,6 +54,9 @@
</if>
<if test="criteria.orderNum != null">
and order_num like concat('%',#{criteria.orderNum},'%')
+ </if>
+ <if test="criteria.payType != null">
+ and pay_type = #{criteria.payType}
</if>
<if test="criteria.userId != null">
and user_id = #{criteria.userId}
@@ -77,4 +85,9 @@
</where>
order by return_id desc
</select>
+ <select id="getByReturnNum" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from sh_order_return where return_num = #{returnNum}
+ </select>
</mapper>
diff --git a/pom.xml b/pom.xml
index 6005c46..cf63f1b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,6 +48,13 @@
</exclusions>
</dependency>
+ <!-- Google Gson 依赖 -->
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.10.1</version> <!-- 使用最新版本 -->
+ </dependency>
+
<!--Spring boot 测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
--
Gitblit v1.9.3