From 206f601b1f2a2e3cb0bf4f5dead01bec9077d8e9 Mon Sep 17 00:00:00 2001
From: 彭雪彬 <1724387007@qq.com>
Date: Thu, 04 Sep 2025 15:28:52 +0800
Subject: [PATCH] Merge branch 'xin' into pxb
---
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 152 insertions(+), 11 deletions(-)
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 6fc014d..2f06131 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,7 +1,14 @@
package com.oying.modules.sh.service.impl;
+import com.alibaba.fastjson2.JSON;
+import com.oying.exception.BadRequestException;
+import com.oying.modules.message.common.MsgStatusEnum;
+import com.oying.modules.message.service.MesMsgRecordService;
import com.oying.modules.sh.domain.OrderOperationLog;
-import com.oying.utils.FileUtil;
+import com.oying.modules.sh.domain.vo.OrderResponse;
+import com.oying.modules.sh.mapper.OrderMapper;
+import com.oying.utils.*;
+import com.oying.utils.enums.OrderStatusEnum;
import lombok.RequiredArgsConstructor;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,40 +17,174 @@
import com.oying.modules.sh.mapper.OrderOperationLogMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.oying.utils.PageUtil;
+
+import java.sql.Timestamp;
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 OrderOperationLogServiceImpl extends ServiceImpl<OrderOperationLogMapper, OrderOperationLog> implements OrderOperationLogService {
private final OrderOperationLogMapper orderOperationLogMapper;
+ private final OrderMapper orderMapper;
+ private final MesMsgRecordService mesMsgRecordService;
@Override
- public PageResult<OrderOperationLog> queryAll(OrderOperationLogQueryCriteria criteria, Page<Object> page){
+ public PageResult<OrderOperationLog> queryAll(OrderOperationLogQueryCriteria criteria, Page<Object> page) {
return PageUtil.toPage(orderOperationLogMapper.findAll(criteria, page));
}
@Override
- public List<OrderOperationLog> queryAll(OrderOperationLogQueryCriteria criteria){
+ public List<OrderOperationLog> queryAll(OrderOperationLogQueryCriteria criteria) {
return orderOperationLogMapper.findAll(criteria);
}
@Override
+ public List<OrderOperationLog> getByOrderNum(String orderNum, String type) {
+ return orderOperationLogMapper.getByOrderNum(orderNum, type);
+ }
+
+ @Override
@Transactional(rollbackFor = Exception.class)
- public void create(OrderOperationLog resources) {
+ public synchronized void create(OrderResponse response, OrderStatusEnum statusEnum, String cardName) {
+ String userType = ConstantsKey.BUYER;
+ String username = null;
+ Timestamp time = new Timestamp(System.currentTimeMillis());
+ MsgStatusEnum msgStatusEnum = null;
+ switch (statusEnum) {
+ case ZERO:
+ case ONE:
+ case TEN:
+ userType = ConstantsKey.BUYER;
+ break;
+ case TWO:
+ username = response.getOrder().getUsername();
+ OrderOperationLog log1 = new OrderOperationLog();
+ log1.setOrderNum(response.getOrder().getOrderNum());
+ log1.setUsername(username);
+ log1.setUserType(userType);
+ log1.setOperation(OrderStatusEnum.ONE.getKey());
+ log1.setOperationType(OrderStatusEnum.ONE.getCode());
+ log1.setOperationDescribe(OrderStatusEnum.ONE.getValue());
+ log1.setRemark(username + ":" + time + ">" + OrderStatusEnum.ONE.getValue() + ":" + response.getOrder().getOrderNum());
+ Map<String, Object> map1 = new LinkedHashMap<>();
+ response.getOrder().setOrderStatus(OrderStatusEnum.ONE.getKey());
+ response.getOrder().setOrderStatusDescribe(OrderStatusEnum.ONE.getValue());
+ map1.put("order", response.getOrder());
+ map1.put("address", response.getAddress());
+ log1.setSnapshotData(JSON.toJSONString(map1));
+ log1.setOperationTime(time);
+ orderOperationLogMapper.insert(log1);
+ response.getOrder().setOrderStatus(OrderStatusEnum.TWO.getKey());
+ response.getOrder().setOrderStatusDescribe(OrderStatusEnum.TWO.getValue());
+ msgStatusEnum = MsgStatusEnum.MERCHANT_ACCEPTED;
+ userType = ConstantsKey.BUYER;
+ break;
+ case THREE:
+ msgStatusEnum = MsgStatusEnum.MERCHANT_PREPARED;
+ userType = ConstantsKey.BUYER;
+ break;
+ case FOUR:
+ orderMapper.updateRider(response.getOrder().getOrderNum(), SecurityUtils.getCurrentUserId(), SecurityUtils.getCurrentUsername(), cardName);
+ msgStatusEnum = MsgStatusEnum.RIDER_PENDING_ACCEPTANCE;
+ userType = ConstantsKey.RIDER;
+ break;
+ case FIVE:
+ msgStatusEnum = MsgStatusEnum.RIDER_ARRIVED;
+ userType = ConstantsKey.RIDER;
+ break;
+ case SIX:
+ msgStatusEnum = MsgStatusEnum.RIDER_PICKED_UP;
+ userType = ConstantsKey.RIDER;
+ break;
+ case SEVEN:
+ userType = ConstantsKey.RIDER;
+ username = SecurityUtils.getCurrentUsername();
+ OrderOperationLog log2 = new OrderOperationLog();
+ log2.setOrderNum(response.getOrder().getOrderNum());
+ log2.setUsername(username);
+ log2.setUserType(userType);
+ log2.setOperation(statusEnum.getKey());
+ log2.setOperationType(statusEnum.getCode());
+ log2.setOperationDescribe(statusEnum.getValue());
+ log2.setRemark(username + ":" + time + ">" + statusEnum.getValue() + ":" + response.getOrder().getOrderNum());
+ Map<String, Object> map2 = new LinkedHashMap<>();
+ map2.put("order", response.getOrder());
+ map2.put("address", response.getAddress());
+ log2.setSnapshotData(JSON.toJSONString(map2));
+ log2.setOperationTime(time);
+ orderOperationLogMapper.insert(log2);
+ orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
+ msgStatusEnum = MsgStatusEnum.BUYER_ORDER_DELIVERED;
+ statusEnum = OrderStatusEnum.EIGHT;
+ break;
+ case EIGHT:
+ msgStatusEnum = MsgStatusEnum.BUYER_ORDER_COMPLETED;
+ userType = ConstantsKey.BUYER;
+ break;
+ case NINE:
+ if (response.getOrder().getOrderStatus().equals(OrderStatusEnum.NINE.getKey())) {
+ throw new BadRequestException("订单已取消");
+ }
+ if (response.getOrder().getOrderStatus() > OrderStatusEnum.TWO.getKey()) {
+ throw new BadRequestException(OrderStatusEnum.getValue(response.getOrder().getOrderStatus()));
+ }
+ msgStatusEnum = MsgStatusEnum.RIDER_ORDER_CANCELLED;
+ userType = ConstantsKey.BUYER;
+ break;
+ case ELEVEN:
+ userType = ConstantsKey.MERCHANT;
+ orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), OrderStatusEnum.EIGHT.getKey(), OrderStatusEnum.EIGHT.getValue());
+ break;
+ case TWELVE:
+ userType = ConstantsKey.BUYER;
+ orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
+ break;
+ case THIRTEEN:
+ userType = ConstantsKey.MERCHANT;
+ break;
+ case FOURTEEN:
+ userType = ConstantsKey.MERCHANT;
+ 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;
+ default:
+ throw new BadRequestException("状态错误");
+ }
+ if (username == null) {
+ username = SecurityUtils.getCurrentUsername();
+ }
+ OrderOperationLog resources = new OrderOperationLog();
+ resources.setOrderNum(response.getOrder().getOrderNum());
+ resources.setUsername(username);
+ resources.setUserType(userType);
+ resources.setOperation(statusEnum.getKey());
+ resources.setOperationType(statusEnum.getCode());
+ resources.setOperationDescribe(statusEnum.getValue());
+ resources.setRemark(username + ":" + time + ">" + statusEnum.getValue() + ":" + response.getOrder().getOrderNum());
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("order", response.getOrder());
+ map.put("address", response.getAddress());
+ resources.setSnapshotData(JSON.toJSONString(map));
+ resources.setOperationTime(time);
orderOperationLogMapper.insert(resources);
+ if (msgStatusEnum != null){
+// mesMsgRecordService.insertOrderMsg(response.getOrder(), msgStatusEnum, MesTypeEnum.ORDER);
+ }
+ orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
}
@Override
@@ -65,7 +206,7 @@
List<Map<String, Object>> list = new ArrayList<>();
for (OrderOperationLog orderOperationLog : all) {
Map<String, Object> map = new LinkedHashMap<>();
- map.put("用户id", orderOperationLog.getUserId());
+ map.put("用户账号", orderOperationLog.getUsername());
map.put("用户类型", orderOperationLog.getUserType());
map.put("用户操作", orderOperationLog.getOperation());
map.put("备注", orderOperationLog.getRemark());
--
Gitblit v1.9.3