From 6d3f43aceecf5cb35c8440e8593263b0ca1bdcd6 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Mon, 14 Jul 2025 21:56:02 +0800
Subject: [PATCH] 订单流程
---
oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderResponse.java | 2 +
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java | 45 ++++++++++++++--------
oying-system/src/main/resources/mapper/sh/OrderMapper.xml | 5 +-
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java | 25 +++++++-----
oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java | 3 +
oying-system/src/main/java/com/oying/modules/sh/service/OrderOperationLogService.java | 12 +----
oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java | 3 +
oying-system/src/main/java/com/oying/modules/sh/mapper/OrderMapper.java | 2
oying-system/src/main/resources/config/application.yml | 2
oying-common/src/main/java/com/oying/utils/enums/OrderStatusEnum.java | 1
10 files changed, 58 insertions(+), 42 deletions(-)
diff --git a/oying-common/src/main/java/com/oying/utils/enums/OrderStatusEnum.java b/oying-common/src/main/java/com/oying/utils/enums/OrderStatusEnum.java
index f7e4a21..b5e7f14 100644
--- a/oying-common/src/main/java/com/oying/utils/enums/OrderStatusEnum.java
+++ b/oying-common/src/main/java/com/oying/utils/enums/OrderStatusEnum.java
@@ -16,6 +16,7 @@
SIX(6, "骑手已取货,正在送货"),
SEVEN(7, "商品已送达"),
EIGHT(8, "订单已完成"),
+ NINE(9, "用户取消订单"),
UNKNOWN(99, "未知枚举");
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 da47970..6915ba3 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
@@ -9,6 +9,7 @@
import com.oying.modules.sh.domain.vo.OrderResponse;
import com.oying.modules.sh.service.OrderReturnService;
import com.oying.modules.sh.service.OrderService;
+import com.oying.utils.enums.OrderStatusEnum;
import com.oying.utils.enums.PayStateEnum;
import com.oying.utils.enums.PayTypeEnum;
import lombok.RequiredArgsConstructor;
@@ -61,7 +62,7 @@
PayStateEnum stateEnum = PayStateEnum.NOTPAY;
if ("0".equals(map.get("pay_result"))) {
stateEnum = PayStateEnum.SUCCESS;
- orderService.operationLog(order);
+ orderService.operationLog(order, OrderStatusEnum.TWO);
}
orderService.updatePayStatus(map.get("out_trade_no"), stateEnum, map.get("pay_info"), map.get("time_end"));
// 处理成功
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderResponse.java b/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderResponse.java
index 37d2760..b6fe370 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderResponse.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderResponse.java
@@ -3,6 +3,7 @@
import com.oying.modules.sh.domain.Order;
import com.oying.modules.sh.domain.OrderAddressSnapshot;
import com.oying.modules.sh.domain.OrderOperationLog;
+import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
@@ -15,6 +16,7 @@
*/
@Getter
@Setter
+@AllArgsConstructor
public class OrderResponse {
private Order order;
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 8172479..ffd2df6 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
@@ -28,7 +28,7 @@
void updatePayStatus(String orderNum, String payState, String payMessage, String payTime);
- void updateCloseStatus(String orderNum, String payState);
+ void updateCloseStatus(String orderNum, String payState, String payMessage);
void updateOrderStatus(String orderNum, Integer key, String value);
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/OrderOperationLogService.java b/oying-system/src/main/java/com/oying/modules/sh/service/OrderOperationLogService.java
index 482091c..c24638b 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/OrderOperationLogService.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/OrderOperationLogService.java
@@ -1,7 +1,5 @@
package com.oying.modules.sh.service;
-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.dto.OrderOperationLogQueryCriteria;
import java.util.List;
@@ -9,7 +7,9 @@
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.modules.sh.domain.vo.OrderResponse;
import com.oying.utils.PageResult;
+import com.oying.utils.enums.OrderStatusEnum;
/**
* @description 服务接口
@@ -34,15 +34,9 @@
List<OrderOperationLog> queryAll(OrderOperationLogQueryCriteria criteria);
/**
- * 创建
- * @param resources /
- */
- void create(OrderOperationLog resources);
-
- /**
* 创建
*/
- void create(Order order, OrderAddressSnapshot addressSnapshot);
+ void create(OrderResponse response, OrderStatusEnum statusEnum);
/**
* 编辑
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 4ac0a58..c6c1da5 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
@@ -15,6 +15,7 @@
import com.oying.modules.sh.domain.vo.OrderInfo;
import com.oying.modules.sh.domain.vo.OrderResponse;
import com.oying.utils.PageResult;
+import com.oying.utils.enums.OrderStatusEnum;
import com.oying.utils.enums.PayStateEnum;
/**
@@ -47,7 +48,7 @@
OrderResponse getByOrderNum(String orderNum);
- void operationLog(OrderResponse order);
+ void operationLog(OrderResponse order, OrderStatusEnum stateEnum);
void updatePayStatus(String outTradeNo, PayStateEnum stateEnum, String payInfo, String timeEnd);
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 a35bddc..3a1afcf 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
@@ -1,8 +1,6 @@
package com.oying.modules.sh.service.impl;
import com.alibaba.fastjson2.JSON;
-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.vo.OrderResponse;
import com.oying.modules.sh.mapper.OrderMapper;
@@ -54,27 +52,40 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void create(OrderOperationLog resources) {
- orderOperationLogMapper.insert(resources);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void create(Order order, OrderAddressSnapshot addressSnapshot) {
- OrderResponse response = new OrderResponse();
- response.setOrder(order);
- response.setAddress(addressSnapshot);
+ public void create(OrderResponse response, OrderStatusEnum statusEnum) {
+ String userType = ConstantsKey.BUYER;
+ switch (statusEnum) {
+ case ZERO:
+ case ONE:
+ case EIGHT:
+ case NINE:
+ userType = ConstantsKey.BUYER;
+ break;
+ case TWO:
+ case FOUR:
+ userType = ConstantsKey.MERCHANT;
+ break;
+ case THREE:
+ case FIVE:
+ case SIX:
+ case SEVEN:
+ userType = ConstantsKey.RIDER;
+ break;
+ default:
+ }
String username = SecurityUtils.getCurrentUsername();
Timestamp time = new Timestamp(System.currentTimeMillis());
OrderOperationLog resources = new OrderOperationLog();
- resources.setOrderNum(order.getOrderNum());
+ resources.setOrderNum(response.getOrder().getOrderNum());
resources.setUsername(username);
- resources.setUserType(ConstantsKey.BUYER);
- resources.setOperation(OrderStatusEnum.ZERO.getKey());
- resources.setOperationDescribe(OrderStatusEnum.ZERO.getValue());
- resources.setRemark(username + ":" + time + ">" + OrderStatusEnum.ZERO.getValue() + ":" + order.getOrderNum());
+ resources.setUserType(userType);
+ resources.setOperation(statusEnum.getKey());
+ resources.setOperationDescribe(statusEnum.getValue());
+ resources.setRemark(username + ":" + time + ">" + statusEnum.getValue() + ":" + response.getOrder().getOrderNum());
resources.setSnapshotData(JSON.toJSONString(response));
resources.setOperationTime(time);
+ orderOperationLogMapper.insert(resources);
+ orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
}
@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 f7e251a..d4a1f7f 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
@@ -173,7 +173,9 @@
productSnapshotService.saveBatch(snapshots);
order.setProductSnapshots(new HashSet<>(snapshots));
- operationLogService.create(order, addressSnapshot);
+ OrderResponse response = new OrderResponse(order, addressSnapshot, null);
+
+ operationLogService.create(response, OrderStatusEnum.ZERO);
return order;
}
@@ -236,17 +238,15 @@
@Override
@Transactional(rollbackFor = Exception.class)
public OrderResponse getByOrderNum(String orderNum) {
- OrderResponse response = new OrderResponse();
- response.setOrder(orderMapper.getByOrderNum(orderNum));
- response.setAddress(addressSnapshotService.queryByOrderNum(orderNum));
- response.setOperation(operationLogService.getByOrderNum(orderNum));
- return response;
+ return new OrderResponse(orderMapper.getByOrderNum(orderNum),
+ addressSnapshotService.queryByOrderNum(orderNum),
+ operationLogService.getByOrderNum(orderNum));
}
@Override
@Transactional(rollbackFor = Exception.class)
- public void operationLog(OrderResponse order) {
- orderMapper.updateOrderStatus(order.getOrder().getOrderNum(), OrderStatusEnum.TWO.getKey(), OrderStatusEnum.TWO.getValue());
+ public void operationLog(OrderResponse order, OrderStatusEnum stateEnum) {
+ operationLogService.create(order, stateEnum);
}
@Override
@@ -258,9 +258,13 @@
@Override
@Transactional(rollbackFor = Exception.class)
public void closeOrder(String orderNum) {
- Order order = orderMapper.getByOrderNum(orderNum);
+ OrderResponse response = getByOrderNum(orderNum);
+ Order order = response.getOrder();
if (order == null) {
throw new BadRequestException("订单不存在");
+ }
+ if (!SecurityUtils.getCurrentUserId().equals(order.getUserId())) {
+ throw new BadRequestException("不能修改他人订单");
}
if (!order.getPayState().equals(PayStateEnum.NOTPAY.getKey())) {
throw new BadRequestException(PayStateEnum.getValue(order.getPayState()));
@@ -276,7 +280,8 @@
swiftPassService.closeOrder(orderNum, anEnum);
break;
}
- orderMapper.updateCloseStatus(orderNum, PayStateEnum.CLOSED.getKey());
+ operationLogService.create(response, OrderStatusEnum.NINE);
+ orderMapper.updateCloseStatus(orderNum, PayStateEnum.CLOSED.getKey(), PayStateEnum.CLOSED.getValue());
}
@Override
diff --git a/oying-system/src/main/resources/config/application.yml b/oying-system/src/main/resources/config/application.yml
index 85e4332..b916632 100644
--- a/oying-system/src/main/resources/config/application.yml
+++ b/oying-system/src/main/resources/config/application.yml
@@ -34,7 +34,7 @@
redis:
#数据库索引
database: 0
- host: 192.168.18.13
+ host: 127.0.0.1
port: 6379
password:
#连接超时时间
diff --git a/oying-system/src/main/resources/mapper/sh/OrderMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderMapper.xml
index 61211e2..1f46c1c 100644
--- a/oying-system/src/main/resources/mapper/sh/OrderMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/OrderMapper.xml
@@ -136,13 +136,14 @@
<update id="updateCloseStatus">
update sh_order
- set pay_state = #{payState}
+ set pay_state = #{payState},
+ pay_message = #{payMessage}
where order_num = #{orderNum}
</update>
<update id="updateOrderStatus">
update sh_order
- set order_status = #{key},
+ set order_status = #{key},
order_status_describe = #{value}
where order_num = #{orderNum}
</update>
--
Gitblit v1.9.3