From b50926fa7052b4e85c9aff36816f842284c2498c Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Fri, 05 Sep 2025 21:25:00 +0800
Subject: [PATCH] 订单总金额
---
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 46 insertions(+), 7 deletions(-)
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 d5add54..337325d 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
@@ -3,8 +3,11 @@
import com.oying.exception.BadRequestException;
import com.oying.modules.hwc.service.SwiftPassService;
import com.oying.modules.sh.domain.Order;
+import com.oying.modules.sh.domain.OrderProductSnapshot;
import com.oying.modules.sh.domain.OrderReturn;
+import com.oying.modules.sh.domain.OrderReturnProductSnapshot;
import com.oying.modules.sh.domain.request.AuditOrderReturn;
+import com.oying.modules.sh.domain.request.ProductOrder;
import com.oying.modules.sh.domain.request.ReturnOrder;
import com.oying.modules.sh.domain.vo.OrderResponse;
import com.oying.modules.sh.domain.vo.OrderReturnResponse;
@@ -45,6 +48,7 @@
private final OrderAddressSnapshotService addressSnapshotService;
private static final String ORDER_RETURN_KEY = "oying:order:refund";
private static final String ORDER_CODE = "REFUND";
+ public static final Integer DAY = 30;
@Override
public PageResult<OrderReturn> queryAll(OrderReturnQueryCriteria criteria, Page<Object> page) {
@@ -75,7 +79,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
public synchronized void create(ReturnOrder resources) {
- Order order = orderService.queryByOrderNum(resources.getOrderNum());
+ OrderResponse response = orderService.getByOrderNum(resources.getOrderNum());
+ Order order = response.getOrder();
if (order == null) {
throw new BadRequestException("订单不存在!");
}
@@ -84,13 +89,13 @@
}
OrderReturn returnOrder1 = orderReturnMapper.getByOrderNum(resources.getOrderNum(), ReturnAuditEnum.ZERO.getKey());
if (returnOrder1 != null) {
- throw new BadRequestException("退款订单已提交");
+ throw new BadRequestException("申请已提交");
}
OrderReturn returnOrder2 = orderReturnMapper.getByOrderNum(resources.getOrderNum(), ReturnAuditEnum.TWO.getKey());
if (returnOrder2 != null) {
throw new BadRequestException("退款订单已处理");
}
- if (!DateUtil.isBefore(order.getPayTime(), DateUtil.DAY)) {
+ if (!DateUtil.isBefore(order.getPayTime(), DAY)) {
throw new BadRequestException("订单已超过售后有效期");
}
// 退款订单
@@ -123,6 +128,37 @@
returnOrder.setPhotos(resources.getPhotos());
returnOrder.setAuditStatus(ReturnAuditEnum.ZERO.getKey());
orderReturnMapper.insert(returnOrder);
+ List<OrderReturnProductSnapshot> productSnapshots = new ArrayList<>();
+ for (ProductOrder productOrder : resources.getProductOrders()) {
+ for (OrderProductSnapshot snapshot : order.getProductSnapshots()) {
+ if (productOrder.getProductId().equals(snapshot.getProductId())) {
+ OrderReturnProductSnapshot productSnapshot = getSnapshot(snapshot, returnNum);
+ productSnapshots.add(productSnapshot);
+ }
+ }
+ }
+ productSnapshotService.saveBatch(productSnapshots);
+ operationLogService.create(response, OrderStatusEnum.FIFTEEN, null);
+ }
+
+ private static OrderReturnProductSnapshot getSnapshot(OrderProductSnapshot snapshot, String returnNum) {
+ OrderReturnProductSnapshot productSnapshot = new OrderReturnProductSnapshot();
+ productSnapshot.setReturnNum(returnNum);
+ productSnapshot.setStoreId(snapshot.getStoreId());
+ productSnapshot.setProductId(snapshot.getProductId());
+ productSnapshot.setProductCode(snapshot.getProductCode() != null ? snapshot.getProductCode() : null);
+ productSnapshot.setProductBarcode(snapshot.getProductBarcode());
+ productSnapshot.setProductName(snapshot.getProductName());
+ productSnapshot.setProductTitle(snapshot.getProductTitle());
+ productSnapshot.setProductMainImage(snapshot.getProductMainImage());
+ productSnapshot.setProductDescription(snapshot.getProductDescription());
+ productSnapshot.setParamData(snapshot.getParamData() != null ? snapshot.getParamData() : null);
+ productSnapshot.setUnitPrice(snapshot.getUnitPrice());
+ productSnapshot.setDetailCount(snapshot.getDetailCount());
+ productSnapshot.setOriginalPrice(snapshot.getOriginalPrice());
+ productSnapshot.setPaidPrice(snapshot.getPaidPrice());
+ productSnapshot.setActuallyPayPrice(snapshot.getActuallyPayPrice());
+ return productSnapshot;
}
@Override
@@ -130,10 +166,13 @@
public void cancel(String returnNum) {
OrderReturn orderReturn = orderReturnMapper.getByReturnNum(returnNum);
if (orderReturn == null) {
- throw new BadRequestException("订单不存在!");
+ throw new BadRequestException("申请不存在!");
}
if (!orderReturn.getUserId().equals(SecurityUtils.getCurrentUserId())) {
- throw new BadRequestException("不能修改他人订单");
+ throw new BadRequestException("不能修改他人申请");
+ }
+ if (orderReturn.getAuditStatus().equals(ReturnAuditEnum.ONE.getKey())) {
+ throw new BadRequestException("申请已拒绝");
}
orderReturnMapper.updateStatus(returnNum, OrderStatusEnum.FIFTEEN.getKey(), OrderStatusEnum.FIFTEEN.getValue(),
ReturnAuditEnum.THREE.getKey());
@@ -154,10 +193,10 @@
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("订单已处理或取消");
+ throw new BadRequestException("申请已处理或取消");
}
if (resources.getAmount().compareTo(orderReturn.getActuallyPayPrice()) > 0) {
throw new BadRequestException("退款金额超过订单金额");
--
Gitblit v1.9.3