From 8bd3f6063098a4346fb8465da726793bf9684477 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Tue, 19 Aug 2025 22:21:57 +0800
Subject: [PATCH] 售后审核优化
---
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java | 23 +++++++
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java | 3
oying-common/src/main/java/com/oying/utils/enums/ReturnAuditEnum.java | 3
oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnMapper.java | 5 +
oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml | 11 +++
oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java | 6 +-
oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java | 14 ++--
oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderReturnResponse.java | 28 +++++++++
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java | 43 +++++++++----
oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java | 23 ++++---
10 files changed, 118 insertions(+), 41 deletions(-)
diff --git a/oying-common/src/main/java/com/oying/utils/enums/ReturnAuditEnum.java b/oying-common/src/main/java/com/oying/utils/enums/ReturnAuditEnum.java
index a154601..54a2bf2 100644
--- a/oying-common/src/main/java/com/oying/utils/enums/ReturnAuditEnum.java
+++ b/oying-common/src/main/java/com/oying/utils/enums/ReturnAuditEnum.java
@@ -15,7 +15,8 @@
ZERO(0, "申请"),
ONE(1, "拒绝"),
TWO(2, "通过"),
- THREE(3, "未知");
+ THREE(3, "取消"),
+ FOUR(4, "未知");
private final Integer key;
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
index ddd360b..3af99bd 100644
--- 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
@@ -5,8 +5,8 @@
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.OrderReturn;
import com.oying.modules.sh.domain.vo.OrderResponse;
+import com.oying.modules.sh.domain.vo.OrderReturnResponse;
import com.oying.modules.sh.service.OrderReturnService;
import com.oying.modules.sh.service.OrderService;
import com.oying.utils.enums.OrderStatusEnum;
@@ -94,8 +94,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());
+ OrderReturnResponse order = returnService.getByReturnNum(map.get("out_refund_no"));
+ PayTypeEnum status = PayTypeEnum.find(order.getOrderReturn().getPayType());
if (SignUtil.verifySign(reSign, sign_type, map, properties, status)) {
log.error("汇旺财退款验证签名错误!:{}", map.toString());
} else {
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderReturnResponse.java b/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderReturnResponse.java
new file mode 100644
index 0000000..512bd71
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderReturnResponse.java
@@ -0,0 +1,28 @@
+package com.oying.modules.sh.domain.vo;
+
+import com.oying.modules.sh.domain.Order;
+import com.oying.modules.sh.domain.OrderAddressSnapshot;
+import com.oying.modules.sh.domain.OrderOperationLog;
+import com.oying.modules.sh.domain.OrderReturn;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author xin
+ * @description
+ * @date 2025/8/19 22:14
+ */
+@Getter
+@Setter
+@AllArgsConstructor
+public class OrderReturnResponse {
+
+ private OrderReturn orderReturn;
+
+ private OrderAddressSnapshot address;
+
+ private List<OrderOperationLog> operation;
+}
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 b94b03d..59a4b19 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
@@ -24,9 +24,12 @@
OrderReturn getByReturnNum(String returnNum);
- void updatePayStatus(String returnNum, String payState, String payTime);
+ void updatePayStatus(@Param("returnNum") String returnNum, @Param("refundStatus") String refundStatus, @Param("successTime") String successTime);
Long countAll(@Param("criteria") OrderReturnQueryCriteria criteria, @Param("blurry") String blurry);
OrderReturn getByOrderNum(String orderNum, Integer status);
+
+ void updateStatus(@Param("returnNum") String returnNum, @Param("returnStatus") Integer returnStatus,
+ @Param("value") String value, @Param("auditStatus") Integer auditStatus);
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java
index af2c0a3..d18b3ae 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java
@@ -50,11 +50,25 @@
return new ResponseEntity<>(R.success(orderReturnService.queryAll(criteria, page)), HttpStatus.OK);
}
+ @ApiOperation("订单号订单售后")
+ @GetMapping(value = "/getByReturnNum")
+ public ResponseEntity<Object> getByReturnNum(@RequestParam String returnNum) {
+ return new ResponseEntity<>(R.success(orderReturnService.getByReturnNum(returnNum)), HttpStatus.OK);
+ }
+
@PostMapping
@Log("申请订单售后")
@ApiOperation("申请订单售后")
public ResponseEntity<Object> createOrderReturn(@Validated @RequestBody ReturnOrder resources) {
orderReturnService.create(resources);
+ return new ResponseEntity<>(R.success(), HttpStatus.CREATED);
+ }
+
+ @PostMapping("cancel")
+ @Log("取消订单售后")
+ @ApiOperation("取消订单售后")
+ public ResponseEntity<Object> cancel(@RequestParam String returnNum) {
+ orderReturnService.cancel(returnNum);
return new ResponseEntity<>(R.success(), HttpStatus.CREATED);
}
@@ -74,14 +88,5 @@
public ResponseEntity<Object> updateOrderReturn(@Validated @RequestBody OrderReturn resources) {
orderReturnService.update(resources);
return new ResponseEntity<>(R.success(), HttpStatus.NO_CONTENT);
- }
-
- @DeleteMapping
- @Log("删除退款订单")
- @ApiOperation("删除退款订单")
- @PreAuthorize("@el.check('orderReturn:del')")
- public ResponseEntity<Object> deleteOrderReturn(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
- orderReturnService.deleteAll(ids);
- return new ResponseEntity<>(R.success(), 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 3ba6a84..f8f1c9e 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
@@ -9,6 +9,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.oying.modules.sh.domain.request.AuditOrderReturn;
import com.oying.modules.sh.domain.request.ReturnOrder;
+import com.oying.modules.sh.domain.vo.OrderReturnResponse;
import com.oying.utils.PageResult;
/**
@@ -39,17 +40,14 @@
*/
void create(ReturnOrder resources);
+
+ void cancel(String returnNum);
+
/**
* 编辑
* @param resources /
*/
void update(OrderReturn resources);
-
- /**
- * 多选删除
- * @param ids /
- */
- void deleteAll(List<Long> ids);
/**
* 导出数据
@@ -59,9 +57,9 @@
*/
void download(List<OrderReturn> all, HttpServletResponse response) throws IOException;
- OrderReturn getByReturnNum(String outRefundNo);
+ OrderReturnResponse getByReturnNum(String outRefundNo);
- void updatePayStatus(String outRefundNo, String status, String time);
+ void updatePayStatus(String outRefundNo, String refundStatus, String successTime);
void audit(AuditOrderReturn resources);
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
index bf9450b..a091f1b 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
@@ -90,10 +90,10 @@
orderOperationLogMapper.insert(log1);
response.getOrder().setOrderStatus(OrderStatusEnum.TWO.getKey());
response.getOrder().setOrderStatusDescribe(OrderStatusEnum.TWO.getValue());
- case FOUR:
+ case THREE:
userType = ConstantsKey.MERCHANT;
break;
- case THREE:
+ case FOUR:
orderMapper.updateRider(response.getOrder().getOrderNum(), SecurityUtils.getCurrentUserId(), SecurityUtils.getCurrentUsername(), cardName);
case FIVE:
case SIX:
@@ -117,7 +117,26 @@
orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
statusEnum = OrderStatusEnum.EIGHT;
break;
+ case TEN:
+ case TWELVE:
+ userType = ConstantsKey.BUYER;
+ orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
+ break;
+ case FIFTEEN:
+ userType = ConstantsKey.BUYER;
+ orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), OrderStatusEnum.EIGHT.getKey(), OrderStatusEnum.EIGHT.getValue());
+ break;
+ case ELEVEN:
+ userType = ConstantsKey.MERCHANT;
+ orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), OrderStatusEnum.EIGHT.getKey(), OrderStatusEnum.EIGHT.getValue());
+ break;
+ case THIRTEEN:
+ case FOURTEEN:
+ userType = ConstantsKey.MERCHANT;
+ orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
+ break;
default:
+ throw new BadRequestException("状态错误");
}
if (username == null) {
username = SecurityUtils.getCurrentUsername();
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 55473c5..d5add54 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
@@ -6,8 +6,9 @@
import com.oying.modules.sh.domain.OrderReturn;
import com.oying.modules.sh.domain.request.AuditOrderReturn;
import com.oying.modules.sh.domain.request.ReturnOrder;
-import com.oying.modules.sh.service.OrderReturnProductSnapshotService;
-import com.oying.modules.sh.service.OrderService;
+import com.oying.modules.sh.domain.vo.OrderResponse;
+import com.oying.modules.sh.domain.vo.OrderReturnResponse;
+import com.oying.modules.sh.service.*;
import com.oying.utils.*;
import com.oying.utils.enums.GenerateEnum;
import com.oying.utils.enums.OrderStatusEnum;
@@ -16,7 +17,6 @@
import lombok.RequiredArgsConstructor;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.sh.service.OrderReturnService;
import com.oying.modules.sh.domain.dto.OrderReturnQueryCriteria;
import com.oying.modules.sh.mapper.OrderReturnMapper;
import org.springframework.stereotype.Service;
@@ -37,11 +37,14 @@
public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, OrderReturn> implements OrderReturnService {
private final OrderReturnMapper orderReturnMapper;
+ private final OrderOperationLogService operationLogService;
private final OrderService orderService;
private final OrderReturnProductSnapshotService productSnapshotService;
private final RedisUtils redisUtils;
private final SwiftPassService swiftPassService;
+ private final OrderAddressSnapshotService addressSnapshotService;
private static final String ORDER_RETURN_KEY = "oying:order:refund";
+ private static final String ORDER_CODE = "REFUND";
@Override
public PageResult<OrderReturn> queryAll(OrderReturnQueryCriteria criteria, Page<Object> page) {
@@ -57,13 +60,16 @@
}
@Override
- public OrderReturn getByReturnNum(String returnNum) {
- return orderReturnMapper.getByReturnNum(returnNum);
+ public OrderReturnResponse getByReturnNum(String returnNum) {
+ OrderReturn orderReturn = orderReturnMapper.getByReturnNum(returnNum);
+ return new OrderReturnResponse(orderReturn,
+ addressSnapshotService.queryByOrderNum(orderReturn.getOrderNum()),
+ operationLogService.getByOrderNum(orderReturn.getOrderNum(), ORDER_CODE));
}
@Override
- public void updatePayStatus(String returnNum, String status, String time) {
- orderReturnMapper.updatePayStatus(returnNum, status, time);
+ public void updatePayStatus(String returnNum, String refundStatus, String successTime) {
+ orderReturnMapper.updatePayStatus(returnNum, refundStatus, successTime);
}
@Override
@@ -117,7 +123,22 @@
returnOrder.setPhotos(resources.getPhotos());
returnOrder.setAuditStatus(ReturnAuditEnum.ZERO.getKey());
orderReturnMapper.insert(returnOrder);
+ }
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void cancel(String returnNum) {
+ OrderReturn orderReturn = orderReturnMapper.getByReturnNum(returnNum);
+ if (orderReturn == null) {
+ throw new BadRequestException("订单不存在!");
+ }
+ if (!orderReturn.getUserId().equals(SecurityUtils.getCurrentUserId())) {
+ throw new BadRequestException("不能修改他人订单");
+ }
+ orderReturnMapper.updateStatus(returnNum, OrderStatusEnum.FIFTEEN.getKey(), OrderStatusEnum.FIFTEEN.getValue(),
+ ReturnAuditEnum.THREE.getKey());
+ OrderResponse response = orderService.getByOrderNum(orderReturn.getOrderNum());
+ operationLogService.create(response, OrderStatusEnum.FIFTEEN, null);
}
@Override
@@ -133,7 +154,7 @@
public synchronized void audit(AuditOrderReturn resources) {
OrderReturn orderReturn = orderReturnMapper.getByReturnNum(resources.getReturnNum());
if (orderReturn == null) {
- throw new BadRequestException("订单不存在");
+ throw new BadRequestException("订单不存在!");
}
if (!Objects.equals(orderReturn.getReturnStatus(), ReturnAuditEnum.ZERO.getKey())) {
throw new BadRequestException("订单已处理或取消");
@@ -174,12 +195,6 @@
// 审核信息
orderReturn.setAuditMessage(resources.getMessage());
orderReturnMapper.updateById(orderReturn);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void deleteAll(List<Long> ids) {
- orderReturnMapper.deleteBatchIds(ids);
}
@Override
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 27ef9c0..5c4657e 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
@@ -57,6 +57,7 @@
private static final String DESCRIBE = "哦应:";
private static final String ORDER_KEY = "oying:order";
private static final String ORDER_STORE_KEY = "oying:order:store";
+ private static final String ORDER_CODE = "ORDER";
@Override
public PageResult<Order> queryAll(OrderQueryCriteria criteria, Page<Object> page) {
@@ -267,7 +268,7 @@
public OrderResponse getByOrderNum(String orderNum) {
return new OrderResponse(orderMapper.getByOrderNum(orderNum),
addressSnapshotService.queryByOrderNum(orderNum),
- operationLogService.getByOrderNum(orderNum, null));
+ operationLogService.getByOrderNum(orderNum, ORDER_CODE));
}
@Override
diff --git a/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
index 56d0931..edeaadc 100644
--- a/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
@@ -132,8 +132,15 @@
<update id="updatePayStatus">
update sh_order_return
- set return_status = #{payState},
- success_time = #{payTime}
+ set refund_status = #{refundStatus},
+ success_time = #{successTime}
+ where return_num = #{returnNum}
+ </update>
+ <update id="updateStatus">
+ update sh_order_return
+ set return_status = #{returnStatus},
+ return_status_describe = #{value},
+ audit_status = #{auditStatus}
where return_num = #{returnNum}
</update>
--
Gitblit v1.9.3