From 0233d941ae15db1a089bdb633f76d67be6a15ed3 Mon Sep 17 00:00:00 2001
From: leomon <2233021400@qq.com>
Date: Sat, 12 Jul 2025 23:22:48 +0800
Subject: [PATCH] 优化
---
oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java | 5 +
oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java | 26 +++++---
oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java | 8 ++
oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java | 2
oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java | 50 +++++++++++++++-
oying-system/src/main/java/com/oying/modules/message/common/OrderStatusEnum.java | 52 +++++++++++++++++
oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml | 5 +
7 files changed, 131 insertions(+), 17 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/message/common/OrderStatusEnum.java b/oying-system/src/main/java/com/oying/modules/message/common/OrderStatusEnum.java
new file mode 100644
index 0000000..ea390f5
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/common/OrderStatusEnum.java
@@ -0,0 +1,52 @@
+package com.oying.modules.message.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 订单状态枚举
+ *
+ * @author leomon
+ * @date 2025-05-20
+ */
+@Getter
+@AllArgsConstructor
+public enum OrderStatusEnum {
+
+ ZERO(0, "订单已提交"),
+ ONE(1, "支付成功"),
+ TWO(2, "商家已接单"),
+ THREE(3, "骑手已接单"),
+ FOUR(4, "商家已备货"),
+ FIVE(5, "骑手已到店"),
+ SIX(6, "骑手已取货"),
+ SEVEN(7, "商品已送达"),
+ EIGHT(8, "订单已完成"),
+ NINE(9, "订单已取消");
+
+ private final Integer key;
+ private final String value;
+
+ /* ========== 工具方法 ========== */
+
+ /** 根据 key 获取枚举 */
+ public static OrderStatusEnum of(Integer key) {
+ return key == null ? null : MAP.get(key);
+ }
+
+ /** 根据 key 获取描述 */
+ public static String descOf(Integer key) {
+ OrderStatusEnum e = of(key);
+ return e == null ? "" : e.getValue();
+ }
+
+ /** 反向映射,提升查找速度 */
+ private static final Map<Integer, OrderStatusEnum> MAP =
+ Arrays.stream(values())
+ .collect(Collectors.toMap(OrderStatusEnum::getKey, Function.identity()));
+}
\ No newline at end of file
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java
index f33e962..ac6906e 100644
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java
@@ -8,10 +8,13 @@
@Data
public class MessageOrderSellerDTO {
+ //加一个主键
+
+ private Integer id;
private Integer orderId;
- private String messageType;
+// private String messageType;
private String messageContent;
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java
index 510e800..18306cb 100644
--- a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java
@@ -25,4 +25,6 @@
Boolean updateMessageOrderSellerRead(Integer orderId);
boolean saveMessageOrderSellerByOrderIdAndStoreId(MessageOrderSeller resources);
+
+ boolean updateReadStatusById(Integer id);
}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java
index e73785e..0a972a6 100644
--- a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java
@@ -102,16 +102,22 @@
}
//让前端标记已读
- @PostMapping("/read/{order_id}")
- @ApiOperation("让前端标记已读 按条")
- public R<String> getMessageOrderSellerRead(@PathVariable Integer order_id) {
- if(messageOrderSellerService.updateMessageOrderSellerRead(order_id)){
- return R.success("已读");
- }else{
- return R.fail("id不存在");
- }
-
-
+ //修改逻辑 主键为条件 而不是订单号,有些订单号可能重复 含多条信息 已弃用
+// @PostMapping("/readByorderid/{order_id}")
+// @ApiOperation("让前端标记已读 按条")
+// public R<String> getMessageOrderSellerRead(@PathVariable Integer order_id) {
+// if(messageOrderSellerService.updateMessageOrderSellerRead(order_id)){
+// return R.success("已读");
+// }else{
+// return R.fail("id不存在");
+// }
+// }
+ //让前端标记已读 主键为条件
+ @PostMapping("/read/{id}")
+ @ApiOperation("标记单条消息为已读(按主键 id)")
+ public R<String> markReadByPrimaryKey(@PathVariable Integer id) {
+ boolean updated = messageOrderSellerService.updateReadStatusById(id);
+ return updated ? R.success("已读") : R.fail("消息 id 不存在");
}
@Beta//重复值处理
//让后端队友更新我的表
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java
index ca3615e..db8686c 100644
--- a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java
@@ -77,8 +77,8 @@
* </p>
* <p>
* 可选字段:
- * - messageType:消息类型 : 供流程使用 订单状态: 1-待取货 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消"
- * - messageContent:消息内容 : "订单已提交" :"支付成功" 商家已接单 骑手已接单"
+ * - messageType:消息类型 : 暂未使用
+ * - messageContent:消息内容 : "订单已提交" :"支付成功" 商家已接单 骑手已接单" 即com.oying.modules.message.common.OrderStatusEnum
* - link:链接
* - flag:标志字段(默认值为未读 0)
* </p>
@@ -88,4 +88,8 @@
*/
@Beta
boolean saveMessageOrderSellerByOrderIdAndStoreId(MessageOrderSeller resources);
+
+ boolean updateReadStatusById(Integer id);
+
+// public void saveMessage(MessageOrderSeller resources) ;
}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java
index d5fc522..a248ec6 100644
--- a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java
@@ -9,6 +9,7 @@
import com.oying.modules.message.service.MessageOrderSellerService;
import com.oying.modules.message.domain.dto.MessageOrderSellerQueryCriteria;
import com.oying.modules.message.mapper.MessageOrderSellerMapper;
+import lombok.extern.slf4j.Slf4j;
import org.apache.poi.util.Beta;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -25,11 +26,15 @@
* @author 李萌
* @date 2025-05-20
**/
+@Slf4j
@Service
@RequiredArgsConstructor
public class MessageOrderSellerServiceImpl extends ServiceImpl<MessageOrderSellerMapper, MessageOrderSeller> implements MessageOrderSellerService {
private final MessageOrderSellerMapper messageOrderSellerMapper;
+
+
+
@Override
public PageResult<MessageOrderSeller> queryAll(MessageOrderSellerQueryCriteria criteria, Page<Object> page){
@@ -104,19 +109,56 @@
* </p>
* <p>
* 可选字段:
- * - messageType:消息类型 : 供流程使用 订单状态: 1-待取货 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消"
- * - messageContent:消息内容 : "订单已提交" :"支付成功" 商家已接单 骑手已接单"
+ * - messageType:消息类型 : 暂时不用
+ * - messageContent:消息内容 : "订单已提交" :"支付成功" 商家已接单 骑手已接单".......com.oying.modules.message.common.OrderStatusEnum
* - link:链接
* - flag:标志字段(默认值为未读 0)
* </p>
*
* @param resources MessageOrderSeller 对象,包含需要保存或更新的数据。
* @return true 表示保存成功,false 表示保存失败。
+ *
+ * 目前插入orderId storeId messageContent即可,其他保留---------
*/
- @Beta
@Override
public boolean saveMessageOrderSellerByOrderIdAndStoreId(MessageOrderSeller resources) {
- return messageOrderSellerMapper.saveMessageOrderSellerByOrderIdAndStoreId(resources);
+
+ try {
+ // 1. 判断重复的记录是否存在
+// // messageType此处不用
+ long count = this.lambdaQuery()
+ .eq(MessageOrderSeller::getOrderId, resources.getOrderId())
+ .eq(MessageOrderSeller::getStoreId, resources.getStoreId())
+ .eq(MessageOrderSeller::getMessageContent, resources.getMessageContent())
+ .eq(MessageOrderSeller::getFlag, 0) // 未读
+ .count();
+
+ //存在 不插入
+ if (count > 0) {
+ log.warn("消息已存在,跳过保存:{}",
+ resources);
+ return false;
+ }else{
+ return messageOrderSellerMapper.saveMessageOrderSellerByOrderIdAndStoreId(resources);
+ }
+
+ } catch (Exception e) {
+ log.error("保存消息异常",
+ e);
+ return false;
+ }
+
}
+
+
+
+
+ @Override
+ public boolean updateReadStatusById(Integer id) {
+ return messageOrderSellerMapper.updateReadStatusById(id);
+ }
+
+
+
}
diff --git a/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml b/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml
index 5af3eb5..3650877 100644
--- a/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml
+++ b/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml
@@ -63,6 +63,11 @@
set flag = 1
where order_id = #{orderId}
</update>
+ <update id="updateReadStatusById">
+ update message_order_seller
+ set flag = 1
+ where id = #{id}
+ </update>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3