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/domain/request/AuditOrderReturn.java | 3
oying-system/src/main/java/com/oying/modules/message/mapper/MesCustomerCommentMsgMapper.java | 26
oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQueryPollDto.java | 76
.idea/misc.xml | 2
oying-system/src/main/java/com/oying/modules/message/rest/MesRiderEvaluationController.java | 81
oying-system/src/main/java/com/oying/modules/message/domain/MesShopReply.java | 60
oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java | 30
oying-system/src/main/java/com/oying/modules/message/rest/MesMsgTemplateController.java | 73
oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml | 51
oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml | 9
oying-system/src/main/java/com/oying/modules/message/domain/MesAdvertisement.java | 109 +
oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgTemplateServiceImpl.java | 83
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java | 22
oying-system/src/main/resources/config/application-dev.yml | 2
oying-system/src/main/java/com/oying/modules/message/domain/dto/MesCustomerCommentMsgQueryCriteria.java | 4
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java | 8
oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductQueryCriteria.java | 6
oying-system/src/main/java/com/oying/modules/sh/domain/Order.java | 10
oying-system/src/main/java/com/oying/modules/message/service/MesCustomerCommentMsgService.java | 80
oying-system/src/main/java/com/oying/modules/message/service/impl/MesShopReplyServiceImpl.java | 79
oying-system/src/main/java/com/oying/modules/message/domain/dto/MesShopMsgRespDTO.java | 15
oying-common/src/main/java/com/oying/utils/enums/OrderStatusEnum.java | 30
oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java | 6
oying-system/src/main/java/com/oying/modules/message/domain/MesMsgTemplate.java | 72
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java | 14
oying-system/src/main/java/com/oying/modules/message/service/impl/MesOrderEvaluationServiceImpl.java | 99
oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml | 24
.idea/compiler.xml | 10
oying-system/src/main/java/com/oying/modules/message/domain/dto/MesOrderEvaluationQueryCriteria.java | 4
oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java | 3
oying-system/src/main/java/com/oying/modules/message/mapper/MesMsgRecordMapper.java | 47
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java | 113
oying-system/src/main/java/com/oying/modules/sh/rest/OrderOperationLogController.java | 4
oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml | 44
oying-system/src/main/java/com/oying/modules/message/domain/dto/MesAdvertisementQueryCriteria.java | 4
oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesCustomerCommentMsgDTO.java | 81
oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java | 14
oying-system/src/main/java/com/oying/modules/message/domain/MesCustomerCommentMsg.java | 95
oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml | 7
oying-system/src/main/java/com/oying/modules/message/domain/dto/MesShopReplyQueryCriteria.java | 4
oying-system/src/main/java/com/oying/modules/message/service/impl/MesCustomerCommentMsgServiceImpl.java | 168 +
oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java | 14
oying-system/src/main/java/com/oying/modules/message/service/impl/MesAdvertisementServiceImpl.java | 93
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java | 3
oying-system/src/main/java/com/oying/modules/message/mapper/MesOrderEvaluationMapper.java | 26
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditData.java | 1
oying-system/src/main/java/com/oying/modules/message/common/MsgStatusEnum.java | 197 +
oying-system/src/main/java/com/oying/modules/message/common/BizTypeEnum.java | 58
oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java | 12
oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java | 2
oying-system/src/main/java/com/oying/modules/message/domain/MesOrderItemEvaluation.java | 78
oying-system/src/main/java/com/oying/modules/message/mapper/MesRiderEvaluationMapper.java | 26
oying-system/src/main/java/com/oying/modules/security/config/SecurityProperties.java | 5
oying-common/src/main/java/com/oying/utils/RedisUtils.java | 6
oying-system/src/main/java/com/oying/modules/message/rest/MesShopReplyController.java | 73
oying-system/src/main/java/com/oying/modules/message/common/MesTypeEnum.java | 65
oying-system/src/main/java/com/oying/modules/message/service/MesShopReplyService.java | 60
oying-system/src/main/java/com/oying/modules/pc/product/domain/Product.java | 3
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java | 17
oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java | 3
oying-system/src/main/java/com/oying/modules/sh/mapper/OrderOperationLogMapper.java | 2
oying-system/src/main/resources/mapper/message/MesOrderEvaluationMapper.xml | 71
oying-common/src/main/java/com/oying/utils/enums/DataScopeEnum.java | 18
oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java | 312 +++
oying-system/src/main/java/com/oying/modules/message/domain/dto/MesOrderItemEvaluationQueryCriteria.java | 4
oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java | 18
oying-system/src/main/java/com/oying/modules/message/domain/dto/MesMsgTemplateQueryCriteria.java | 4
oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesOrderItemEvaluationDto.java | 78
oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductRevisionRecord.java | 18
oying-system/src/main/java/com/oying/modules/message/common/PlatFormEnum.java | 59
oying-system/src/main/java/com/oying/modules/message/service/MesOrderEvaluationService.java | 63
oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductMerchantController.java | 10
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCategoryMerchantController.java | 14
oying-system/src/main/resources/mapper/message/MesRiderEvaluationMapper.xml | 86
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java | 4
oying-common/src/main/java/com/oying/utils/DateUtil.java | 31
oying-system/src/main/java/com/oying/modules/message/service/MesOrderItemEvaluationService.java | 63
oying-system/src/main/java/com/oying/modules/message/rest/MesAdvertisementController.java | 73
oying-system/src/main/java/com/oying/modules/sh/domain/request/ReturnOrder.java | 33
oying-system/src/main/java/com/oying/modules/message/mapper/MesAdvertisementMapper.java | 22
oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQuerySystemDto.java | 76
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java | 8
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java | 42
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java | 6
oying-system/src/main/java/com/oying/modules/message/mapper/MesShopReplyMapper.java | 22
oying-system/src/main/java/com/oying/modules/message/service/MesAdvertisementService.java | 60
oying-system/src/main/java/com/oying/modules/message/service/impl/MesRiderEvaluationServiceImpl.java | 91
oying-system/src/main/resources/mapper/message/MesMsgRecordMapper.xml | 158 +
oying-system/src/main/java/com/oying/modules/message/mapper/MesOrderItemEvaluationMapper.java | 25
oying-system/src/main/java/com/oying/modules/message/service/MesMsgRecordService.java | 114 +
oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml | 25
oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java | 11
oying-system/src/main/java/com/oying/modules/pc/product/view/ProductCustomerView.java | 6
oying-system/src/main/java/com/oying/modules/message/service/MesMsgTemplateService.java | 60
oying-system/src/main/java/com/oying/modules/pc/product/view/ProductAuditView.java | 50
oying-system/src/main/resources/mapper/sh/OrderMapper.xml | 4
oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java | 220 ++
oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQueryOrderDto.java | 101
oying-system/src/main/java/com/oying/modules/message/common/MesReadEnum.java | 58
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java | 17
oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnController.java | 33
oying-system/src/main/java/com/oying/modules/message/domain/MesOrderEvaluation.java | 102
oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java | 11
oying-system/src/main/resources/mapper/message/MesAdvertisementMapper.xml | 41
oying-common/src/main/java/com/oying/utils/enums/GenerateEnum.java | 16
oying-system/src/main/java/com/oying/modules/message/domain/MesMsgRecord.java | 110 +
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreQualificationMerchantController.java | 10
oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java | 5
oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java | 2
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnServiceImpl.java | 201 +
oying-system/src/main/java/com/oying/modules/message/domain/dto/MesRiderEvaluationQueryCriteria.java | 4
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreMerchantServiceImpl.java | 7
oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java | 7
oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java | 4
oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnMapper.java | 7
oying-system/src/main/java/com/oying/modules/message/mapper/MesMsgTemplateMapper.java | 22
oying-system/src/main/java/com/oying/modules/message/rest/MesOrderItemEvaluationController.java | 83
oying-system/src/main/resources/mapper/message/MesCustomerCommentMsgMapper.xml | 50
oying-system/src/main/java/com/oying/modules/message/domain/dto/MesMsgRecordQueryCriteria.java | 4
oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java | 5
oying-system/src/main/java/com/oying/modules/message/rest/MesCustomerCommentMsgController.java | 83
oying-system/src/main/resources/mapper/message/MesMsgTemplateMapper.xml | 30
oying-system/src/main/resources/mapper/message/MesOrderItemEvaluationMapper.xml | 88
oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java | 34
oying-system/src/main/java/com/oying/modules/pc/store/view/StoreAuditView.java | 54
oying-common/src/main/java/com/oying/utils/enums/ReturnAuditEnum.java | 7
oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java | 3
oying-system/src/main/java/com/oying/modules/message/service/MesRiderEvaluationService.java | 63
oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java | 30
oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesRiderEvaluationDto.java | 50
oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java | 13
oying-system/src/main/resources/config/application-prod.yml | 2
oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java | 8
oying-system/src/main/java/com/oying/modules/sh/domain/OrderOperationLog.java | 4
oying-system/src/main/resources/mapper/message/MesShopReplyMapper.xml | 17
oying-system/src/main/java/com/oying/modules/message/service/impl/MesOrderItemEvaluationServiceImpl.java | 92
oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditData.java | 6
oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesOrderEvaluationDto.java | 54
/dev/null | 47
oying-system/src/main/java/com/oying/modules/message/domain/MesRiderEvaluation.java | 80
oying-system/src/main/java/com/oying/modules/message/rest/MesOrderEvaluationController.java | 81
oying-system/src/main/java/com/oying/modules/sh/service/OrderOperationLogService.java | 2
oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnService.java | 17
oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderInfo.java | 8
oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderReturnResponse.java | 27
oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java | 2
146 files changed, 5,852 insertions(+), 325 deletions(-)
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 8f29a85..b697d3f 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -17,11 +17,11 @@
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
- <module name="oying-common" options="-parameters" />
- <module name="oying-generator" options="-parameters" />
- <module name="oying-logging" options="-parameters" />
- <module name="oying-system" options="-parameters" />
- <module name="oying-tools" options="-parameters" />
+ <module name="oying-common" options="" />
+ <module name="oying-generator" options="" />
+ <module name="oying-logging" options="" />
+ <module name="oying-system" options="" />
+ <module name="oying-tools" options="" />
</option>
</component>
</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d5cd614..b784bbc 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -8,5 +8,5 @@
</list>
</option>
</component>
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>
\ No newline at end of file
diff --git a/oying-common/src/main/java/com/oying/utils/DateUtil.java b/oying-common/src/main/java/com/oying/utils/DateUtil.java
index d74db88..b95aeed 100644
--- a/oying-common/src/main/java/com/oying/utils/DateUtil.java
+++ b/oying-common/src/main/java/com/oying/utils/DateUtil.java
@@ -18,15 +18,36 @@
public static final DateTimeFormatter DFY_M = DateTimeFormatter.ofPattern("yyyy-MM");
public static final DateTimeFormatter SDF_YMDHMS = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+ public static boolean isBefore(String date, int count) {
+ LocalDateTime time = LocalDateTime.parse(date, SDF_YMDHMS);
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime nowPlus30 = time.plusDays(count);
+
+ // 检查目标时间是否在 [time, time+count天] 区间内
+ return !now.isBefore(time) && !now.isAfter(nowPlus30);
+ }
+
/**
- * Timestamp增加分钟
+ * Timestamp增减天
*/
- public static Timestamp addMinute(Timestamp time, int month) {
+ public static Timestamp addDay(Timestamp time, int count) {
// 创建 Calendar 对象并设置为当前日期和时间的值
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(time.getTime());
// 将MINUTE字段添加到当前日期和时间
- calendar.add(Calendar.MINUTE, month);
+ calendar.add(Calendar.DATE, count);
+ return new Timestamp(calendar.getTime().getTime());
+ }
+
+ /**
+ * Timestamp增减分钟
+ */
+ public static Timestamp addMinute(Timestamp time, int count) {
+ // 创建 Calendar 对象并设置为当前日期和时间的值
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(time.getTime());
+ // 将MINUTE字段添加到当前日期和时间
+ calendar.add(Calendar.MINUTE, count);
return new Timestamp(calendar.getTime().getTime());
}
@@ -128,6 +149,7 @@
/**
* 获取当前时间yyyyMMdd
+ *
* @return 、yyyyMMdd
*/
public static String getNowTimeTypeYYYYMMDD() {
@@ -136,12 +158,13 @@
/**
* 获取当前时间yyyyMM
+ *
* @return 、yyyyMM
*/
public static String getNowTimeTypeYYYYMM() {
return DFY_M.format(LocalDateTime.now());
}
-
+
/**
* 日期格式化 yyyy-MM-dd
*
diff --git a/oying-common/src/main/java/com/oying/utils/RedisUtils.java b/oying-common/src/main/java/com/oying/utils/RedisUtils.java
index 361c573..6140508 100644
--- a/oying-common/src/main/java/com/oying/utils/RedisUtils.java
+++ b/oying-common/src/main/java/com/oying/utils/RedisUtils.java
@@ -24,8 +24,6 @@
@SuppressWarnings({"unchecked", "all"})
public class RedisUtils {
private static final Logger log = LoggerFactory.getLogger(RedisUtils.class);
- @Value("${jwt.generate-order-sn}")
- private String generateOrderSn;
@Value("${wx.enabled}")
private Boolean wxEnabled;
private static final String T = "T-";
@@ -44,10 +42,10 @@
* @param i
* @return
*/
- public String generateOrderSn(Integer i) {
+ public String generateSn(String generate, Integer i) {
StringBuilder sb = new StringBuilder();
String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
- String key = generateOrderSn + i + date;
+ String key = generate + i + date;
Long increment = increment(key);
sb.append(date);
sb.append(String.format("%04d", i));
diff --git a/oying-common/src/main/java/com/oying/utils/enums/DataScopeEnum.java b/oying-common/src/main/java/com/oying/utils/enums/DataScopeEnum.java
index af88297..61de0cf 100644
--- a/oying-common/src/main/java/com/oying/utils/enums/DataScopeEnum.java
+++ b/oying-common/src/main/java/com/oying/utils/enums/DataScopeEnum.java
@@ -7,6 +7,7 @@
* <p>
* 数据权限枚举
* </p>
+ *
* @author Z
* @date 2020-05-07
*/
@@ -21,7 +22,22 @@
THIS_LEVEL("本级", "自己机构的数据权限"),
/* 自定义的数据权限 */
- CUSTOMIZE("自定义", "自定义的数据权限");
+ CUSTOMIZE("自定义", "自定义的数据权限"),
+
+ /* 消费者的数据权限 */
+ BUYER("消费者", "消费者的数据权限"),
+
+ /* 商户的数据权限 */
+ MERCHANT("商户", "商户的数据权限"),
+
+ /* 骑手的数据权限 */
+ RIDER("骑手", "骑手的数据权限"),
+
+ /* 供应商的数据权限 */
+ SUPPLIER("供应商", "供应商的数据权限"),
+
+ /* 代理商的数据权限 */
+ AGENT("代理商", "代理商的数据权限");
private final String value;
private final String description;
diff --git a/oying-common/src/main/java/com/oying/utils/enums/GenerateEnum.java b/oying-common/src/main/java/com/oying/utils/enums/GenerateEnum.java
index 6f7bf84..cefd00b 100644
--- a/oying-common/src/main/java/com/oying/utils/enums/GenerateEnum.java
+++ b/oying-common/src/main/java/com/oying/utils/enums/GenerateEnum.java
@@ -13,15 +13,15 @@
public enum GenerateEnum {
ORDER(10, "订单编号"),
- RETURN_ORDER(20, "退单编号"),
+ ORDER_RETURN(20, "退单编号"),
- BUSINESS_NO(30,"未使用"),
- FREE_DEPOSIT(40,"未使用"),
- PENETRATE_ID(50,"未使用"),
- RETURN_FREE_DEPOSIT(60,"未使用"),
- CONTRACT_NUM(70,"未使用"),
- EIGHT(80,"未使用"),
- NINE(90,"未使用"),
+ BUSINESS_NO(30, "未使用"),
+ FREE_DEPOSIT(40, "未使用"),
+ PENETRATE_ID(50, "未使用"),
+ RETURN_FREE_DEPOSIT(60, "未使用"),
+ CONTRACT_NUM(70, "未使用"),
+ EIGHT(80, "未使用"),
+ NINE(90, "未使用"),
UNKNOWN(0, "未知枚举");
private final Integer key;
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 b5e7f14..5ab2e0b 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
@@ -7,20 +7,26 @@
@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, "用户取消订单"),
- UNKNOWN(99, "未知枚举");
+ ZERO(0, "ORDER", "订单已提交"),
+ ONE(1, "ORDER", "支付成功"),
+ TWO(2, "ORDER", "商家已接单"),
+ THREE(3, "ORDER", "商家已备货"),
+ FOUR(4, "ORDER", "骑手已接单"),
+ FIVE(5, "ORDER", "骑手已到店"),
+ SIX(6, "ORDER", "骑手已取货"),
+ SEVEN(7, "ORDER", "订单已送达"),
+ EIGHT(8, "ORDER", "订单已完成"),
+ NINE(9, "ORDER", "订单已取消"),
+ TEN(10, "REFUND", "退款申请"),
+ ELEVEN(11, "REFUND", "拒绝申请"),
+ TWELVE(12, "REFUND", "退款申诉"),
+ THIRTEEN(13, "REFUND", "同意申请"),
+ FOURTEEN(14, "REFUND", "退款成功"),
+ FIFTEEN(15, "REFUND", "取消退款"),
+ UNKNOWN(99, "UNKNOWN", "未知枚举");
private final Integer key;
-
+ private final String code;
private final String value;
public static OrderStatusEnum find(Integer val) {
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 335a7cd..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
@@ -13,9 +13,10 @@
public enum ReturnAuditEnum {
ZERO(0, "申请"),
- ONE(1, "通过"),
- TWO(2, "拒绝"),
- THREE(3, "未知");
+ ONE(1, "拒绝"),
+ TWO(2, "通过"),
+ 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..c0c879f 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
@@ -1,12 +1,11 @@
package com.oying.modules.hwc.service.impl;
-import com.oying.exception.BadRequestException;
import com.oying.modules.hwc.service.CallbackService;
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;
@@ -14,11 +13,14 @@
import com.oying.utils.enums.PayTypeEnum;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.dom4j.DocumentException;
+import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@@ -76,16 +78,21 @@
}
}
response.getWriter().write(respString);
+ } catch (DataIntegrityViolationException e) {
+ log.error("汇旺财退款回调数据异常失败:{} {}", map.toString(), e.getMessage());
+ } catch (DocumentException e) {
+ log.error("汇旺财退款回调XML转码失败:{} {}", map.toString(), e.getMessage());
+ } catch (IOException e) {
+ log.error("汇旺财退款回调写入流失败:{} {}", map.toString(), e.getMessage());
} catch (Exception e) {
- log.error("汇旺财支付回调失败:{}", map.toString());
- throw new BadRequestException("操作失败,原因:" + e.getMessage());
+ log.error("汇旺财退款回调失败:{} {}", map.toString(), e.getMessage());
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void returnNotify(HttpServletRequest request, HttpServletResponse response) {
- Map<String, String> map = new HashMap<>();
+ Map<String, String> map = new HashMap<>();
try {
String resString = XmlUtils.parseRequest(request);
String respString = "error";
@@ -94,8 +101,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 {
@@ -112,9 +119,14 @@
}
}
response.getWriter().write(respString);
+ } catch (DataIntegrityViolationException e) {
+ log.error("汇旺财退款回调数据异常失败:{} {}", map.toString(), e.getMessage());
+ } catch (DocumentException e) {
+ log.error("汇旺财退款回调XML转码失败:{} {}", map.toString(), e.getMessage());
+ } catch (IOException e) {
+ log.error("汇旺财退款回调写入流失败:{} {}", map.toString(), e.getMessage());
} catch (Exception e) {
- log.error("汇旺财退款回调失败:{}", map.toString());
- System.out.println("操作失败,原因:" + e.getMessage());
+ log.error("汇旺财退款回调失败:{} {}", map.toString(), e.getMessage());
}
}
}
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java b/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java
index 1bb9545..6d9450a 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java
@@ -40,7 +40,8 @@
/**
* 对返回参数的验证签名
*/
- public static boolean verifySign(String sign, String signType, Map<String, String> resultMap, SwiftPassProperties properties, PayTypeEnum status) throws Exception {
+ public static boolean verifySign(String sign, String signType, Map<String, String> resultMap,
+ SwiftPassProperties properties, PayTypeEnum status) {
if ("RSA_1_256".equals(signType)) {
Map<String, String> params = SignUtils.paraFilter(resultMap);
StringBuilder builder = new StringBuilder((params.size() + 1) * 10);
@@ -62,7 +63,7 @@
/**
* RSA_1_256 验证签名
*/
- public static boolean verifySign(String preStr, String sign, String signType, String platPublicKey) throws Exception {
+ public static boolean verifySign(String preStr, String sign, String signType, String platPublicKey) {
// 调用这个函数前需要先判断是MD5还是RSA
// 商户的验签函数要同时支持MD5和RSA
RSAUtil.SignatureSuite suite;
@@ -71,7 +72,7 @@
} else if ("RSA_1_256".equals(signType)) {
suite = RSAUtil.SignatureSuite.SHA256;
} else {
- throw new Exception("不支持的签名方式");
+ throw new BadRequestException("不支持的签名方式");
}
return RSAUtil.verifySign(suite, preStr.getBytes(StandardCharsets.UTF_8), Base64.decodeBase64(sign.getBytes(StandardCharsets.UTF_8)),
platPublicKey);
@@ -80,14 +81,14 @@
/**
* RSA_1_256生成不同的sign
*/
- public static String sign(String preStr, String signType, String mchPrivateKey) throws Exception {
+ public static String sign(String preStr, String signType, String mchPrivateKey) {
RSAUtil.SignatureSuite suite;
if ("RSA_1_1".equals(signType)) {
suite = RSAUtil.SignatureSuite.SHA1;
} else if ("RSA_1_256".equals(signType)) {
suite = RSAUtil.SignatureSuite.SHA256;
} else {
- throw new Exception("不支持的签名方式");
+ throw new BadRequestException("不支持的签名方式");
}
byte[] signBuf = RSAUtil.sign(suite, preStr.getBytes(StandardCharsets.UTF_8),
mchPrivateKey);
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java b/oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java
index 783c326..613e01e 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java
@@ -2,6 +2,7 @@
import com.oying.exception.BadRequestException;
import org.dom4j.Document;
+import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.sax.InputSource;
@@ -101,7 +102,7 @@
/**
* 转XML map
*/
- public static Map<String, String> toMap(byte[] xmlBytes, String charset) throws Exception {
+ public static Map<String, String> toMap(byte[] xmlBytes, String charset) throws DocumentException {
SAXReader reader = new SAXReader(false);
InputSource source = new InputSource(new ByteArrayInputStream(xmlBytes));
source.setEncoding(charset);
diff --git a/oying-system/src/main/java/com/oying/modules/message/common/BizTypeEnum.java b/oying-system/src/main/java/com/oying/modules/message/common/BizTypeEnum.java
new file mode 100644
index 0000000..d2f32e4
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/common/BizTypeEnum.java
@@ -0,0 +1,58 @@
+package com.oying.modules.message.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum BizTypeEnum {
+ //业务类型 ORDER EVALUATION
+ ORDER("ORDER", "订单业务"),
+ EVALUATION("EVALUATION", "评价业务");
+
+ private final String key;
+ private final String value;
+
+ /**
+ * 根据key获取枚举实例
+ * @param key key值
+ * @return 对应的枚举实例,未找到返回null
+ */
+ public static BizTypeEnum getByKey(String key) {
+ if (key == null) {
+ return null;
+ }
+ for (BizTypeEnum typeEnum : BizTypeEnum.values()) {
+ if (typeEnum.key.equals(key)) {
+ return typeEnum;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 根据value获取枚举实例
+ * @param value value值
+ * @return 对应的枚举实例,未找到返回null
+ */
+ public static BizTypeEnum getByValue(String value) {
+ if (value == null) {
+ return null;
+ }
+ for (BizTypeEnum typeEnum : BizTypeEnum.values()) {
+ if (typeEnum.value.equals(value)) {
+ return typeEnum;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String toString() {
+ return "BizTypeEnum{" +
+ "key='" + key + '\'' +
+ ", value='" + value + '\'' +
+ ", name='" + this.name() + '\'' +
+ '}';
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/common/MesReadEnum.java b/oying-system/src/main/java/com/oying/modules/message/common/MesReadEnum.java
new file mode 100644
index 0000000..0695c88
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/common/MesReadEnum.java
@@ -0,0 +1,58 @@
+package com.oying.modules.message.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum MesReadEnum {
+ // 0=未读 1=已读
+ UNREAD(0, "未读"),
+ READ(1, "已读");
+
+ private final Integer key;
+ private final String value;
+
+ /**
+ * 根据key获取枚举实例
+ * @param key key值
+ * @return 对应的枚举实例,未找到返回null
+ */
+ public static MesReadEnum getByKey(Integer key) {
+ if (key == null) {
+ return null;
+ }
+ for (MesReadEnum readEnum : MesReadEnum.values()) {
+ if (readEnum.key.equals(key)) {
+ return readEnum;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 根据value获取枚举实例
+ * @param value value值
+ * @return 对应的枚举实例,未找到返回null
+ */
+ public static MesReadEnum getByValue(String value) {
+ if (value == null) {
+ return null;
+ }
+ for (MesReadEnum readEnum : MesReadEnum.values()) {
+ if (readEnum.value.equals(value)) {
+ return readEnum;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String toString() {
+ return "MesReadEnum{" +
+ "key=" + key +
+ ", value='" + value + '\'' +
+ ", name='" + this.name() + '\'' +
+ '}';
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/common/MesTypeEnum.java b/oying-system/src/main/java/com/oying/modules/message/common/MesTypeEnum.java
new file mode 100644
index 0000000..04328c5
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/common/MesTypeEnum.java
@@ -0,0 +1,65 @@
+package com.oying.modules.message.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum MesTypeEnum {
+ //1=系统 2=订单 3=评价/留言 4=骑手 5=商户 6=买家
+ //2=订单 订单包含 4 5 6
+ SYSTEM(1, "系统"),
+ ORDER(2, "订单"),
+ COMMENT(3, "评价/留言"),
+ RIDER(4, "骑手"), // 补充骑手类型
+ MERCHANT(5, "商户"), // 补充商户类型
+ BUYER(6, "买家"); // 补充买家类型
+
+ private final Integer key;
+ private final String value;
+
+ /**
+ * 根据key获取枚举实例
+ *
+ * @param key key值
+ * @return 对应的枚举实例,未找到返回null
+ */
+ public static MesTypeEnum getByKey(Integer key) {
+ if (key == null) {
+ return null;
+ }
+ for (MesTypeEnum typeEnum : MesTypeEnum.values()) {
+ if (typeEnum.key.equals(key)) {
+ return typeEnum;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 根据value获取枚举实例
+ *
+ * @param value value值
+ * @return 对应的枚举实例,未找到返回null
+ */
+ public static MesTypeEnum getByValue(String value) {
+ if (value == null) {
+ return null;
+ }
+ for (MesTypeEnum typeEnum : MesTypeEnum.values()) {
+ if (typeEnum.value.equals(value)) {
+ return typeEnum;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String toString() {
+ return "MesTypeEnum{" +
+ "key=" + key +
+ ", value='" + value + '\'' +
+ ", name='" + this.name() + '\'' +
+ '}';
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/common/MsgStatusEnum.java b/oying-system/src/main/java/com/oying/modules/message/common/MsgStatusEnum.java
new file mode 100644
index 0000000..b570094
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/common/MsgStatusEnum.java
@@ -0,0 +1,197 @@
+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 MsgStatusEnum {
+ //订单消息 通知状态 用于插入
+ //订单状态需要满足:
+ /// 商户: 订单类消息,包括买家下单提醒、订单送达通知等
+ /// 骑手:类消息,包括有待接单、订单已取消、距离最晚送达时间不足1小时、距离最晚送达时间不足30分钟等
+ /// 骑手:系统后台针对订单,只提供不足1小时和不足30分钟两个提醒。时间分别在59分和29分
+ /// 买家 订单类消息,包括订单状态变化通知、订单送达通知等
+ /// 保留骑手已接单、骑手已取货
+ /// 变量前缀商户 骑手 买家
+
+
+ /**
+ * 商户:新接单
+ * 商户确认接单通知
+ */
+ MERCHANT_ACCEPTED(2, "新接单"),
+
+ /**
+ * 商户:商家已备货
+ * 商户完成备货通知
+ */
+ MERCHANT_PREPARED(4, "商家已备货"),
+
+
+ /* ========== 骑手相关状态 ========== */
+ //加一个骑手取消接单
+ RIDER_CANCEL_ACCEPT(14, "骑手取消接单"),
+ /**
+ * 骑手:有待接单
+ * 骑手端有待接订单通知
+ */
+ RIDER_PENDING_ACCEPTANCE(3, "骑手已接单"),
+
+ /**
+ * 骑手:骑手已取货
+ * 骑手取货完成通知
+ */
+ RIDER_PICKED_UP(6, "骑手已取货"),
+
+ /**
+ * 骑手:骑手已到店
+ * 骑手到达商户店铺通知
+ */
+ RIDER_ARRIVED(5, "骑手已到店"),
+
+ /**
+ * 骑手:订单已取消
+ * 订单取消通知骑手
+ */
+ RIDER_ORDER_CANCELLED(9, "订单已取消"),
+
+ /**
+ * 骑手:配送超时提醒
+ * 距离最晚送达时间不足提醒,包括不足1小时和不足30分钟两种情况
+ * 系统后台提供的定时提醒状态,在订单创建后59分钟和29分钟时触发
+ */
+ RIDER_DELIVERY_WARNING(10, "配送超时提醒"),
+
+
+ /* ========== 买家相关状态 ========== */
+
+ /**
+ * 买家:订单已完成
+ * 订单完成通知买家
+ */
+ BUYER_ORDER_COMPLETED(8, "订单已完成"),
+
+ /**
+ * 买家:订单送达通知
+ * 订单送达通知买家
+ */
+ BUYER_ORDER_DELIVERED(13, "订单送达");
+
+// /* ========== 商户相关状态 ========== */
+// /**
+// * 商户:买家下单提醒
+// * 商户收到新订单通知
+// */
+// MERCHANT_ORDER_SUBMITTED(0, "订单已提交"),
+//
+//// /**
+//// * 商户:支付成功通知
+//// * 订单支付成功通知商户
+//// */
+//// MERCHANT_PAYMENT_SUCCESS(1, "支付成功"),
+//
+// /**
+// * 商户:商家已接单
+// * 商户确认接单通知
+// */
+// MERCHANT_ACCEPTED(2, "商家已接单"),
+//
+// /**
+// * 商户:商家已备货
+// * 商户完成备货通知
+// */
+// MERCHANT_PREPARED(4, "商家已备货"),
+//
+//
+// /* ========== 骑手相关状态 ========== */
+// //加一个骑手取消接单
+// RIDER_CANCEL_ACCEPT(14, "骑手取消接单"),
+// /**
+// * 骑手:有待接单
+// * 骑手端有待接订单通知
+// */
+// RIDER_PENDING_ACCEPTANCE(3, "骑手已接单"),
+//
+// /**
+// * 骑手:骑手已取货
+// * 骑手取货完成通知
+// */
+// RIDER_PICKED_UP(6, "骑手已取货"),
+//
+// /**
+// * 骑手:骑手已到店
+// * 骑手到达商户店铺通知
+// */
+// RIDER_ARRIVED(5, "骑手已到店"),
+//
+// /**
+// * 骑手:订单已取消
+// * 订单取消通知骑手
+// */
+// RIDER_ORDER_CANCELLED(9, "订单已取消"),
+//
+// /**
+// * 骑手:配送超时提醒
+// * 距离最晚送达时间不足提醒,包括不足1小时和不足30分钟两种情况
+// * 系统后台提供的定时提醒状态,在订单创建后59分钟和29分钟时触发
+// */
+// RIDER_DELIVERY_WARNING(10, "配送超时提醒"),
+//
+//
+// /* ========== 买家相关状态 ========== */
+// /**
+// * 买家:订单状态变化通知
+// * 订单状态更新通知买家
+// */
+// BUYER_ORDER_STATUS_CHANGED(7, "商品已送达"),
+//
+// /**
+// * 买家:订单已完成
+// * 订单完成通知买家
+// */
+// BUYER_ORDER_COMPLETED(8, "订单已完成"),
+//
+// /**
+// * 买家:订单送达通知
+// * 订单送达通知买家
+// */
+// BUYER_ORDER_DELIVERED(13, "订单送达");
+
+ /**
+ * 反向映射,提升查找速度
+ */
+ private static final Map<Integer, MsgStatusEnum> MAP =
+ Arrays.stream(values())
+ .collect(Collectors.toMap(MsgStatusEnum::getKey, Function.identity()));
+ private final Integer key;
+ private final String value;
+
+ /* ========== 工具方法 ========== */
+
+ /**
+ * 根据 key 获取枚举
+ */
+ public static MsgStatusEnum of(Integer key) {
+ return key == null ? null : MAP.get(key);
+ }
+
+ /**
+ * 根据 key 获取描述
+ */
+ public static String descOf(Integer key) {
+ MsgStatusEnum e = of(key);
+ return e == null ? "" : e.getValue();
+ }
+}
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
deleted file mode 100644
index ea390f5..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/common/OrderStatusEnum.java
+++ /dev/null
@@ -1,52 +0,0 @@
-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/common/PlatFormEnum.java b/oying-system/src/main/java/com/oying/modules/message/common/PlatFormEnum.java
new file mode 100644
index 0000000..384d0be
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/common/PlatFormEnum.java
@@ -0,0 +1,59 @@
+package com.oying.modules.message.common;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum PlatFormEnum {
+ //1=买家 2=商户 3=骑手"
+ BUYER(1, "买家"),
+ MERCHANT(2, "商户"),
+ RIDE(3, "骑手");
+
+ private final Integer key;
+ private final String value;
+
+ /**
+ * 根据key获取枚举实例
+ * @param key key值
+ * @return 对应的枚举实例,未找到返回null
+ */
+ public static PlatFormEnum getByKey(Integer key) {
+ if (key == null) {
+ return null;
+ }
+ for (PlatFormEnum platFormEnum : PlatFormEnum.values()) {
+ if (platFormEnum.key.equals(key)) {
+ return platFormEnum;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 根据value获取枚举实例
+ * @param value value值
+ * @return 对应的枚举实例,未找到返回null
+ */
+ public static PlatFormEnum getByValue(String value) {
+ if (value == null) {
+ return null;
+ }
+ for (PlatFormEnum platFormEnum : PlatFormEnum.values()) {
+ if (platFormEnum.value.equals(value)) {
+ return platFormEnum;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String toString() {
+ return "PlatFormEnum{" +
+ "key=" + key +
+ ", value='" + value + '\'' +
+ ", name='" + this.name() + '\'' +
+ '}';
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MesAdvertisement.java b/oying-system/src/main/java/com/oying/modules/message/domain/MesAdvertisement.java
new file mode 100644
index 0000000..b8648ba
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MesAdvertisement.java
@@ -0,0 +1,109 @@
+package com.oying.modules.message.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-07-25
+**/
+@Data
+@TableName("mes_advertisement")
+public class MesAdvertisement extends BaseEntity implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "广告ID")
+ private Long id;
+
+ @NotBlank
+ @ApiModelProperty(value = "广告标题")
+ private String title;
+
+ @ApiModelProperty(value = "副标题/简介")
+ private String subTitle;
+
+ @ApiModelProperty(value = "广告正文(支持富文本)")
+ private String content;
+
+ @ApiModelProperty(value = "封面图URL")
+ private String coverImg;
+
+ @ApiModelProperty(value = "Banner图URL(冗余)")
+ private String bannerImg;
+
+ @NotNull
+ @ApiModelProperty(value = "投放渠道 1小程序 2APP 3全平台")
+ private Integer platform;
+
+ @NotNull
+ @ApiModelProperty(value = "跳转类型 1内部 2外部")
+ private Integer jumpType;
+
+ @ApiModelProperty(value = "跳转地址(内部路径或外部链接)")
+ private String jumpUrl;
+
+ @ApiModelProperty(value = "跳转携带参数(JSON)")
+ private String jumpParams;
+
+ @NotNull
+ @ApiModelProperty(value = "排序值 越大越前")
+ private Integer sortOrder;
+
+ @NotNull
+ @ApiModelProperty(value = "是否置顶 0否 1是")
+ private Integer isTop;
+
+ @NotNull
+ @ApiModelProperty(value = "状态 1启用 2禁用")
+ private Integer status;
+
+ @NotNull
+ @ApiModelProperty(value = "公告开始时间")
+ private Timestamp effectiveTime;
+
+ @NotNull
+ @ApiModelProperty(value = "公告结束时间")
+ private Timestamp expireTime;
+
+ @NotNull
+ @ApiModelProperty(value = "点击次数(冗余)")
+ private Long clickCount;
+
+ @NotNull
+ @ApiModelProperty(value = "展示次数(冗余)")
+ private Long showCount;
+
+ @ApiModelProperty(value = "备注")
+ private String remark;
+
+ @NotBlank
+ @ApiModelProperty(value = "createBy")
+ private String createBy;
+
+ @NotNull
+ @ApiModelProperty(value = "createTime")
+ private Timestamp createTime;
+
+ @NotBlank
+ @ApiModelProperty(value = "updateBy")
+ private String updateBy;
+
+ @NotNull
+ @ApiModelProperty(value = "updateTime")
+ private Timestamp updateTime;
+
+ public void copy(MesAdvertisement source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MesCustomerCommentMsg.java b/oying-system/src/main/java/com/oying/modules/message/domain/MesCustomerCommentMsg.java
new file mode 100644
index 0000000..551f3c2
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MesCustomerCommentMsg.java
@@ -0,0 +1,95 @@
+package com.oying.modules.message.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-07-25
+**/
+@Data
+@TableName("mes_customer_comment_msg")
+public class MesCustomerCommentMsg extends BaseEntity implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+ @NotNull
+ @ApiModelProperty(value = "对应 mes_msg_record.id")
+ private Long msgRecordId;
+
+ @NotNull
+ @ApiModelProperty(value = "店铺ID")
+ private Long shopId;
+
+ @NotNull
+ @ApiModelProperty(value = "订单ID")
+ private Long orderId;
+
+ @NotBlank
+ @ApiModelProperty(value = "订单编号 冗余")
+ private String orderNo;
+
+ @NotBlank
+ @ApiModelProperty(value = "买家用户ID")
+ private String buyerId;
+
+ @ApiModelProperty(value = "买家昵称 冗余")
+ private String buyerName;
+
+ @NotNull
+ @ApiModelProperty(value = "评价ID 冗余")
+ private Long evaluationId;
+
+ @NotNull
+ @ApiModelProperty(value = "商户是否已回复 0=未回复 1=已回复")
+ private Integer replied;
+
+ @NotBlank
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @NotNull
+ @ApiModelProperty(value = "创建时间")
+ private Timestamp createTime;
+
+ @NotBlank
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ @NotNull
+ @ApiModelProperty(value = "顾客留言时间(即评价产生时间)")
+ private Timestamp commentTime;
+
+ @ApiModelProperty(value = "顾客留言内容(评价原文)")
+ private String commentContent;
+
+ @ApiModelProperty(value = "商家回复内容")
+ private String replyContent;
+
+ @ApiModelProperty(value = "外部跳转链接(完整 http/https)")
+ private String extJumpUrl;
+
+ @ApiModelProperty(value = "内部小程序/APP 路由路径")
+ private String intJumpPath;
+
+ public void copy(MesCustomerCommentMsg source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MesMsgRecord.java b/oying-system/src/main/java/com/oying/modules/message/domain/MesMsgRecord.java
new file mode 100644
index 0000000..1832d58
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MesMsgRecord.java
@@ -0,0 +1,110 @@
+package com.oying.modules.message.domain;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.oying.base.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+/**
+ * @author 李萌
+ * @description /
+ * @date 2025-07-25
+ **/
+@Data
+@TableName("mes_msg_record")
+public class MesMsgRecord extends BaseEntity implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+ @ApiModelProperty(value = "模板ID 可无")
+ private Integer templateId;
+
+ @NotBlank
+ @ApiModelProperty(value = "接收人ID")
+ private String receiverId;
+
+ @NotNull
+ @ApiModelProperty(value = "1=买家 2=商户 3=骑手")
+ private Integer platform;
+
+ @NotNull
+ @ApiModelProperty(value = "同模板type")
+ private Integer msgType;
+// @NotNull
+// @ApiModelProperty(value = "同模板type")
+// private MesTypeEnum msgType;
+
+
+ @NotBlank
+ @ApiModelProperty(value = "最终标题")
+ private String title;
+
+ @NotBlank
+ @ApiModelProperty(value = "最终内容")
+ private String content;
+
+ @NotBlank
+ @ApiModelProperty(value = "最终内容key")
+ private String contentKey;
+
+ @ApiModelProperty(value = "业务ID 例如订单ID")
+ private Long bizId;
+
+ @ApiModelProperty(value = "业务类型 ORDER/EVALUATION 等")
+ private String bizType;
+
+ @NotNull
+ @ApiModelProperty(value = "已读 0=未读 1=已读")
+ private Integer isRead;
+
+ @ApiModelProperty(value = "阅读时间")
+ private Timestamp readTime;
+
+ @ApiModelProperty(value = "扩展字段 存跳转链接等")
+ private String extra;
+
+ // 新增字段
+ @NotNull
+ @ApiModelProperty(value = "订单ID")
+ private Long orderId;
+
+ @NotBlank
+ @ApiModelProperty(value = "买家用户ID")
+ private String buyerId;
+
+ @NotBlank
+ @ApiModelProperty(value = "买家用户名字")
+ private String buyerName;
+ @NotBlank
+ @ApiModelProperty(value = "订单编号 冗余字段")
+ private String orderNo;
+
+ @NotNull
+ @ApiModelProperty(value = "店铺ID 冗余字段")
+ private Long shopId;
+
+ @NotBlank
+ @ApiModelProperty(value = "店铺名称 冗余字段")
+ private String shopName;
+
+ @ApiModelProperty(value = "骑手ID")
+ private String riderId;
+
+ @ApiModelProperty(value = "骑手姓名 冗余字段")
+ private String riderName;
+
+ public void copy(MesMsgRecord source) {
+ BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MesMsgTemplate.java b/oying-system/src/main/java/com/oying/modules/message/domain/MesMsgTemplate.java
new file mode 100644
index 0000000..80ef607
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MesMsgTemplate.java
@@ -0,0 +1,72 @@
+package com.oying.modules.message.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-07-25
+**/
+@Data
+@TableName("mes_msg_template")
+public class MesMsgTemplate extends BaseEntity implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Integer id;
+
+ @NotBlank
+ @ApiModelProperty(value = "模板编码")
+ private String code;
+
+ @NotBlank
+ @ApiModelProperty(value = "模板名称")
+ private String name;
+
+ @NotBlank
+ @ApiModelProperty(value = "标题模板 支持占位符")
+ private String titleTpl;
+
+ @NotBlank
+ @ApiModelProperty(value = "内容模板 支持占位符")
+ private String contentTpl;
+
+ @NotNull
+ @ApiModelProperty(value = "1=系统 2=订单 3=评价/留言")
+ private Integer type;
+
+ @NotNull
+ @ApiModelProperty(value = "1=买家 2=商户 3=骑手")
+ private Integer platform;
+
+ @NotBlank
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @NotNull
+ @ApiModelProperty(value = "创建时间")
+ private Timestamp createTime;
+
+ @NotBlank
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(MesMsgTemplate source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MesOrderEvaluation.java b/oying-system/src/main/java/com/oying/modules/message/domain/MesOrderEvaluation.java
new file mode 100644
index 0000000..c14dbb5
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MesOrderEvaluation.java
@@ -0,0 +1,102 @@
+package com.oying.modules.message.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-07-25
+**/
+@Data
+@TableName("mes_order_evaluation")
+public class MesOrderEvaluation extends BaseEntity implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+ @NotNull
+ @ApiModelProperty(value = "订单ID")
+ private Long orderId;
+
+ @NotBlank
+ @ApiModelProperty(value = "买家用户ID")
+ private String buyerId;
+
+ @NotBlank
+ @ApiModelProperty(value = "订单编号 冗余字段")
+ private String orderNo;
+
+ @NotNull
+ @ApiModelProperty(value = "店铺ID 冗余字段")
+ private Long shopId;
+
+ @NotBlank
+ @ApiModelProperty(value = "店铺名称 冗余字段")
+ private String shopName;
+
+ @ApiModelProperty(value = "骑手ID")
+ private Long riderId;
+
+ @ApiModelProperty(value = "骑手姓名 冗余字段")
+ private String riderName;
+
+ @NotNull
+ @ApiModelProperty(value = "商品评分 0-5,支持半星")
+ private BigDecimal goodsScore;
+
+ @ApiModelProperty(value = "商品评价内容")
+ private String goodsContent;
+
+ @ApiModelProperty(value = "商品评价图片 最多5张 存JSON数组")
+ private String goodsImgs;
+
+ @NotNull
+ @ApiModelProperty(value = "店铺服务评分")
+ private BigDecimal shopScore;
+
+ @ApiModelProperty(value = "店铺服务评价内容")
+ private String shopContent;
+
+ @ApiModelProperty(value = "骑手服务评分")
+ private BigDecimal riderScore;
+
+ @ApiModelProperty(value = "骑手服务评价内容")
+ private String riderContent;
+
+ @NotNull
+ @ApiModelProperty(value = "买家删除评价 0=正常 1=已删除")
+ private Integer isDeleted;
+
+ @NotBlank
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @NotNull
+ @ApiModelProperty(value = "创建时间")
+ private Timestamp createTime;
+
+ @NotBlank
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(MesOrderEvaluation source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MesOrderItemEvaluation.java b/oying-system/src/main/java/com/oying/modules/message/domain/MesOrderItemEvaluation.java
new file mode 100644
index 0000000..319c1d9
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MesOrderItemEvaluation.java
@@ -0,0 +1,78 @@
+package com.oying.modules.message.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-07-25
+**/
+@Data
+@TableName("mes_order_item_evaluation")
+public class MesOrderItemEvaluation extends BaseEntity implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+ @NotNull
+ @ApiModelProperty(value = "对应 mes_order_evaluation.id")
+ private Long orderEvalId;
+
+ @NotNull
+ @ApiModelProperty(value = "订单明细ID")
+ private Long orderItemId;
+
+ @NotNull
+ @ApiModelProperty(value = "商品ID")
+ private Long goodsId;
+
+ @NotBlank
+ @ApiModelProperty(value = "商品名称 冗余")
+ private String goodsName;
+
+ @ApiModelProperty(value = "商品主图 冗余")
+ private String goodsPic;
+
+ @NotNull
+ @ApiModelProperty(value = "商品单项评分")
+ private BigDecimal score;
+
+ @ApiModelProperty(value = "评价内容")
+ private String content;
+
+ @ApiModelProperty(value = "评价图片JSON 最多5张")
+ private String imgs;
+
+ @NotBlank
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @NotNull
+ @ApiModelProperty(value = "创建时间")
+ private Timestamp createTime;
+
+ @NotBlank
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(MesOrderItemEvaluation source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MesRiderEvaluation.java b/oying-system/src/main/java/com/oying/modules/message/domain/MesRiderEvaluation.java
new file mode 100644
index 0000000..69a64bf
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MesRiderEvaluation.java
@@ -0,0 +1,80 @@
+package com.oying.modules.message.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-07-25
+**/
+@Data
+@TableName("mes_rider_evaluation")
+public class MesRiderEvaluation extends BaseEntity implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+ @NotNull
+ @ApiModelProperty(value = "订单ID")
+ private Long orderId;
+
+ @NotBlank
+ @ApiModelProperty(value = "订单编号 冗余")
+ private String orderNo;
+
+ @NotNull
+ @ApiModelProperty(value = "骑手ID")
+ private Long riderId;
+
+ @NotBlank
+ @ApiModelProperty(value = "骑手姓名 冗余")
+ private String riderName;
+
+ @NotBlank
+ @ApiModelProperty(value = "买家用户ID")
+ private String buyerId;
+
+ @NotNull
+ @ApiModelProperty(value = "骑手服务评分")
+ private BigDecimal score;
+
+ @ApiModelProperty(value = "评价内容")
+ private String content;
+
+ @NotBlank
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @NotNull
+ @ApiModelProperty(value = "创建时间")
+ private Timestamp createTime;
+
+ @NotBlank
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ @ApiModelProperty(value = "评价图片JSON 最多5张")
+ private String imgs;
+
+
+ public void copy(MesRiderEvaluation source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MesShopReply.java b/oying-system/src/main/java/com/oying/modules/message/domain/MesShopReply.java
new file mode 100644
index 0000000..6f6dddc
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MesShopReply.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-07-25
+**/
+@Data
+@TableName("mes_shop_reply")
+public class MesShopReply extends BaseEntity implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+ @NotNull
+ @ApiModelProperty(value = "mes_order_evaluation.id")
+ private Long evaluationId;
+
+ @NotNull
+ @ApiModelProperty(value = "1=商品评价回复 2=店铺服务评价回复")
+ private Integer replyType;
+
+ @NotBlank
+ @ApiModelProperty(value = "回复内容")
+ private String content;
+
+ @NotBlank
+ @ApiModelProperty(value = "商户ID")
+ private String createBy;
+
+ @NotNull
+ @ApiModelProperty(value = "创建时间")
+ private Timestamp createTime;
+
+ @NotBlank
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @NotNull
+ @ApiModelProperty(value = "更新时间")
+ private Timestamp updateTime;
+
+ public void copy(MesShopReply source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderBuyer.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderBuyer.java
deleted file mode 100644
index fca85bf..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderBuyer.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.oying.modules.message.domain;
-
-import com.oying.base.BaseEntity;
-import lombok.Data;
-import cn.hutool.core.bean.BeanUtil;
-import io.swagger.annotations.ApiModelProperty;
-import cn.hutool.core.bean.copier.CopyOptions;
-import java.sql.Timestamp;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
-* @description /
-* @author 李萌
-* @date 2025-05-20
-**/
-@Data
-@TableName("message_order_buyer")
-public class MessageOrderBuyer extends BaseEntity implements Serializable {
-
- @TableId(value = "id", type = IdType.AUTO)
- @ApiModelProperty(value = "主键,自增 用户id")
- private Integer id;
-
- @NotNull
- @ApiModelProperty(value = "订单ID")
- private Integer orderId;
-
- @NotBlank
- @ApiModelProperty(value = "消息类型(订单状态变化、订单送达)")
- private String messageType;
-
- @NotBlank
- @ApiModelProperty(value = "消息内容")
- private String messageContent;
-
- @NotBlank
- @ApiModelProperty(value = "跳转链接")
- private String link;
-
-// @ApiModelProperty(value = "创建时间")
-// private Timestamp createTime;
-
- public void copy(MessageOrderBuyer source){
- BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
- }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderLeave.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderLeave.java
deleted file mode 100644
index 8556bd6..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderLeave.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.oying.modules.message.domain;
-
-import com.oying.base.BaseEntity;
-import lombok.Data;
-import cn.hutool.core.bean.BeanUtil;
-import io.swagger.annotations.ApiModelProperty;
-import cn.hutool.core.bean.copier.CopyOptions;
-import java.sql.Timestamp;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
-* @description /
-* @author 李萌
-* @date 2025-05-20
-**/
-@Data
-@TableName("message_order_leave")
-public class MessageOrderLeave extends BaseEntity implements Serializable {
-
- @TableId(value = "id", type = IdType.AUTO)
- @ApiModelProperty(value = "主键,自增")
- private Integer id;
-
- @NotNull
- @ApiModelProperty(value = "订单ID")
- private Integer orderId;
-
- @NotBlank
- @ApiModelProperty(value = "顾客评价内容")
- private String customerReview="顾客尚未评价";
-
- @NotBlank
- @ApiModelProperty(value = "商家回复内容")
- private String sellerReply="商家尚未回复";
-
- @NotBlank
- @ApiModelProperty(value = "跳转链接")
- private String link="https://example.com/default-link";
-
-// @ApiModelProperty(value = "创建时间")
-// private Timestamp createTime;
-
- public void copy(MessageOrderLeave source){
- BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
- }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderSeller.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderSeller.java
deleted file mode 100644
index d39132a..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderSeller.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.oying.modules.message.domain;
-
-import com.oying.base.BaseEntity;
-import lombok.Data;
-import cn.hutool.core.bean.BeanUtil;
-import io.swagger.annotations.ApiModelProperty;
-import cn.hutool.core.bean.copier.CopyOptions;
-import java.sql.Timestamp;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
-* @description /
-* @author 李萌
-* @date 2025-05-20
-**/
-@Data
-@TableName("message_order_seller")
-public class MessageOrderSeller extends BaseEntity implements Serializable {
-
- @TableId(value = "id", type = IdType.AUTO)
- @ApiModelProperty(value = "id")
- private Integer id;
-
- // 订单id String
- @ApiModelProperty(value = "orderId")
- private String orderId;
-
-
- @ApiModelProperty(value = "storeId")
- private Integer storeId;
-
-
- @ApiModelProperty(value = "messageType")
- private String messageType;
-
-
- @ApiModelProperty(value = "messageContent")
- private String messageContent;
-
-
- @ApiModelProperty(value = "link")
- private String link;
-
- //0未读 1已读
- @ApiModelProperty(value = "flag")
- private Integer flag=0;
-
-// @ApiModelProperty(value = "createTime")
-// private Timestamp createTime;
-
- public void copy(MessageOrderSeller source){
- BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
- }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystem.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystem.java
deleted file mode 100644
index 6120049..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystem.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.oying.modules.message.domain;
-
-import com.oying.base.BaseEntity;
-import lombok.Data;
-import cn.hutool.core.bean.BeanUtil;
-import io.swagger.annotations.ApiModelProperty;
-import cn.hutool.core.bean.copier.CopyOptions;
-import java.sql.Timestamp;
-import javax.rmi.CORBA.Tie;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-import java.util.Date;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
- * @description /
- * @author 李萌
- * @date 2025-05-20
- **/
-@Data
-@TableName("message_system")
-public class MessageSystem extends BaseEntity implements Serializable {
-
- //使用数据库的自增策略来生成id
- @TableId(value = "id", type = IdType.AUTO)
- @ApiModelProperty(value = "id")
- private Integer id;
-
- @NotNull
- @ApiModelProperty(value = "系统维护开始时间")
- private Timestamp startTime;
-
- @NotNull
- @ApiModelProperty(value = "系统维护截至时间")
- private Timestamp endTime;
-
- public void copy(MessageSystem source){
- BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
- }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystemAdvertise.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystemAdvertise.java
deleted file mode 100644
index c01e7e4..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystemAdvertise.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.oying.modules.message.domain;
-
-import com.oying.base.BaseEntity;
-import lombok.Data;
-import cn.hutool.core.bean.BeanUtil;
-import io.swagger.annotations.ApiModelProperty;
-import cn.hutool.core.bean.copier.CopyOptions;
-import java.sql.Timestamp;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
-* @description /
-* @author leomon
-* @date 2025-06-05
-**/
-@Data
-@TableName("message_system_advertise")
-public class MessageSystemAdvertise extends BaseEntity implements Serializable {
-
- @TableId(value = "id", type = IdType.AUTO)
- @ApiModelProperty(value = "主键ID")
- private Long id;
-
- @ApiModelProperty(value = "广告标题")
- private String title;
-
- @ApiModelProperty(value = "广告内容")
- private String content;
-
- @ApiModelProperty(value = "广告图片链接")
- private String imageUrl;
-
- @ApiModelProperty(value = "广告跳转链接")
- private String linkUrl;
-
- @NotNull
- @ApiModelProperty(value = "广告状态(0: 禁用;1: 启用)")
- private Integer status;
-
-// @ApiModelProperty(value = "创建人")
-// private String createBy;
-//
-// @ApiModelProperty(value = "更新人")
-// private String updateBy;
-//
-// @NotNull
-// @ApiModelProperty(value = "创建时间")
-// private Timestamp createTime;
-//
-// @NotNull
-// @ApiModelProperty(value = "更新时间")
-// private Timestamp updateTime;
-
- public void copy(MessageSystemAdvertise source){
- BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
- }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesAdvertisementQueryCriteria.java
similarity index 83%
copy from oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
copy to oying-system/src/main/java/com/oying/modules/message/domain/dto/MesAdvertisementQueryCriteria.java
index 0ccbeef..0c6c906 100644
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesAdvertisementQueryCriteria.java
@@ -5,10 +5,10 @@
/**
* @author 李萌
-* @date 2025-05-20
+* @date 2025-07-25
**/
@Data
-public class MessageOrderBuyerQueryCriteria{
+public class MesAdvertisementQueryCriteria{
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesCustomerCommentMsgQueryCriteria.java
similarity index 82%
copy from oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
copy to oying-system/src/main/java/com/oying/modules/message/domain/dto/MesCustomerCommentMsgQueryCriteria.java
index 0ccbeef..3bb1cab 100644
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesCustomerCommentMsgQueryCriteria.java
@@ -5,10 +5,10 @@
/**
* @author 李萌
-* @date 2025-05-20
+* @date 2025-07-25
**/
@Data
-public class MessageOrderBuyerQueryCriteria{
+public class MesCustomerCommentMsgQueryCriteria{
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesMsgRecordQueryCriteria.java
similarity index 83%
rename from oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
rename to oying-system/src/main/java/com/oying/modules/message/domain/dto/MesMsgRecordQueryCriteria.java
index 0ccbeef..0846a71 100644
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesMsgRecordQueryCriteria.java
@@ -5,10 +5,10 @@
/**
* @author 李萌
-* @date 2025-05-20
+* @date 2025-07-25
**/
@Data
-public class MessageOrderBuyerQueryCriteria{
+public class MesMsgRecordQueryCriteria{
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesMsgTemplateQueryCriteria.java
similarity index 83%
copy from oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
copy to oying-system/src/main/java/com/oying/modules/message/domain/dto/MesMsgTemplateQueryCriteria.java
index 0ccbeef..e4f2a77 100644
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesMsgTemplateQueryCriteria.java
@@ -5,10 +5,10 @@
/**
* @author 李萌
-* @date 2025-05-20
+* @date 2025-07-25
**/
@Data
-public class MessageOrderBuyerQueryCriteria{
+public class MesMsgTemplateQueryCriteria{
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesOrderEvaluationQueryCriteria.java
similarity index 83%
copy from oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
copy to oying-system/src/main/java/com/oying/modules/message/domain/dto/MesOrderEvaluationQueryCriteria.java
index 0ccbeef..81b4dd3 100644
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesOrderEvaluationQueryCriteria.java
@@ -5,10 +5,10 @@
/**
* @author 李萌
-* @date 2025-05-20
+* @date 2025-07-25
**/
@Data
-public class MessageOrderBuyerQueryCriteria{
+public class MesOrderEvaluationQueryCriteria{
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesOrderItemEvaluationQueryCriteria.java
similarity index 82%
copy from oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
copy to oying-system/src/main/java/com/oying/modules/message/domain/dto/MesOrderItemEvaluationQueryCriteria.java
index 0ccbeef..877cf66 100644
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesOrderItemEvaluationQueryCriteria.java
@@ -5,10 +5,10 @@
/**
* @author 李萌
-* @date 2025-05-20
+* @date 2025-07-25
**/
@Data
-public class MessageOrderBuyerQueryCriteria{
+public class MesOrderItemEvaluationQueryCriteria{
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesRiderEvaluationQueryCriteria.java
similarity index 83%
copy from oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
copy to oying-system/src/main/java/com/oying/modules/message/domain/dto/MesRiderEvaluationQueryCriteria.java
index 0ccbeef..7017726 100644
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesRiderEvaluationQueryCriteria.java
@@ -5,10 +5,10 @@
/**
* @author 李萌
-* @date 2025-05-20
+* @date 2025-07-25
**/
@Data
-public class MessageOrderBuyerQueryCriteria{
+public class MesRiderEvaluationQueryCriteria{
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesShopMsgRespDTO.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesShopMsgRespDTO.java
new file mode 100644
index 0000000..506504b
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesShopMsgRespDTO.java
@@ -0,0 +1,15 @@
+package com.oying.modules.message.domain.dto;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+@Data
+public class MesShopMsgRespDTO {
+ private Long msgId;
+ private String title;
+ private String content;
+ private LocalDateTime createTime;
+ private Long bizId;
+ private String bizType;
+ private Boolean read;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesShopReplyQueryCriteria.java
similarity index 83%
copy from oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
copy to oying-system/src/main/java/com/oying/modules/message/domain/dto/MesShopReplyQueryCriteria.java
index 0ccbeef..15795db 100644
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderBuyerQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MesShopReplyQueryCriteria.java
@@ -5,10 +5,10 @@
/**
* @author 李萌
-* @date 2025-05-20
+* @date 2025-07-25
**/
@Data
-public class MessageOrderBuyerQueryCriteria{
+public class MesShopReplyQueryCriteria{
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderLeaveQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderLeaveQueryCriteria.java
deleted file mode 100644
index c0c98b9..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderLeaveQueryCriteria.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.oying.modules.message.domain.dto;
-
-import lombok.Data;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
-* @author 李萌
-* @date 2025-05-20
-**/
-@Data
-public class MessageOrderLeaveQueryCriteria{
-
- @ApiModelProperty(value = "页码", example = "1")
- private Integer page = 1;
-
- @ApiModelProperty(value = "每页数据量", example = "10")
- private Integer size = 10;
-}
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
deleted file mode 100644
index ac6906e..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.oying.modules.message.domain.dto;
-
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-@Data
-public class MessageOrderSellerDTO {
- //加一个主键
-
- private Integer id;
-
- private Integer orderId;
-
-// private String messageType;
-
- private String messageContent;
-
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerQueryCriteria.java
deleted file mode 100644
index c514533..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerQueryCriteria.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.oying.modules.message.domain.dto;
-
-import lombok.Data;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
-* @author 李萌
-* @date 2025-05-20
-**/
-@Data
-public class MessageOrderSellerQueryCriteria{
-
- @ApiModelProperty(value = "页码", example = "1")
- private Integer page = 1;
-
- @ApiModelProperty(value = "每页数据量", example = "10")
- private Integer size = 10;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemAdvertiseQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemAdvertiseQueryCriteria.java
deleted file mode 100644
index 6fc9421..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemAdvertiseQueryCriteria.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.oying.modules.message.domain.dto;
-
-import lombok.Data;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
-* @author leomon
-* @date 2025-06-05
-**/
-@Data
-public class MessageSystemAdvertiseQueryCriteria{
-
- @ApiModelProperty(value = "页码", example = "1")
- private Integer page = 1;
-
- @ApiModelProperty(value = "每页数据量", example = "10")
- private Integer size = 10;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.java
deleted file mode 100644
index 0ba80fc..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.oying.modules.message.domain.dto;
-
-import lombok.Data;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @author 李萌
- * @date 2025-05-20
- **/
-@Data
-public class MessageSystemQueryCriteria{
-
- @ApiModelProperty(value = "页码", example = "1")
- private Integer page = 1;
-
- @ApiModelProperty(value = "每页数据量", example = "10")
- private Integer size = 10;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesCustomerCommentMsgDTO.java b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesCustomerCommentMsgDTO.java
new file mode 100644
index 0000000..ad39b89
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesCustomerCommentMsgDTO.java
@@ -0,0 +1,81 @@
+package com.oying.modules.message.domain.myDto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.sql.Timestamp;
+@Data
+@TableName("mes_customer_comment_msg")
+public class MesCustomerCommentMsgDTO {
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+// @NotNull
+// @ApiModelProperty(value = "对应 mes_msg_record.id")
+// private Long msgRecordId;
+
+ @NotNull
+ @ApiModelProperty(value = "店铺ID")
+ private Long shopId;
+//一个订单多个评价,一个评价多个留言,一个留言一个回复
+// @NotNull
+// @ApiModelProperty(value = "订单ID")
+// private Long orderId;
+
+ @NotBlank
+ @ApiModelProperty(value = "订单编号 冗余")
+ private String orderNo;
+
+ @NotBlank
+ @ApiModelProperty(value = "买家用户ID")
+ private String buyerId;
+
+ @ApiModelProperty(value = "买家昵称 冗余")
+ private String buyerName;
+//
+// @NotNull
+// @ApiModelProperty(value = "评价ID 冗余")
+// private Long evaluationId;
+
+ @NotNull
+ @ApiModelProperty(value = "商户是否已回复 0=未回复 1=已回复")
+ private Integer replied;
+
+// @NotBlank
+// @ApiModelProperty(value = "创建人")
+// private String createBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "创建时间")
+// private Timestamp createTime;
+//
+// @NotBlank
+// @ApiModelProperty(value = "更新人")
+// private String updateBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "更新时间")
+// private Timestamp updateTime;
+
+ @NotNull
+ @ApiModelProperty(value = "顾客留言时间(即评价产生时间)")
+ private Timestamp commentTime;
+
+ @ApiModelProperty(value = "顾客留言内容(评价原文)")
+ private String commentContent;
+
+ @ApiModelProperty(value = "商家回复内容")
+ private String replyContent;
+
+// @ApiModelProperty(value = "外部跳转链接(完整 http/https)")
+// private String extJumpUrl;
+//
+// @ApiModelProperty(value = "内部小程序/APP 路由路径")
+// private String intJumpPath;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQueryOrderDto.java b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQueryOrderDto.java
new file mode 100644
index 0000000..dbe33ba
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQueryOrderDto.java
@@ -0,0 +1,101 @@
+package com.oying.modules.message.domain.myDto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+
+@Data
+@TableName("mes_msg_record") // 指定对应的表名
+public class MesMsgRecordQueryOrderDto {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+// @ApiModelProperty(value = "模板ID 可无")
+// private Integer templateId;
+//
+// @NotBlank
+// @ApiModelProperty(value = "接收人ID")
+// private String receiverId;
+//
+// @NotNull
+// @ApiModelProperty(value = "1=买家 2=商户 3=骑手")
+// private Integer platform;
+//
+// @NotNull
+// @ApiModelProperty(value = "同模板type")
+// private Integer msgType;
+
+// @NotBlank
+// @ApiModelProperty(value = "最终标题")
+// private String title;
+
+ @NotBlank
+ @ApiModelProperty(value = "最终内容")
+ private String content;
+
+ // @ApiModelProperty(value = "业务ID 例如订单ID")
+// private Long bizId;
+//
+// @ApiModelProperty(value = "业务类型 ORDER/EVALUATION 等")
+// private String bizType;
+ //
+// @NotNull
+// @ApiModelProperty(value = "已读 0=未读 1=已读")
+// private Integer isRead;
+//
+// @ApiModelProperty(value = "阅读时间")
+// private Timestamp readTime;
+//
+// @ApiModelProperty(value = "扩展字段 存跳转链接等")
+// private String extra;
+//
+// @NotBlank
+// @ApiModelProperty(value = "创建人")
+// private String createBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "创建时间")
+// private Timestamp createTime;
+//
+// @NotBlank
+// @ApiModelProperty(value = "更新人")
+// private String updateBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "更新时间")
+// private Timestamp updateTime;
+// 新增字段
+// @NotNull
+// @ApiModelProperty(value = "订单ID")
+// private Long orderId;
+
+// @NotBlank
+// @ApiModelProperty(value = "买家用户ID")
+// private String buyerId;
+//
+ @NotBlank
+ @ApiModelProperty(value = "订单编号 冗余字段")
+ private String orderNo;
+//
+// @NotNull
+// @ApiModelProperty(value = "店铺ID 冗余字段")
+// private Long shopId;
+//
+// @NotBlank
+// @ApiModelProperty(value = "店铺名称 冗余字段")
+// private String shopName;
+//
+// @ApiModelProperty(value = "骑手ID")
+// private Long riderId;
+//
+// @ApiModelProperty(value = "骑手姓名 冗余字段")
+// private String riderName;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQueryPollDto.java b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQueryPollDto.java
new file mode 100644
index 0000000..8b04e54
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQueryPollDto.java
@@ -0,0 +1,76 @@
+package com.oying.modules.message.domain.myDto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.sql.Timestamp;
+
+@Data
+@TableName("mes_msg_record") // 指定对应的表名
+public class MesMsgRecordQueryPollDto{
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+// @ApiModelProperty(value = "模板ID 可无")
+// private Integer templateId;
+//
+// @NotBlank
+// @ApiModelProperty(value = "接收人ID")
+// private String receiverId;
+//
+// @NotNull
+// @ApiModelProperty(value = "1=买家 2=商户 3=骑手")
+// private Integer platform;
+//
+// @NotNull
+// @ApiModelProperty(value = "同模板type")
+// private Integer msgType;
+
+ @NotBlank
+ @ApiModelProperty(value = "最终标题")
+ private String title;
+
+ @NotBlank
+ @ApiModelProperty(value = "最终内容")
+ private String content;
+
+// @ApiModelProperty(value = "业务ID 例如订单ID")
+// private Long bizId;
+//
+// @ApiModelProperty(value = "业务类型 ORDER/EVALUATION 等")
+// private String bizType;
+//
+// @NotNull
+// @ApiModelProperty(value = "已读 0=未读 1=已读")
+// private Integer isRead;
+//
+// @ApiModelProperty(value = "阅读时间")
+// private Timestamp readTime;
+//
+// @ApiModelProperty(value = "扩展字段 存跳转链接等")
+// private String extra;
+//
+// @NotBlank
+// @ApiModelProperty(value = "创建人")
+// private String createBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "创建时间")
+// private Timestamp createTime;
+//
+// @NotBlank
+// @ApiModelProperty(value = "更新人")
+// private String updateBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "更新时间")
+// private Timestamp updateTime;
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQuerySystemDto.java b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQuerySystemDto.java
new file mode 100644
index 0000000..4c62b74
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesMsgRecordQuerySystemDto.java
@@ -0,0 +1,76 @@
+package com.oying.modules.message.domain.myDto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.sql.Timestamp;
+
+@Data
+@TableName("mes_msg_record") // 指定对应的表名
+public class MesMsgRecordQuerySystemDto{
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+// @ApiModelProperty(value = "模板ID 可无")
+// private Integer templateId;
+//
+// @NotBlank
+// @ApiModelProperty(value = "接收人ID")
+// private String receiverId;
+//
+// @NotNull
+// @ApiModelProperty(value = "1=买家 2=商户 3=骑手")
+// private Integer platform;
+//
+// @NotNull
+// @ApiModelProperty(value = "同模板type")
+// private Integer msgType;
+
+ @NotBlank
+ @ApiModelProperty(value = "最终标题")
+ private String title;
+
+ @NotBlank
+ @ApiModelProperty(value = "最终内容")
+ private String content;
+
+// @ApiModelProperty(value = "业务ID 例如订单ID")
+// private Long bizId;
+//
+// @ApiModelProperty(value = "业务类型 ORDER/EVALUATION 等")
+// private String bizType;
+//
+// @NotNull
+// @ApiModelProperty(value = "已读 0=未读 1=已读")
+// private Integer isRead;
+//
+// @ApiModelProperty(value = "阅读时间")
+// private Timestamp readTime;
+//
+// @ApiModelProperty(value = "扩展字段 存跳转链接等")
+// private String extra;
+//
+// @NotBlank
+// @ApiModelProperty(value = "创建人")
+// private String createBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "创建时间")
+// private Timestamp createTime;
+//
+// @NotBlank
+// @ApiModelProperty(value = "更新人")
+// private String updateBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "更新时间")
+// private Timestamp updateTime;
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesOrderEvaluationDto.java b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesOrderEvaluationDto.java
new file mode 100644
index 0000000..d6adda3
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesOrderEvaluationDto.java
@@ -0,0 +1,54 @@
+package com.oying.modules.message.domain.myDto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+
+@Data
+public class MesOrderEvaluationDto {
+
+// @TableId(value = "id", type = IdType.AUTO)
+// @ApiModelProperty(value = "主键")
+// private Long id;
+
+
+ @NotNull
+ @ApiModelProperty(value = "店铺ID 冗余字段")
+ private Long shopId;
+
+ @NotBlank
+ @ApiModelProperty(value = "店铺名称 冗余字段")
+ private String shopName;
+
+ @NotNull
+ @ApiModelProperty(value = "店铺服务评分")
+ private BigDecimal shopScore;
+
+ @ApiModelProperty(value = "店铺服务评价内容")
+ private String shopContent;
+
+
+//
+// @NotBlank
+// @ApiModelProperty(value = "创建人")
+// private String createBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "创建时间")
+// private Timestamp createTime;
+//
+// @NotBlank
+// @ApiModelProperty(value = "更新人")
+// private String updateBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "更新时间")
+// private Timestamp updateTime;
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesOrderItemEvaluationDto.java b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesOrderItemEvaluationDto.java
new file mode 100644
index 0000000..8553750
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesOrderItemEvaluationDto.java
@@ -0,0 +1,78 @@
+package com.oying.modules.message.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+ * @description /
+ * @author 李萌
+ * @date 2025-07-25
+ **/
+@Data
+@TableName("mes_order_item_evaluation")
+public class MesOrderItemEvaluationDto {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
+ @NotNull
+ @ApiModelProperty(value = "对应 mes_order_evaluation.id")
+ private Long orderEvalId;
+
+ @NotNull
+ @ApiModelProperty(value = "订单明细ID")
+ private Long orderItemId;
+
+ @NotNull
+ @ApiModelProperty(value = "商品ID")
+ private Long goodsId;
+
+ @NotBlank
+ @ApiModelProperty(value = "商品名称 冗余")
+ private String goodsName;
+
+ @ApiModelProperty(value = "商品主图 冗余")
+ private String goodsPic;
+
+ @NotNull
+ @ApiModelProperty(value = "商品单项评分")
+ private BigDecimal score;
+
+ @ApiModelProperty(value = "评价内容")
+ private String content;
+
+ @ApiModelProperty(value = "评价图片JSON 最多5张")
+ private String imgs;
+
+// @NotBlank
+// @ApiModelProperty(value = "创建人")
+// private String createBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "创建时间")
+// private Timestamp createTime;
+//
+// @NotBlank
+// @ApiModelProperty(value = "更新人")
+// private String updateBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "更新时间")
+// private Timestamp updateTime;
+
+ public void copy(MesOrderItemEvaluation source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesRiderEvaluationDto.java b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesRiderEvaluationDto.java
new file mode 100644
index 0000000..158f64f
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/myDto/MesRiderEvaluationDto.java
@@ -0,0 +1,50 @@
+package com.oying.modules.message.domain.myDto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+
+@Data
+public class MesRiderEvaluationDto {
+
+// @TableId(value = "id", type = IdType.AUTO)
+// @ApiModelProperty(value = "主键")
+// private Long id;
+
+// @NotNull
+// @ApiModelProperty(value = "订单ID")
+// private Long orderId;
+//
+// @NotBlank
+// @ApiModelProperty(value = "订单编号 冗余")
+// private String orderNo;
+
+ @NotNull
+ @ApiModelProperty(value = "骑手ID")
+ private Long riderId;
+
+ @NotBlank
+ @ApiModelProperty(value = "骑手姓名 冗余")
+ private String riderName;
+
+ @NotBlank
+ @ApiModelProperty(value = "买家用户ID")
+ private String buyerId;
+
+ @NotNull
+ @ApiModelProperty(value = "骑手服务评分")
+ private BigDecimal score;
+
+ @ApiModelProperty(value = "评价内容")
+ private String content;
+
+ @ApiModelProperty(value = "评价图片JSON 最多5张")
+ private String imgs;
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MesAdvertisementMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MesAdvertisementMapper.java
new file mode 100644
index 0000000..3b7cd28
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MesAdvertisementMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MesAdvertisement;
+import com.oying.modules.message.domain.dto.MesAdvertisementQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@Mapper
+public interface MesAdvertisementMapper extends BaseMapper<MesAdvertisement> {
+
+ IPage<MesAdvertisement> findAll(@Param("criteria") MesAdvertisementQueryCriteria criteria, Page<Object> page);
+
+ List<MesAdvertisement> findAll(@Param("criteria") MesAdvertisementQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MesCustomerCommentMsgMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MesCustomerCommentMsgMapper.java
new file mode 100644
index 0000000..f8c5ce0
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MesCustomerCommentMsgMapper.java
@@ -0,0 +1,26 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MesCustomerCommentMsg;
+import com.oying.modules.message.domain.dto.MesCustomerCommentMsgQueryCriteria;
+import java.util.List;
+
+import com.oying.modules.message.domain.myDto.MesCustomerCommentMsgDTO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@Mapper
+public interface MesCustomerCommentMsgMapper extends BaseMapper<MesCustomerCommentMsg> {
+
+ IPage<MesCustomerCommentMsg> findAll(@Param("criteria") MesCustomerCommentMsgQueryCriteria criteria, Page<Object> page);
+
+ List<MesCustomerCommentMsg> findAll(@Param("criteria") MesCustomerCommentMsgQueryCriteria criteria);
+
+ List<MesCustomerCommentMsgDTO> listCustomerComment(Long shopId);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MesMsgRecordMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MesMsgRecordMapper.java
new file mode 100644
index 0000000..386c281
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MesMsgRecordMapper.java
@@ -0,0 +1,47 @@
+package com.oying.modules.message.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.modules.message.domain.MesMsgRecord;
+import com.oying.modules.message.domain.dto.MesMsgRecordQueryCriteria;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryPollDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQuerySystemDto;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author 李萌
+ * @date 2025-07-25
+ **/
+@Mapper
+public interface MesMsgRecordMapper extends BaseMapper<MesMsgRecord> {
+
+ IPage<MesMsgRecord> findAll(@Param("criteria") MesMsgRecordQueryCriteria criteria, Page<Object> page);
+
+ List<MesMsgRecord> findAll(@Param("criteria") MesMsgRecordQueryCriteria criteria);
+
+
+ List<MesMsgRecordQueryPollDto> PollMes(@Param("platform") Long platform, @Param("msgType") Long msgType);
+
+
+ void batchMarkRead(Long platform, List<Long> msgIds);
+
+ IPage<MesMsgRecordQuerySystemDto> queryAllSysNotice(@Param("criteria") MesMsgRecordQueryCriteria criteria, Page<Object> page);
+
+ List<MesMsgRecordQueryOrderDto> queryorder(Long shopId);
+
+ List<MesMsgRecordQueryPollDto> PollMesAll(@Param("platform") Long platform);
+
+ List<MesMsgRecordQueryOrderDto> queryorderPending(Long shopId, String content);
+
+ List<MesMsgRecordQueryOrderDto> queryBuyerOrderMessages(Long buyerId);
+
+ List<MesMsgRecordQueryOrderDto> queryBuyerOrderMessagesComplete(Long buyerId);
+
+
+// IPage<MesMsgRecord> findAll(@Param("criteria") MesMsgRecordQueryCriteria criteria, Page<Object> page);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MesMsgTemplateMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MesMsgTemplateMapper.java
new file mode 100644
index 0000000..96423d9
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MesMsgTemplateMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MesMsgTemplate;
+import com.oying.modules.message.domain.dto.MesMsgTemplateQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@Mapper
+public interface MesMsgTemplateMapper extends BaseMapper<MesMsgTemplate> {
+
+ IPage<MesMsgTemplate> findAll(@Param("criteria") MesMsgTemplateQueryCriteria criteria, Page<Object> page);
+
+ List<MesMsgTemplate> findAll(@Param("criteria") MesMsgTemplateQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MesOrderEvaluationMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MesOrderEvaluationMapper.java
new file mode 100644
index 0000000..8219852
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MesOrderEvaluationMapper.java
@@ -0,0 +1,26 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MesOrderEvaluation;
+import com.oying.modules.message.domain.dto.MesOrderEvaluationQueryCriteria;
+import java.util.List;
+
+import com.oying.modules.message.domain.myDto.MesOrderEvaluationDto;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@Mapper
+public interface MesOrderEvaluationMapper extends BaseMapper<MesOrderEvaluation> {
+
+ IPage<MesOrderEvaluation> findAll(@Param("criteria") MesOrderEvaluationQueryCriteria criteria, Page<Object> page);
+
+ List<MesOrderEvaluation> findAll(@Param("criteria") MesOrderEvaluationQueryCriteria criteria);
+
+ void addShopEvaluation(MesOrderEvaluationDto resources);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MesOrderItemEvaluationMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MesOrderItemEvaluationMapper.java
new file mode 100644
index 0000000..b741291
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MesOrderItemEvaluationMapper.java
@@ -0,0 +1,25 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MesOrderItemEvaluation;
+import com.oying.modules.message.domain.MesOrderItemEvaluationDto;
+import com.oying.modules.message.domain.dto.MesOrderItemEvaluationQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@Mapper
+public interface MesOrderItemEvaluationMapper extends BaseMapper<MesOrderItemEvaluation> {
+
+ IPage<MesOrderItemEvaluation> findAll(@Param("criteria") MesOrderItemEvaluationQueryCriteria criteria, Page<Object> page);
+
+ List<MesOrderItemEvaluation> findAll(@Param("criteria") MesOrderItemEvaluationQueryCriteria criteria);
+
+ void addGoodsEvaluation(MesOrderItemEvaluationDto resources);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MesRiderEvaluationMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MesRiderEvaluationMapper.java
new file mode 100644
index 0000000..74c3ff2
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MesRiderEvaluationMapper.java
@@ -0,0 +1,26 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MesRiderEvaluation;
+import com.oying.modules.message.domain.dto.MesRiderEvaluationQueryCriteria;
+import java.util.List;
+
+import com.oying.modules.message.domain.myDto.MesRiderEvaluationDto;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@Mapper
+public interface MesRiderEvaluationMapper extends BaseMapper<MesRiderEvaluation> {
+
+ IPage<MesRiderEvaluation> findAll(@Param("criteria") MesRiderEvaluationQueryCriteria criteria, Page<Object> page);
+
+ List<MesRiderEvaluation> findAll(@Param("criteria") MesRiderEvaluationQueryCriteria criteria);
+
+ void addRiderEvaluation(MesRiderEvaluationDto resources);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MesShopReplyMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MesShopReplyMapper.java
new file mode 100644
index 0000000..b5d7b02
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MesShopReplyMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MesShopReply;
+import com.oying.modules.message.domain.dto.MesShopReplyQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@Mapper
+public interface MesShopReplyMapper extends BaseMapper<MesShopReply> {
+
+ IPage<MesShopReply> findAll(@Param("criteria") MesShopReplyQueryCriteria criteria, Page<Object> page);
+
+ List<MesShopReply> findAll(@Param("criteria") MesShopReplyQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderBuyerMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderBuyerMapper.java
deleted file mode 100644
index b8d6ac1..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderBuyerMapper.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.oying.modules.message.mapper;
-
-import com.oying.modules.message.domain.MessageOrderBuyer;
-import com.oying.modules.message.domain.dto.MessageOrderBuyerQueryCriteria;
-import java.util.List;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-/**
-* @author 李萌
-* @date 2025-05-20
-**/
-@Mapper
-public interface MessageOrderBuyerMapper extends BaseMapper<MessageOrderBuyer> {
-
- IPage<MessageOrderBuyer> findAll(@Param("criteria") MessageOrderBuyerQueryCriteria criteria, Page<Object> page);
-
- List<MessageOrderBuyer> findAll(@Param("criteria") MessageOrderBuyerQueryCriteria criteria);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderLeaveMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderLeaveMapper.java
deleted file mode 100644
index 4adbee8..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderLeaveMapper.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.oying.modules.message.mapper;
-
-import com.oying.modules.message.domain.MessageOrderLeave;
-import com.oying.modules.message.domain.dto.MessageOrderLeaveQueryCriteria;
-import java.util.List;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-/**
-* @author 李萌
-* @date 2025-05-20
-**/
-@Mapper
-public interface MessageOrderLeaveMapper extends BaseMapper<MessageOrderLeave> {
-
- IPage<MessageOrderLeave> findAll(@Param("criteria") MessageOrderLeaveQueryCriteria criteria, Page<Object> page);
-
- List<MessageOrderLeave> findAll(@Param("criteria") MessageOrderLeaveQueryCriteria criteria);
-}
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
deleted file mode 100644
index 18306cb..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.oying.modules.message.mapper;
-
-import com.oying.modules.message.domain.MessageOrderSeller;
-import com.oying.modules.message.domain.dto.MessageOrderSellerQueryCriteria;
-import java.util.List;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-/**
-* @author 李萌
-* @date 2025-05-20
-**/
-@Mapper
-public interface MessageOrderSellerMapper extends BaseMapper<MessageOrderSeller> {
-
- IPage<MessageOrderSeller> findAll(@Param("criteria") MessageOrderSellerQueryCriteria criteria, Page<Object> page);
-
- List<MessageOrderSeller> findAll(@Param("criteria") MessageOrderSellerQueryCriteria criteria);
-
- List<MessageOrderSeller> findByStoreId(String storeId);
-
- Boolean updateMessageOrderSellerRead(Integer orderId);
-
- boolean saveMessageOrderSellerByOrderIdAndStoreId(MessageOrderSeller resources);
-
- boolean updateReadStatusById(Integer id);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemAdvertiseMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemAdvertiseMapper.java
deleted file mode 100644
index 99c0539..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemAdvertiseMapper.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.oying.modules.message.mapper;
-
-import com.oying.modules.message.domain.MessageSystemAdvertise;
-import com.oying.modules.message.domain.dto.MessageSystemAdvertiseQueryCriteria;
-import java.util.List;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-/**
-* @author leomon
-* @date 2025-06-05
-**/
-@Mapper
-public interface MessageSystemAdvertiseMapper extends BaseMapper<MessageSystemAdvertise> {
-
- IPage<MessageSystemAdvertise> findAll(@Param("criteria") MessageSystemAdvertiseQueryCriteria criteria, Page<Object> page);
-
- List<MessageSystemAdvertise> findAll(@Param("criteria") MessageSystemAdvertiseQueryCriteria criteria);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemMapper.java
deleted file mode 100644
index 959cde3..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemMapper.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.oying.modules.message.mapper;
-
-import com.oying.modules.message.domain.MessageSystem;
-import com.oying.modules.message.domain.dto.MessageSystemQueryCriteria;
-import java.util.List;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-/**
- * @author 李萌
- * @date 2025-05-20
- **/
-@Mapper
-public interface MessageSystemMapper extends BaseMapper<MessageSystem> {
-
- IPage<MessageSystem> findAll(@Param("criteria") MessageSystemQueryCriteria criteria, Page<Object> page);
-
- List<MessageSystem> findAll(@Param("criteria") MessageSystemQueryCriteria criteria);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesAdvertisementController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesAdvertisementController.java
new file mode 100644
index 0000000..ca9015d
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesAdvertisementController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MesAdvertisement;
+import com.oying.modules.message.service.MesAdvertisementService;
+import com.oying.modules.message.domain.dto.MesAdvertisementQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息")
+@RequestMapping("/api/mesAdvertisement")
+public class MesAdvertisementController {
+
+ private final MesAdvertisementService mesAdvertisementService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('mesAdvertisement:list')")
+ public void exportMesAdvertisement(HttpServletResponse response, MesAdvertisementQueryCriteria criteria) throws IOException {
+ mesAdvertisementService.download(mesAdvertisementService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询消息")
+ @PreAuthorize("@el.check('mesAdvertisement:list')")
+ public ResponseEntity<PageResult<MesAdvertisement>> queryMesAdvertisement(MesAdvertisementQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(mesAdvertisementService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增消息")
+ @ApiOperation("新增消息")
+ @PreAuthorize("@el.check('mesAdvertisement:add')")
+ public ResponseEntity<Object> createMesAdvertisement(@Validated @RequestBody MesAdvertisement resources){
+ mesAdvertisementService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改消息")
+ @ApiOperation("修改消息")
+ @PreAuthorize("@el.check('mesAdvertisement:edit')")
+ public ResponseEntity<Object> updateMesAdvertisement(@Validated @RequestBody MesAdvertisement resources){
+ mesAdvertisementService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除消息")
+ @ApiOperation("删除消息")
+ @PreAuthorize("@el.check('mesAdvertisement:del')")
+ public ResponseEntity<Object> deleteMesAdvertisement(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ mesAdvertisementService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesCustomerCommentMsgController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesCustomerCommentMsgController.java
new file mode 100644
index 0000000..89cbb50
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesCustomerCommentMsgController.java
@@ -0,0 +1,83 @@
+package com.oying.modules.message.rest;
+
+import com.oying.modules.message.domain.myDto.MesCustomerCommentMsgDTO;
+import com.oying.modules.message.service.MesCustomerCommentMsgService;
+import com.oying.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author 李萌
+ * @date 2025-07-25
+ **/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息中心2.0")
+@RequestMapping("/api/mesCustomerCommentMsg")
+public class MesCustomerCommentMsgController {
+
+ private final MesCustomerCommentMsgService mesCustomerCommentMsgService;
+//
+// @ApiOperation("导出数据")
+// @GetMapping(value = "/download")
+// @PreAuthorize("@el.check('mesCustomerCommentMsg:list')")
+// public void exportMesCustomerCommentMsg(HttpServletResponse response, MesCustomerCommentMsgQueryCriteria criteria) throws IOException {
+// mesCustomerCommentMsgService.download(mesCustomerCommentMsgService.queryAll(criteria), response);
+// }
+//
+// @GetMapping
+// @ApiOperation("查询消息")
+// @PreAuthorize("@el.check('mesCustomerCommentMsg:list')")
+// public ResponseEntity<PageResult<MesCustomerCommentMsg>> queryMesCustomerCommentMsg(MesCustomerCommentMsgQueryCriteria criteria) {
+// Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+// return new ResponseEntity<>(mesCustomerCommentMsgService.queryAll(criteria, page), HttpStatus.OK);
+// }
+//
+// @PostMapping
+// @Log("新增消息")
+// @ApiOperation("新增消息")
+// @PreAuthorize("@el.check('mesCustomerCommentMsg:add')")
+// public ResponseEntity<Object> createMesCustomerCommentMsg(@Validated @RequestBody MesCustomerCommentMsg resources) {
+// mesCustomerCommentMsgService.create(resources);
+// return new ResponseEntity<>(HttpStatus.CREATED);
+// }
+//
+// @PutMapping
+// @Log("修改消息")
+// @ApiOperation("修改消息")
+// @PreAuthorize("@el.check('mesCustomerCommentMsg:edit')")
+// public ResponseEntity<Object> updateMesCustomerCommentMsg(@Validated @RequestBody MesCustomerCommentMsg resources) {
+// mesCustomerCommentMsgService.update(resources);
+// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+// }
+//
+// @DeleteMapping
+// @Log("删除消息")
+// @ApiOperation("删除消息")
+// @PreAuthorize("@el.check('mesCustomerCommentMsg:del')")
+// public ResponseEntity<Object> deleteMesCustomerCommentMsg(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+// mesCustomerCommentMsgService.deleteAll(ids);
+// return new ResponseEntity<>(HttpStatus.OK);
+// }
+
+ /* 5. 用店铺id 查询分页顾客留言 订单一一顾客*/
+ @GetMapping("/customerComment")
+ @ApiOperation("店铺号list查询顾客留言")
+ public R<List<MesCustomerCommentMsgDTO>> customerComment(
+ @RequestParam Long shopId) {
+ try {
+ List<MesCustomerCommentMsgDTO> res = mesCustomerCommentMsgService.listCustomerComment(shopId);
+ return R.success(res);
+ } catch (Exception e) {
+ return R.fail(e.getMessage());
+ }
+ }
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java
new file mode 100644
index 0000000..95821ef
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java
@@ -0,0 +1,220 @@
+package com.oying.modules.message.rest;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.modules.message.common.MsgStatusEnum;
+import com.oying.modules.message.common.PlatFormEnum;
+import com.oying.modules.message.domain.dto.MesMsgRecordQueryCriteria;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryPollDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQuerySystemDto;
+import com.oying.modules.message.service.MesMsgRecordService;
+import com.oying.utils.PageResult;
+import com.oying.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author 李萌
+ * @date 2025-07-25
+ **/
+@Slf4j
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息中心2.0")
+@RequestMapping("/api/mesMsgRecord")
+public class MesMsgRecordController {
+
+ private final MesMsgRecordService mesMsgRecordService;
+//
+// @ApiOperation("导出数据")
+// @GetMapping(value = "/download")
+// @PreAuthorize("@el.check('mesMsgRecord:list')")
+// public void exportMesMsgRecord(HttpServletResponse response, MesMsgRecordQueryCriteria criteria) throws IOException {
+// mesMsgRecordService.download(mesMsgRecordService.queryAll(criteria), response);
+// }
+//
+// @GetMapping
+// @ApiOperation("查询消息")
+// @PreAuthorize("@el.check('mesMsgRecord:list')")
+// public ResponseEntity<PageResult<MesMsgRecord>> queryMesMsgRecord(MesMsgRecordQueryCriteria criteria) {
+// Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+// return new ResponseEntity<>(mesMsgRecordService.queryAll(criteria, page), HttpStatus.OK);
+// }
+//
+// @PostMapping
+// @Log("新增消息")
+// @ApiOperation("新增消息")
+// @PreAuthorize("@el.check('mesMsgRecord:add')")
+// public ResponseEntity<Object> createMesMsgRecord(@Validated @RequestBody MesMsgRecord resources) {
+// mesMsgRecordService.create(resources);
+// return new ResponseEntity<>(HttpStatus.CREATED);
+// }
+//
+// @PutMapping
+// @Log("修改消息")
+// @ApiOperation("修改消息")
+// @PreAuthorize("@el.check('mesMsgRecord:edit')")
+// public ResponseEntity<Object> updateMesMsgRecord(@Validated @RequestBody MesMsgRecord resources) {
+// mesMsgRecordService.update(resources);
+// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+// }
+//
+// @DeleteMapping
+// @Log("删除消息")
+// @ApiOperation("删除消息")
+// @PreAuthorize("@el.check('mesMsgRecord:del')")
+// public ResponseEntity<Object> deleteMesMsgRecord(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+// mesMsgRecordService.deleteAll(ids);
+// return new ResponseEntity<>(HttpStatus.OK);
+// }
+
+
+ /* 1. 轮询最新消息(通知栏) */ //todo 轮询啥?
+ //只查“未读”消息,不分种类,返回最新 N 条 1=买家 2=商户 3=骑手" 消息类型为系统消息1?
+ @GetMapping("/poll")
+ @ApiOperation("查询轮询消息 1(买家)、2(商户)、3(骑手)")
+ @PreAuthorize("@el.check('mesMsgRecord:list')")
+ public R<List<MesMsgRecordQueryPollDto>> queryMesMsgRecord(@RequestParam Long platform) {
+ //platform 只能为 1 2 3
+ if (platform == null) {
+ return R.fail("平台类型不能为空");
+ }
+
+ if (PlatFormEnum.getByKey(platform.intValue()) == null) {
+ return R.fail("平台类型错误,只能为1(买家)、2(商户)、3(骑手)");
+ }
+
+ // 实现业务逻辑,调用服务层获取未读消息
+ try {
+// Long system = Long.valueOf(MesTypeEnum.SYSTEM.getKey());
+// List<MesMsgRecordQueryPollDto> mes = mesMsgRecordService.PollMes(platform, system);
+ List<MesMsgRecordQueryPollDto> mes = mesMsgRecordService.PollMesAll(platform);
+
+
+ return R.success(mes);
+ } catch (Exception e) {
+ log.error("查询轮询消息失败:", e);
+ return R.fail("查询轮询消息失败");
+ }
+
+
+ }
+
+// /* 2. 批量确认收到消息 */
+// @PutMapping("/ack/{msgId}")
+// @ApiOperation("确认收到消息")
+// public R<Void> ack(@PathVariable Long msgId) {
+
+ /// / mesMsgRecordService.markRead(msgId, null);
+// return R.success();
+// }
+ /* 2. 批量确认收到消息 主键*/
+ @PutMapping("/ack")
+ @ApiOperation("批量确认收到消息 主键ids 1(买家)、2(商户)、3(骑手)")
+ public R<Void> batchAck(@ApiParam(value = "消息ID数组") @RequestBody List<Long> msgIds, @RequestParam Long platform) {
+ if (msgIds == null || msgIds.isEmpty()) {
+ return R.fail("消息ID列表不能为空");
+ }
+
+ try {
+ mesMsgRecordService.batchMarkRead(platform, msgIds);
+ return R.success();
+ } catch (Exception e) {
+ log.error("批量确认消息失败,msgIds: {}", msgIds, e);
+ return R.fail("批量确认消息失败");
+ }
+ }
+
+ /* 3. 分页系统通知 */
+ @GetMapping("/sysNotice")
+ @ApiOperation("分页查询系统通知")
+ public R<PageResult<MesMsgRecordQuerySystemDto>> sysNotice(
+ MesMsgRecordQueryCriteria criteria) {
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ try {
+ PageResult<MesMsgRecordQuerySystemDto> pageResult = mesMsgRecordService.queryAllSysNotice(criteria, page);
+ return R.success(pageResult);
+ } catch (Exception e) {
+ log.error("分页查询系统通知失败,criteria: {}", criteria, e);
+ return R.fail("分页查询系统通知失败");
+ }
+
+ }
+
+ /* 4. 用店铺id 查询订单消息 */
+// @GetMapping("/order")
+// @ApiOperation("用店铺id 查询订单消息")
+// public R<List<MesMsgRecordQueryOrderDto>> order(@RequestParam Long shopId) {
+// try {
+// List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryorder(shopId);
+// return R.success(res);
+// } catch (Exception e) {
+// log.error("用店铺id 获取订单消息失败,shopId: {}", shopId, e);
+// return R.fail("用店铺id 获取订单消息失败");
+//
+// }
+//
+// }
+
+ //商户端:买家下单提醒 根据商户id 获取买家下单提醒
+ @GetMapping("/order/pending")
+ @ApiOperation("商户端:用店铺id 获取下单订单消息")
+ public R<List<MesMsgRecordQueryOrderDto>> getPendingOrders(@RequestParam Long shopId) {
+ try {
+ String content = MsgStatusEnum.MERCHANT_ACCEPTED.getValue();
+ List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryorderPending(shopId, content);
+ return R.success(res);
+ } catch (Exception e) {
+ log.error("用店铺id 获取待处理订单消息失败,shopId: {}", shopId, e);
+ return R.fail("用店铺id 获取待处理订单消息失败");
+ }
+ }
+
+ //商户端:订单送达通知 。 根据商户id 获取买家下订单送达
+ @GetMapping("/order/delivered")
+ @ApiOperation("商户端:用店铺id 获取订单送达消息")
+ public R<List<MesMsgRecordQueryOrderDto>> getDeliveredOrders(@RequestParam Long shopId) {
+ try {
+ String content = MsgStatusEnum.BUYER_ORDER_DELIVERED.getValue();
+ List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryorderPending(shopId, content);
+ return R.success(res);
+ } catch (Exception e) {
+ log.error("用店铺id 获取已送达订单消息失败,shopId: {}", shopId, e);
+ return R.fail("用店铺id 获取已送达订单消息失败");
+ }
+ }
+
+ //买家端:订单状态变化通知
+ @GetMapping("/buyer/order/status")
+ @ApiOperation("买家端:获取订单状态变化消息")
+ public R<List<MesMsgRecordQueryOrderDto>> getBuyerOrderStatus(@RequestParam Long buyerId) {
+ try {
+ List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryBuyerOrderMessages(buyerId);
+ return R.success(res);
+ } catch (Exception e) {
+ log.error("买家端获取订单状态变化消息失败,buyerId: {}", buyerId, e);
+ return R.fail("获取订单状态变化消息失败");
+ }
+ }
+
+ //买家端:订单送达通知
+ @GetMapping("/buyer/order/delivered")
+ @ApiOperation("买家端:获取订单送达消息")
+ public R<List<MesMsgRecordQueryOrderDto>> getBuyerDeliveredOrders(@RequestParam Long buyerId) {
+ try {
+ List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryBuyerOrderMessagesComplete(buyerId);
+ return R.success(res);
+ } catch (Exception e) {
+ log.error("买家端获取订单送达消息失败,buyerId: {}", buyerId, e);
+ return R.fail("获取订单送达消息失败");
+ }
+ }
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgTemplateController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgTemplateController.java
new file mode 100644
index 0000000..ba80631
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgTemplateController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MesMsgTemplate;
+import com.oying.modules.message.service.MesMsgTemplateService;
+import com.oying.modules.message.domain.dto.MesMsgTemplateQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息")
+@RequestMapping("/api/mesMsgTemplate")
+public class MesMsgTemplateController {
+
+ private final MesMsgTemplateService mesMsgTemplateService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('mesMsgTemplate:list')")
+ public void exportMesMsgTemplate(HttpServletResponse response, MesMsgTemplateQueryCriteria criteria) throws IOException {
+ mesMsgTemplateService.download(mesMsgTemplateService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询消息")
+ @PreAuthorize("@el.check('mesMsgTemplate:list')")
+ public ResponseEntity<PageResult<MesMsgTemplate>> queryMesMsgTemplate(MesMsgTemplateQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(mesMsgTemplateService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增消息")
+ @ApiOperation("新增消息")
+ @PreAuthorize("@el.check('mesMsgTemplate:add')")
+ public ResponseEntity<Object> createMesMsgTemplate(@Validated @RequestBody MesMsgTemplate resources){
+ mesMsgTemplateService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改消息")
+ @ApiOperation("修改消息")
+ @PreAuthorize("@el.check('mesMsgTemplate:edit')")
+ public ResponseEntity<Object> updateMesMsgTemplate(@Validated @RequestBody MesMsgTemplate resources){
+ mesMsgTemplateService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除消息")
+ @ApiOperation("删除消息")
+ @PreAuthorize("@el.check('mesMsgTemplate:del')")
+ public ResponseEntity<Object> deleteMesMsgTemplate(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) {
+ mesMsgTemplateService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesOrderEvaluationController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesOrderEvaluationController.java
new file mode 100644
index 0000000..e3414d3
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesOrderEvaluationController.java
@@ -0,0 +1,81 @@
+package com.oying.modules.message.rest;
+
+import com.oying.modules.message.domain.myDto.MesOrderEvaluationDto;
+import com.oying.modules.message.service.MesOrderEvaluationService;
+import com.oying.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 李萌
+ * @date 2025-07-25
+ **/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息中心2.0")
+@RequestMapping("/api/mesOrderEvaluation")
+public class MesOrderEvaluationController {
+
+ private final MesOrderEvaluationService mesOrderEvaluationService;
+//
+// @ApiOperation("导出数据")
+// @GetMapping(value = "/download")
+// @PreAuthorize("@el.check('mesOrderEvaluation:list')")
+// public void exportMesOrderEvaluation(HttpServletResponse response, MesOrderEvaluationQueryCriteria criteria) throws IOException {
+// mesOrderEvaluationService.download(mesOrderEvaluationService.queryAll(criteria), response);
+// }
+//
+// @GetMapping
+// @ApiOperation("查询消息")
+// @PreAuthorize("@el.check('mesOrderEvaluation:list')")
+// public ResponseEntity<PageResult<MesOrderEvaluation>> queryMesOrderEvaluation(MesOrderEvaluationQueryCriteria criteria){
+// Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+// return new ResponseEntity<>(mesOrderEvaluationService.queryAll(criteria,page),HttpStatus.OK);
+// }
+//
+// @PostMapping
+// @Log("新增消息")
+// @ApiOperation("新增消息")
+// @PreAuthorize("@el.check('mesOrderEvaluation:add')")
+// public ResponseEntity<Object> createMesOrderEvaluation(@Validated @RequestBody MesOrderEvaluation resources){
+// mesOrderEvaluationService.create(resources);
+// return new ResponseEntity<>(HttpStatus.CREATED);
+// }
+//
+// @PutMapping
+// @Log("修改消息")
+// @ApiOperation("修改消息")
+// @PreAuthorize("@el.check('mesOrderEvaluation:edit')")
+// public ResponseEntity<Object> updateMesOrderEvaluation(@Validated @RequestBody MesOrderEvaluation resources){
+// mesOrderEvaluationService.update(resources);
+// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+// }
+//
+// @DeleteMapping
+// @Log("删除消息")
+// @ApiOperation("删除消息")
+// @PreAuthorize("@el.check('mesOrderEvaluation:del')")
+// public ResponseEntity<Object> deleteMesOrderEvaluation(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+// mesOrderEvaluationService.deleteAll(ids);
+// return new ResponseEntity<>(HttpStatus.OK);
+// }
+
+ //对一个店铺评价 + 打分
+ //order_eval_id, order_item_id, goods_id, goods_name, goods_pic, score, content, imgs, buyer_id
+ @PostMapping("/addShopEvaluation")
+ @ApiOperation("对一个店铺评价 + 打分")
+ public R<Object> addGoodsEvaluation(@RequestBody MesOrderEvaluationDto resources) {
+ try {
+ mesOrderEvaluationService.addShopEvaluation(resources);
+ return R.success();
+ } catch (Exception e) {
+ return R.fail(e.getMessage());
+ }
+
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesOrderItemEvaluationController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesOrderItemEvaluationController.java
new file mode 100644
index 0000000..b6f56bb
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesOrderItemEvaluationController.java
@@ -0,0 +1,83 @@
+package com.oying.modules.message.rest;
+
+import com.oying.modules.message.domain.MesOrderItemEvaluationDto;
+import com.oying.modules.message.service.MesOrderItemEvaluationService;
+import com.oying.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 李萌
+ * @date 2025-07-25
+ **/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息中心2.0")
+@RequestMapping("/api/mesOrderItemEvaluation")
+public class MesOrderItemEvaluationController {
+
+ private final MesOrderItemEvaluationService mesOrderItemEvaluationService;
+
+ //
+// @ApiOperation("导出数据")
+// @GetMapping(value = "/download")
+// @PreAuthorize("@el.check('mesOrderItemEvaluation:list')")
+// public void exportMesOrderItemEvaluation(HttpServletResponse response, MesOrderItemEvaluationQueryCriteria criteria) throws IOException {
+// mesOrderItemEvaluationService.download(mesOrderItemEvaluationService.queryAll(criteria), response);
+// }
+//
+// @GetMapping
+// @ApiOperation("查询消息")
+// @PreAuthorize("@el.check('mesOrderItemEvaluation:list')")
+// public ResponseEntity<PageResult<MesOrderItemEvaluation>> queryMesOrderItemEvaluation(MesOrderItemEvaluationQueryCriteria criteria){
+// Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+// return new ResponseEntity<>(mesOrderItemEvaluationService.queryAll(criteria,page),HttpStatus.OK);
+// }
+//
+// @PostMapping
+// @Log("新增消息")
+// @ApiOperation("新增消息")
+// @PreAuthorize("@el.check('mesOrderItemEvaluation:add')")
+// public ResponseEntity<Object> createMesOrderItemEvaluation(@Validated @RequestBody MesOrderItemEvaluation resources){
+// mesOrderItemEvaluationService.create(resources);
+// return new ResponseEntity<>(HttpStatus.CREATED);
+// }
+//
+// @PutMapping
+// @Log("修改消息")
+// @ApiOperation("修改消息")
+// @PreAuthorize("@el.check('mesOrderItemEvaluation:edit')")
+// public ResponseEntity<Object> updateMesOrderItemEvaluation(@Validated @RequestBody MesOrderItemEvaluation resources){
+// mesOrderItemEvaluationService.update(resources);
+// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+// }
+//
+// @DeleteMapping
+// @Log("删除消息")
+// @ApiOperation("删除消息")
+// @PreAuthorize("@el.check('mesOrderItemEvaluation:del')")
+// public ResponseEntity<Object> deleteMesOrderItemEvaluation(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+// mesOrderItemEvaluationService.deleteAll(ids);
+// return new ResponseEntity<>(HttpStatus.OK);
+// }
+ //对一个商品评价 + 打分
+ //order_eval_id, order_item_id, goods_id, goods_name, goods_pic, score, content, imgs, buyer_id
+ @PostMapping("/addGoodsEvaluation")
+ @ApiOperation("对一个商品评价 + 打分")
+ public R<Object> addGoodsEvaluation(@RequestBody MesOrderItemEvaluationDto resources) {
+ try {
+ mesOrderItemEvaluationService.addGoodsEvaluation(resources);
+ return R.success();
+ } catch (Exception e) {
+ return R.fail(e.getMessage());
+ }
+
+ }
+
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesRiderEvaluationController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesRiderEvaluationController.java
new file mode 100644
index 0000000..f47126c
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesRiderEvaluationController.java
@@ -0,0 +1,81 @@
+package com.oying.modules.message.rest;
+
+import com.oying.modules.message.domain.myDto.MesRiderEvaluationDto;
+import com.oying.modules.message.service.MesRiderEvaluationService;
+import com.oying.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 李萌
+ * @date 2025-07-25
+ **/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息中心2.0")
+@RequestMapping("/api/mesRiderEvaluation")
+public class MesRiderEvaluationController {
+
+ private final MesRiderEvaluationService mesRiderEvaluationService;
+
+// @ApiOperation("导出数据")
+// @GetMapping(value = "/download")
+// @PreAuthorize("@el.check('mesRiderEvaluation:list')")
+// public void exportMesRiderEvaluation(HttpServletResponse response, MesRiderEvaluationQueryCriteria criteria) throws IOException {
+// mesRiderEvaluationService.download(mesRiderEvaluationService.queryAll(criteria), response);
+// }
+//
+// @GetMapping
+// @ApiOperation("查询消息")
+// @PreAuthorize("@el.check('mesRiderEvaluation:list')")
+// public ResponseEntity<PageResult<MesRiderEvaluation>> queryMesRiderEvaluation(MesRiderEvaluationQueryCriteria criteria){
+// Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+// return new ResponseEntity<>(mesRiderEvaluationService.queryAll(criteria,page),HttpStatus.OK);
+// }
+//
+// @PostMapping
+// @Log("新增消息")
+// @ApiOperation("新增消息")
+// @PreAuthorize("@el.check('mesRiderEvaluation:add')")
+// public ResponseEntity<Object> createMesRiderEvaluation(@Validated @RequestBody MesRiderEvaluation resources){
+// mesRiderEvaluationService.create(resources);
+// return new ResponseEntity<>(HttpStatus.CREATED);
+// }
+//
+// @PutMapping
+// @Log("修改消息")
+// @ApiOperation("修改消息")
+// @PreAuthorize("@el.check('mesRiderEvaluation:edit')")
+// public ResponseEntity<Object> updateMesRiderEvaluation(@Validated @RequestBody MesRiderEvaluation resources){
+// mesRiderEvaluationService.update(resources);
+// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+// }
+//
+// @DeleteMapping
+// @Log("删除消息")
+// @ApiOperation("删除消息")
+// @PreAuthorize("@el.check('mesRiderEvaluation:del')")
+// public ResponseEntity<Object> deleteMesRiderEvaluation(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+// mesRiderEvaluationService.deleteAll(ids);
+// return new ResponseEntity<>(HttpStatus.OK);
+// }
+
+ //对一个骑手评价 + 打分
+ //
+ @PostMapping("/addRiderEvaluation")
+ @ApiOperation("对一个骑手评价 + 打分")
+ public R<Object> addGoodsEvaluation(@RequestBody MesRiderEvaluationDto resources) {
+ try {
+ mesRiderEvaluationService.addRiderEvaluation(resources);
+ return R.success();
+ } catch (Exception e) {
+ return R.fail(e.getMessage());
+ }
+
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesShopReplyController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesShopReplyController.java
new file mode 100644
index 0000000..8cc69a0
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesShopReplyController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MesShopReply;
+import com.oying.modules.message.service.MesShopReplyService;
+import com.oying.modules.message.domain.dto.MesShopReplyQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息")
+@RequestMapping("/api/mesShopReply")
+public class MesShopReplyController {
+
+ private final MesShopReplyService mesShopReplyService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('mesShopReply:list')")
+ public void exportMesShopReply(HttpServletResponse response, MesShopReplyQueryCriteria criteria) throws IOException {
+ mesShopReplyService.download(mesShopReplyService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询消息")
+ @PreAuthorize("@el.check('mesShopReply:list')")
+ public ResponseEntity<PageResult<MesShopReply>> queryMesShopReply(MesShopReplyQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(mesShopReplyService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增消息")
+ @ApiOperation("新增消息")
+ @PreAuthorize("@el.check('mesShopReply:add')")
+ public ResponseEntity<Object> createMesShopReply(@Validated @RequestBody MesShopReply resources){
+ mesShopReplyService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改消息")
+ @ApiOperation("修改消息")
+ @PreAuthorize("@el.check('mesShopReply:edit')")
+ public ResponseEntity<Object> updateMesShopReply(@Validated @RequestBody MesShopReply resources){
+ mesShopReplyService.update(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @DeleteMapping
+ @Log("删除消息")
+ @ApiOperation("删除消息")
+ @PreAuthorize("@el.check('mesShopReply:del')")
+ public ResponseEntity<Object> deleteMesShopReply(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ mesShopReplyService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderBuyerController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderBuyerController.java
deleted file mode 100644
index ad275c2..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderBuyerController.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package com.oying.modules.message.rest;
-
-import com.oying.annotation.Log;
-import com.oying.modules.message.domain.MessageOrderBuyer;
-import com.oying.modules.message.service.MessageOrderBuyerService;
-import com.oying.modules.message.domain.dto.MessageOrderBuyerQueryCriteria;
-import com.oying.utils.R;
-import lombok.RequiredArgsConstructor;
-import java.util.List;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import io.swagger.annotations.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.utils.PageResult;
-
-/**
-* @author 李萌
-* @date 2025-05-20
-**/
-//todo
-@RestController
-@RequiredArgsConstructor
-@Api(tags = "买家端订单消息通知")
-@RequestMapping("/api/message/messageOrderBuyer")
-public class MessageOrderBuyerController {
-
- private final MessageOrderBuyerService messageOrderBuyerService;
-
-// @ApiOperation("导出数据")
-// @GetMapping(value = "/download")
-// @PreAuthorize("@el.check('messageOrderBuyer:list')")
-// public void exportMessageOrderBuyer(HttpServletResponse response, MessageOrderBuyerQueryCriteria criteria) throws IOException {
-// messageOrderBuyerService.download(messageOrderBuyerService.queryAll(criteria), response);
-// }
-
- @GetMapping
- @ApiOperation("查询买家端订单消息通知")
- @PreAuthorize("@el.check('messageOrderBuyer:list')")
- public R<PageResult<MessageOrderBuyer>> queryMessageOrderBuyer(MessageOrderBuyerQueryCriteria criteria){
- Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-// return new ResponseEntity<>(messageOrderBuyerService.queryAll(criteria,page),HttpStatus.OK);
-
- return R.success(messageOrderBuyerService.queryAll(criteria,page));
- }
-
-// @PostMapping
-// @Log("新增买家端订单消息通知")
-// @ApiOperation("新增买家端订单消息通知")
-// @PreAuthorize("@el.check('messageOrderBuyer:add')")
-// public ResponseEntity<Object> createMessageOrderBuyer(@Validated @RequestBody MessageOrderBuyer resources){
-// messageOrderBuyerService.create(resources);
-// return new ResponseEntity<>(HttpStatus.CREATED);
-// }
-//
-// @PutMapping
-// @Log("修改买家端订单消息通知")
-// @ApiOperation("修改买家端订单消息通知")
-// @PreAuthorize("@el.check('messageOrderBuyer:edit')")
-// public ResponseEntity<Object> updateMessageOrderBuyer(@Validated @RequestBody MessageOrderBuyer resources){
-// messageOrderBuyerService.update(resources);
-// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-// }
-//
-// @DeleteMapping
-// @Log("删除买家端订单消息通知")
-// @ApiOperation("删除买家端订单消息通知")
-// @PreAuthorize("@el.check('messageOrderBuyer:del')")
-// public ResponseEntity<Object> deleteMessageOrderBuyer(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) {
-// messageOrderBuyerService.deleteAll(ids);
-// return new ResponseEntity<>(HttpStatus.OK);
-// }
- //订单状态变化通知
- @GetMapping("/status/{order_id}")
- @ApiOperation("查询一条订单状态变化通知")
- public R<String> getMessageOrderBuyer(@PathVariable Integer order_id) {
- MessageOrderBuyer messageOrderBuyer = messageOrderBuyerService.findByOrderId(order_id);
- if (messageOrderBuyer != null) {
- String message = messageOrderBuyer.getMessageType();
- return R.success(message);
- } else {
- return R.fail("订单状态变化通知不存在");
- }
-
- }
- //订单送达通知
- @GetMapping("/deliver/{order_id}")
- @ApiOperation("查询一条订单送达通知")
- public R<String> getMessageOrderBuyerDeliver(@PathVariable Integer order_id) {
- MessageOrderBuyer messageOrderBuyer = messageOrderBuyerService.findByOrderId(order_id);
- String message = messageOrderBuyer.getMessageType();
- //如果MessageType为订单送达,则返回message——content
- if (message.equals("订单送达")) {
- String messageContent = messageOrderBuyer.getMessageContent();
- return R.success(messageContent);
-// return new ResponseEntity<>(messageContent, HttpStatus.OK);
- }else{
- //返回没送达
- return R.fail("没送达");
-// return new ResponseEntity<>("没送达", HttpStatus.OK);
- }
- }
- //实现点击跳转到订单详情
- @GetMapping("/link/{order_id}")
- @ApiOperation("点击跳转到订单详情")
- public R<String> getMessageOrderBuyerLink(@PathVariable Integer order_id) {
- MessageOrderBuyer messageOrderBuyer = messageOrderBuyerService.findByOrderId(order_id);
- String link = messageOrderBuyer.getLink();
-// return new ResponseEntity<>(link, HttpStatus.OK);
- return R.success(link);
- }
-
-
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderLeaveController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderLeaveController.java
deleted file mode 100644
index ae2c2ac..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderLeaveController.java
+++ /dev/null
@@ -1,202 +0,0 @@
-package com.oying.modules.message.rest;
-
-import com.alibaba.fastjson2.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.oying.annotation.Log;
-import com.oying.modules.message.domain.MessageOrderLeave;
-import com.oying.modules.message.service.MessageOrderLeaveService;
-import com.oying.modules.message.domain.dto.MessageOrderLeaveQueryCriteria;
-import com.oying.utils.R;
-import lombok.RequiredArgsConstructor;
-
-import java.sql.Timestamp;
-import java.util.List;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import io.swagger.annotations.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.utils.PageResult;
-
-/**
-* @author 李萌
-* @date 2025-05-20
-**/
-@RestController
-@RequiredArgsConstructor
-@Api(tags = "消息留言")
-@RequestMapping("/api/message/messageOrderLeave")
-public class MessageOrderLeaveController {
-
- private final MessageOrderLeaveService messageOrderLeaveService;
-
-// @ApiOperation("导出数据")
-// @GetMapping(value = "/download")
-// @PreAuthorize("@el.check('messageOrderLeave:list')")
-// public void exportMessageOrderLeave(HttpServletResponse response, MessageOrderLeaveQueryCriteria criteria) throws IOException {
-// messageOrderLeaveService.download(messageOrderLeaveService.queryAll(criteria), response);
-// }
-
- @GetMapping
- @ApiOperation("查询消息留言")
- @PreAuthorize("@el.check('messageOrderLeave:list')")
- public R<PageResult<MessageOrderLeave>> queryMessageOrderLeave(MessageOrderLeaveQueryCriteria criteria){
- Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-// return new ResponseEntity<>(messageOrderLeaveService.queryAll(criteria,page),HttpStatus.OK);
- return R.success(messageOrderLeaveService.queryAll(criteria,page));
- }
-
-
-// @PostMapping
-// @Log("新增消息留言")
-// @ApiOperation("新增消息留言")
-// @PreAuthorize("@el.check('messageOrderLeave:add')")
-// public ResponseEntity<Object> createMessageOrderLeave(@Validated @RequestBody MessageOrderLeave resources){
-// messageOrderLeaveService.create(resources);
-// return new ResponseEntity<>(HttpStatus.CREATED);
-// }
-
-// @PutMapping
-// @Log("修改消息留言")
-// @ApiOperation("修改消息留言")
-// @PreAuthorize("@el.check('messageOrderLeave:edit')")
-// public ResponseEntity<Object> updateMessageOrderLeave(@Validated @RequestBody MessageOrderLeave resources){
-// messageOrderLeaveService.update(resources);
-// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-// }
-
-// @DeleteMapping
-// @Log("删除消息留言")
-// @ApiOperation("删除消息留言")
-// @PreAuthorize("@el.check('messageOrderLeave:del')")
-// public ResponseEntity<Object> deleteMessageOrderLeave(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) {
-// messageOrderLeaveService.deleteAll(ids);
-// return new ResponseEntity<>(HttpStatus.OK);
-// }
- //顾客点击订单,传回订单id,根据订单id生成一条 消息留言
-// @PutMapping("/customer/{order_id}")
-// @ApiOperation("顾客点击订单,传回订单id,根据订单id生成一条 留言,此时顾客可以留言")
-// public ResponseEntity<Object> createMessageOrderLeave(@PathVariable("order_id") Integer id,@RequestParam String customerReview) {
-// //创建对象
-// MessageOrderLeave messageOrderLeave = new MessageOrderLeave();
-// messageOrderLeave.setOrderId(id);
-// //如果customerReview为空,默认为“用户未留言”
-// messageOrderLeave.setCustomerReview(customerReview);
-// //设置创建时间为当前时间
-// messageOrderLeave.setCreateTime(new Timestamp(System.currentTimeMillis()));
-// //若表中order_id订单还没存在则调用update留言
-//
-//
-// if(messageOrderLeaveService.findByOrderId(id)==null){
-// messageOrderLeaveService.updateById(messageOrderLeave);
-// return new ResponseEntity<>(HttpStatus.CREATED);
-// } else {
-// // 已存在则不保存,返回 OK 表示成功但无新资源创建
-// return new ResponseEntity<>(HttpStatus.OK);
-// }
-//
-// }
-
- @PutMapping("/customer/{order_id}")
- @ApiOperation("顾客点击订单,传回订单id,根据订单id更新一条留言")
- public R<Object> updateMessageOrderLeaveCustomer(@PathVariable("order_id") Integer id, @RequestBody MessageOrderLeave messageOrderLeave1) {
- // 根据 order_id 查找留言信息
- MessageOrderLeave messageOrderLeave = messageOrderLeaveService.findByOrderId(id);
-
- // 如果留言信息不存在,返回 404 Not Found
- if (messageOrderLeave == null) {
-// return new ResponseEntity<>("Message order leave not found for order ID: " + id, HttpStatus.NOT_FOUND);
- return R.fail("Message order leave not found for order ID: " + id);
- }
-
- // 设置顾客评价内容
- if (messageOrderLeave1.getCustomerReview() != null && !messageOrderLeave1.getCustomerReview().trim().isEmpty()) {
- messageOrderLeave.setCustomerReview(messageOrderLeave1.getCustomerReview());
- } else {
- messageOrderLeave.setCustomerReview("用户未留言");
- }
-
- // 更新最后一次操作的时间
- messageOrderLeave.setCreateTime(new Timestamp(System.currentTimeMillis()));
-
- // 调用服务层更新数据
- boolean updated = messageOrderLeaveService.updateById(messageOrderLeave);
-
- // 如果更新失败,返回 500 Internal Server Error
- if (!updated) {
-// return new ResponseEntity<>("Failed to update message order leave", HttpStatus.INTERNAL_SERVER_ERROR);
- return R.fail("Failed to update message order leave");
- }
-
-// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- return R.success(messageOrderLeave);
- }
- //商家对订单id进行回复
-// @PutMapping("/seller/{order_id}")
-// @ApiOperation("商家对订单id进行回复")
-// public ResponseEntity<Object> updateMessageOrderLeave(@PathVariable("order_id") Integer id, @RequestParam String sellerReply) {
-// // 检查 sellerReply 是否为空
-// if (sellerReply == null || sellerReply.trim().isEmpty()) {
-// return new ResponseEntity<>("sellerReply is required", HttpStatus.BAD_REQUEST);
-// }
-//
-// // 根据 order_id 查找留言信息
-// MessageOrderLeave messageOrderLeave = messageOrderLeaveService.findByOrderId(id);
-//
-// // 如果没有找到对应的留言信息,返回 404 Not Found
-// if (messageOrderLeave == null) {
-// return new ResponseEntity<>("Message order leave not found for order ID: " + id, HttpStatus.NOT_FOUND);
-// }
-//
-// // 设置商家回复内容
-// messageOrderLeave.setSellerReply(sellerReply);
-// // 更新最后一次操作的时间
-// messageOrderLeave.setCreateTime(new Timestamp(System.currentTimeMillis()));
-//
-// // 调用服务层更新数据
-// boolean updated = messageOrderLeaveService.updateById(messageOrderLeave);
-//
-// // 如果更新失败,返回 500 Internal Server Error
-// if (!updated) {
-// return new ResponseEntity<>("Failed to update message order leave", HttpStatus.INTERNAL_SERVER_ERROR);
-// }
-//
-// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-// }
- //商家对订单id进行回复 订单id必须唯一限制 否则会报错
- @PutMapping("/seller/{order_id}")
- @ApiOperation("商家对订单id进行回复")
- public R<Object> updateMessageOrderLeaveSeller(@PathVariable("order_id") Integer id, @RequestBody MessageOrderLeave messageOrderLeave1) {
- // 根据 order_id 查找留言信息
- MessageOrderLeave messageOrderLeave = messageOrderLeaveService.findByOrderId(id);
-
- // 如果没有找到对应的留言信息,返回 404 Not Found
- if (messageOrderLeave == null) {
-// return new ResponseEntity<>("Message order leave not found for order ID: " + id, HttpStatus.NOT_FOUND);
- return R.fail("Message order leave not found for order ID: " + id);
- }
-
-
- // 设置商家回复内容
- messageOrderLeave.setSellerReply(messageOrderLeave1.getSellerReply());
- // 更新最后一次操作的时间
- messageOrderLeave.setCreateTime(new Timestamp(System.currentTimeMillis()));
-
- // 调用服务层更新数据
- boolean updated = messageOrderLeaveService.updateById(messageOrderLeave);
-
- // 如果更新失败,返回 500 Internal Server Error
- if (!updated) {
-// return new ResponseEntity<>("Failed to update message order leave", HttpStatus.INTERNAL_SERVER_ERROR);
- return R.fail("Failed to update message order leave");
- }
-
-// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
- return R.success(messageOrderLeave);
- }
-
-}
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
deleted file mode 100644
index 0a972a6..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package com.oying.modules.message.rest;
-
-import cn.hutool.core.bean.BeanUtil;
-import com.oying.annotation.Log;
-import com.oying.modules.message.domain.MessageOrderSeller;
-import com.oying.modules.message.domain.MessageOrderSeller;
-import com.oying.modules.message.domain.dto.MessageOrderSellerDTO;
-import com.oying.modules.message.service.MessageOrderSellerService;
-import com.oying.modules.message.domain.dto.MessageOrderSellerQueryCriteria;
-import com.oying.utils.R;
-import lombok.RequiredArgsConstructor;
-import java.util.List;
-
-import org.apache.poi.util.Beta;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import io.swagger.annotations.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.utils.PageResult;
-
-/**
-* @author 李萌
-* @date 2025-05-20
-**/
-@RestController
-@RequiredArgsConstructor
-@Api(tags = "卖家端订单消息通知")
-@RequestMapping("/api/message/messageOrderSeller")
-public class MessageOrderSellerController {
-
- private final MessageOrderSellerService messageOrderSellerService;
-
-// @ApiOperation("导出数据")
-// @GetMapping(value = "/download")
-// @PreAuthorize("@el.check('messageOrderSeller:list')")
-// public void exportMessageOrderSeller(HttpServletResponse response, MessageOrderSellerQueryCriteria criteria) throws IOException {
-// messageOrderSellerService.download(messageOrderSellerService.queryAll(criteria), response);
-// }
-
- @GetMapping
- @ApiOperation("查询卖家端订单消息通知")
- @PreAuthorize("@el.check('messageOrderSeller:list')")
- public R<PageResult<MessageOrderSeller>> queryMessageOrderSeller(MessageOrderSellerQueryCriteria criteria){
- Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-// return new ResponseEntity<>(messageOrderSellerService.queryAll(criteria,page),HttpStatus.OK);
- return R.success(messageOrderSellerService.queryAll(criteria,page));
- }
-
-// @PostMapping
-// @Log("新增卖家端订单消息通知")
-// @ApiOperation("新增卖家端订单消息通知")
-// @PreAuthorize("@el.check('messageOrderSeller:add')")
-// public ResponseEntity<Object> createMessageOrderSeller(@Validated @RequestBody MessageOrderSeller resources){
-// messageOrderSellerService.create(resources);
-// return new ResponseEntity<>(HttpStatus.CREATED);
-// }
-//
-// @PutMapping
-// @Log("修改卖家端订单消息通知")
-// @ApiOperation("修改卖家端订单消息通知")
-// @PreAuthorize("@el.check('messageOrderSeller:edit')")
-// public ResponseEntity<Object> updateMessageOrderSeller(@Validated @RequestBody MessageOrderSeller resources){
-// messageOrderSellerService.update(resources);
-// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-// }
-//
-// @DeleteMapping
-// @Log("删除卖家端订单消息通知")
-// @ApiOperation("删除卖家端订单消息通知")
-// @PreAuthorize("@el.check('messageOrderSeller:del')")
-// public ResponseEntity<Object> deleteMessageOrderSeller(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) {
-// messageOrderSellerService.deleteAll(ids);
-// return new ResponseEntity<>(HttpStatus.OK);
-// }
-
-// //订单状态变化通知
-// @GetMapping("/status/{order_id}")
-// @ApiOperation("查询一条订单状态变化通知")
-// public R<String> getMessageOrderSeller(@PathVariable Integer order_id) {
-// MessageOrderSeller messageOrderSeller = messageOrderSellerService.findByOrderId(order_id);
-// String message = messageOrderSeller.getMessageType();
-//
-//// return new ResponseEntity<>(message, HttpStatus.OK);
-// return R.success(message);
-// }
- //根据store_id 返回list订单状态变化通知
- @GetMapping("/status/store/{store_id}")
- @ApiOperation("根据store_id 返回list订单状态变化通知")
- public R<List<MessageOrderSellerDTO>> getMessageOrderSeller(@PathVariable String store_id) {
- List<MessageOrderSeller> messageOrderSeller = messageOrderSellerService.findByStoreId(store_id);
- //转换为MessageOrderSellerDTO huto tools
- List<MessageOrderSellerDTO> dtoList = BeanUtil.copyToList(messageOrderSeller, MessageOrderSellerDTO.class);
- //判断store_id存在
- if (messageOrderSeller == null) {
- return R.fail("store_id不存在");
- }else{return R.success(dtoList);}
-
- }
- //让前端标记已读
- //修改逻辑 主键为条件 而不是订单号,有些订单号可能重复 含多条信息 已弃用
-// @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//重复值处理
- //让后端队友更新我的表
- @PostMapping("/update/seller")
- @ApiOperation("更新插入消息表")
- public R<String> updateMessageOrderSeller(@RequestBody MessageOrderSeller resources) {
- //插入一条数据
- if(messageOrderSellerService.saveMessageOrderSellerByOrderIdAndStoreId(resources))
- return R.success("更新成功");
- return R.fail("更新失败");
-
- }
-
-
-
-
-
-
- //订单送达通知
- @GetMapping("/deliver/{order_id}")
- @ApiOperation("查询一条订单送达通知")
- public R<String> getMessageOrderSellerDeliver(@PathVariable Integer order_id) {
- MessageOrderSeller messageOrderSeller = messageOrderSellerService.findByOrderId(order_id);
- String message = messageOrderSeller.getMessageType();
- //如果MessageType为订单送达,则返回message——content
- if (message.equals("买家下单")) {
- String messageContent = messageOrderSeller.getMessageContent();
-// return new ResponseEntity<>(messageContent, HttpStatus.OK);
- return R.success(messageContent);
- }else{
- //返回没送达
-// return new ResponseEntity<>("买家没下单", HttpStatus.OK);
- return R.fail("没送达");
- }
- }
- //实现点击跳转到订单详情
- @GetMapping("/link/{order_id}")
- @ApiOperation("点击跳转到订单详情")
- public R<String> getMessageOrderSellerLink(@PathVariable Integer order_id) {
- MessageOrderSeller messageOrderSeller = messageOrderSellerService.findByOrderId(order_id);
- String link = messageOrderSeller.getLink();
-// return new ResponseEntity<>(link, HttpStatus.OK);
- return R.success(link);
- }
-
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemAdvertiseController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemAdvertiseController.java
deleted file mode 100644
index 2734ce5..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemAdvertiseController.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.oying.modules.message.rest;
-
-import com.oying.annotation.Log;
-import com.oying.modules.message.domain.MessageSystemAdvertise;
-import com.oying.modules.message.service.MessageSystemAdvertiseService;
-import com.oying.modules.message.domain.dto.MessageSystemAdvertiseQueryCriteria;
-import com.oying.utils.R;
-import lombok.RequiredArgsConstructor;
-import java.util.List;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import io.swagger.annotations.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.utils.PageResult;
-
-/**
-* @author leomon
-* @date 2025-06-05
-**/
-@RestController
-@RequiredArgsConstructor
-@Api(tags = "广告")
-@RequestMapping("/api/messageSystemAdvertise")
-public class MessageSystemAdvertiseController {
-
- private final MessageSystemAdvertiseService messageSystemAdvertiseService;
-
-
- @GetMapping
- @ApiOperation("页查询广告")
- @PreAuthorize("@el.check('messageSystemAdvertise:list')")
- public R<PageResult<MessageSystemAdvertise>> queryMessageSystemAdvertise(MessageSystemAdvertiseQueryCriteria criteria){
- Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-// return new ResponseEntity<>(messageSystemAdvertiseService.queryAll(criteria,page),HttpStatus.OK);
- return R.success(messageSystemAdvertiseService.queryAll(criteria,page));
-
- }
- //条查询广告
- @GetMapping("/{id}")
- @ApiOperation("条查询广告")
- public R<MessageSystemAdvertise> getMessageSystemAdvertise(@PathVariable Integer id){
- MessageSystemAdvertise messageSystemAdvertise = messageSystemAdvertiseService.getById(id);
-// return new ResponseEntity<>(messageSystemAdvertise,HttpStatus.OK);
- return R.success(messageSystemAdvertise);
- }
-
-// @PostMapping
-// @Log("新增广告")
-// @ApiOperation("新增广告")
-// @PreAuthorize("@el.check('messageSystemAdvertise:add')")
-// public ResponseEntity<Object> createMessageSystemAdvertise(@Validated @RequestBody MessageSystemAdvertise resources){
-// messageSystemAdvertiseService.create(resources);
-// return new ResponseEntity<>(HttpStatus.CREATED);
-// }
-
-// @PutMapping
-// @Log("修改广告")
-// @ApiOperation("修改广告")
-// @PreAuthorize("@el.check('messageSystemAdvertise:edit')")
-// public ResponseEntity<Object> updateMessageSystemAdvertise(@Validated @RequestBody MessageSystemAdvertise resources){
-// messageSystemAdvertiseService.update(resources);
-// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-// }
-
-// @DeleteMapping
-// @Log("删除广告")
-// @ApiOperation("删除广告")
-// @PreAuthorize("@el.check('messageSystemAdvertise:del')")
-// public ResponseEntity<Object> deleteMessageSystemAdvertise(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
-// messageSystemAdvertiseService.deleteAll(ids);
-// return new ResponseEntity<>(HttpStatus.OK);
-// }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java
deleted file mode 100644
index 4ce11f6..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java
+++ /dev/null
@@ -1,187 +0,0 @@
-package com.oying.modules.message.rest;
-
-import com.alibaba.fastjson2.JSONObject;
-import com.oying.annotation.Log;
-import com.oying.modules.message.domain.MessageSystem;
-import com.oying.modules.message.domain.dto.SendMessageRequestDto;
-import com.oying.modules.message.service.MessageSystemService;
-import com.oying.modules.message.domain.dto.MessageSystemQueryCriteria;
-import com.oying.modules.system.domain.User;
-import com.oying.modules.system.domain.UserSubscribe;
-import com.oying.utils.HttpRequest;
-import lombok.Data;
-import lombok.RequiredArgsConstructor;
-
-import java.sql.Timestamp;
-import java.util.Date;
-import java.util.List;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import io.swagger.annotations.*;
-import java.io.IOException;
-import java.util.Map;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.utils.PageResult;
-import com.oying.modules.security.service.WeiXinService;
-import com.oying.utils.R;
-/**
- * @author 李萌
- * @date 2025-05-20
- **/
-@RestController
-@RequiredArgsConstructor
-@Api(tags = "消息_系统")
-@RequestMapping("/api/message/messageSystem")
-public class MessageSystemController {
-
- private static final Logger log = LoggerFactory.getLogger(MessageSystemController.class);
- private final MessageSystemService messageSystemService;
- private final WeiXinService weiXinService;
-
-
-
-// @ApiOperation("导出数据")
-// @GetMapping(value = "/download")
-// @PreAuthorize("@el.check('messageSystem:list')")
-// public void exportMessageSystem(HttpServletResponse response, MessageSystemQueryCriteria criteria) throws IOException {
-// messageSystemService.download(messageSystemService.queryAll(criteria), response);
-// }
-
- @GetMapping
- @ApiOperation("查询消息_系统")
- @PreAuthorize("@el.check('messageSystem:list')")
- public R<PageResult<MessageSystem>> queryMessageSystem(MessageSystemQueryCriteria criteria){
- Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-// return new ResponseEntity<>(messageSystemService.queryAll(criteria,page),HttpStatus.OK);
- return R.success(messageSystemService.queryAll(criteria,page));
- }
-
-// @PostMapping
-// @Log("新增消息_系统")
-// @ApiOperation("新增消息_系统")
-// @PreAuthorize("@el.check('messageSystem:add')")
-// public ResponseEntity<Object> createMessageSystem(@Validated @RequestBody MessageSystem resources){
-// messageSystemService.create(resources);
-// return new ResponseEntity<>(HttpStatus.CREATED);
-// }
-
-// @PutMapping
-// @Log("修改消息_系统")
-// @ApiOperation("修改消息_系统")
-// @PreAuthorize("@el.check('messageSystem:edit')")
-// public ResponseEntity<Object> updateMessageSystem(@Validated @RequestBody MessageSystem resources){
-// messageSystemService.update(resources);
-// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-// }
-
-// @DeleteMapping
-// @Log("删除消息_系统")
-// @ApiOperation("删除消息_系统")
-// @PreAuthorize("@el.check('messageSystem:del')")
-// public ResponseEntity<Object> deleteMessageSystem(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) {
-// messageSystemService.deleteAll(ids);
-// return new ResponseEntity<>(HttpStatus.OK);
-// }
-
- //查询一条系统消息
- @GetMapping("/{id}")
- @ApiOperation("查询一条系统消息")
- public R<MessageSystem> getMessageSystem(@PathVariable Integer id){
- MessageSystem messageSystem = messageSystemService.getById(id);
-// return new ResponseEntity<>(messageSystem,HttpStatus.OK);
- return R.success(messageSystem);
- }
- //插入一条系统消息 带两个参数start与end
- @PostMapping()
- @ApiOperation("插入一条系统消息")
- public R<Object> insertMessageSystem(
- @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start,
- @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end) {
-
- // 创建 MessageSystem 对象
- MessageSystem messageSystem = new MessageSystem();
- messageSystem.setStartTime(new Timestamp(start.getTime()));
- messageSystem.setEndTime(new Timestamp(end.getTime()));
-
- // 调用服务层保存数据
- messageSystemService.save(messageSystem);
-
-// return new ResponseEntity<>(HttpStatus.OK);
- return R.success("插入成功");
- }
-
- /**
- * POST 该接口用于发送订阅消息。
- * data 请求参数
- * openid 用户openId
- * templateId 订阅模板id
- * page 小程序跳转链接
- */
-// public void sendMessage(Map<String, Object> data, String openid, String templateId, String page) {
-// JSONObject jsonObject = new JSONObject();
-// if (wxEnabled) {
-// String url = weiXinProperties.getSendMessage();
-// url = url.replace("{accessToken}", getStableAccessToken());
-// Map<String, Object> map = getSendMessageDto(data, openid, templateId, page);
-// jsonObject = HttpRequest.exchangeJsonObject(HttpMethod.POST, url, map);
-// } else {
-// jsonObject.put("message", "测试环境");
-// }
-// User user = userService.findByOpenid(openid);
-// UserSubscribe sub = new UserSubscribe();
-// sub.setSubType(templateId);
-// sub.setUserId(user.getId());
-// sub.setOpenid(openid);
-// sub.setUsername(user.getUsername());
-// sub.setSendMessage(JSONObject.toJSONString(data));
-// sub.setSubMessage(jsonObject.toJSONString());
-// subscribeService.save(sub);
-// }
- //调用微信发送消息接口sendMessage
-
- //示例
-// {
-// "touser": "OPENID",
-// "template_id": "TEMPLATE_ID",
-// "page": "index",
-// "data":{
-// "phrase3": {
-// "value": "审核通过"
-// },
-// "name1": {
-// "value": "订阅"
-// },
-// "date2": {
-// "value": "2019-12-25 09:42"
-// }
-// }
-// }
-//todo 发送订阅消息 数据库暂未存储
- @PostMapping("/sendMessage")
- @ApiOperation("发送订阅消息")
- public R<SendMessageRequestDto> sendMessage(@RequestBody SendMessageRequestDto request){
- //打印request
- //SendMessageRequestDto(touser=OPENID, template_id=TEMPLATE_ID, page=index, data={date2={"value":"2019-12-25 09:42"}, phrase3={"value":"审核通过"}, name1={"value":"订阅"}})
- log.info("request:{}", request);
- try {
- weiXinService.sendMessage(request.getData(), request.getTouser(), request.getTemplate_id(), request.getPage());
- return R.success(request);
- } catch (Exception e) {
- // 如果捕获到异常,返回错误信息
- log.error("发送订阅消息失败", e);
- return R.fail(request,"发送订阅消息失败 用真实数据:" + e.getMessage());
- }
- }
-
-
-
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MesAdvertisementService.java b/oying-system/src/main/java/com/oying/modules/message/service/MesAdvertisementService.java
new file mode 100644
index 0000000..d25fdda
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MesAdvertisementService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MesAdvertisement;
+import com.oying.modules.message.domain.dto.MesAdvertisementQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-07-25
+**/
+public interface MesAdvertisementService extends IService<MesAdvertisement> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<MesAdvertisement> queryAll(MesAdvertisementQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<MesAdvertisementDto>
+ */
+ List<MesAdvertisement> queryAll(MesAdvertisementQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(MesAdvertisement resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(MesAdvertisement resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<MesAdvertisement> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MesCustomerCommentMsgService.java b/oying-system/src/main/java/com/oying/modules/message/service/MesCustomerCommentMsgService.java
new file mode 100644
index 0000000..917267a
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MesCustomerCommentMsgService.java
@@ -0,0 +1,80 @@
+package com.oying.modules.message.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.modules.message.domain.MesCustomerCommentMsg;
+import com.oying.modules.message.domain.dto.MesCustomerCommentMsgQueryCriteria;
+import com.oying.modules.message.domain.myDto.MesCustomerCommentMsgDTO;
+import com.oying.utils.PageResult;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * @author 李萌
+ * @description 服务接口
+ * @date 2025-07-25
+ **/
+public interface MesCustomerCommentMsgService extends IService<MesCustomerCommentMsg> {
+
+ /**
+ * 查询数据分页
+ *
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<MesCustomerCommentMsg> queryAll(MesCustomerCommentMsgQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ *
+ * @param criteria 条件参数
+ * @return List<MesCustomerCommentMsgDto>
+ */
+ List<MesCustomerCommentMsg> queryAll(MesCustomerCommentMsgQueryCriteria criteria);
+
+ /**
+ * 创建
+ *
+ * @param resources /
+ */
+ void create(MesCustomerCommentMsg resources);
+
+ /**
+ * 编辑
+ *
+ * @param resources /
+ */
+ void update(MesCustomerCommentMsg resources);
+
+ /**
+ * 多选删除
+ *
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ *
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<MesCustomerCommentMsg> all, HttpServletResponse response) throws IOException;
+
+ List<MesCustomerCommentMsgDTO> listCustomerComment(Long shopId);
+
+ //方法插入相应的数据
+ //一个店铺下多个订单 。 每个订单每个顾客留言
+ //插入参数 订单编号 留言内容 店铺ID
+ // 插入id, msg_record_id, shop_id, order_id, order_no, buyer_id, buyer_name, evaluation_id, replied, create_by, create_time, update_by, update_time, comment_time, comment_content, reply_content, ext_jump_url, int_jump_path
+
+ void insertOrderMsg(MesCustomerCommentMsg resources);
+
+ //插入具体字段 店铺id 订单编号 订单id 买家id 买家姓名 留言内容 回复内容
+ void insertOrderMsgDetail(Long shopId, Long orderId, String orderNo, String buyerId, String buyerName, String commentContent, String replyContent);
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MesMsgRecordService.java b/oying-system/src/main/java/com/oying/modules/message/service/MesMsgRecordService.java
new file mode 100644
index 0000000..c7ae0df
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MesMsgRecordService.java
@@ -0,0 +1,114 @@
+package com.oying.modules.message.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.modules.message.common.MesTypeEnum;
+import com.oying.modules.message.common.MsgStatusEnum;
+import com.oying.modules.message.domain.MesMsgRecord;
+import com.oying.modules.message.domain.dto.MesMsgRecordQueryCriteria;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryPollDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQuerySystemDto;
+import com.oying.modules.sh.domain.Order;
+import com.oying.utils.PageResult;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * @author 李萌
+ * @description 服务接口
+ * @date 2025-07-25
+ **/
+public interface MesMsgRecordService extends IService<MesMsgRecord> {
+
+ /**
+ * 查询数据分页
+ *
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<MesMsgRecord> queryAll(MesMsgRecordQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ *
+ * @param criteria 条件参数
+ * @return List<MesMsgRecordDto>
+ */
+ List<MesMsgRecord> queryAll(MesMsgRecordQueryCriteria criteria);
+
+ /**
+ * 创建
+ *
+ * @param resources /
+ */
+ void create(MesMsgRecord resources);
+
+ /**
+ * 编辑
+ *
+ * @param resources /
+ */
+ void update(MesMsgRecord resources);
+
+ /**
+ * 多选删除
+ *
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ *
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<MesMsgRecord> all, HttpServletResponse response) throws IOException;
+
+ List<MesMsgRecordQueryPollDto> PollMes(Long platform, Long mestype);
+
+ void batchMarkRead(Long platform, List<Long> msgIds);
+
+ PageResult<MesMsgRecordQuerySystemDto> queryAllSysNotice(MesMsgRecordQueryCriteria criteria, Page<Object> page);
+
+
+ List<MesMsgRecordQueryOrderDto> queryorderPending(Long shopId, String content);
+
+ List<MesMsgRecordQueryOrderDto> queryBuyerOrderMessages(Long buyerId);
+
+ List<MesMsgRecordQueryOrderDto> queryBuyerOrderMessagesComplete(Long buyerId);
+
+ List<MesMsgRecordQueryOrderDto> queryorder(Long shopId);
+
+ List<MesMsgRecordQueryPollDto> PollMesAll(Long platform);
+
+ /**
+ * 插入订单消息通知
+ * @param order 订单信息 {@link com.oying.modules.sh.domain.Order}
+ * @param content 消息内容
+ * @param typeEnum 消息类型
+ */
+ void insertOrderMsg(Order order, MsgStatusEnum content, MesTypeEnum typeEnum);
+
+ // 设置一个买家状态为下单 买家id name 订单属性 店铺号
+ void setBuyerStatusOrderSubmitted(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName);
+
+ //设置一个买家状态为送达 买家id name 订单属性 店铺号
+ void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName);
+
+ // 设置一个(订单,买家)的 买家状态
+ void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName);
+
+
+ //设置商家的状态
+ void setSellerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName);
+
+ //设置骑手状态
+ void setRiderStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName);
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MesMsgTemplateService.java b/oying-system/src/main/java/com/oying/modules/message/service/MesMsgTemplateService.java
new file mode 100644
index 0000000..b9dfb2f
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MesMsgTemplateService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MesMsgTemplate;
+import com.oying.modules.message.domain.dto.MesMsgTemplateQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-07-25
+**/
+public interface MesMsgTemplateService extends IService<MesMsgTemplate> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<MesMsgTemplate> queryAll(MesMsgTemplateQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<MesMsgTemplateDto>
+ */
+ List<MesMsgTemplate> queryAll(MesMsgTemplateQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(MesMsgTemplate resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(MesMsgTemplate resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Integer> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<MesMsgTemplate> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MesOrderEvaluationService.java b/oying-system/src/main/java/com/oying/modules/message/service/MesOrderEvaluationService.java
new file mode 100644
index 0000000..1aa76f8
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MesOrderEvaluationService.java
@@ -0,0 +1,63 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MesOrderEvaluation;
+import com.oying.modules.message.domain.dto.MesOrderEvaluationQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.modules.message.domain.myDto.MesOrderEvaluationDto;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-07-25
+**/
+public interface MesOrderEvaluationService extends IService<MesOrderEvaluation> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<MesOrderEvaluation> queryAll(MesOrderEvaluationQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<MesOrderEvaluationDto>
+ */
+ List<MesOrderEvaluation> queryAll(MesOrderEvaluationQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(MesOrderEvaluation resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(MesOrderEvaluation resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<MesOrderEvaluation> all, HttpServletResponse response) throws IOException;
+
+ void addShopEvaluation(MesOrderEvaluationDto resources);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MesOrderItemEvaluationService.java b/oying-system/src/main/java/com/oying/modules/message/service/MesOrderItemEvaluationService.java
new file mode 100644
index 0000000..cfb1de8
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MesOrderItemEvaluationService.java
@@ -0,0 +1,63 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MesOrderItemEvaluation;
+import com.oying.modules.message.domain.MesOrderItemEvaluationDto;
+import com.oying.modules.message.domain.dto.MesOrderItemEvaluationQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-07-25
+**/
+public interface MesOrderItemEvaluationService extends IService<MesOrderItemEvaluation> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<MesOrderItemEvaluation> queryAll(MesOrderItemEvaluationQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<MesOrderItemEvaluationDto>
+ */
+ List<MesOrderItemEvaluation> queryAll(MesOrderItemEvaluationQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(MesOrderItemEvaluation resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(MesOrderItemEvaluation resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<MesOrderItemEvaluation> all, HttpServletResponse response) throws IOException;
+
+ void addGoodsEvaluation(MesOrderItemEvaluationDto resources);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MesRiderEvaluationService.java b/oying-system/src/main/java/com/oying/modules/message/service/MesRiderEvaluationService.java
new file mode 100644
index 0000000..ea21f0d
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MesRiderEvaluationService.java
@@ -0,0 +1,63 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MesRiderEvaluation;
+import com.oying.modules.message.domain.dto.MesRiderEvaluationQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.modules.message.domain.myDto.MesRiderEvaluationDto;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-07-25
+**/
+public interface MesRiderEvaluationService extends IService<MesRiderEvaluation> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<MesRiderEvaluation> queryAll(MesRiderEvaluationQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<MesRiderEvaluationDto>
+ */
+ List<MesRiderEvaluation> queryAll(MesRiderEvaluationQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(MesRiderEvaluation resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(MesRiderEvaluation resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<MesRiderEvaluation> all, HttpServletResponse response) throws IOException;
+
+ void addRiderEvaluation(MesRiderEvaluationDto resources);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MesShopReplyService.java b/oying-system/src/main/java/com/oying/modules/message/service/MesShopReplyService.java
new file mode 100644
index 0000000..87a255b
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MesShopReplyService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MesShopReply;
+import com.oying.modules.message.domain.dto.MesShopReplyQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-07-25
+**/
+public interface MesShopReplyService extends IService<MesShopReply> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<MesShopReply> queryAll(MesShopReplyQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<MesShopReplyDto>
+ */
+ List<MesShopReply> queryAll(MesShopReplyQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(MesShopReply resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(MesShopReply resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<MesShopReply> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderBuyerService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderBuyerService.java
deleted file mode 100644
index 788bef2..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderBuyerService.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.oying.modules.message.service;
-
-import com.oying.modules.message.domain.MessageOrderBuyer;
-import com.oying.modules.message.domain.MessageOrderLeave;
-import com.oying.modules.message.domain.dto.MessageOrderBuyerQueryCriteria;
-import java.util.Map;
-import java.util.List;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.utils.PageResult;
-
-/**
-* @description 服务接口
-* @author 李萌
-* @date 2025-05-20
-**/
-public interface MessageOrderBuyerService extends IService<MessageOrderBuyer> {
-
- /**
- * 查询数据分页
- * @param criteria 条件
- * @param page 分页参数
- * @return PageResult
- */
- PageResult<MessageOrderBuyer> queryAll(MessageOrderBuyerQueryCriteria criteria, Page<Object> page);
-
- /**
- * 查询所有数据不分页
- * @param criteria 条件参数
- * @return List<MessageOrderBuyerDto>
- */
- List<MessageOrderBuyer> queryAll(MessageOrderBuyerQueryCriteria criteria);
-
- /**
- * 创建
- * @param resources /
- */
- void create(MessageOrderBuyer resources);
-
- /**
- * 编辑
- * @param resources /
- */
- void update(MessageOrderBuyer resources);
-
- /**
- * 多选删除
- * @param ids /
- */
- void deleteAll(List<Integer> ids);
-
- /**
- * 导出数据
- * @param all 待导出的数据
- * @param response /
- * @throws IOException /
- */
- void download(List<MessageOrderBuyer> all, HttpServletResponse response) throws IOException;
-
- public MessageOrderBuyer findByOrderId(Integer orderId) ;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderLeaveService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderLeaveService.java
deleted file mode 100644
index f20e46e..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderLeaveService.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.oying.modules.message.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.oying.modules.message.domain.MessageOrderLeave;
-import com.oying.modules.message.domain.dto.MessageOrderLeaveQueryCriteria;
-import java.util.Map;
-import java.util.List;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.utils.PageResult;
-
-/**
-* @description 服务接口
-* @author 李萌
-* @date 2025-05-20
-**/
-public interface MessageOrderLeaveService extends IService<MessageOrderLeave> {
-
- /**
- * 查询数据分页
- * @param criteria 条件
- * @param page 分页参数
- * @return PageResult
- */
- PageResult<MessageOrderLeave> queryAll(MessageOrderLeaveQueryCriteria criteria, Page<Object> page);
-
- /**
- * 查询所有数据不分页
- * @param criteria 条件参数
- * @return List<MessageOrderLeaveDto>
- */
- List<MessageOrderLeave> queryAll(MessageOrderLeaveQueryCriteria criteria);
-
- /**
- * 创建
- * @param resources /
- */
- void create(MessageOrderLeave resources);
-
- /**
- * 编辑
- * @param resources /
- */
-// void update(MessageOrderLeave resources);
-
- /**
- * 多选删除
- * @param ids /
- */
- void deleteAll(List<Integer> ids);
-
- /**
- * 导出数据
- * @param all 待导出的数据
- * @param response /
- * @throws IOException /
- */
- void download(List<MessageOrderLeave> all, HttpServletResponse response) throws IOException;
-
- /**
- * 根据订单ID查找留言信息
- * @param orderId 订单ID
- * @return 匹配的留言记录,若不存在则返回 null
- */
- public MessageOrderLeave findByOrderId(Integer orderId) ;
-
-}
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
deleted file mode 100644
index db8686c..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package com.oying.modules.message.service;
-
-import com.google.common.annotations.Beta;
-import com.oying.modules.message.domain.MessageOrderSeller;
-import com.oying.modules.message.domain.dto.MessageOrderSellerQueryCriteria;
-
-import java.util.List;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.utils.PageResult;
-
-/**
-* @description 服务接口
-* @author 李萌
-* @date 2025-05-20
-**/
-public interface MessageOrderSellerService extends IService<MessageOrderSeller> {
-
- /**
- * 查询数据分页
- * @param criteria 条件
- * @param page 分页参数
- * @return PageResult
- */
- PageResult<MessageOrderSeller> queryAll(MessageOrderSellerQueryCriteria criteria, Page<Object> page);
-
- /**
- * 查询所有数据不分页
- * @param criteria 条件参数
- * @return List<MessageOrderSellerDto>
- */
- List<MessageOrderSeller> queryAll(MessageOrderSellerQueryCriteria criteria);
-
- /**
- * 创建
- * @param resources /
- */
- void create(MessageOrderSeller resources);
-
- /**
- * 编辑
- * @param resources /
- */
- void update(MessageOrderSeller resources);
-
- /**
- * 多选删除
- * @param ids /
- */
- void deleteAll(List<Integer> ids);
-
- /**
- * 导出数据
- * @param all 待导出的数据
- * @param response /
- * @throws IOException /
- */
- void download(List<MessageOrderSeller> all, HttpServletResponse response) throws IOException;
- public MessageOrderSeller findByOrderId(Integer orderId) ;
-
- List<MessageOrderSeller> findByStoreId(String storeId);
-
- boolean updateMessageOrderSellerRead(Integer orderId);
-
- /**
- * 保存或更新 MessageOrderSeller 记录。
- * <p>
- * 该方法根据传入的 MessageOrderSeller 对象,将数据插入到数据库中。
- * 如果记录已存在,则更新;如果不存在,则插入新记录。
- * </p>
- * <p>
- * 必须字段:
- * - orderId:订单 ID
- * - storeId:店铺 ID
- * </p>
- * <p>
- * 可选字段:
- * - messageType:消息类型 : 暂未使用
- * - messageContent:消息内容 : "订单已提交" :"支付成功" 商家已接单 骑手已接单" 即com.oying.modules.message.common.OrderStatusEnum
- * - link:链接
- * - flag:标志字段(默认值为未读 0)
- * </p>
- *
- * @param resources MessageOrderSeller 对象,包含需要保存或更新的数据。
- * @return true 表示保存成功,false 表示保存失败。
- */
- @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/MessageSystemAdvertiseService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemAdvertiseService.java
deleted file mode 100644
index 2fde73e..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemAdvertiseService.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.oying.modules.message.service;
-
-import com.oying.modules.message.domain.MessageSystemAdvertise;
-import com.oying.modules.message.domain.dto.MessageSystemAdvertiseQueryCriteria;
-import java.util.Map;
-import java.util.List;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.utils.PageResult;
-
-/**
-* @description 服务接口
-* @author leomon
-* @date 2025-06-05
-**/
-public interface MessageSystemAdvertiseService extends IService<MessageSystemAdvertise> {
-
- /**
- * 查询数据分页
- * @param criteria 条件
- * @param page 分页参数
- * @return PageResult
- */
- PageResult<MessageSystemAdvertise> queryAll(MessageSystemAdvertiseQueryCriteria criteria, Page<Object> page);
-
- /**
- * 查询所有数据不分页
- * @param criteria 条件参数
- * @return List<MessageSystemAdvertiseDto>
- */
- List<MessageSystemAdvertise> queryAll(MessageSystemAdvertiseQueryCriteria criteria);
-
- /**
- * 创建
- * @param resources /
- */
- void create(MessageSystemAdvertise resources);
-
- /**
- * 编辑
- * @param resources /
- */
- void update(MessageSystemAdvertise resources);
-
- /**
- * 多选删除
- * @param ids /
- */
- void deleteAll(List<Long> ids);
-
- /**
- * 导出数据
- * @param all 待导出的数据
- * @param response /
- * @throws IOException /
- */
- void download(List<MessageSystemAdvertise> all, HttpServletResponse response) throws IOException;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemService.java
deleted file mode 100644
index 38c4ccb..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemService.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.oying.modules.message.service;
-
-import com.oying.modules.message.domain.MessageSystem;
-import com.oying.modules.message.domain.dto.MessageSystemQueryCriteria;
-
-import java.util.Date;
-import java.util.Map;
-import java.util.List;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.utils.PageResult;
-
-/**
- * @description 服务接口
- * @author 李萌
- * @date 2025-05-20
- **/
-public interface MessageSystemService extends IService<MessageSystem> {
-
- /**
- * 查询数据分页
- * @param criteria 条件
- * @param page 分页参数
- * @return PageResult
- */
- PageResult<MessageSystem> queryAll(MessageSystemQueryCriteria criteria, Page<Object> page);
-
- /**
- * 查询所有数据不分页
- * @param criteria 条件参数
- * @return List<MessageSystemDto>
- */
- List<MessageSystem> queryAll(MessageSystemQueryCriteria criteria);
-
- /**
- * 创建
- * @param resources /
- */
- void create(MessageSystem resources);
-
- /**
- * 编辑
- * @param resources /
- */
- void update(MessageSystem resources);
-
- /**
- * 多选删除
- * @param ids /
- */
- void deleteAll(List<Integer> ids);
-
- /**
- * 导出数据
- * @param all 待导出的数据
- * @param response /
- * @throws IOException /
- */
- void download(List<MessageSystem> all, HttpServletResponse response) throws IOException;
-
-
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesAdvertisementServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesAdvertisementServiceImpl.java
new file mode 100644
index 0000000..93a1712
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesAdvertisementServiceImpl.java
@@ -0,0 +1,93 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MesAdvertisement;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MesAdvertisementService;
+import com.oying.modules.message.domain.dto.MesAdvertisementQueryCriteria;
+import com.oying.modules.message.mapper.MesAdvertisementMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+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 李萌
+* @date 2025-07-25
+**/
+@Service
+@RequiredArgsConstructor
+public class MesAdvertisementServiceImpl extends ServiceImpl<MesAdvertisementMapper, MesAdvertisement> implements MesAdvertisementService {
+
+ private final MesAdvertisementMapper mesAdvertisementMapper;
+
+ @Override
+ public PageResult<MesAdvertisement> queryAll(MesAdvertisementQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(mesAdvertisementMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<MesAdvertisement> queryAll(MesAdvertisementQueryCriteria criteria){
+ return mesAdvertisementMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MesAdvertisement resources) {
+ mesAdvertisementMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MesAdvertisement resources) {
+ MesAdvertisement mesAdvertisement = getById(resources.getId());
+ mesAdvertisement.copy(resources);
+ mesAdvertisementMapper.updateById(mesAdvertisement);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ mesAdvertisementMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<MesAdvertisement> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (MesAdvertisement mesAdvertisement : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("广告标题", mesAdvertisement.getTitle());
+ map.put("副标题/简介", mesAdvertisement.getSubTitle());
+ map.put("广告正文(支持富文本)", mesAdvertisement.getContent());
+ map.put("封面图URL", mesAdvertisement.getCoverImg());
+ map.put("Banner图URL(冗余)", mesAdvertisement.getBannerImg());
+ map.put("投放渠道 1小程序 2APP 3全平台", mesAdvertisement.getPlatform());
+ map.put("跳转类型 1内部 2外部", mesAdvertisement.getJumpType());
+ map.put("跳转地址(内部路径或外部链接)", mesAdvertisement.getJumpUrl());
+ map.put("跳转携带参数(JSON)", mesAdvertisement.getJumpParams());
+ map.put("排序值 越大越前", mesAdvertisement.getSortOrder());
+ map.put("是否置顶 0否 1是", mesAdvertisement.getIsTop());
+ map.put("状态 1启用 2禁用", mesAdvertisement.getStatus());
+ map.put("公告开始时间", mesAdvertisement.getEffectiveTime());
+ map.put("公告结束时间", mesAdvertisement.getExpireTime());
+ map.put("点击次数(冗余)", mesAdvertisement.getClickCount());
+ map.put("展示次数(冗余)", mesAdvertisement.getShowCount());
+ map.put("备注", mesAdvertisement.getRemark());
+ map.put(" createBy", mesAdvertisement.getCreateBy());
+ map.put(" createTime", mesAdvertisement.getCreateTime());
+ map.put(" updateBy", mesAdvertisement.getUpdateBy());
+ map.put(" updateTime", mesAdvertisement.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesCustomerCommentMsgServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesCustomerCommentMsgServiceImpl.java
new file mode 100644
index 0000000..73afd17
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesCustomerCommentMsgServiceImpl.java
@@ -0,0 +1,168 @@
+package com.oying.modules.message.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.domain.MesCustomerCommentMsg;
+import com.oying.modules.message.domain.dto.MesCustomerCommentMsgQueryCriteria;
+import com.oying.modules.message.domain.myDto.MesCustomerCommentMsgDTO;
+import com.oying.modules.message.mapper.MesCustomerCommentMsgMapper;
+import com.oying.modules.message.service.MesCustomerCommentMsgService;
+import com.oying.utils.FileUtil;
+import com.oying.utils.PageResult;
+import com.oying.utils.PageUtil;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author 李萌
+ * @description 服务实现
+ * @date 2025-07-25
+ **/
+@Service
+@RequiredArgsConstructor
+public class MesCustomerCommentMsgServiceImpl extends ServiceImpl<MesCustomerCommentMsgMapper, MesCustomerCommentMsg> implements MesCustomerCommentMsgService {
+
+ private final MesCustomerCommentMsgMapper mesCustomerCommentMsgMapper;
+
+ @Override
+ public PageResult<MesCustomerCommentMsg> queryAll(MesCustomerCommentMsgQueryCriteria criteria, Page<Object> page) {
+ return PageUtil.toPage(mesCustomerCommentMsgMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<MesCustomerCommentMsg> queryAll(MesCustomerCommentMsgQueryCriteria criteria) {
+ return mesCustomerCommentMsgMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MesCustomerCommentMsg resources) {
+ mesCustomerCommentMsgMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MesCustomerCommentMsg resources) {
+ MesCustomerCommentMsg mesCustomerCommentMsg = getById(resources.getId());
+ mesCustomerCommentMsg.copy(resources);
+ mesCustomerCommentMsgMapper.updateById(mesCustomerCommentMsg);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ mesCustomerCommentMsgMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<MesCustomerCommentMsg> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (MesCustomerCommentMsg mesCustomerCommentMsg : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("对应 mes_msg_record.id", mesCustomerCommentMsg.getMsgRecordId());
+ map.put("店铺ID", mesCustomerCommentMsg.getShopId());
+ map.put("订单ID", mesCustomerCommentMsg.getOrderId());
+ map.put("订单编号 冗余", mesCustomerCommentMsg.getOrderNo());
+ map.put("买家用户ID", mesCustomerCommentMsg.getBuyerId());
+ map.put("买家昵称 冗余", mesCustomerCommentMsg.getBuyerName());
+ map.put("评价ID 冗余", mesCustomerCommentMsg.getEvaluationId());
+ map.put("商户是否已回复 0=未回复 1=已回复", mesCustomerCommentMsg.getReplied());
+ map.put("创建人", mesCustomerCommentMsg.getCreateBy());
+ map.put("创建时间", mesCustomerCommentMsg.getCreateTime());
+ map.put("更新人", mesCustomerCommentMsg.getUpdateBy());
+ map.put("更新时间", mesCustomerCommentMsg.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+
+ @Override
+ public List<MesCustomerCommentMsgDTO> listCustomerComment(Long shopId) {
+ return mesCustomerCommentMsgMapper.listCustomerComment(shopId);
+ }
+
+
+ //订单消息 插入对应字段
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void insertOrderMsg(MesCustomerCommentMsg resources) {
+ //先临时对象
+ MesCustomerCommentMsg mesCustomerCommentMsg = new MesCustomerCommentMsg();
+ //对象属性非空则插入
+ if (resources.getMsgRecordId() != null) {
+ mesCustomerCommentMsg.setMsgRecordId(resources.getMsgRecordId());
+ }
+ if (resources.getShopId() != null) {
+ mesCustomerCommentMsg.setShopId(resources.getShopId());
+ }
+ if (resources.getOrderId() != null) {
+ mesCustomerCommentMsg.setOrderId(resources.getOrderId());
+ }
+ if (resources.getOrderNo() != null) {
+ mesCustomerCommentMsg.setOrderNo(resources.getOrderNo());
+ }
+ if (resources.getBuyerId() != null) {
+ mesCustomerCommentMsg.setBuyerId(resources.getBuyerId());
+ }
+ if (resources.getBuyerName() != null) {
+ mesCustomerCommentMsg.setBuyerName(resources.getBuyerName());
+ }
+
+
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void insertOrderMsgDetail(Long shopId, Long orderId, String orderNo, String buyerId, String buyerName, String commentContent, String replyContent) {
+ // 插入具体字段 店铺id 订单编号 订单id 买家id 买家姓名 留言内容 回复内容
+ // 先临时对象
+ MesCustomerCommentMsg mesCustomerCommentMsg = new MesCustomerCommentMsg();
+
+ // 设置对象属性 非空则插入 注意要有异常判断
+ if (shopId != null) {
+ mesCustomerCommentMsg.setShopId(shopId);
+ }
+ if (orderId != null) {
+ mesCustomerCommentMsg.setOrderId(orderId);
+ }
+ if (orderNo != null) {
+ mesCustomerCommentMsg.setOrderNo(orderNo);
+ }
+ if (buyerId != null) {
+ mesCustomerCommentMsg.setBuyerId(buyerId);
+ }
+ if (buyerName != null) {
+ mesCustomerCommentMsg.setBuyerName(buyerName);
+ }
+ if (commentContent != null) {
+ mesCustomerCommentMsg.setCommentContent(commentContent);
+ }
+ if (replyContent != null) {
+ mesCustomerCommentMsg.setReplyContent(replyContent);
+ // 如果有回复内容,则标记为已回复
+ mesCustomerCommentMsg.setReplied(1);
+ } else {
+ // 如果没有回复内容,则标记为未回复
+ mesCustomerCommentMsg.setReplied(0);
+ }
+
+ // 设置创建时间
+// 设置创建时间 - 使用 Timestamp 的标准写法
+ mesCustomerCommentMsg.setCreateTime(new Timestamp(System.currentTimeMillis()));
+
+
+ // 插入数据
+ mesCustomerCommentMsgMapper.insert(mesCustomerCommentMsg);
+ }
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java
new file mode 100644
index 0000000..c3f6531
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java
@@ -0,0 +1,312 @@
+package com.oying.modules.message.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.common.MesReadEnum;
+import com.oying.modules.message.common.MesTypeEnum;
+import com.oying.modules.message.common.MsgStatusEnum;
+import com.oying.modules.message.domain.MesMsgRecord;
+import com.oying.modules.message.domain.dto.MesMsgRecordQueryCriteria;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryPollDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQuerySystemDto;
+import com.oying.modules.message.mapper.MesMsgRecordMapper;
+import com.oying.modules.message.service.MesMsgRecordService;
+import com.oying.modules.sh.domain.Order;
+import com.oying.utils.FileUtil;
+import com.oying.utils.PageResult;
+import com.oying.utils.PageUtil;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author 李萌
+ * @description 服务实现
+ * @date 2025-07-25
+ **/
+@Service
+@RequiredArgsConstructor
+public class MesMsgRecordServiceImpl extends ServiceImpl<MesMsgRecordMapper, MesMsgRecord> implements MesMsgRecordService {
+
+ private final MesMsgRecordMapper mesMsgRecordMapper;
+
+ @Override
+ public PageResult<MesMsgRecord> queryAll(MesMsgRecordQueryCriteria criteria, Page<Object> page) {
+ return PageUtil.toPage(mesMsgRecordMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<MesMsgRecord> queryAll(MesMsgRecordQueryCriteria criteria) {
+ return mesMsgRecordMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MesMsgRecord resources) {
+ mesMsgRecordMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MesMsgRecord resources) {
+ MesMsgRecord mesMsgRecord = getById(resources.getId());
+ mesMsgRecord.copy(resources);
+ mesMsgRecordMapper.updateById(mesMsgRecord);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ mesMsgRecordMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<MesMsgRecord> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (MesMsgRecord mesMsgRecord : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("模板ID 可无", mesMsgRecord.getTemplateId());
+ map.put("接收人ID", mesMsgRecord.getReceiverId());
+ map.put("1=买家 2=商户 3=骑手", mesMsgRecord.getPlatform());
+ map.put("同模板type", mesMsgRecord.getMsgType());
+ map.put("最终标题", mesMsgRecord.getTitle());
+ map.put("最终内容", mesMsgRecord.getContent());
+ map.put("业务ID 例如订单ID", mesMsgRecord.getBizId());
+ map.put("业务类型 ORDER/EVALUATION 等", mesMsgRecord.getBizType());
+ map.put("已读 0=未读 1=已读", mesMsgRecord.getIsRead());
+ map.put("阅读时间", mesMsgRecord.getReadTime());
+ map.put("扩展字段 存跳转链接等", mesMsgRecord.getExtra());
+ map.put("创建人", mesMsgRecord.getCreateBy());
+ map.put("创建时间", mesMsgRecord.getCreateTime());
+ map.put("更新人", mesMsgRecord.getUpdateBy());
+ map.put("更新时间", mesMsgRecord.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+
+ @Override
+ public List<MesMsgRecordQueryPollDto> PollMes(Long platform, Long mestype) {
+ return mesMsgRecordMapper.PollMes(platform, mestype);
+ }
+
+ @Override
+ public void batchMarkRead(Long platform, List<Long> msgIds) {
+ mesMsgRecordMapper.batchMarkRead(platform, msgIds);
+ }
+
+ @Override
+ public PageResult<MesMsgRecordQuerySystemDto> queryAllSysNotice(MesMsgRecordQueryCriteria criteria, Page<Object> page) {
+ return PageUtil.toPage(mesMsgRecordMapper.queryAllSysNotice(criteria, page));
+ }
+
+ @Override
+ public List<MesMsgRecordQueryOrderDto> queryorder(Long shopId) {
+ return mesMsgRecordMapper.queryorder(shopId);
+ }
+
+ @Override
+ public List<MesMsgRecordQueryPollDto> PollMesAll(Long platform) {
+ return mesMsgRecordMapper.PollMesAll(platform);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void insertOrderMsg(Order order, MsgStatusEnum content, MesTypeEnum typeEnum) {
+ MesMsgRecord record = new MesMsgRecord();
+ record.setOrderNo(order.getOrderNum());
+ record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
+ record.setContentKey(String.valueOf(content.getKey()));// 使用枚举的描述作为消息内容key
+ record.setBuyerId(String.valueOf(order.getUserId())); // 处理空值情况
+ record.setBuyerName(order.getUsername());
+ record.setRiderId(order.getRiderId() != null ? String.valueOf(order.getRiderId()) : null);
+ record.setRiderName(order.getRiderName() != null ? order.getRiderName() : null);
+ record.setShopId(order.getStoreId());
+ record.setMsgType(typeEnum.getKey()); // 订单消息类型为2
+ record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
+ mesMsgRecordMapper.insert(record);
+ }
+
+ // 设置一个买家状态为下单 不存在则插入 买家id name 订单属性 店铺号
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void setBuyerStatusOrderSubmitted(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName) {
+ MesMsgRecord record = new MesMsgRecord();
+ record.setOrderNo(orderNo);
+ record.setContent(MsgStatusEnum.MERCHANT_ACCEPTED.getValue()); // 使用枚举的描述作为消息内容
+ record.setContentKey(String.valueOf(MsgStatusEnum.MERCHANT_ACCEPTED.getKey()));// 使用枚举的描述作为消息内容key
+ record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
+ record.setMsgType(MesTypeEnum.ORDER.getKey()); // 订单消息类型为2
+ record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
+ if (riderId != null) {
+ record.setRiderId(riderId);
+ }
+ if (riderName != null) {
+ record.setRiderName(riderName);
+ }
+ if (shopId != null) {
+ record.setShopId(shopId);
+ }
+ if (buyerName != null) {
+ record.setBuyerName(buyerName);
+ }
+ record.setCreateTime(new Timestamp(System.currentTimeMillis()));
+ record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+ mesMsgRecordMapper.insert(record);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName) {
+ MesMsgRecord record = new MesMsgRecord();
+ record.setOrderNo(orderNo);
+ record.setContent(MsgStatusEnum.BUYER_ORDER_DELIVERED.getValue()); // 使用枚举的描述作为消息内容
+ record.setContentKey(String.valueOf(MsgStatusEnum.BUYER_ORDER_DELIVERED.getKey()));// 使用枚举的描述作为消息内容key
+ record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
+ record.setMsgType(MesTypeEnum.ORDER.getKey()); // 订单消息类型为2
+ record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
+ if (riderId != null) {
+ record.setRiderId(riderId);
+ }
+ if (riderName != null) {
+ record.setRiderName(riderName);
+ }
+ if (shopId != null) {
+ record.setShopId(shopId);
+ }
+ if (buyerName != null) {
+ record.setBuyerName(buyerName);
+ }
+ record.setCreateTime(new Timestamp(System.currentTimeMillis()));
+ record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+ mesMsgRecordMapper.insert(record);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName) {
+ //content只能设置为如下 "商品已送达" "订单已完成" "订单送达"
+ if (content == null ||
+ (
+ !content.equals(MsgStatusEnum.BUYER_ORDER_COMPLETED) &&
+ !content.equals(MsgStatusEnum.BUYER_ORDER_DELIVERED))) {
+ throw new IllegalArgumentException("content只能设置为如下 \"商品已送达\" \"订单已完成\" \"订单送达\"");
+ }
+ MesMsgRecord record = new MesMsgRecord();
+ record.setOrderNo(orderNo);
+ record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
+ record.setContentKey(String.valueOf(content.getKey()));// 使用枚举的描述作为消息内容key
+ record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
+ record.setMsgType(MesTypeEnum.BUYER.getKey()); //
+ record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
+ if (riderId != null) {
+ record.setRiderId(riderId);
+ }
+ if (riderName != null) {
+ record.setRiderName(riderName);
+ }
+ if (shopId != null) {
+ record.setShopId(shopId);
+ }
+ if (buyerName != null) {
+ record.setBuyerName(buyerName);
+ }
+ record.setCreateTime(new Timestamp(System.currentTimeMillis()));
+ record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+ mesMsgRecordMapper.insert(record);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void setSellerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName) {
+ //content只能为 "订单已提交" "商家已接单" 商家已备货"
+ if (content == null ||
+ (
+ content != MsgStatusEnum.MERCHANT_ACCEPTED &&
+ content != MsgStatusEnum.MERCHANT_PREPARED)) {
+ throw new IllegalArgumentException("content只能为 \"订单已提交\" \"商家已接单\" 商家已备货\"");
+ }
+ MesMsgRecord record = new MesMsgRecord();
+ record.setOrderNo(orderNo);
+ record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
+ record.setContentKey(String.valueOf(content.getKey()));// 使用枚举的描述作为消息内容key
+ record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
+ record.setMsgType(MesTypeEnum.MERCHANT.getKey()); //
+ record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
+ if (riderId != null) {
+ record.setRiderId(riderId);
+ }
+ if (riderName != null) {
+ record.setRiderName(riderName);
+ }
+ if (shopId != null) {
+ record.setShopId(shopId);
+ }
+ if (buyerName != null) {
+ record.setBuyerName(buyerName);
+ }
+ record.setCreateTime(new Timestamp(System.currentTimeMillis()));
+ record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+ mesMsgRecordMapper.insert(record);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void setRiderStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName) {
+ //content只能为 "骑手已接单" "骑手已取货" "骑手已到店" "订单已取消" "距离最晚送达时间不足1小时" "距离最晚送达时间不足30分钟"
+ if (content == null ||
+ (content != MsgStatusEnum.RIDER_PENDING_ACCEPTANCE &&
+ content != MsgStatusEnum.RIDER_PICKED_UP &&
+ content != MsgStatusEnum.RIDER_ARRIVED &&
+ content != MsgStatusEnum.RIDER_ORDER_CANCELLED && content != MsgStatusEnum.RIDER_DELIVERY_WARNING)) {
+ throw new IllegalArgumentException("content只能为 \"骑手已接单\" \"骑手已取货\" \"骑手已到店\" \"订单已取消\" \"订单已超时\" ");
+ }
+ MesMsgRecord record = new MesMsgRecord();
+ record.setOrderNo(orderNo);
+ record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
+ record.setContentKey(String.valueOf(content.getKey()));// 使用枚举的描述作为消息内容key
+ record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
+ record.setMsgType(MesTypeEnum.RIDER.getKey()); //
+ record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
+ if (riderId != null) {
+ record.setRiderId(riderId);
+ }
+ if (riderName != null) {
+ record.setRiderName(riderName);
+ }
+ if (shopId != null) {
+ record.setShopId(shopId);
+ }
+ if (buyerName != null) {
+ record.setBuyerName(buyerName);
+ }
+ record.setCreateTime(new Timestamp(System.currentTimeMillis()));
+ record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+ mesMsgRecordMapper.insert(record);
+ }
+
+
+ @Override
+ public List<MesMsgRecordQueryOrderDto> queryorderPending(Long shopId, String content) {
+ return mesMsgRecordMapper.queryorderPending(shopId, content);
+ }
+
+ @Override
+ public List<MesMsgRecordQueryOrderDto> queryBuyerOrderMessages(Long buyerId) {
+ return mesMsgRecordMapper.queryBuyerOrderMessages(buyerId);
+ }
+
+ @Override
+ public List<MesMsgRecordQueryOrderDto> queryBuyerOrderMessagesComplete(Long buyerId) {
+ return mesMsgRecordMapper.queryBuyerOrderMessagesComplete(buyerId);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgTemplateServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgTemplateServiceImpl.java
new file mode 100644
index 0000000..5af6a19
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgTemplateServiceImpl.java
@@ -0,0 +1,83 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MesMsgTemplate;
+import com.oying.exception.EntityExistException;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MesMsgTemplateService;
+import com.oying.modules.message.domain.dto.MesMsgTemplateQueryCriteria;
+import com.oying.modules.message.mapper.MesMsgTemplateMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+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 李萌
+* @date 2025-07-25
+**/
+@Service
+@RequiredArgsConstructor
+public class MesMsgTemplateServiceImpl extends ServiceImpl<MesMsgTemplateMapper, MesMsgTemplate> implements MesMsgTemplateService {
+
+ private final MesMsgTemplateMapper mesMsgTemplateMapper;
+
+ @Override
+ public PageResult<MesMsgTemplate> queryAll(MesMsgTemplateQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(mesMsgTemplateMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<MesMsgTemplate> queryAll(MesMsgTemplateQueryCriteria criteria){
+ return mesMsgTemplateMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MesMsgTemplate resources) {
+ mesMsgTemplateMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MesMsgTemplate resources) {
+ MesMsgTemplate mesMsgTemplate = getById(resources.getId());
+ mesMsgTemplate.copy(resources);
+ mesMsgTemplateMapper.updateById(mesMsgTemplate);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Integer> ids) {
+ mesMsgTemplateMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<MesMsgTemplate> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (MesMsgTemplate mesMsgTemplate : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("模板编码", mesMsgTemplate.getCode());
+ map.put("模板名称", mesMsgTemplate.getName());
+ map.put("标题模板 支持占位符", mesMsgTemplate.getTitleTpl());
+ map.put("内容模板 支持占位符", mesMsgTemplate.getContentTpl());
+ map.put("1=系统 2=订单 3=评价/留言", mesMsgTemplate.getType());
+ map.put("1=买家 2=商户 3=骑手", mesMsgTemplate.getPlatform());
+ map.put("创建人", mesMsgTemplate.getCreateBy());
+ map.put("创建时间", mesMsgTemplate.getCreateTime());
+ map.put("更新人", mesMsgTemplate.getUpdateBy());
+ map.put("更新时间", mesMsgTemplate.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesOrderEvaluationServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesOrderEvaluationServiceImpl.java
new file mode 100644
index 0000000..f59c7eb
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesOrderEvaluationServiceImpl.java
@@ -0,0 +1,99 @@
+package com.oying.modules.message.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.domain.MesOrderEvaluation;
+import com.oying.modules.message.domain.dto.MesOrderEvaluationQueryCriteria;
+import com.oying.modules.message.domain.myDto.MesOrderEvaluationDto;
+import com.oying.modules.message.mapper.MesOrderEvaluationMapper;
+import com.oying.modules.message.service.MesOrderEvaluationService;
+import com.oying.utils.FileUtil;
+import com.oying.utils.PageResult;
+import com.oying.utils.PageUtil;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author 李萌
+ * @description 服务实现
+ * @date 2025-07-25
+ **/
+@Service
+@RequiredArgsConstructor
+public class MesOrderEvaluationServiceImpl extends ServiceImpl<MesOrderEvaluationMapper, MesOrderEvaluation> implements MesOrderEvaluationService {
+
+ private final MesOrderEvaluationMapper mesOrderEvaluationMapper;
+
+ @Override
+ public PageResult<MesOrderEvaluation> queryAll(MesOrderEvaluationQueryCriteria criteria, Page<Object> page) {
+ return PageUtil.toPage(mesOrderEvaluationMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<MesOrderEvaluation> queryAll(MesOrderEvaluationQueryCriteria criteria) {
+ return mesOrderEvaluationMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MesOrderEvaluation resources) {
+ mesOrderEvaluationMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MesOrderEvaluation resources) {
+ MesOrderEvaluation mesOrderEvaluation = getById(resources.getId());
+ mesOrderEvaluation.copy(resources);
+ mesOrderEvaluationMapper.updateById(mesOrderEvaluation);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ mesOrderEvaluationMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<MesOrderEvaluation> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (MesOrderEvaluation mesOrderEvaluation : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("订单ID", mesOrderEvaluation.getOrderId());
+ map.put("买家用户ID", mesOrderEvaluation.getBuyerId());
+ map.put("订单编号 冗余字段", mesOrderEvaluation.getOrderNo());
+ map.put("店铺ID 冗余字段", mesOrderEvaluation.getShopId());
+ map.put("店铺名称 冗余字段", mesOrderEvaluation.getShopName());
+ map.put("骑手ID", mesOrderEvaluation.getRiderId());
+ map.put("骑手姓名 冗余字段", mesOrderEvaluation.getRiderName());
+ map.put("商品评分 0-5,支持半星", mesOrderEvaluation.getGoodsScore());
+ map.put("商品评价内容", mesOrderEvaluation.getGoodsContent());
+ map.put("商品评价图片 最多5张 存JSON数组", mesOrderEvaluation.getGoodsImgs());
+ map.put("店铺服务评分", mesOrderEvaluation.getShopScore());
+ map.put("店铺服务评价内容", mesOrderEvaluation.getShopContent());
+ map.put("骑手服务评分", mesOrderEvaluation.getRiderScore());
+ map.put("骑手服务评价内容", mesOrderEvaluation.getRiderContent());
+ map.put("买家删除评价 0=正常 1=已删除", mesOrderEvaluation.getIsDeleted());
+ map.put("创建人", mesOrderEvaluation.getCreateBy());
+ map.put("创建时间", mesOrderEvaluation.getCreateTime());
+ map.put("更新人", mesOrderEvaluation.getUpdateBy());
+ map.put("更新时间", mesOrderEvaluation.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void addShopEvaluation(MesOrderEvaluationDto resources) {
+ mesOrderEvaluationMapper.addShopEvaluation(resources);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesOrderItemEvaluationServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesOrderItemEvaluationServiceImpl.java
new file mode 100644
index 0000000..06795d9
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesOrderItemEvaluationServiceImpl.java
@@ -0,0 +1,92 @@
+package com.oying.modules.message.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.domain.MesOrderItemEvaluation;
+import com.oying.modules.message.domain.MesOrderItemEvaluationDto;
+import com.oying.modules.message.domain.dto.MesOrderItemEvaluationQueryCriteria;
+import com.oying.modules.message.mapper.MesOrderItemEvaluationMapper;
+import com.oying.modules.message.service.MesOrderItemEvaluationService;
+import com.oying.utils.FileUtil;
+import com.oying.utils.PageResult;
+import com.oying.utils.PageUtil;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author 李萌
+ * @description 服务实现
+ * @date 2025-07-25
+ **/
+@Service
+@RequiredArgsConstructor
+public class MesOrderItemEvaluationServiceImpl extends ServiceImpl<MesOrderItemEvaluationMapper, MesOrderItemEvaluation> implements MesOrderItemEvaluationService {
+
+ private final MesOrderItemEvaluationMapper mesOrderItemEvaluationMapper;
+
+ @Override
+ public PageResult<MesOrderItemEvaluation> queryAll(MesOrderItemEvaluationQueryCriteria criteria, Page<Object> page) {
+ return PageUtil.toPage(mesOrderItemEvaluationMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<MesOrderItemEvaluation> queryAll(MesOrderItemEvaluationQueryCriteria criteria) {
+ return mesOrderItemEvaluationMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MesOrderItemEvaluation resources) {
+ mesOrderItemEvaluationMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MesOrderItemEvaluation resources) {
+ MesOrderItemEvaluation mesOrderItemEvaluation = getById(resources.getId());
+ mesOrderItemEvaluation.copy(resources);
+ mesOrderItemEvaluationMapper.updateById(mesOrderItemEvaluation);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ mesOrderItemEvaluationMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<MesOrderItemEvaluation> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (MesOrderItemEvaluation mesOrderItemEvaluation : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("对应 mes_order_evaluation.id", mesOrderItemEvaluation.getOrderEvalId());
+ map.put("订单明细ID", mesOrderItemEvaluation.getOrderItemId());
+ map.put("商品ID", mesOrderItemEvaluation.getGoodsId());
+ map.put("商品名称 冗余", mesOrderItemEvaluation.getGoodsName());
+ map.put("商品主图 冗余", mesOrderItemEvaluation.getGoodsPic());
+ map.put("商品单项评分", mesOrderItemEvaluation.getScore());
+ map.put("评价内容", mesOrderItemEvaluation.getContent());
+ map.put("评价图片JSON 最多5张", mesOrderItemEvaluation.getImgs());
+ map.put("创建人", mesOrderItemEvaluation.getCreateBy());
+ map.put("创建时间", mesOrderItemEvaluation.getCreateTime());
+ map.put("更新人", mesOrderItemEvaluation.getUpdateBy());
+ map.put("更新时间", mesOrderItemEvaluation.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void addGoodsEvaluation(MesOrderItemEvaluationDto resources) {
+ mesOrderItemEvaluationMapper.addGoodsEvaluation(resources);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesRiderEvaluationServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesRiderEvaluationServiceImpl.java
new file mode 100644
index 0000000..166dfe2
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesRiderEvaluationServiceImpl.java
@@ -0,0 +1,91 @@
+package com.oying.modules.message.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.domain.MesRiderEvaluation;
+import com.oying.modules.message.domain.dto.MesRiderEvaluationQueryCriteria;
+import com.oying.modules.message.domain.myDto.MesRiderEvaluationDto;
+import com.oying.modules.message.mapper.MesRiderEvaluationMapper;
+import com.oying.modules.message.service.MesRiderEvaluationService;
+import com.oying.utils.FileUtil;
+import com.oying.utils.PageResult;
+import com.oying.utils.PageUtil;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author 李萌
+ * @description 服务实现
+ * @date 2025-07-25
+ **/
+@Service
+@RequiredArgsConstructor
+public class MesRiderEvaluationServiceImpl extends ServiceImpl<MesRiderEvaluationMapper, MesRiderEvaluation> implements MesRiderEvaluationService {
+
+ private final MesRiderEvaluationMapper mesRiderEvaluationMapper;
+
+ @Override
+ public PageResult<MesRiderEvaluation> queryAll(MesRiderEvaluationQueryCriteria criteria, Page<Object> page) {
+ return PageUtil.toPage(mesRiderEvaluationMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<MesRiderEvaluation> queryAll(MesRiderEvaluationQueryCriteria criteria) {
+ return mesRiderEvaluationMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MesRiderEvaluation resources) {
+ mesRiderEvaluationMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MesRiderEvaluation resources) {
+ MesRiderEvaluation mesRiderEvaluation = getById(resources.getId());
+ mesRiderEvaluation.copy(resources);
+ mesRiderEvaluationMapper.updateById(mesRiderEvaluation);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ mesRiderEvaluationMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<MesRiderEvaluation> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (MesRiderEvaluation mesRiderEvaluation : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("订单ID", mesRiderEvaluation.getOrderId());
+ map.put("订单编号 冗余", mesRiderEvaluation.getOrderNo());
+ map.put("骑手ID", mesRiderEvaluation.getRiderId());
+ map.put("骑手姓名 冗余", mesRiderEvaluation.getRiderName());
+ map.put("买家用户ID", mesRiderEvaluation.getBuyerId());
+ map.put("骑手服务评分", mesRiderEvaluation.getScore());
+ map.put("评价内容", mesRiderEvaluation.getContent());
+ map.put("创建人", mesRiderEvaluation.getCreateBy());
+ map.put("创建时间", mesRiderEvaluation.getCreateTime());
+ map.put("更新人", mesRiderEvaluation.getUpdateBy());
+ map.put("更新时间", mesRiderEvaluation.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void addRiderEvaluation(MesRiderEvaluationDto resources) {
+ mesRiderEvaluationMapper.addRiderEvaluation(resources);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesShopReplyServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesShopReplyServiceImpl.java
new file mode 100644
index 0000000..fb9da35
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesShopReplyServiceImpl.java
@@ -0,0 +1,79 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MesShopReply;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MesShopReplyService;
+import com.oying.modules.message.domain.dto.MesShopReplyQueryCriteria;
+import com.oying.modules.message.mapper.MesShopReplyMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+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 李萌
+* @date 2025-07-25
+**/
+@Service
+@RequiredArgsConstructor
+public class MesShopReplyServiceImpl extends ServiceImpl<MesShopReplyMapper, MesShopReply> implements MesShopReplyService {
+
+ private final MesShopReplyMapper mesShopReplyMapper;
+
+ @Override
+ public PageResult<MesShopReply> queryAll(MesShopReplyQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(mesShopReplyMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<MesShopReply> queryAll(MesShopReplyQueryCriteria criteria){
+ return mesShopReplyMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MesShopReply resources) {
+ mesShopReplyMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MesShopReply resources) {
+ MesShopReply mesShopReply = getById(resources.getId());
+ mesShopReply.copy(resources);
+ mesShopReplyMapper.updateById(mesShopReply);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ mesShopReplyMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<MesShopReply> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (MesShopReply mesShopReply : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("mes_order_evaluation.id", mesShopReply.getEvaluationId());
+ map.put("1=商品评价回复 2=店铺服务评价回复", mesShopReply.getReplyType());
+ map.put("回复内容", mesShopReply.getContent());
+ map.put("商户ID", mesShopReply.getCreateBy());
+ map.put("创建时间", mesShopReply.getCreateTime());
+ map.put("更新人", mesShopReply.getUpdateBy());
+ map.put("更新时间", mesShopReply.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderBuyerServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderBuyerServiceImpl.java
deleted file mode 100644
index 212e818..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderBuyerServiceImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.oying.modules.message.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.oying.modules.message.domain.MessageOrderBuyer;
-import com.oying.utils.FileUtil;
-import lombok.RequiredArgsConstructor;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.message.service.MessageOrderBuyerService;
-import com.oying.modules.message.domain.dto.MessageOrderBuyerQueryCriteria;
-import com.oying.modules.message.mapper.MessageOrderBuyerMapper;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import com.oying.utils.PageUtil;
-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 李萌
-* @date 2025-05-20
-**/
-@Service
-@RequiredArgsConstructor
-public class MessageOrderBuyerServiceImpl extends ServiceImpl<MessageOrderBuyerMapper, MessageOrderBuyer> implements MessageOrderBuyerService {
-
- private final MessageOrderBuyerMapper messageOrderBuyerMapper;
-
- @Override
- public PageResult<MessageOrderBuyer> queryAll(MessageOrderBuyerQueryCriteria criteria, Page<Object> page){
- return PageUtil.toPage(messageOrderBuyerMapper.findAll(criteria, page));
- }
-
- @Override
- public List<MessageOrderBuyer> queryAll(MessageOrderBuyerQueryCriteria criteria){
- return messageOrderBuyerMapper.findAll(criteria);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void create(MessageOrderBuyer resources) {
- messageOrderBuyerMapper.insert(resources);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void update(MessageOrderBuyer resources) {
- MessageOrderBuyer messageOrderBuyer = getById(resources.getId());
- messageOrderBuyer.copy(resources);
- messageOrderBuyerMapper.updateById(messageOrderBuyer);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void deleteAll(List<Integer> ids) {
- messageOrderBuyerMapper.deleteBatchIds(ids);
- }
-
- @Override
- public void download(List<MessageOrderBuyer> all, HttpServletResponse response) throws IOException {
- List<Map<String, Object>> list = new ArrayList<>();
- for (MessageOrderBuyer messageOrderBuyer : all) {
- Map<String, Object> map = new LinkedHashMap<>();
- map.put("订单ID", messageOrderBuyer.getOrderId());
- map.put("消息类型(订单状态变化、订单送达)", messageOrderBuyer.getMessageType());
- map.put("消息内容", messageOrderBuyer.getMessageContent());
- map.put("跳转链接", messageOrderBuyer.getLink());
- map.put("创建时间", messageOrderBuyer.getCreateTime());
- list.add(map);
- }
- FileUtil.downloadExcel(list, response);
- }
-
- @Override
- public MessageOrderBuyer findByOrderId(Integer orderId) {
- return baseMapper.selectOne(new QueryWrapper<MessageOrderBuyer>().eq("order_id", orderId));
- }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderLeaveServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderLeaveServiceImpl.java
deleted file mode 100644
index 9d28813..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderLeaveServiceImpl.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.oying.modules.message.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.oying.modules.message.domain.MessageOrderLeave;
-import com.oying.utils.FileUtil;
-import lombok.RequiredArgsConstructor;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.message.service.MessageOrderLeaveService;
-import com.oying.modules.message.domain.dto.MessageOrderLeaveQueryCriteria;
-import com.oying.modules.message.mapper.MessageOrderLeaveMapper;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import com.oying.utils.PageUtil;
-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 李萌
-* @date 2025-05-20
-**/
-@Service
-@RequiredArgsConstructor
-public class MessageOrderLeaveServiceImpl extends ServiceImpl<MessageOrderLeaveMapper, MessageOrderLeave> implements MessageOrderLeaveService {
-
- private final MessageOrderLeaveMapper messageOrderLeaveMapper;
-
- @Override
- public PageResult<MessageOrderLeave> queryAll(MessageOrderLeaveQueryCriteria criteria, Page<Object> page){
- return PageUtil.toPage(messageOrderLeaveMapper.findAll(criteria, page));
- }
-
- @Override
- public List<MessageOrderLeave> queryAll(MessageOrderLeaveQueryCriteria criteria){
- return messageOrderLeaveMapper.findAll(criteria);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void create(MessageOrderLeave resources) {
- messageOrderLeaveMapper.insert(resources);
- }
-
-// @Override
-// @Transactional(rollbackFor = Exception.class)
-// public void update(MessageOrderLeave resources) {
-// MessageOrderLeave messageOrderLeave = getById(resources.getId());
-// messageOrderLeave.copy(resources);
-// messageOrderLeaveMapper.updateById(messageOrderLeave);
-// }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void deleteAll(List<Integer> ids) {
- messageOrderLeaveMapper.deleteBatchIds(ids);
- }
-
- @Override
- public void download(List<MessageOrderLeave> all, HttpServletResponse response) throws IOException {
- List<Map<String, Object>> list = new ArrayList<>();
- for (MessageOrderLeave messageOrderLeave : all) {
- Map<String, Object> map = new LinkedHashMap<>();
- map.put("订单ID", messageOrderLeave.getOrderId());
- map.put("顾客评价内容", messageOrderLeave.getCustomerReview());
- map.put("商家回复内容", messageOrderLeave.getSellerReply());
- map.put("跳转链接", messageOrderLeave.getLink());
- map.put("创建时间", messageOrderLeave.getCreateTime());
- list.add(map);
- }
- FileUtil.downloadExcel(list, response);
- }
-
- /**
- * 根据订单ID查找留言信息
- * @param orderId 订单ID
- * @return 匹配的留言记录,若不存在则返回 null
- */
- public MessageOrderLeave findByOrderId(Integer orderId) {
- return baseMapper.selectOne(new QueryWrapper<MessageOrderLeave>()
- .eq("order_id", orderId));
- }
-
-}
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
deleted file mode 100644
index a248ec6..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package com.oying.modules.message.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.oying.modules.message.domain.MessageOrderSeller;
-import com.oying.utils.FileUtil;
-import lombok.RequiredArgsConstructor;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-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;
-import com.oying.utils.PageUtil;
-
-import java.util.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-
-import com.oying.utils.PageResult;
-
-/**
-* @description 服务实现
-* @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){
- return PageUtil.toPage(messageOrderSellerMapper.findAll(criteria, page));
- }
-
- @Override
- public List<MessageOrderSeller> queryAll(MessageOrderSellerQueryCriteria criteria){
- return messageOrderSellerMapper.findAll(criteria);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void create(MessageOrderSeller resources) {
- messageOrderSellerMapper.insert(resources);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void update(MessageOrderSeller resources) {
- MessageOrderSeller messageOrderSeller = getById(resources.getId());
- messageOrderSeller.copy(resources);
- messageOrderSellerMapper.updateById(messageOrderSeller);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void deleteAll(List<Integer> ids) {
- messageOrderSellerMapper.deleteBatchIds(ids);
- }
-
- @Override
- public void download(List<MessageOrderSeller> all, HttpServletResponse response) throws IOException {
- List<Map<String, Object>> list = new ArrayList<>();
- for (MessageOrderSeller messageOrderSeller : all) {
- Map<String, Object> map = new LinkedHashMap<>();
- map.put(" orderId", messageOrderSeller.getOrderId());
- map.put(" messageType", messageOrderSeller.getMessageType());
- map.put(" messageContent", messageOrderSeller.getMessageContent());
- map.put(" link", messageOrderSeller.getLink());
- map.put(" createTime", messageOrderSeller.getCreateTime());
- list.add(map);
- }
- FileUtil.downloadExcel(list, response);
- }
-
- @Override
- public MessageOrderSeller findByOrderId(Integer orderId) {
- return baseMapper.selectOne(new QueryWrapper<MessageOrderSeller>().eq("order_id", orderId));
- }
-
- @Override
- public List<MessageOrderSeller> findByStoreId(String storeId) {
- return messageOrderSellerMapper.findByStoreId(storeId);
- }
-
- @Override
- public boolean updateMessageOrderSellerRead(Integer orderId) {
- return messageOrderSellerMapper.updateMessageOrderSellerRead(orderId);
- }
-
- /**
- * 保存或更新 MessageOrderSeller 记录。
- * <p>
- * 该方法根据传入的 MessageOrderSeller 对象,将数据插入到数据库中。
- * 如果记录已存在,则更新;如果不存在,则插入新记录。
- * </p>
- * <p>
- * 必须字段:
- * - orderId:订单 ID
- * - storeId:店铺 ID
- * </p>
- * <p>
- * 可选字段:
- * - messageType:消息类型 : 暂时不用
- * - messageContent:消息内容 : "订单已提交" :"支付成功" 商家已接单 骑手已接单".......com.oying.modules.message.common.OrderStatusEnum
- * - link:链接
- * - flag:标志字段(默认值为未读 0)
- * </p>
- *
- * @param resources MessageOrderSeller 对象,包含需要保存或更新的数据。
- * @return true 表示保存成功,false 表示保存失败。
- *
- * 目前插入orderId storeId messageContent即可,其他保留---------
- */
- @Override
- public boolean saveMessageOrderSellerByOrderIdAndStoreId(MessageOrderSeller 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/java/com/oying/modules/message/service/impl/MessageSystemAdvertiseServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemAdvertiseServiceImpl.java
deleted file mode 100644
index e298a07..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemAdvertiseServiceImpl.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.oying.modules.message.service.impl;
-
-import com.oying.modules.message.domain.MessageSystemAdvertise;
-import com.oying.utils.FileUtil;
-import lombok.RequiredArgsConstructor;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.message.service.MessageSystemAdvertiseService;
-import com.oying.modules.message.domain.dto.MessageSystemAdvertiseQueryCriteria;
-import com.oying.modules.message.mapper.MessageSystemAdvertiseMapper;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import com.oying.utils.PageUtil;
-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 leomon
-* @date 2025-06-05
-**/
-@Service
-@RequiredArgsConstructor
-public class MessageSystemAdvertiseServiceImpl extends ServiceImpl<MessageSystemAdvertiseMapper, MessageSystemAdvertise> implements MessageSystemAdvertiseService {
-
- private final MessageSystemAdvertiseMapper messageSystemAdvertiseMapper;
-
- @Override
- public PageResult<MessageSystemAdvertise> queryAll(MessageSystemAdvertiseQueryCriteria criteria, Page<Object> page){
- return PageUtil.toPage(messageSystemAdvertiseMapper.findAll(criteria, page));
- }
-
- @Override
- public List<MessageSystemAdvertise> queryAll(MessageSystemAdvertiseQueryCriteria criteria){
- return messageSystemAdvertiseMapper.findAll(criteria);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void create(MessageSystemAdvertise resources) {
- messageSystemAdvertiseMapper.insert(resources);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void update(MessageSystemAdvertise resources) {
- MessageSystemAdvertise messageSystemAdvertise = getById(resources.getId());
- messageSystemAdvertise.copy(resources);
- messageSystemAdvertiseMapper.updateById(messageSystemAdvertise);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void deleteAll(List<Long> ids) {
- messageSystemAdvertiseMapper.deleteBatchIds(ids);
- }
-
- @Override
- public void download(List<MessageSystemAdvertise> all, HttpServletResponse response) throws IOException {
- List<Map<String, Object>> list = new ArrayList<>();
- for (MessageSystemAdvertise messageSystemAdvertise : all) {
- Map<String, Object> map = new LinkedHashMap<>();
- map.put("广告标题", messageSystemAdvertise.getTitle());
- map.put("广告内容", messageSystemAdvertise.getContent());
- map.put("广告图片链接", messageSystemAdvertise.getImageUrl());
- map.put("广告跳转链接", messageSystemAdvertise.getLinkUrl());
- map.put("广告状态(0: 禁用;1: 启用)", messageSystemAdvertise.getStatus());
- map.put("创建人", messageSystemAdvertise.getCreateBy());
- map.put("更新人", messageSystemAdvertise.getUpdateBy());
- map.put("创建时间", messageSystemAdvertise.getCreateTime());
- map.put("更新时间", messageSystemAdvertise.getUpdateTime());
- list.add(map);
- }
- FileUtil.downloadExcel(list, response);
- }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemServiceImpl.java
deleted file mode 100644
index 0fc9845..0000000
--- a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemServiceImpl.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.oying.modules.message.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.oying.modules.message.domain.MessageOrderLeave;
-import com.oying.modules.message.domain.MessageSystem;
-import com.oying.utils.FileUtil;
-import lombok.RequiredArgsConstructor;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.oying.modules.message.service.MessageSystemService;
-import com.oying.modules.message.domain.dto.MessageSystemQueryCriteria;
-import com.oying.modules.message.mapper.MessageSystemMapper;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import com.oying.utils.PageUtil;
-
-import java.util.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-
-import com.oying.utils.PageResult;
-
-/**
- * @description 服务实现
- * @author 李萌
- * @date 2025-05-20
- **/
-@Service
-@RequiredArgsConstructor
-public class MessageSystemServiceImpl extends ServiceImpl<MessageSystemMapper, MessageSystem> implements MessageSystemService {
-
- private final MessageSystemMapper messageSystemMapper;
-
- @Override
- public PageResult<MessageSystem> queryAll(MessageSystemQueryCriteria criteria, Page<Object> page){
- return PageUtil.toPage(messageSystemMapper.findAll(criteria, page));
- }
-
- @Override
- public List<MessageSystem> queryAll(MessageSystemQueryCriteria criteria){
- return messageSystemMapper.findAll(criteria);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void create(MessageSystem resources) {
- messageSystemMapper.insert(resources);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void update(MessageSystem resources) {
- MessageSystem messageSystem = getById(resources.getId());
- messageSystem.copy(resources);
- messageSystemMapper.updateById(messageSystem);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void deleteAll(List<Integer> ids) {
- messageSystemMapper.deleteBatchIds(ids);
- }
-
- @Override
- public void download(List<MessageSystem> all, HttpServletResponse response) throws IOException {
- List<Map<String, Object>> list = new ArrayList<>();
- for (MessageSystem messageSystem : all) {
- Map<String, Object> map = new LinkedHashMap<>();
- map.put("系统维护开始时间", messageSystem.getStartTime());
- map.put("系统维护截至时间", messageSystem.getEndTime());
- list.add(map);
- }
- FileUtil.downloadExcel(list, response);
- }
-
-
-
-
-}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/domain/Product.java b/oying-system/src/main/java/com/oying/modules/pc/product/domain/Product.java
index 566ea69..2c5e76f 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/domain/Product.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/domain/Product.java
@@ -58,6 +58,9 @@
@ApiModelProperty(value = "状态")
private Integer status;
+ @ApiModelProperty(value = "上架状态")
+ private Integer shelfStatus;
+
@NotBlank
@ApiModelProperty(value = "主图片")
private String mainImageId;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditData.java b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditData.java
index 7f8f95d..d383ca0 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditData.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditData.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.product.domain.dto;
+import com.oying.modules.pc.product.domain.Product;
import com.oying.modules.pc.store.domain.Store;
import com.oying.modules.pc.store.domain.dto.StoreRevisionRecord;
import lombok.Data;
@@ -7,7 +8,8 @@
@Data
public class ProductAuditData {
- private Store store;
- private StoreRevisionRecord revisionRecord;
+ private Product originalStore;
+ private Product product;
+ private ProductRevisionRecord revisionRecord;
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java
index d91c32d..32f5e4b 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java
@@ -13,10 +13,19 @@
@Data
public class ProductAuditQueryCriteria {
- @NotNull
+ private String blurry;
+
@ApiModelProperty(value = "商品ID")
private Long productId;
+ @ApiModelProperty(value = "商品名称")
+ private String productName;
+
+ @ApiModelProperty(value = "商品标题")
+ private String productTitle;
+
+ private String createBy;
+
@NotBlank
@ApiModelProperty(value = "类型")
private String type;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductQueryCriteria.java
index 644f932..9ea4244 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductQueryCriteria.java
@@ -21,6 +21,8 @@
private Integer status;
+ private Integer shelfStatus;
+
private Long categoryId;
private Long secondCategoryId;
@@ -35,4 +37,8 @@
private Integer limit;
+ private String sortColumn;
+
+ private String sortDirection;
+
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductRevisionRecord.java b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductRevisionRecord.java
index ae1e04a..20770cb 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductRevisionRecord.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductRevisionRecord.java
@@ -10,23 +10,5 @@
@Data
public class ProductRevisionRecord {
-
- @ApiModelProperty(value = "店铺ID")
- private Long storeId;
-
- @ApiModelProperty(value = "店铺名称")
- private String storeName;
-
- @ApiModelProperty(value = "资质")
- private List<StoreQualification> qualifications = new ArrayList<>();
-
- @ApiModelProperty(value = "删除的资质")
- private List<Long> deletedQualificationIds = new ArrayList<>();
-
- @ApiModelProperty(value = "修改的资质")
- private List<StoreQualificationUpdateRequest> updatedQualifications = new ArrayList<>();
-
- @ApiModelProperty(value = "新增的资质")
- private List<StoreQualification> newQualifications = new ArrayList<>();
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java b/oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java
index dad7e69..33c69e1 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.oying.modules.pc.product.domain.ProductAudit;
import com.oying.modules.pc.product.domain.dto.ProductAuditQueryCriteria;
+import com.oying.modules.pc.product.view.ProductAuditView;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -17,7 +18,7 @@
@Mapper
public interface ProductAuditMapper extends BaseMapper<ProductAudit> {
- IPage<ProductAudit> findAll(@Param("criteria") ProductAuditQueryCriteria criteria, Page<Object> page);
+ IPage<ProductAuditView> findAll(@Param("criteria") ProductAuditQueryCriteria criteria, Page<Object> page);
- List<ProductAudit> findAll(@Param("criteria") ProductAuditQueryCriteria criteria);
+ List<ProductAuditView> findAll(@Param("criteria") ProductAuditQueryCriteria criteria);
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java
index 149958d..a0a2299 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java
@@ -76,7 +76,7 @@
return ResponseEntity.ok(R.success(pageResult));
}
- @GetMapping(value = "/{productId}}")
+ @GetMapping(value = "/{productId}")
@ApiOperation("查询商品")
// @PreAuthorize("@el.check('product:list')")
public ResponseEntity<?> getProduct(@PathVariable Long productId) {
@@ -87,8 +87,8 @@
return ResponseEntity.ok(R.success(product));
}
- @GetMapping(value = "/{productId}}/details")
- @ApiOperation("查询商品")
+ @GetMapping(value = "/{productId}/details")
+ @ApiOperation("查询商品详情")
// @PreAuthorize("@el.check('product:list')")
public ResponseEntity<?> getProductDetails(@PathVariable Long productId) {
Product product = productService.getById(productId);
@@ -99,16 +99,16 @@
return ResponseEntity.ok(R.success(product));
}
- @GetMapping(value = "/{productId}}/images")
- @ApiOperation("查询商品")
+ @GetMapping(value = "/{productId}/images")
+ @ApiOperation("查询商品图片")
// @PreAuthorize("@el.check('product:list')")
public ResponseEntity<?> getProductImages(@PathVariable Long productId) {
return ResponseEntity.ok(R.success(productImageService.queryImagesByProductId(productId)));
}
- @GetMapping(value = "/{productId}}/labels")
- @ApiOperation("查询商品")
+ @GetMapping(value = "/{productId}/labels")
+ @ApiOperation("查询商品标签信息")
// @PreAuthorize("@el.check('product:list')")
public ResponseEntity<?> getProductLabels(@PathVariable Long productId) {
return ResponseEntity.ok(R.success(productLabelService.queryLabelsByProductId(productId)));
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java
index 000ecca..0e2ec45 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.oying.modules.pc.product.domain.Product;
import com.oying.modules.pc.product.domain.dto.ProductQueryCriteria;
+import com.oying.modules.pc.product.domain.enums.ProductStatusEnum;
import com.oying.modules.pc.product.service.ProductImageService;
import com.oying.modules.pc.product.service.ProductLabelService;
import com.oying.modules.pc.product.service.ProductService;
@@ -54,6 +55,7 @@
criteria.setCategoryId(categoryId);
criteria.setSecondCategoryId(secondCategoryId);
criteria.setBlurry(blurry);
+ criteria.setShelfStatus(ProductStatusEnum.AVAILABLE.getValue());
Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
PageResult<Product> productPageResult = productService.queryAll(criteria, page);
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductMerchantController.java b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductMerchantController.java
index 800f96f..899e619 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductMerchantController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductMerchantController.java
@@ -124,6 +124,16 @@
return ResponseEntity.noContent().build();
}
+ @PostMapping(value = "/delete")
+ @Log("批量删除商品")
+ @ApiOperation("批量删除商品")
+ //@PreAuthorize("@el.check('merchant:product:batchDel') " +
+ // "and @storeMerchantOwnershipService.check(#storeId)")
+ public ResponseEntity<?> delProduct(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ productMerchantService.batchDelete(ids);
+ return ResponseEntity.noContent().build();
+ }
+
@PutMapping(value = "/{productId}/on")
@Log("上架商品")
@ApiOperation("上架商品")
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java b/oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java
index 66ce99d..7929629 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.oying.modules.pc.product.domain.ProductAudit;
import com.oying.modules.pc.product.domain.dto.ProductAuditQueryCriteria;
+import com.oying.modules.pc.product.view.ProductAuditView;
import com.oying.utils.PageResult;
import javax.servlet.http.HttpServletResponse;
@@ -24,7 +25,7 @@
* @param page 分页参数
* @return PageResult
*/
- PageResult<ProductAudit> queryAll(ProductAuditQueryCriteria criteria, Page<Object> page);
+ PageResult<ProductAuditView> queryAll(ProductAuditQueryCriteria criteria, Page<Object> page);
/**
* 查询所有数据不分页
@@ -32,7 +33,7 @@
* @param criteria 条件参数
* @return List<StoreRevisionDto>
*/
- List<ProductAudit> queryAll(ProductAuditQueryCriteria criteria);
+ List<ProductAuditView> queryAll(ProductAuditQueryCriteria criteria);
/**
* 商品ID查询修订数据,
@@ -43,6 +44,14 @@
ProductAudit getByProductId(Long productId);
/**
+ * 是否有待审记录
+ *
+ * @param productId 必须的参数,不能为null
+ * @return 查询到的结果
+ */
+ boolean hasPendingByStoreId(Long productId);
+
+ /**
* 创建
*
* @param resources /
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java
index 6713397..d55c18b 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java
@@ -10,6 +10,8 @@
import com.oying.modules.pc.product.events.ProductAuditVerdictEvent;
import com.oying.modules.pc.product.mapper.ProductAuditMapper;
import com.oying.modules.pc.product.service.ProductAuditService;
+import com.oying.modules.pc.product.view.ProductAuditView;
+import com.oying.modules.pc.store.domain.StoreAudit;
import com.oying.utils.FileUtil;
import com.oying.utils.PageResult;
import com.oying.utils.PageUtil;
@@ -39,12 +41,12 @@
private final ProductAuditMapper productAuditMapper;
@Override
- public PageResult<ProductAudit> queryAll(ProductAuditQueryCriteria criteria, Page<Object> page) {
+ public PageResult<ProductAuditView> queryAll(ProductAuditQueryCriteria criteria, Page<Object> page) {
return PageUtil.toPage(productAuditMapper.findAll(criteria, page));
}
@Override
- public List<ProductAudit> queryAll(ProductAuditQueryCriteria criteria) {
+ public List<ProductAuditView> queryAll(ProductAuditQueryCriteria criteria) {
return productAuditMapper.findAll(criteria);
}
@@ -56,6 +58,14 @@
}
@Override
+ public boolean hasPendingByStoreId(Long productId) {
+ LambdaQueryWrapper<ProductAudit> wrapper = new LambdaQueryWrapper<ProductAudit>()
+ .eq(ProductAudit::getProductId, productId)
+ .eq(ProductAudit::getStatus, AuditStatusEnum.PENDING.getValue());
+ return productAuditMapper.selectCount(wrapper) > 0;
+ }
+
+ @Override
@Transactional(rollbackFor = Exception.class)
public void create(ProductAudit resources) {
productAuditMapper.insert(resources);
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java
index 583047a..24ed038 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductMerchantServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjUtil;
+import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.oying.exception.BadRequestException;
import com.oying.exception.EntityNotFoundException;
@@ -12,6 +13,7 @@
import com.oying.modules.pc.product.domain.ProductAudit;
import com.oying.modules.pc.product.domain.ProductImage;
import com.oying.modules.pc.product.domain.ProductLabel;
+import com.oying.modules.pc.product.domain.dto.ProductAuditData;
import com.oying.modules.pc.product.domain.dto.ProductImageCreateRequest;
import com.oying.modules.pc.product.domain.dto.ProductMerchantCreateRequest;
import com.oying.modules.pc.product.domain.dto.ProductMerchantUpdateRequest;
@@ -76,7 +78,7 @@
@Transactional(rollbackFor = Exception.class)
public void update(ProductMerchantUpdateRequest request) {
Product existingProduct = this.findOrThrow(request.getProductId());
- this.validateApprovedStatus(existingProduct.getStatus());
+ this.validateApprovedStatus(existingProduct.getShelfStatus());
this.processImagesUpdate(request);
this.processLabelsUpdate(request);
BeanUtils.copyProperties(request, existingProduct);
@@ -87,7 +89,7 @@
@Transactional(rollbackFor = Exception.class)
public void updateImages(ProductMerchantUpdateRequest request) {
Product existingProduct = this.findOrThrow(request.getProductId());
- this.validateApprovedStatus(existingProduct.getStatus());
+ this.validateApprovedStatus(existingProduct.getShelfStatus());
this.findOrThrow(request.getProductId());
this.processImagesUpdate(request);
}
@@ -96,7 +98,7 @@
@Transactional(rollbackFor = Exception.class)
public void updateLabels(ProductMerchantUpdateRequest request) {
Product existingProduct = this.findOrThrow(request.getProductId());
- this.validateApprovedStatus(existingProduct.getStatus());
+ this.validateApprovedStatus(existingProduct.getShelfStatus());
this.findOrThrow(request.getProductId());
this.processImagesUpdate(request);
}
@@ -109,10 +111,22 @@
@Override
public void putOnShelf(Long productId) {
+ Product existingProduct = productService.getById(productId);
+ if (ProductStatusEnum.AVAILABLE.getValue().equals(existingProduct.getShelfStatus())) {
+ throw new BadRequestException("商品已上架");
+ }
+
+ if (productAuditService.hasPendingByStoreId(productId)) {
+ throw new BadRequestException("已在审核中");
+ }
+
ProductAudit audit = new ProductAudit();
audit.setProductId(productId);
audit.setType(ProductChangeTypeEnum.PUT_ON_SHELF.name());
audit.setStatus(AuditStatusEnum.PENDING.getValue());
+ ProductAuditData auditData = new ProductAuditData();
+ auditData.setOriginalStore(existingProduct);
+ audit.setData(JSON.toJSONString(auditData));
productAuditService.create(audit);
LambdaUpdateWrapper<Product> wrapper = new LambdaUpdateWrapper<Product>()
.eq(Product::getProductId, productId)
@@ -122,9 +136,14 @@
@Override
public void takeOffShelf(Long productId) {
+ Product existingProduct = productService.getById(productId);
+ if (ProductStatusEnum.NO_AVAILABLE.getValue().equals(existingProduct.getShelfStatus())) {
+ return;
+ }
LambdaUpdateWrapper<Product> wrapper = new LambdaUpdateWrapper<Product>()
.eq(Product::getProductId, productId)
- .set(Product::getStatus, ProductStatusEnum.NO_AVAILABLE.getValue());
+ .set(Product::getStatus, ProductStatusEnum.NO_AVAILABLE.getValue())
+ .set(Product::getShelfStatus, ProductStatusEnum.NO_AVAILABLE.getValue());
productService.update(wrapper);
}
@@ -179,11 +198,14 @@
private void handlePutOnShelfAuditEvent(ProductAudit audit) {
AuditStatusEnum auditStatus = AuditStatusEnum.get(audit.getStatus());
+ Product existingProduct = productService.getById(audit.getProductId());
if (AuditStatusEnum.APPROVED.equals(auditStatus)) {
- Product existingProduct = productService.getById(audit.getProductId());
+ existingProduct.setStatus(ProductStatusEnum.AVAILABLE.getValue());
+ existingProduct.setShelfStatus(ProductStatusEnum.AVAILABLE.getValue());
+ } else {
existingProduct.setStatus(auditStatus.getValue());
- productService.updateById(existingProduct);
}
+ productService.updateById(existingProduct);
}
private void validateApprovedStatus(Integer status) {
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductAuditView.java b/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductAuditView.java
new file mode 100644
index 0000000..2521747
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductAuditView.java
@@ -0,0 +1,50 @@
+package com.oying.modules.pc.product.view;
+
+import com.oying.base.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* @description /
+* @author lzp
+* @date 2025-07-01
+**/
+@Getter
+@Setter
+public class ProductAuditView extends BaseEntity implements Serializable {
+
+ @ApiModelProperty(value = "商品ID")
+ private Long productId;
+
+ @ApiModelProperty(value = "商品名称")
+ private String productName;
+
+ @ApiModelProperty(value = "商品标题")
+ private String productTitle;
+
+ @ApiModelProperty(value = "审核ID")
+ private Long auditId;
+
+ @ApiModelProperty(value = "类型")
+ private String type;
+
+ @ApiModelProperty(value = "审核状态")
+ private Integer status;
+
+ @ApiModelProperty(value = "审核原因")
+ private String reason;
+
+ @ApiModelProperty(value = "审核人")
+ private String auditor;
+
+ @ApiModelProperty(value = "审核时间")
+ private Date auditTime;
+
+ @ApiModelProperty(value = "审核内容")
+ private String data;
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductCustomerView.java b/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductCustomerView.java
index 75aebc4..08347c8 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductCustomerView.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductCustomerView.java
@@ -32,6 +32,12 @@
@ApiModelProperty(value = "商品标题")
private String title;
+ @ApiModelProperty(value = "一级分类ID")
+ private Long categoryId;
+
+ @ApiModelProperty(value = "二级分类ID")
+ private Long secondCategoryId;
+
@ApiModelProperty(value = "状态")
private Integer status;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java
index 5ba2fd9..833fe2a 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.oying.base.BaseEntity;
import com.oying.modules.pc.product.domain.Product;
import io.swagger.annotations.ApiModelProperty;
@@ -78,19 +79,15 @@
@ApiModelProperty(value = "店铺标签,逗号分隔")
private String tags;
- @ApiModelProperty(value = "配送费用")
- private BigDecimal deliveryFee;
-
- @ApiModelProperty(value = "起送金额")
- private BigDecimal deliveryMinimum;
-
@ApiModelProperty(value = "联系电话")
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
@ApiModelProperty(value = "营业状态")
@@ -139,6 +136,15 @@
@ApiModelProperty(value = "评分")
private Double score = 0d;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
+ @ApiModelProperty(value = "配送费用")
+ private BigDecimal deliveryFee;
+
+ @ApiModelProperty(value = "起送金额")
+ private BigDecimal deliveryMinimum;
+
@TableField(exist = false)
@ApiModelProperty(value = "配送距离")
private Integer deliveryDuration = 0;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditData.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditData.java
index d60c325..47fe004 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditData.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditData.java
@@ -6,6 +6,7 @@
@Data
public class StoreAuditData {
+ private Store originalStore;
private Store store;
private StoreRevisionRecord revisionRecord;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java
index a9216ad..dd4607c 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java
@@ -13,10 +13,14 @@
@Data
public class StoreAuditQueryCriteria {
- @NotNull
- @ApiModelProperty(value = "店铺ID")
+ private String blurry;
+
private Long storeId;
+ private String storeName;
+
+ private String createBy;
+
@NotBlank
@ApiModelProperty(value = "类型")
private String type;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java
index 011205f..05c2404 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java
@@ -7,6 +7,7 @@
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
@@ -67,6 +68,9 @@
@ApiModelProperty(value = "是否支持自提")
private Integer selfPickup;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
@ApiModelProperty(value = "店铺资质", example = "[]")
private List<StoreQualificationCreateRequest> qualificationList = new ArrayList<>();
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java
index 7dc881f..c693101 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.domain.dto;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -39,9 +40,11 @@
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
private String businessHours;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java
index 0bc09b2..b53dfbd 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.domain.dto;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -60,6 +61,11 @@
@NotNull(groups = UpdateStoreDeliveryFeeGroup.class)
private BigDecimal deliveryFee;
+ public interface UpdateStorePackagingFeeGroup{}
+
+ @NotNull(groups = UpdateStorePackagingFeeGroup.class)
+ private BigDecimal packagingFee;
+
public interface UpdateStoreDeliveryMinimumGroup{}
@NotNull(groups = UpdateStoreDeliveryMinimumGroup.class)
@@ -73,9 +79,11 @@
public interface UpdateStoreBusinessHoursGroup{}
@NotNull(groups = UpdateStoreBusinessHoursGroup.class)
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@NotNull(groups = UpdateStoreBusinessHoursGroup.class)
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
public interface UpdateStoreAddressGroup{}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java
index 9ea552d..bf35cd7 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.domain.dto;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.oying.modules.pc.product.domain.Product;
import com.oying.modules.pc.store.domain.StoreQualification;
import io.swagger.annotations.ApiModelProperty;
@@ -61,13 +62,18 @@
@ApiModelProperty(value = "起送金额")
private BigDecimal deliveryMinimum;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
@ApiModelProperty(value = "联系电话")
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
@ApiModelProperty(value = "详细地址")
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java b/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java
index 8280a8e..1b37d45 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java
@@ -3,6 +3,8 @@
import com.oying.modules.pc.store.domain.StoreAudit;
import com.oying.modules.pc.store.domain.dto.StoreAuditQueryCriteria;
import java.util.List;
+
+import com.oying.modules.pc.store.view.StoreAuditView;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -16,7 +18,7 @@
@Mapper
public interface StoreAuditMapper extends BaseMapper<StoreAudit> {
- IPage<StoreAudit> findAll(@Param("criteria") StoreAuditQueryCriteria criteria, Page<Object> page);
+ IPage<StoreAuditView> findAll(@Param("criteria") StoreAuditQueryCriteria criteria, Page<Object> page);
- List<StoreAudit> findAll(@Param("criteria") StoreAuditQueryCriteria criteria);
+ List<StoreAuditView> findAll(@Param("criteria") StoreAuditQueryCriteria criteria);
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCategoryMerchantController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCategoryMerchantController.java
index d193a8e..6eefbd2 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCategoryMerchantController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCategoryMerchantController.java
@@ -126,10 +126,20 @@
@DeleteMapping
@Log("删除店铺类目")
@ApiOperation("删除店铺类目")
- @PreAuthorize("@el.check('storeCategory:del')" +
- " and @storeMerchantOwnershipService.check(#storeId)")
+ /*@PreAuthorize("@el.check('storeCategory:del')" +
+ " and @storeMerchantOwnershipService.check(#storeId)")*/
public ResponseEntity<?> deleteStoreCategory(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
storeCategoryService.deleteAll(ids);
return ResponseEntity.noContent().build();
}
+
+ @PostMapping(value = "/delete")
+ @Log("删除店铺类目")
+ @ApiOperation("删除店铺类目")
+ /*@PreAuthorize("@el.check('storeCategory:del')" +
+ " and @storeMerchantOwnershipService.check(#storeId)")*/
+ public ResponseEntity<?> delStoreCategory(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ storeCategoryService.deleteAll(ids);
+ return ResponseEntity.noContent().build();
+ }
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java
index b98c44f..8e0c22d 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java
@@ -1,5 +1,7 @@
package com.oying.modules.pc.store.rest;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.ObjUtil;
import com.oying.modules.pc.product.domain.Product;
import com.oying.modules.pc.product.domain.dto.ProductQueryCriteria;
@@ -18,7 +20,6 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
-import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@@ -59,7 +60,7 @@
public ResponseEntity<?> getStoreById(@PathVariable("storeId") Long storeId) {
Store store = storeService.getById(storeId);
CustomerStoreView view = new CustomerStoreView();
- BeanUtils.copyProperties(store, view);
+ BeanUtil.copyProperties(store, view, CopyOptions.create().setIgnoreNullValue(true));
view.setBusinessHours(BusinessHoursUtils.formatBusinessHours(store.getOpenTime(), store.getCloseTime()));
return ResponseEntity.ok(R.success(view));
}
@@ -68,16 +69,19 @@
@ApiOperation("查询店铺")
public ResponseEntity<?> getStoreDetailsById(@PathVariable("storeId") Long storeId) {
Store store = storeService.getById(storeId);
+ CustomerStoreView view = new CustomerStoreView();
+ BeanUtil.copyProperties(store, view, CopyOptions.create().setIgnoreNullValue(true));
+ view.setBusinessHours(BusinessHoursUtils.formatBusinessHours(store.getOpenTime(), store.getCloseTime()));
if (ObjUtil.isNotEmpty(store)) {
- store.setQualifications(storeQualificationService.getByStoreId(storeId));
+ view.setQualifications(storeQualificationService.getByStoreId(storeId));
}
- return ResponseEntity.ok(R.success(store));
+ return ResponseEntity.ok(R.success(view));
}
private List<Product> getProductsByStoreId(Long storeId) {
ProductQueryCriteria criteria = new ProductQueryCriteria();
criteria.setStoreId(storeId);
- criteria.setStatus(ProductStatusEnum.AVAILABLE.getValue());
+ criteria.setShelfStatus(ProductStatusEnum.AVAILABLE.getValue());
criteria.setLimit(3);
return productService.queryAll(criteria);
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java
index 4f5f2f0..0b9c3b1 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java
@@ -73,9 +73,9 @@
//@PreAuthorize("@el.check('merchant:store:getById')")
public ResponseEntity<?> getStoreById(@PathVariable Long storeId) {
Store store = storeService.getById(storeId);
- StoreMerchantView view = new StoreMerchantView();
- BeanUtils.copyProperties(store, view);
- return ResponseEntity.ok(R.success(view));
+ /*StoreMerchantView view = new StoreMerchantView();
+ BeanUtils.copyProperties(store, view);*/
+ return ResponseEntity.ok(R.success(store));
}
@GetMapping(value = "/{storeId}/details")
@@ -188,7 +188,7 @@
public ResponseEntity<?> updateAddress(@PathVariable("storeId") Long storeId,
@Validated(value = StoreFieldUpdateRequest.UpdateStoreAddressGroup.class)
@RequestBody StoreFieldUpdateRequest request) {
- storeService.updateAddress(storeId, request.getAddress(), request.getVersion());
+ storeService.updateAddress(storeId, request.getAddress(), request.getLongitude(), request.getLatitude(), request.getVersion());
return ResponseEntity.noContent().build();
}
@@ -277,6 +277,20 @@
}
/**
+ * 修改包装费用
+ */
+ @PatchMapping(value = "/{storeId}/packagingFee")
+ @ApiOperation("修改包装费用")
+ /*@PreAuthorize("@el.check('merchant:store:deliveryFee')" +
+ " and @storeMerchantOwnershipService.check(#storeId)")*/
+ public ResponseEntity<?> updatePackagingFee(@PathVariable("storeId") Long storeId,
+ @Validated(value = StoreFieldUpdateRequest.UpdateStorePackagingFeeGroup.class)
+ @RequestBody StoreFieldUpdateRequest request) {
+ storeService.updatePackagingFee(storeId, request.getPackagingFee(), request.getVersion());
+ return ResponseEntity.noContent().build();
+ }
+
+ /**
* 修改状态
*/
@PatchMapping(value = "/{storeId}/businessStatus")
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreQualificationMerchantController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreQualificationMerchantController.java
index aa31e18..c1eafde 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreQualificationMerchantController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreQualificationMerchantController.java
@@ -92,4 +92,14 @@
storeQualificationService.deleteAll(ids);
return ResponseEntity.noContent().build();
}
+
+ @PostMapping(value = "/delete")
+ @Log("删除店铺资质")
+ @ApiOperation("删除店铺资质")
+ //@PreAuthorize("@el.check('merchant:storeQualification:batchDel') " +
+ // "and @storeMerchantOwnershipService.check(#storeId)")
+ public ResponseEntity<?> batchDelete(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+ storeQualificationService.deleteAll(ids);
+ return ResponseEntity.noContent().build();
+ }
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java
index 180c43a..929adbe 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java
@@ -8,6 +8,7 @@
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.modules.pc.store.view.StoreAuditView;
import com.oying.utils.PageResult;
/**
@@ -23,14 +24,14 @@
* @param page 分页参数
* @return PageResult
*/
- PageResult<StoreAudit> queryAll(StoreAuditQueryCriteria criteria, Page<Object> page);
+ PageResult<StoreAuditView> queryAll(StoreAuditQueryCriteria criteria, Page<Object> page);
/**
* 查询所有数据不分页
* @param criteria 条件参数
* @return List<StoreRevisionDto>
*/
- List<StoreAudit> queryAll(StoreAuditQueryCriteria criteria);
+ List<StoreAuditView> queryAll(StoreAuditQueryCriteria criteria);
/**
* 店铺ID查询修订数据,
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java
index f5443f1..901a842 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java
@@ -50,7 +50,7 @@
boolean updateContactPhone(Long storeId, String contactPhone, Long version);
- boolean updateAddress(Long storeId, String address, Long version);
+ boolean updateAddress(Long storeId, String address, Double longitude, Double latitude, Long version);
boolean updateLocation(Long storeId, Double longitude, Double latitude, Long version);
@@ -64,6 +64,8 @@
boolean updateDeliveryFee(Long storeId, BigDecimal deliveryFee, Long version);
+ boolean updatePackagingFee(Long storeId, BigDecimal packagingFee, Long version);
+
boolean updateStatus(Long storeId, Integer status, Long version);
boolean existsByIdAndMerchantId(Long storeId, Long merchantId);
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java
index 3411955..a4cc8c5 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.service.impl;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,9 +11,8 @@
import com.oying.modules.pc.store.events.StoreAuditVerdictEvent;
import com.oying.modules.pc.store.mapper.StoreAuditMapper;
import com.oying.modules.pc.store.service.StoreAuditService;
-import com.oying.utils.FileUtil;
-import com.oying.utils.PageResult;
-import com.oying.utils.PageUtil;
+import com.oying.modules.pc.store.view.StoreAuditView;
+import com.oying.utils.*;
import lombok.RequiredArgsConstructor;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
@@ -20,10 +20,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* @author lzp
@@ -39,12 +36,12 @@
private final StoreAuditMapper storeAuditMapper;
@Override
- public PageResult<StoreAudit> queryAll(StoreAuditQueryCriteria criteria, Page<Object> page) {
+ public PageResult<StoreAuditView> queryAll(StoreAuditQueryCriteria criteria, Page<Object> page) {
return PageUtil.toPage(storeAuditMapper.findAll(criteria, page));
}
@Override
- public List<StoreAudit> queryAll(StoreAuditQueryCriteria criteria) {
+ public List<StoreAuditView> queryAll(StoreAuditQueryCriteria criteria) {
return storeAuditMapper.findAll(criteria);
}
@@ -91,6 +88,8 @@
throw new BadRequestException("审核状态错误");
}
existingAudit.copy(resources);
+ existingAudit.setAuditor(SecurityUtils.getCurrentUsername());
+ existingAudit.setAuditTime(new Date());
storeAuditMapper.updateById(existingAudit);
eventPublisher.publishEvent(new StoreAuditVerdictEvent(existingAudit.getAuditId()));
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreMerchantServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreMerchantServiceImpl.java
index f3ce233..121e5a4 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreMerchantServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreMerchantServiceImpl.java
@@ -65,6 +65,8 @@
BeanUtil.copyProperties(request, existingStore, CopyOptions.create().setIgnoreNullValue(true));
storeService.update(existingStore, true);
} else if (AuditStatusEnum.APPROVED.equals(existingStatus)) {
+ Store originalStore = new Store();
+ BeanUtil.copyProperties(existingStore, originalStore, CopyOptions.create().setIgnoreNullValue(true));
Store newStore = new Store();
newStore.setQualifications(ListUtil.of());
BeanUtil.copyProperties(request, newStore, CopyOptions.create().setIgnoreNullValue(true));
@@ -95,6 +97,7 @@
StoreRevisionRecord revisionRecord = new StoreRevisionRecord();
BeanUtil.copyProperties(request, revisionRecord, CopyOptions.create().setIgnoreNullValue(true));
StoreAuditData auditData = new StoreAuditData();
+ auditData.setOriginalStore(originalStore);
auditData.setStore(newStore);
auditData.setRevisionRecord(revisionRecord);
this.createLatestModification(request.getStoreId(), StoreChangeTypeEnum.STORE_UPDATE, auditData);
@@ -109,7 +112,9 @@
if (StoreStatusEnum.OPEN.equals(businessStatus) && !AuditStatusEnum.APPROVED.equals(existingStatus)) {
throw new BadRequestException("店铺未审核");
}
- storeService.updateStatus(existingStore.getStoreId(), businessStatus.getValue(), existingStore.getVersion());
+ existingStore.setStatus(businessStatus.getValue());
+ existingStore.setBusinessStatus(businessStatus.getValue());
+ storeService.update(existingStore, true);
}
@Override
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java
index 253d66c..4b09b6a 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java
@@ -1,6 +1,7 @@
package com.oying.modules.pc.store.service.impl;
import cn.hutool.core.util.ObjUtil;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -167,10 +168,16 @@
}
@Override
- public boolean updateAddress(Long storeId, String address, Long version) {
+ public boolean updateAddress(Long storeId, String address, Double longitude, Double latitude, Long version) {
Store existingStore = this.getOrThrow(storeId, version);
LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId, existingStore.getVersion())
.set(Store::getAddress, address);
+ if (ObjectUtil.isNotEmpty(longitude)) {
+ wrapper.set(Store::getLongitude, longitude);
+ }
+ if (ObjectUtil.isNotEmpty(latitude)) {
+ wrapper.set(Store::getLatitude, latitude);
+ }
return update(wrapper);
}
@@ -225,6 +232,14 @@
}
@Override
+ public boolean updatePackagingFee(Long storeId, BigDecimal packagingFee, Long version) {
+ Store existingStore = this.getOrThrow(storeId, version);
+ LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId, existingStore.getVersion())
+ .set(Store::getPackagingFee, packagingFee);
+ return update(wrapper);
+ }
+
+ @Override
public boolean updateStatus(Long storeId, Integer status, Long version) {
Store existingStore = this.getOrThrow(storeId, version);
LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId, existingStore.getVersion())
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java b/oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java
index b43552e..d3f2474 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java
@@ -1,12 +1,13 @@
package com.oying.modules.pc.store.view;
-import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.oying.modules.pc.store.domain.StoreQualification;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import lombok.Getter;
-import lombok.Setter;
+import java.math.BigDecimal;
import java.time.LocalTime;
+import java.util.List;
@Data
public class CustomerStoreView {
@@ -41,13 +42,22 @@
@ApiModelProperty(value = "联系电话")
private String contactPhone;
+ @ApiModelProperty(value = "营业时间")
+ private String businessHours;
+
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
- private String businessHours;
+ @ApiModelProperty(value = "营业状态")
+ private Integer businessStatus;
+
+ @ApiModelProperty(value = "市级代码")
+ private String cityCode;
@ApiModelProperty(value = "详细地址")
private String address;
@@ -70,6 +80,15 @@
@ApiModelProperty(value = "评分")
private Double score = 0d;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
+ @ApiModelProperty(value = "配送费用")
+ private BigDecimal deliveryFee;
+
+ @ApiModelProperty(value = "起送金额")
+ private BigDecimal deliveryMinimum;
+
@ApiModelProperty(value = "配送距离")
private Integer deliveryDuration = 0;
@@ -82,4 +101,7 @@
@ApiModelProperty(value = "月销售量")
private Integer monthlyUnitsSold = 0;
+ @ApiModelProperty(value = "资质")
+ private List<StoreQualification> qualifications;
+
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreAuditView.java b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreAuditView.java
new file mode 100644
index 0000000..81baf53
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreAuditView.java
@@ -0,0 +1,54 @@
+package com.oying.modules.pc.store.view;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.oying.base.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* @description /
+* @author lzp
+* @date 2025-07-01
+**/
+@Getter
+@Setter
+public class StoreAuditView extends BaseEntity implements Serializable {
+
+ @ApiModelProperty(value = "店铺ID")
+ private Long storeId;
+
+ @ApiModelProperty(value = "店铺名称")
+ private String storeName;
+
+ @ApiModelProperty(value = "审核ID")
+ private Long auditId;
+
+ @ApiModelProperty(value = "类型")
+ private String type;
+
+ @ApiModelProperty(value = "审核状态")
+ private Integer status;
+
+ @ApiModelProperty(value = "审核原因")
+ private String reason;
+
+ @ApiModelProperty(value = "审核人")
+ private String auditor;
+
+ @ApiModelProperty(value = "审核时间")
+ private Date auditTime;
+
+ @ApiModelProperty(value = "审核内容")
+ private String data;
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java
index cb84e75..1c8b870 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java
@@ -1,9 +1,13 @@
package com.oying.modules.pc.store.view;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.oying.modules.pc.store.domain.StoreQualification;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
import java.time.LocalTime;
+import java.util.List;
@Data
public class StoreMerchantView {
@@ -35,13 +39,18 @@
@ApiModelProperty(value = "店铺描述")
private String description;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
@ApiModelProperty(value = "联系电话")
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
@ApiModelProperty(value = "详细地址")
@@ -65,4 +74,7 @@
@ApiModelProperty(value = "版本号")
private Long version;
+ @ApiModelProperty(value = "资质")
+ private List<StoreQualification> qualifications;
+
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java
index 8f8c764..6652206 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.view;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -52,9 +53,11 @@
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
@ApiModelProperty(value = "市级代码")
diff --git a/oying-system/src/main/java/com/oying/modules/security/config/SecurityProperties.java b/oying-system/src/main/java/com/oying/modules/security/config/SecurityProperties.java
index 77a3b86..ff07ca3 100644
--- a/oying-system/src/main/java/com/oying/modules/security/config/SecurityProperties.java
+++ b/oying-system/src/main/java/com/oying/modules/security/config/SecurityProperties.java
@@ -55,11 +55,6 @@
*/
private Long renew;
- /**
- * 自定义redis key
- */
- private String generateOrderSn;
-
public String getTokenStartWith() {
return tokenStartWith + " ";
}
diff --git a/oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java b/oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java
index 5ce08d2..0eb367d 100644
--- a/oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java
+++ b/oying-system/src/main/java/com/oying/modules/security/rest/AuthController.java
@@ -230,7 +230,7 @@
@Log("骑手小程序:微信授权登录")
@ApiOperation("骑手小程序:微信授权登录")
@AnonymousPostMapping(value = "/rider/login/weixin")
- public ResponseEntity<Object> riderLoginWeixin(@Validated @RequestBody AuthUserWeixinDto authUser, HttpServletRequest request) throws Exception {
+ public ResponseEntity<Object> riderLoginWeixin(@Validated @RequestBody AuthUserWeixinDto authUser, HttpServletRequest request) {
JSONObject jsonObject;
switch (authUser.getType()) {
case OLD:
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/Order.java b/oying-system/src/main/java/com/oying/modules/sh/domain/Order.java
index c899502..93dd1ee 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/Order.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/Order.java
@@ -9,6 +9,7 @@
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
+import java.sql.Timestamp;
import java.util.Objects;
import java.util.Set;
@@ -56,9 +57,16 @@
private String orderRemark;
@NotBlank
- @ApiModelProperty(value = "预计送达时间")
+ @ApiModelProperty(value = "送达预计时间")
private String orderTime;
+ @ApiModelProperty(value = "送达完成时间")
+ private Timestamp orderFinishTime;
+
+ @NotNull
+ @ApiModelProperty(value = "打包费")
+ private BigDecimal packagingPrice;
+
@NotNull
@ApiModelProperty(value = "配送费")
private BigDecimal sendPrice;
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/OrderOperationLog.java b/oying-system/src/main/java/com/oying/modules/sh/domain/OrderOperationLog.java
index f837d29..553f0dc 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/OrderOperationLog.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/OrderOperationLog.java
@@ -42,6 +42,10 @@
private Integer operation = 0;
@NotBlank
+ @ApiModelProperty(value = "类型")
+ private String operationType;
+
+ @NotBlank
@ApiModelProperty(value = "用户操作描述")
private String operationDescribe = "提交订单";
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java b/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java
index 988d692..e6d3787 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturn.java
@@ -59,6 +59,10 @@
private String orderStoreNum;
@NotNull
+ @ApiModelProperty(value = "打包费")
+ private BigDecimal packagingPrice;
+
+ @NotNull
@ApiModelProperty(value = "配送费")
private BigDecimal sendPrice;
@@ -111,7 +115,7 @@
@ApiModelProperty(value = "实付金额")
private BigDecimal actuallyPayPrice;
- @ApiModelProperty(value = "退款价格")
+ @ApiModelProperty(value = "退款金额")
private BigDecimal refundPrice;
@ApiModelProperty(value = "退款状态")
@@ -123,7 +127,7 @@
@ApiModelProperty(value = "退款渠道")
private String channel;
- @ApiModelProperty(value = "退款原因")
+ @ApiModelProperty(value = "退货类型")
private String reason;
@ApiModelProperty(value = "备注")
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturnOperationLog.java b/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturnOperationLog.java
deleted file mode 100644
index 107c4e7..0000000
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturnOperationLog.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.oying.modules.sh.domain;
-
-import lombok.Data;
-import cn.hutool.core.bean.BeanUtil;
-import io.swagger.annotations.ApiModelProperty;
-import cn.hutool.core.bean.copier.CopyOptions;
-import java.sql.Timestamp;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
-* @description /
-* @author lixin
-* @date 2025-07-02
-**/
-@Data
-@TableName("sh_order_return_operation_log")
-public class OrderReturnOperationLog implements Serializable {
-
- @TableId(value = "log_id", type = IdType.AUTO)
- @ApiModelProperty(value = "主键")
- private Long logId;
-
- @NotBlank
- @ApiModelProperty(value = "订单号")
- private String returnNum;
-
- @NotBlank
- @ApiModelProperty(value = "用户账号")
- private String username;
-
- @NotBlank
- @ApiModelProperty(value = "用户类型(骑手、消费者、商家、平台)")
- private String userType;
-
- @NotNull
- @ApiModelProperty(value = "用户操作")
- private Integer operation;
-
- @NotBlank
- @ApiModelProperty(value = "用户操作描述")
- private String operationDescribe;
-
- @NotBlank
- @ApiModelProperty(value = "备注")
- private String remark;
-
- @NotNull
- @ApiModelProperty(value = "操作时的订单快照")
- private String snapshotData;
-
- @NotNull
- @ApiModelProperty(value = "操作时间")
- private Timestamp operationTime;
-
- public void copy(OrderReturnOperationLog source){
- BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
- }
-}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java
index 26b92d1..c7bf374 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java
@@ -24,6 +24,9 @@
@ApiModelProperty(value = "用户类型")
private String userType;
+ @ApiModelProperty(value = "类型")
+ private String operationType;
+
@ApiModelProperty(value = "订单号")
private String orderNum;
private List<Timestamp> operationTime;
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnOperationLogQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnOperationLogQueryCriteria.java
deleted file mode 100644
index 572a792..0000000
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnOperationLogQueryCriteria.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.oying.modules.sh.domain.dto;
-
-import lombok.Data;
-import java.sql.Timestamp;
-import java.util.List;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
-* @author lixin
-* @date 2025-07-02
-**/
-@Data
-public class OrderReturnOperationLogQueryCriteria{
-
- @ApiModelProperty(value = "页码", example = "1")
- private Integer page = 1;
-
- @ApiModelProperty(value = "每页数据量", example = "10")
- private Integer size = 10;
-
- @ApiModelProperty(value = "订单号")
- private String returnNum;
-
- @ApiModelProperty(value = "用户账号")
- private String username;
-
- @ApiModelProperty(value = "用户类型(骑手、消费者、商家、平台)")
- private String userType;
- private List<Timestamp> operationTime;
-}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/request/AuditOrderReturn.java b/oying-system/src/main/java/com/oying/modules/sh/domain/request/AuditOrderReturn.java
index 4133bab..851eca1 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/request/AuditOrderReturn.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/request/AuditOrderReturn.java
@@ -1,5 +1,6 @@
package com.oying.modules.sh.domain.request;
+import com.oying.utils.enums.ReturnAuditEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@@ -18,7 +19,7 @@
@ApiModelProperty(value = "退单号")
private String returnNum;
@ApiModelProperty(value = "审核状态")
- private String auditStatus;
+ private ReturnAuditEnum auditStatus;
@ApiModelProperty(value = "备注")
private String message;
@ApiModelProperty(value = "金额")
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/request/ReturnOrder.java b/oying-system/src/main/java/com/oying/modules/sh/domain/request/ReturnOrder.java
new file mode 100644
index 0000000..66afd21
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/request/ReturnOrder.java
@@ -0,0 +1,33 @@
+package com.oying.modules.sh.domain.request;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * @author xin
+ * @description
+ * @date 2025/7/20 17:17
+ */
+@Getter
+@Setter
+public class ReturnOrder {
+
+ @NotBlank
+ @ApiModelProperty(value = "订单号")
+ private String orderNum;
+ @NotBlank
+ @ApiModelProperty(value = "退货类型")
+ private String reason;
+ @NotBlank
+ @ApiModelProperty(value = "备注:退货描述")
+ private String remark;
+ @ApiModelProperty(value = "图片地址,多张','分割")
+ private String photos;
+ @ApiModelProperty(value = "订单商品")
+ private List<ProductOrder> productOrders;
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderInfo.java b/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderInfo.java
index 028d5cf..a6270c2 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderInfo.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderInfo.java
@@ -32,8 +32,8 @@
private BigDecimal promotionAmount = BigDecimal.ZERO;
@ApiModelProperty(value = "优惠卷待定")
private Object coupon;
- @ApiModelProperty(value = "运费待定")
- private Object shippingFee;
- @ApiModelProperty(value = "打包费待定")
- private Object packingCharges;
+ @ApiModelProperty(value = "配送费")
+ private BigDecimal deliveryPrice = BigDecimal.ZERO;
+ @ApiModelProperty(value = "打包费")
+ private BigDecimal packagingPrice = BigDecimal.ZERO;
}
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..205e2f1
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/vo/OrderReturnResponse.java
@@ -0,0 +1,27 @@
+package com.oying.modules.sh.domain.vo;
+
+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/OrderOperationLogMapper.java b/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderOperationLogMapper.java
index 8d97f9c..f98e5fd 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderOperationLogMapper.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderOperationLogMapper.java
@@ -20,5 +20,5 @@
List<OrderOperationLog> findAll(@Param("criteria") OrderOperationLogQueryCriteria criteria);
- List<OrderOperationLog> getByOrderNum(String orderNum);
+ List<OrderOperationLog> getByOrderNum(String orderNum, String type);
}
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 58667c5..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,7 +24,12 @@
OrderReturn getByReturnNum(String returnNum);
- void updatePayStatus(String returnNum, String status, String time);
+ 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/mapper/OrderReturnOperationLogMapper.java b/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnOperationLogMapper.java
deleted file mode 100644
index 401243f..0000000
--- a/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnOperationLogMapper.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.oying.modules.sh.mapper;
-
-import com.oying.modules.sh.domain.OrderReturnOperationLog;
-import com.oying.modules.sh.domain.dto.OrderReturnOperationLogQueryCriteria;
-import java.util.List;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-/**
-* @author lixin
-* @date 2025-07-02
-**/
-@Mapper
-public interface OrderReturnOperationLogMapper extends BaseMapper<OrderReturnOperationLog> {
-
- IPage<OrderReturnOperationLog> findAll(@Param("criteria") OrderReturnOperationLogQueryCriteria criteria, Page<Object> page);
-
- List<OrderReturnOperationLog> findAll(@Param("criteria") OrderReturnOperationLogQueryCriteria criteria);
-
- List<OrderReturnOperationLog> getByReturnNum(String returnNum);
-}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderOperationLogController.java b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderOperationLogController.java
index 3ef4e6f..46c77eb 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderOperationLogController.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderOperationLogController.java
@@ -46,7 +46,7 @@
@GetMapping("getByOrderNum")
@ApiOperation("根据订单号查询订单操作日志")
@PreAuthorize("@el.check('orderOperationLog:list')")
- public ResponseEntity<Object> queryOrderOperationLog(@RequestParam String orderNum) {
- return new ResponseEntity<>(R.success(orderOperationLogService.getByOrderNum(orderNum)), HttpStatus.OK);
+ public ResponseEntity<Object> queryOrderOperationLog(@RequestParam String orderNum, @RequestParam String type) {
+ return new ResponseEntity<>(R.success(orderOperationLogService.getByOrderNum(orderNum, type)), HttpStatus.OK);
}
}
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 c58992a..e449512 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
@@ -3,12 +3,11 @@
import com.oying.annotation.Log;
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.OrderReturnService;
import com.oying.modules.sh.domain.dto.OrderReturnQueryCriteria;
import com.oying.utils.R;
import lombok.RequiredArgsConstructor;
-
-import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -49,12 +48,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("新增退款订单")
- @PreAuthorize("@el.check('orderReturn:add')")
- public ResponseEntity<Object> createOrderReturn(@Validated @RequestBody OrderReturn resources) {
+ @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 +86,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/rest/OrderReturnOperationLogController.java b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnOperationLogController.java
deleted file mode 100644
index 6b6b72c..0000000
--- a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnOperationLogController.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.oying.modules.sh.rest;
-
-import com.oying.modules.sh.domain.OrderReturnOperationLog;
-import com.oying.modules.sh.service.OrderReturnOperationLogService;
-import com.oying.modules.sh.domain.dto.OrderReturnOperationLogQueryCriteria;
-import com.oying.utils.R;
-import lombok.RequiredArgsConstructor;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import io.swagger.annotations.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.utils.PageResult;
-
-/**
-* @author lixin
-* @date 2025-07-02
-**/
-@RestController
-@RequiredArgsConstructor
-@Api(tags = "SH:退订用户操作管理")
-@RequestMapping("/api/orderReturnOperationLog")
-public class OrderReturnOperationLogController {
-
- private final OrderReturnOperationLogService orderReturnOperationLogService;
-
- @ApiOperation("导出数据")
- @GetMapping(value = "/download")
- @PreAuthorize("@el.check('orderReturnOperationLog:list')")
- public void exportOrderReturnOperationLog(HttpServletResponse response, OrderReturnOperationLogQueryCriteria criteria) throws IOException {
- orderReturnOperationLogService.download(orderReturnOperationLogService.queryAll(criteria), response);
- }
-
- @GetMapping
- @ApiOperation("查询退订用户操作管理")
- @PreAuthorize("@el.check('orderReturnOperationLog:list')")
- public ResponseEntity<PageResult<OrderReturnOperationLog>> queryOrderReturnOperationLog(OrderReturnOperationLogQueryCriteria criteria){
- Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
- return new ResponseEntity<>(orderReturnOperationLogService.queryAll(criteria,page),HttpStatus.OK);
- }
-
- @GetMapping("getByReturnNum")
- @ApiOperation("根据退单号查询退单操作日志")
- public ResponseEntity<Object> getByReturnNum(@RequestParam String returnNum) {
- return new ResponseEntity<>(R.success(orderReturnOperationLogService.getByReturnNum(returnNum)), HttpStatus.OK);
- }
-}
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 d21c030..6338bcb 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
@@ -58,5 +58,5 @@
*/
void download(List<OrderOperationLog> all, HttpServletResponse response) throws IOException;
- List<OrderOperationLog> getByOrderNum(String orderNum);
+ List<OrderOperationLog> getByOrderNum(String orderNum, String type);
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnOperationLogService.java b/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnOperationLogService.java
deleted file mode 100644
index 4e07023..0000000
--- a/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnOperationLogService.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.oying.modules.sh.service;
-
-import com.oying.modules.sh.domain.OrderReturnOperationLog;
-import com.oying.modules.sh.domain.dto.OrderReturnOperationLogQueryCriteria;
-import java.util.List;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.utils.PageResult;
-
-/**
-* @description 服务接口
-* @author lixin
-* @date 2025-07-02
-**/
-public interface OrderReturnOperationLogService extends IService<OrderReturnOperationLog> {
-
- /**
- * 查询数据分页
- * @param criteria 条件
- * @param page 分页参数
- * @return PageResult
- */
- PageResult<OrderReturnOperationLog> queryAll(OrderReturnOperationLogQueryCriteria criteria, Page<Object> page);
-
- /**
- * 查询所有数据不分页
- * @param criteria 条件参数
- * @return List<OrderReturnOperationLogDto>
- */
- List<OrderReturnOperationLog> queryAll(OrderReturnOperationLogQueryCriteria criteria);
-
- /**
- * 创建
- * @param resources /
- */
- void create(OrderReturnOperationLog resources);
-
- /**
- * 编辑
- * @param resources /
- */
- void update(OrderReturnOperationLog resources);
-
- /**
- * 多选删除
- * @param ids /
- */
- void deleteAll(List<Long> ids);
-
- /**
- * 导出数据
- * @param all 待导出的数据
- * @param response /
- * @throws IOException /
- */
- void download(List<OrderReturnOperationLog> all, HttpServletResponse response) throws IOException;
-
- List<OrderReturnOperationLog> getByReturnNum(String returnNum);
-}
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 2aa81cf..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
@@ -8,6 +8,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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;
/**
@@ -36,19 +38,16 @@
* 创建
* @param resources /
*/
- void create(OrderReturn resources);
+ void create(ReturnOrder resources);
+
+
+ void cancel(String returnNum);
/**
* 编辑
* @param resources /
*/
void update(OrderReturn resources);
-
- /**
- * 多选删除
- * @param ids /
- */
- void deleteAll(List<Long> ids);
/**
* 导出数据
@@ -58,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/OrderService.java b/oying-system/src/main/java/com/oying/modules/sh/service/OrderService.java
index b2515a3..4430bf7 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
@@ -49,6 +49,8 @@
OrderResponse getByOrderNum(String orderNum);
+ Order queryByOrderNum(String orderNum);
+
void operationLog(OrderResponse order, OrderStatusEnum stateEnum,String cardName);
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 48972f7..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,6 +1,9 @@
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.modules.sh.domain.vo.OrderResponse;
import com.oying.modules.sh.mapper.OrderMapper;
@@ -34,6 +37,7 @@
private final OrderOperationLogMapper orderOperationLogMapper;
private final OrderMapper orderMapper;
+ private final MesMsgRecordService mesMsgRecordService;
@Override
public PageResult<OrderOperationLog> queryAll(OrderOperationLogQueryCriteria criteria, Page<Object> page) {
@@ -46,45 +50,129 @@
}
@Override
- public List<OrderOperationLog> getByOrderNum(String orderNum) {
- return orderOperationLogMapper.getByOrderNum(orderNum);
+ public List<OrderOperationLog> getByOrderNum(String orderNum, String type) {
+ return orderOperationLogMapper.getByOrderNum(orderNum, type);
}
@Override
@Transactional(rollbackFor = Exception.class)
- public void create(OrderResponse response, OrderStatusEnum statusEnum, String cardName) {
+ 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 EIGHT:
- case NINE:
+ case TEN:
userType = ConstantsKey.BUYER;
break;
case TWO:
username = response.getOrder().getUsername();
- case FOUR:
- userType = ConstantsKey.MERCHANT;
+ 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);
- case FIVE:
- case SIX:
- case SEVEN:
+ 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();
}
- Timestamp time = new Timestamp(System.currentTimeMillis());
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<>();
@@ -93,6 +181,9 @@
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());
}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnOperationLogServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnOperationLogServiceImpl.java
deleted file mode 100644
index 845ff10..0000000
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnOperationLogServiceImpl.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.oying.modules.sh.service.impl;
-
-import com.oying.modules.sh.domain.OrderReturnOperationLog;
-import com.oying.utils.FileUtil;
-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.OrderReturnOperationLogService;
-import com.oying.modules.sh.domain.dto.OrderReturnOperationLogQueryCriteria;
-import com.oying.modules.sh.mapper.OrderReturnOperationLogMapper;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import com.oying.utils.PageUtil;
-
-import java.util.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-
-import com.oying.utils.PageResult;
-
-/**
-* @description 服务实现
-* @author lixin
-* @date 2025-07-02
-**/
-@Service
-@RequiredArgsConstructor
-public class OrderReturnOperationLogServiceImpl extends ServiceImpl<OrderReturnOperationLogMapper, OrderReturnOperationLog> implements OrderReturnOperationLogService {
-
- private final OrderReturnOperationLogMapper orderReturnOperationLogMapper;
-
- @Override
- public PageResult<OrderReturnOperationLog> queryAll(OrderReturnOperationLogQueryCriteria criteria, Page<Object> page){
- return PageUtil.toPage(orderReturnOperationLogMapper.findAll(criteria, page));
- }
-
- @Override
- public List<OrderReturnOperationLog> queryAll(OrderReturnOperationLogQueryCriteria criteria){
- return orderReturnOperationLogMapper.findAll(criteria);
- }
-
- @Override
- public List<OrderReturnOperationLog> getByReturnNum(String returnNum) {
- return orderReturnOperationLogMapper.getByReturnNum(returnNum);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void create(OrderReturnOperationLog resources) {
- orderReturnOperationLogMapper.insert(resources);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void update(OrderReturnOperationLog resources) {
- OrderReturnOperationLog orderReturnOperationLog = getById(resources.getLogId());
- orderReturnOperationLog.copy(resources);
- orderReturnOperationLogMapper.updateById(orderReturnOperationLog);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void deleteAll(List<Long> ids) {
- orderReturnOperationLogMapper.deleteBatchIds(ids);
- }
-
- @Override
- public void download(List<OrderReturnOperationLog> all, HttpServletResponse response) throws IOException {
- List<Map<String, Object>> list = new ArrayList<>();
- for (OrderReturnOperationLog orderReturnOperationLog : all) {
- Map<String, Object> map = new LinkedHashMap<>();
- map.put("订单号", orderReturnOperationLog.getReturnNum());
- map.put("用户账号", orderReturnOperationLog.getUsername());
- map.put("用户类型(骑手、消费者、商家、平台)", orderReturnOperationLog.getUserType());
- map.put("用户操作", orderReturnOperationLog.getOperation());
- map.put("用户操作描述", orderReturnOperationLog.getOperationDescribe());
- map.put("备注", orderReturnOperationLog.getRemark());
- map.put("操作时的订单快照", orderReturnOperationLog.getSnapshotData());
- map.put("操作时间", orderReturnOperationLog.getOperationTime());
- list.add(map);
- }
- FileUtil.downloadExcel(list, response);
- }
-}
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 f8fe21d..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
@@ -1,27 +1,34 @@
package com.oying.modules.sh.service.impl;
+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.utils.FileUtil;
+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;
+import com.oying.modules.sh.service.*;
+import com.oying.utils.*;
+import com.oying.utils.enums.GenerateEnum;
+import com.oying.utils.enums.OrderStatusEnum;
+import com.oying.utils.enums.PayTypeEnum;
import com.oying.utils.enums.ReturnAuditEnum;
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;
import org.springframework.transaction.annotation.Transactional;
-import com.oying.utils.PageUtil;
-import java.util.List;
-import java.util.Map;
+import java.sql.Timestamp;
+import java.util.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-
-import com.oying.utils.PageResult;
/**
* @author lixin
@@ -33,6 +40,15 @@
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";
+ public static final Integer DAY = 30;
@Override
public PageResult<OrderReturn> queryAll(OrderReturnQueryCriteria criteria, Page<Object> page) {
@@ -48,19 +64,120 @@
}
@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
@Transactional(rollbackFor = Exception.class)
- public void create(OrderReturn resources) {
- orderReturnMapper.insert(resources);
+ public synchronized void create(ReturnOrder resources) {
+ OrderResponse response = orderService.getByOrderNum(resources.getOrderNum());
+ Order order = response.getOrder();
+ if (order == null) {
+ throw new BadRequestException("订单不存在!");
+ }
+ if (Objects.equals(order.getOrderStatus(), OrderStatusEnum.ZERO.getKey())) {
+ throw new BadRequestException("订单未支付");
+ }
+ OrderReturn returnOrder1 = orderReturnMapper.getByOrderNum(resources.getOrderNum(), ReturnAuditEnum.ZERO.getKey());
+ if (returnOrder1 != null) {
+ throw new BadRequestException("申请已提交");
+ }
+ OrderReturn returnOrder2 = orderReturnMapper.getByOrderNum(resources.getOrderNum(), ReturnAuditEnum.TWO.getKey());
+ if (returnOrder2 != null) {
+ throw new BadRequestException("退款订单已处理");
+ }
+ if (!DateUtil.isBefore(order.getPayTime(), DAY)) {
+ throw new BadRequestException("订单已超过售后有效期");
+ }
+ // 退款订单
+ OrderReturn returnOrder = new OrderReturn();
+ // 退款订单号
+ String returnNum = redisUtils.generateSn(ORDER_RETURN_KEY, GenerateEnum.ORDER_RETURN.getKey());
+ returnOrder.setReturnNum(returnNum);
+ returnOrder.setReturnStatus(ReturnAuditEnum.ZERO.getKey());
+ returnOrder.setReturnStatusDescribe(ReturnAuditEnum.ZERO.getValue());
+ returnOrder.setOrderNum(resources.getOrderNum());
+ returnOrder.setOrderTime(order.getOrderTime());
+ returnOrder.setOrderStoreNum(order.getOrderStoreNum());
+ returnOrder.setPackagingPrice(order.getPackagingPrice());
+ returnOrder.setSendPrice(order.getSendPrice());
+ returnOrder.setSendType(order.getSendType() != null ? order.getSendType() : null);
+ returnOrder.setRiderId(order.getRiderId() != null ? order.getRiderId() : null);
+ returnOrder.setRiderPhone(order.getRiderPhone() != null ? order.getRiderPhone() : null);
+ returnOrder.setRiderName(order.getRiderName() != null ? order.getRiderName() : null);
+ returnOrder.setPayType(order.getPayType());
+ returnOrder.setUserId(order.getUserId());
+ returnOrder.setUsername(order.getUsername());
+ returnOrder.setStoreId(order.getStoreId());
+ returnOrder.setStoreName(order.getStoreName());
+ returnOrder.setStoreLogo(order.getStoreLogo());
+ returnOrder.setOriginalPrice(order.getOriginalPrice());
+ returnOrder.setPaidPrice(order.getPaidPrice());
+ returnOrder.setActuallyPayPrice(order.getActuallyPayPrice());
+ returnOrder.setReason(resources.getReason());
+ returnOrder.setRemark(resources.getRemark());
+ 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
+ @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("不能修改他人申请");
+ }
+ if (orderReturn.getAuditStatus().equals(ReturnAuditEnum.ONE.getKey())) {
+ 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
@@ -73,14 +190,50 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void audit(AuditOrderReturn resources) {
-
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void deleteAll(List<Long> ids) {
- orderReturnMapper.deleteBatchIds(ids);
+ public synchronized void audit(AuditOrderReturn resources) {
+ OrderReturn orderReturn = orderReturnMapper.getByReturnNum(resources.getReturnNum());
+ if (orderReturn == null) {
+ throw new BadRequestException("申请不存在!");
+ }
+ if (!Objects.equals(orderReturn.getReturnStatus(), ReturnAuditEnum.ZERO.getKey())) {
+ throw new BadRequestException("申请已处理或取消");
+ }
+ if (resources.getAmount().compareTo(orderReturn.getActuallyPayPrice()) > 0) {
+ throw new BadRequestException("退款金额超过订单金额");
+ }
+ switch (resources.getAuditStatus()) {
+ case ONE:
+ break;
+ case TWO:
+ long total = BigDecimalUtils.yuanToCents(orderReturn.getActuallyPayPrice());
+ long refund = BigDecimalUtils.yuanToCents(resources.getAmount());
+ orderReturn.setRefundPrice(resources.getAmount());
+ PayTypeEnum status = PayTypeEnum.find(orderReturn.getPayType());
+ switch (status) {
+ case HWC:
+ case HWC2:
+ if (refund > 0) {
+ Map<String, String> re = swiftPassService.refund(orderReturn.getReturnNum(), orderReturn.getOrderNum(),
+ resources.getMessage(), refund, total, status);
+ orderReturn.setChannel(re.get("refund_channel"));
+ }
+ break;
+ default:
+ throw new BadRequestException("暂未开通其余支付模式");
+ }
+ break;
+ default:
+ throw new BadRequestException("审核状态错误");
+ }
+ // 审核状态
+ orderReturn.setAuditStatus(resources.getAuditStatus().getKey());
+ // 审核人
+ orderReturn.setAuditUser(SecurityUtils.getCurrentUsername());
+ // 审核时间
+ orderReturn.setAuditTime(new Timestamp(System.currentTimeMillis()));
+ // 审核信息
+ orderReturn.setAuditMessage(resources.getMessage());
+ orderReturnMapper.updateById(orderReturn);
}
@Override
@@ -99,7 +252,7 @@
map.put("退款状态", orderReturn.getRefundStatus());
map.put("退款成功时间", orderReturn.getSuccessTime());
map.put("退款渠道", orderReturn.getChannel());
- map.put("退款原因", orderReturn.getReason());
+ map.put("退货类型", orderReturn.getReason());
map.put("备注", orderReturn.getRemark());
map.put("图片", orderReturn.getPhotos());
map.put("审核状态", ReturnAuditEnum.getValue(orderReturn.getAuditStatus()));
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 6042c17..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
@@ -54,7 +54,10 @@
private final RedisUtils redisUtils;
private final StoreService storeService;
private final OrderOperationLogService operationLogService;
- private final static String DESCRIBE = "哦应:";
+ 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) {
@@ -91,7 +94,8 @@
if (!(address.getDistance().compareTo(BigDecimal.valueOf(store.getRadius())) <= 0)) {
throw new BadRequestException("超出配送范围");
}
- String orderNum = redisUtils.generateOrderSn(GenerateEnum.ORDER.getKey());
+ // 订单号
+ String orderNum = redisUtils.generateSn(ORDER_KEY, GenerateEnum.ORDER.getKey());
// 总金额
BigDecimal amount = BigDecimal.ZERO;
// 商品快照
@@ -128,7 +132,7 @@
// 订单信息
Order order = new Order();
order.setOrderNum(orderNum);
- order.setOrderStoreNum(redisUtils.generateOrderSn(Math.toIntExact(submit.getStoreId())).substring(orderNum.length() - 4));
+ order.setOrderStoreNum(redisUtils.generateSn(ORDER_STORE_KEY, Math.toIntExact(submit.getStoreId())).substring(orderNum.length() - 4));
order.setOrderStatus(OrderStatusEnum.ZERO.getKey());
order.setOrderStatusDescribe(OrderStatusEnum.ZERO.getValue());
order.setOrderRemark(submit.getRemark() != null ? submit.getRemark() : "");
@@ -173,7 +177,6 @@
OrderAddressSnapshot addressSnapshot = getOrderAddressSnapshot(orderNum, address);
-
addressSnapshotService.save(addressSnapshot);
orderMapper.insert(order);
productSnapshotService.saveBatch(snapshots);
@@ -212,6 +215,7 @@
}
List<ProductInfo> products = new ArrayList<>();
BigDecimal amount = BigDecimal.ZERO;
+ int count = 0;
for (ProductOrder productOrder : criteria.getProducts()) {
Product product = productService.getById(productOrder.getProductId());
if (product == null) {
@@ -236,6 +240,7 @@
info.setCount(productOrder.getCount());
products.add(info);
amount = BigDecimalUtils.add(amount, BigDecimalUtils.multiply(product.getPrice(), productOrder.getCount()));
+ count += productOrder.getCount();
}
if (!(amount.compareTo(store.getDeliveryMinimum()) >= 0)) {
throw new BadRequestException("起送金额:" + store.getDeliveryMinimum());
@@ -246,6 +251,8 @@
info.setAmount(amount);
info.setPayAmount(amount);
info.setPromotionAmount(BigDecimal.ZERO);
+ info.setDeliveryPrice(store.getDeliveryFee());
+ info.setPackagingPrice(BigDecimalUtils.multiply(store.getPackagingFee(), count));
info.setUserAddresses(userAddressService.queryUserAddress(store.getLongitude(), store.getLatitude()));
return info;
}
@@ -261,7 +268,13 @@
public OrderResponse getByOrderNum(String orderNum) {
return new OrderResponse(orderMapper.getByOrderNum(orderNum),
addressSnapshotService.queryByOrderNum(orderNum),
- operationLogService.getByOrderNum(orderNum));
+ operationLogService.getByOrderNum(orderNum, ORDER_CODE));
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Order queryByOrderNum(String orderNum) {
+ return orderMapper.getByOrderNum(orderNum);
}
@Override
@@ -278,11 +291,11 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void cancel(String orderNum) {
+ public synchronized void cancel(String orderNum) {
OrderResponse response = getByOrderNum(orderNum);
Order order = response.getOrder();
if (order == null) {
- throw new BadRequestException("订单不存在");
+ throw new BadRequestException("订单不存在!");
}
if (!SecurityUtils.getCurrentUserId().equals(order.getUserId())) {
throw new BadRequestException("不能修改他人订单");
@@ -295,7 +308,7 @@
case HWC:
case HWC2:
JSONObject object = swiftPassService.query(orderNum, anEnum);
- if (object.getString("trade_state").equals(PayStateEnum.NOTPAY.getKey())) {
+ if (!object.getString("trade_state").equals(PayStateEnum.NOTPAY.getKey())) {
throw new BadRequestException(PayStateEnum.getValue(order.getPayState()));
}
swiftPassService.closeOrder(orderNum, anEnum);
@@ -323,6 +336,19 @@
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteAll(List<Long> ids) {
+ Long userid = SecurityUtils.getCurrentUserId();
+ for (Long id : ids) {
+ Order order = getById(id);
+ if (order == null) {
+ throw new BadRequestException("订单不存在!");
+ }
+ if (!order.getUserId().equals(userid)) {
+ throw new BadRequestException("不能删除他人订单");
+ }
+ if (!order.getPayState().equals(PayStateEnum.NOTPAY.getKey())) {
+ throw new BadRequestException("只能删除未支付订单");
+ }
+ }
orderMapper.deleteBatchIds(ids);
}
diff --git a/oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java b/oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java
index 119ba1e..ab437e5 100644
--- a/oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/system/service/impl/UserServiceImpl.java
@@ -20,6 +20,7 @@
import com.oying.exception.EntityExistException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
@@ -128,8 +129,10 @@
// 清除缓存
delCaches(user.getId(), user.getUsername());
// 更新用户角色
- userRoleMapper.deleteByUserId(resources.getId());
- userRoleMapper.insertData(resources.getId(), resources.getRoles());
+ if (!ObjectUtils.isEmpty(resources.getRoles())) {
+ userRoleMapper.deleteByUserId(resources.getId());
+ userRoleMapper.insertData(resources.getId(), resources.getRoles());
+ }
}
@Override
diff --git a/oying-system/src/main/resources/config/application-dev.yml b/oying-system/src/main/resources/config/application-dev.yml
index cd03254..3b94915 100644
--- a/oying-system/src/main/resources/config/application-dev.yml
+++ b/oying-system/src/main/resources/config/application-dev.yml
@@ -89,8 +89,6 @@
online-key: "online_token:"
# 验证码
code-key: "captcha_code:"
- # 自定义redis key
- generate-order-sn: oying:generate:sn
# token 续期检查时间范围(默认30分钟,单位毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期
detect: 1800000
# 续期时间范围,默认1小时,单位毫秒
diff --git a/oying-system/src/main/resources/config/application-prod.yml b/oying-system/src/main/resources/config/application-prod.yml
index ff689d1..92ff604 100644
--- a/oying-system/src/main/resources/config/application-prod.yml
+++ b/oying-system/src/main/resources/config/application-prod.yml
@@ -93,8 +93,6 @@
online-key: "online_token:"
# 验证码
code-key: "captcha_code:"
- # 自定义redis key
- generate-order-sn: oying:generate:sn
# token 续期检查时间范围(默认30分钟,单位默认毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期
detect: 1800000
# 续期时间范围,默认 1小时,这里单位毫秒
diff --git a/oying-system/src/main/resources/mapper/message/MesAdvertisementMapper.xml b/oying-system/src/main/resources/mapper/message/MesAdvertisementMapper.xml
new file mode 100644
index 0000000..5b4f941
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MesAdvertisementMapper.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MesAdvertisementMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MesAdvertisement">
+ <id column="id" property="id"/>
+ <result column="title" property="title"/>
+ <result column="sub_title" property="subTitle"/>
+ <result column="content" property="content"/>
+ <result column="cover_img" property="coverImg"/>
+ <result column="banner_img" property="bannerImg"/>
+ <result column="platform" property="platform"/>
+ <result column="jump_type" property="jumpType"/>
+ <result column="jump_url" property="jumpUrl"/>
+ <result column="jump_params" property="jumpParams"/>
+ <result column="sort_order" property="sortOrder"/>
+ <result column="is_top" property="isTop"/>
+ <result column="status" property="status"/>
+ <result column="effective_time" property="effectiveTime"/>
+ <result column="expire_time" property="expireTime"/>
+ <result column="click_count" property="clickCount"/>
+ <result column="show_count" property="showCount"/>
+ <result column="remark" property="remark"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id, title, sub_title, content, cover_img, banner_img, platform, jump_type, jump_url, jump_params, sort_order, is_top, status, effective_time, expire_time, click_count, show_count, remark, create_by, create_time, update_by, update_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from mes_advertisement
+ <where>
+ </where>
+ order by id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MesCustomerCommentMsgMapper.xml b/oying-system/src/main/resources/mapper/message/MesCustomerCommentMsgMapper.xml
new file mode 100644
index 0000000..5e336ad
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MesCustomerCommentMsgMapper.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MesCustomerCommentMsgMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MesCustomerCommentMsg">
+ <id column="id" property="id"/>
+ <result column="msg_record_id" property="msgRecordId"/>
+ <result column="shop_id" property="shopId"/>
+ <result column="order_id" property="orderId"/>
+ <result column="order_no" property="orderNo"/>
+ <result column="buyer_id" property="buyerId"/>
+ <result column="buyer_name" property="buyerName"/>
+ <result column="evaluation_id" property="evaluationId"/>
+ <result column="replied" property="replied"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="comment_time" property="commentTime"/>
+ <result column="comment_content" property="commentContent"/>
+ <result column="reply_content" property="replyContent"/>
+ <result column="ext_jump_url" property="extJumpUrl"/>
+ <result column="int_jump_path" property="intJumpPath"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id, msg_record_id, shop_id, order_id, order_no, buyer_id, buyer_name, evaluation_id, replied, create_by, create_time, update_by, update_time, comment_time, comment_content, reply_content, ext_jump_url, int_jump_path
+ </sql>
+ <sql id="CustomerCommentMsg_Column_List">
+ id, shop_id, order_no, buyer_id, buyer_name, replied, comment_time, comment_content, reply_content
+ </sql>
+
+
+ <select id="findAll" resultMap="BaseResultMap">
+ SELECT
+ <include refid="Base_Column_List"/>
+ FROM mes_customer_comment_msg
+ <where>
+ </where>
+ ORDER BY id DESC
+ </select>
+
+ <select id="listCustomerComment" resultType="com.oying.modules.message.domain.myDto.MesCustomerCommentMsgDTO"
+ parameterType="java.lang.Long">
+ SELECT
+ <include refid="CustomerCommentMsg_Column_List"/>
+ FROM mes_customer_comment_msg
+ WHERE shop_id = #{shopId}
+ ORDER BY id DESC
+ </select>
+</mapper>
diff --git a/oying-system/src/main/resources/mapper/message/MesMsgRecordMapper.xml b/oying-system/src/main/resources/mapper/message/MesMsgRecordMapper.xml
new file mode 100644
index 0000000..0c8d08a
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MesMsgRecordMapper.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MesMsgRecordMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MesMsgRecord">
+ <id column="id" property="id"/>
+ <result column="template_id" property="templateId"/>
+ <result column="receiver_id" property="receiverId"/>
+ <result column="platform" property="platform"/>
+ <result column="msg_type" property="msgType"/>
+ <result column="title" property="title"/>
+ <result column="content" property="content"/>
+ <result column="biz_id" property="bizId"/>
+ <result column="biz_type" property="bizType"/>
+ <result column="is_read" property="isRead"/>
+ <result column="read_time" property="readTime"/>
+ <result column="extra" property="extra"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ <!-- 新增字段映射 -->
+ <result column="order_id" property="orderId"/>
+ <result column="buyer_id" property="buyerId"/>
+ <result column="order_no" property="orderNo"/>
+ <result column="shop_id" property="shopId"/>
+ <result column="shop_name" property="shopName"/>
+ <result column="rider_id" property="riderId"/>
+ <result column="rider_name" property="riderName"/>
+ </resultMap>
+ <!-- 为 MesMsgRecordQueryPollDto 创建专门的 resultMap -->
+ <resultMap id="PollResultMap" type="com.oying.modules.message.domain.myDto.MesMsgRecordQueryPollDto">
+ <id column="id" property="id"/>
+ <result column="title" property="title"/>
+ <result column="content" property="content"/>
+ </resultMap>
+ <!-- 为 MesMsgRecordQuerySystemDto 创建专门的 resultMap -->
+ <resultMap id="SystemResultMap" type="com.oying.modules.message.domain.myDto.MesMsgRecordQuerySystemDto">
+ <id column="id" property="id"/>
+ <result column="title" property="title"/>
+ <result column="content" property="content"/>
+ </resultMap>
+
+
+ <sql id="Base_Column_List">
+ id
+ , template_id, receiver_id, platform, msg_type, title, content, biz_id, biz_type, is_read, read_time, extra, create_by, create_time, update_by, update_time
+ </sql>
+ <!-- 与 MesMsgRecordQueryPollDto 字段对应的 SQL 片段 -->
+ <sql id="Poll_Column_List">
+ id
+ , title, content
+ </sql>
+ <!-- 与 MesMsgRecordQuerySystemDto 字段对应的 SQL 片段 -->
+ <sql id="System_Column_List">
+ id
+ , title, content
+ </sql>
+ <update id="batchMarkRead">
+ UPDATE mes_msg_record
+ SET is_read = 1,
+ read_time = NOW()
+ WHERE id IN
+ <foreach item="item" collection="msgIds" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ AND platform = #{platform}
+ </update>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from mes_msg_record
+ <where>
+ </where>
+ order by id desc
+ </select>
+ <!-- 使用Map作为参数类型,支持多参数传递 -->
+ <select id="PollMes" parameterType="map" resultMap="PollResultMap">
+ <!-- 根据平台和消息类型查询未读消息 -->
+ select
+ <include refid="Poll_Column_List"/>
+ from mes_msg_record
+ <where>
+ <if test="platform != null">
+ platform = #{platform}
+ </if>
+ <if test="msgType != null">
+ and msg_type = #{msgType}
+ </if>
+ and is_read = 0
+ </where>
+ order by id desc
+ </select>
+
+ <select id="queryAllSysNotice"
+ resultMap="SystemResultMap">
+ select
+ <include refid="System_Column_List"/>
+ from mes_msg_record
+ <where>
+ # 系统1
+ msg_type = 1
+ </where>
+ order by id desc
+ </select>
+ <select id="queryorder" resultType="com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto"
+ parameterType="java.lang.Long">
+ # 根据店铺号 给出订单号与订单消息
+ select id,content,order_no
+ from mes_msg_record
+ <where>
+ <if test="shopId != null">
+ shop_id = #{shopId}
+ </if>
+ </where>
+
+ </select>
+ <select id="PollMesAll" parameterType="long" resultMap="PollResultMap">
+ <!-- 根据平台和消息类型查询未读消息 -->
+ select
+ <include refid="Poll_Column_List"/>
+ from mes_msg_record
+ <where>
+ <if test="platform != null">
+ platform = #{platform}
+ </if>
+ and is_read = 0
+ </where>
+ order by id desc
+ </select>
+ <select id="queryorderPending"
+ resultType="com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto"
+ parameterType="map">
+ SELECT id, content, order_no
+ FROM mes_msg_record
+ WHERE content = #{content}
+ AND shop_id = #{shopId}
+ ORDER BY id DESC
+ </select>
+ <select id="queryBuyerOrderMessages"
+ resultType="com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto"
+ parameterType="java.lang.Long">
+ select id, content, order_no
+ from mes_msg_record
+ where buyer_id = #{buyerId}
+ order by id desc
+ </select>
+ <select id="queryBuyerOrderMessagesComplete"
+ resultType="com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto"
+ parameterType="java.lang.Long">
+ select id, content, order_no
+ from mes_msg_record
+ where buyer_id = #{buyerId}
+ and content = '订单完成'
+ order by id desc
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MesMsgTemplateMapper.xml b/oying-system/src/main/resources/mapper/message/MesMsgTemplateMapper.xml
new file mode 100644
index 0000000..70910f4
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MesMsgTemplateMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MesMsgTemplateMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MesMsgTemplate">
+ <id column="id" property="id"/>
+ <result column="code" property="code"/>
+ <result column="name" property="name"/>
+ <result column="title_tpl" property="titleTpl"/>
+ <result column="content_tpl" property="contentTpl"/>
+ <result column="type" property="type"/>
+ <result column="platform" property="platform"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id, code, name, title_tpl, content_tpl, type, platform, create_by, create_time, update_by, update_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from mes_msg_template
+ <where>
+ </where>
+ order by id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MesOrderEvaluationMapper.xml b/oying-system/src/main/resources/mapper/message/MesOrderEvaluationMapper.xml
new file mode 100644
index 0000000..f03b56a
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MesOrderEvaluationMapper.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MesOrderEvaluationMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MesOrderEvaluation">
+ <id column="id" property="id"/>
+ <result column="order_id" property="orderId"/>
+ <result column="buyer_id" property="buyerId"/>
+ <result column="order_no" property="orderNo"/>
+ <result column="shop_id" property="shopId"/>
+ <result column="shop_name" property="shopName"/>
+ <result column="rider_id" property="riderId"/>
+ <result column="rider_name" property="riderName"/>
+ <result column="goods_score" property="goodsScore"/>
+ <result column="goods_content" property="goodsContent"/>
+ <result column="goods_imgs" property="goodsImgs"/>
+ <result column="shop_score" property="shopScore"/>
+ <result column="shop_content" property="shopContent"/>
+ <result column="rider_score" property="riderScore"/>
+ <result column="rider_content" property="riderContent"/>
+ <result column="is_deleted" property="isDeleted"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id, order_id, buyer_id, order_no, shop_id, shop_name, rider_id, rider_name, goods_score, goods_content, goods_imgs, shop_score, shop_content, rider_score, rider_content, is_deleted, create_by, create_time, update_by, update_time
+ </sql>
+ <insert id="addShopEvaluation" parameterType="com.oying.modules.message.domain.myDto.MesOrderEvaluationDto">
+ INSERT INTO mes_order_evaluation
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="shopId != null">
+ shop_id,
+ </if>
+ <if test="shopName != null and shopName != ''">
+ shop_name,
+ </if>
+ <if test="shopScore != null">
+ shop_score,
+ </if>
+ <if test="shopContent != null and shopContent != ''">
+ shop_content,
+ </if>
+ </trim>
+ <trim prefix="VALUES (" suffix=")" suffixOverrides=",">
+ <if test="shopId != null">
+ #{shopId},
+ </if>
+ <if test="shopName != null and shopName != ''">
+ #{shopName},
+ </if>
+ <if test="shopScore != null">
+ #{shopScore},
+ </if>
+ <if test="shopContent != null and shopContent != ''">
+ #{shopContent},
+ </if>
+ </trim>
+ </insert>
+
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from mes_order_evaluation
+ <where>
+ </where>
+ order by id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MesOrderItemEvaluationMapper.xml b/oying-system/src/main/resources/mapper/message/MesOrderItemEvaluationMapper.xml
new file mode 100644
index 0000000..e7b0208
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MesOrderItemEvaluationMapper.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MesOrderItemEvaluationMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MesOrderItemEvaluation">
+ <id column="id" property="id"/>
+ <result column="order_eval_id" property="orderEvalId"/>
+ <result column="order_item_id" property="orderItemId"/>
+ <result column="goods_id" property="goodsId"/>
+ <result column="goods_name" property="goodsName"/>
+ <result column="goods_pic" property="goodsPic"/>
+ <result column="score" property="score"/>
+ <result column="content" property="content"/>
+ <result column="imgs" property="imgs"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id, order_eval_id, order_item_id, goods_id, goods_name, goods_pic, score, content, imgs, create_by, create_time, update_by, update_time
+ </sql>
+ <insert id="addGoodsEvaluation" parameterType="com.oying.modules.message.domain.MesOrderItemEvaluationDto">
+ INSERT INTO mes_order_item_evaluation
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="orderEvalId != null">
+ order_eval_id,
+ </if>
+ <if test="orderItemId != null">
+ order_item_id,
+ </if>
+ <if test="goodsId != null">
+ goods_id,
+ </if>
+ <if test="goodsName != null and goodsName != ''">
+ goods_name,
+ </if>
+ <if test="goodsPic != null and goodsPic != ''">
+ goods_pic,
+ </if>
+ <if test="score != null">
+ score,
+ </if>
+ <if test="content != null and content != ''">
+ content,
+ </if>
+ <if test="imgs != null and imgs != ''">
+ imgs,
+ </if>
+ </trim>
+ <trim prefix="VALUES (" suffix=")" suffixOverrides=",">
+ <if test="orderEvalId != null">
+ #{orderEvalId},
+ </if>
+ <if test="orderItemId != null">
+ #{orderItemId},
+ </if>
+ <if test="goodsId != null">
+ #{goodsId},
+ </if>
+ <if test="goodsName != null and goodsName != ''">
+ #{goodsName},
+ </if>
+ <if test="goodsPic != null and goodsPic != ''">
+ #{goodsPic},
+ </if>
+ <if test="score != null">
+ #{score},
+ </if>
+ <if test="content != null and content != ''">
+ #{content},
+ </if>
+ <if test="imgs != null and imgs != ''">
+ #{imgs},
+ </if>
+ </trim>
+ </insert>
+
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from mes_order_item_evaluation
+ <where>
+ </where>
+ order by id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MesRiderEvaluationMapper.xml b/oying-system/src/main/resources/mapper/message/MesRiderEvaluationMapper.xml
new file mode 100644
index 0000000..da02422
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MesRiderEvaluationMapper.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MesRiderEvaluationMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MesRiderEvaluation">
+ <id column="id" property="id"/>
+ <result column="order_id" property="orderId"/>
+ <result column="order_no" property="orderNo"/>
+ <result column="rider_id" property="riderId"/>
+ <result column="rider_name" property="riderName"/>
+ <result column="buyer_id" property="buyerId"/>
+ <result column="score" property="score"/>
+ <result column="content" property="content"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id, order_id, order_no, rider_id, rider_name, buyer_id, score, content, create_by, create_time, update_by, update_time
+ </sql>
+ <insert id="addRiderEvaluation" parameterType="com.oying.modules.message.domain.myDto.MesRiderEvaluationDto">
+ INSERT INTO mes_rider_evaluation
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="orderId != null">
+ order_id,
+ </if>
+ <if test="orderNo != null and orderNo != ''">
+ order_no,
+ </if>
+ <if test="riderId != null">
+ rider_id,
+ </if>
+ <if test="riderName != null and riderName != ''">
+ rider_name,
+ </if>
+ <if test="buyerId != null and buyerId != ''">
+ buyer_id,
+ </if>
+ <if test="score != null">
+ score,
+ </if>
+ <if test="content != null and content != ''">
+ content,
+ </if>
+ <if test="imgs != null and imgs != ''">
+ imgs,
+ </if>
+ </trim>
+ <trim prefix="VALUES (" suffix=")" suffixOverrides=",">
+ <if test="orderId != null">
+ #{orderId},
+ </if>
+ <if test="orderNo != null and orderNo != ''">
+ #{orderNo},
+ </if>
+ <if test="riderId != null">
+ #{riderId},
+ </if>
+ <if test="riderName != null and riderName != ''">
+ #{riderName},
+ </if>
+ <if test="buyerId != null and buyerId != ''">
+ #{buyerId},
+ </if>
+ <if test="score != null">
+ #{score},
+ </if>
+ <if test="content != null and content != ''">
+ #{content},
+ </if>
+ <if test="imgs != null and imgs != ''">
+ #{imgs},
+ </if>
+ </trim>
+ </insert>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from mes_rider_evaluation
+ <where>
+ </where>
+ order by id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MessageSystemMapper.xml b/oying-system/src/main/resources/mapper/message/MesShopReplyMapper.xml
similarity index 65%
rename from oying-system/src/main/resources/mapper/message/MessageSystemMapper.xml
rename to oying-system/src/main/resources/mapper/message/MesShopReplyMapper.xml
index 8ef7543..f2ec744 100644
--- a/oying-system/src/main/resources/mapper/message/MessageSystemMapper.xml
+++ b/oying-system/src/main/resources/mapper/message/MesShopReplyMapper.xml
@@ -1,24 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.message.mapper.MessageSystemMapper">
- <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageSystem">
+<mapper namespace="com.oying.modules.message.mapper.MesShopReplyMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MesShopReply">
<id column="id" property="id"/>
- <result column="start_time" property="startTime"/>
- <result column="end_time" property="endTime"/>
- <result column="create_time" property="createTime"/>
- <result column="update_time" property="updateTime"/>
+ <result column="evaluation_id" property="evaluationId"/>
+ <result column="reply_type" property="replyType"/>
+ <result column="content" property="content"/>
<result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
<result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
</resultMap>
<sql id="Base_Column_List">
- id, start_time, end_time, create_time, update_time, create_by, update_by
+ id, evaluation_id, reply_type, content, create_by, create_time, update_by, update_time
</sql>
<select id="findAll" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
- from message_system
+ from mes_shop_reply
<where>
</where>
order by id desc
diff --git a/oying-system/src/main/resources/mapper/message/MessageOrderBuyerMapper.xml b/oying-system/src/main/resources/mapper/message/MessageOrderBuyerMapper.xml
deleted file mode 100644
index af70f58..0000000
--- a/oying-system/src/main/resources/mapper/message/MessageOrderBuyerMapper.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.message.mapper.MessageOrderBuyerMapper">
- <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageOrderBuyer">
- <id column="id" property="id"/>
- <result column="order_id" property="orderId"/>
- <result column="message_type" property="messageType"/>
- <result column="message_content" property="messageContent"/>
- <result column="link" property="link"/>
- <result column="create_time" property="createTime"/>
- <result column="update_time" property="updateTime"/>
- <result column="create_by" property="createBy"/>
- <result column="update_by" property="updateBy"/>
- </resultMap>
-
- <sql id="Base_Column_List">
- id, order_id, message_type, message_content, link, create_time, update_time, create_by, update_by
- </sql>
-
- <select id="findAll" resultMap="BaseResultMap">
- select
- <include refid="Base_Column_List"/>
- from message_order_buyer
- <where>
- </where>
- order by id desc
- </select>
-</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MessageOrderLeaveMapper.xml b/oying-system/src/main/resources/mapper/message/MessageOrderLeaveMapper.xml
deleted file mode 100644
index b79908d..0000000
--- a/oying-system/src/main/resources/mapper/message/MessageOrderLeaveMapper.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.message.mapper.MessageOrderLeaveMapper">
- <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageOrderLeave">
- <id column="id" property="id"/>
- <result column="order_id" property="orderId"/>
- <result column="customer_review" property="customerReview"/>
- <result column="seller_reply" property="sellerReply"/>
- <result column="link" property="link"/>
- <result column="create_time" property="createTime"/>
- <result column="update_time" property="updateTime"/>
- <result column="create_by" property="createBy"/>
- <result column="update_by" property="updateBy"/>
- </resultMap>
-
- <sql id="Base_Column_List">
- id, order_id, customer_review, seller_reply, link, create_time, update_time, create_by, update_by
- </sql>
-
- <select id="findAll" resultMap="BaseResultMap">
- select
- <include refid="Base_Column_List"/>
- from message_order_leave
- <where>
- </where>
- order by id desc
- </select>
-</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml b/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml
deleted file mode 100644
index 03a2b9c..0000000
--- a/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.message.mapper.MessageOrderSellerMapper">
- <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageOrderSeller">
- <id column="id" property="id"/>
- <result column="order_id" property="orderId"/>
- <result column="store_id" property="storeId"/>
- <result column="message_type" property="messageType"/>
- <result column="message_content" property="messageContent"/>
- <result column="link" property="link"/>
- <result column="create_time" property="createTime"/>
- <result column="update_time" property="updateTime"/>
- <result column="create_by" property="createBy"/>
- <result column="update_by" property="updateBy"/>
- <result column="flag" property="flag"/>
- </resultMap>
-
- <sql id="Base_Column_List">
- id, order_id,store_id, message_type, message_content, link, create_time, update_time, create_by, update_by,flag
- </sql>
-
- <insert id="saveMessageOrderSellerByOrderIdAndStoreId" parameterType="com.oying.modules.message.domain.MessageOrderSeller">
- # 动态sql 必须插入 order_id store_id 其他字段可以选择性插入 flag默认插入0
- <!-- 动态 SQL:必须插入 order_id 和 store_id -->
- <!-- 其他字段可以选择性插入 -->
- INSERT INTO message_order_seller (
- order_id,
- store_id,
- <if test="messageType != null">message_type,</if>
- <if test="messageContent != null">message_content,</if>
- <if test="link != null">link,</if>
- flag
- ) VALUES (
- #{orderId},
- #{storeId},
- <if test="messageType != null">#{messageType},</if>
- <if test="messageContent != null">#{messageContent},</if>
- <if test="link != null">#{link},</if>
- 0
- )
- </insert>
-
- <select id="findAll" resultMap="BaseResultMap">
- select
- <include refid="Base_Column_List"/>
- from message_order_seller
- <where>
- </where>
- order by id desc
- </select>
-
- <select id="findByStoreId" resultType="com.oying.modules.message.domain.MessageOrderSeller"
- parameterType="java.lang.String">
-# 根据store_id(不是主键)返回 list
- select
- <include refid="Base_Column_List"/>
- from message_order_seller
- where store_id = #{storeId} and flag = 0
- order by id desc
- </select>
- <update id="updateMessageOrderSellerRead" parameterType="java.lang.Integer">
- update message_order_seller
- set flag = 1
- where order_id = #{orderId}
- </update>
- <update id="updateReadStatusById">
- update message_order_seller
- set flag = 1
- where id = #{id}
- </update>
-
-
-</mapper>
diff --git a/oying-system/src/main/resources/mapper/message/MessageSystemAdvertiseMapper.xml b/oying-system/src/main/resources/mapper/message/MessageSystemAdvertiseMapper.xml
deleted file mode 100644
index 97ad099..0000000
--- a/oying-system/src/main/resources/mapper/message/MessageSystemAdvertiseMapper.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.message.mapper.MessageSystemAdvertiseMapper">
- <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageSystemAdvertise">
- <id column="id" property="id"/>
- <result column="title" property="title"/>
- <result column="content" property="content"/>
- <result column="image_url" property="imageUrl"/>
- <result column="link_url" property="linkUrl"/>
- <result column="status" property="status"/>
- <result column="create_by" property="createBy"/>
- <result column="update_by" property="updateBy"/>
- <result column="create_time" property="createTime"/>
- <result column="update_time" property="updateTime"/>
- </resultMap>
-
- <sql id="Base_Column_List">
- id, title, content, image_url, link_url, status, create_by, update_by, create_time, update_time
- </sql>
-
- <select id="findAll" resultMap="BaseResultMap">
- select
- <include refid="Base_Column_List"/>
- from message_system_advertise
- <where>
- </where>
- order by id desc
- </select>
-</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml b/oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml
index a7f5155..3cad00d 100644
--- a/oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml
+++ b/oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml
@@ -16,25 +16,62 @@
<result column="update_time" property="updateTime"/>
</resultMap>
+ <resultMap id="JoinResultMap" type="com.oying.modules.pc.product.view.ProductAuditView">
+ <result column="product_id" property="productId"/>
+ <result column="product_name" property="productName"/>
+ <result column="product_title" property="productTitle"/>
+ <result column="audit_id" property="auditId"/>
+ <result column="type" property="type"/>
+ <result column="status" property="status"/>
+ <result column="data" property="data"/>
+ <result column="reason" property="reason"/>
+ <result column="auditor" property="auditor"/>
+ <result column="audit_time" property="auditTime"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
<sql id="Base_Column_List">
audit_id, product_id, type, status, reason, auditor, audit_time, data, create_by, create_time, update_by, update_time
</sql>
- <select id="findAll" resultMap="BaseResultMap">
+ <sql id="Join_Column_List">
+ p.name as product_name, p.title as product_title,
+ pa.audit_id, pa.product_id, pa.type, pa.status, pa.reason, pa.auditor, pa.audit_time, pa.data, pa.create_by, pa.create_time, pa.update_by, pa.update_time
+ </sql>
+
+ <select id="findAll" resultMap="JoinResultMap">
select
- <include refid="Base_Column_List"/>
- from pc_product_audit
+ <include refid="Join_Column_List"/>
+ from pc_product_audit as pa left join pc_product as p on pa.product_id = p.product_id
<where>
+ <if test="criteria.blurry != null and criteria.blurry != ''">
+ and p.name like concat('%', #{criteria.blurry}, '%')
+ </if>
+ <if test="criteria.productName != null and criteria.productName != ''">
+ and p.name like concat('%', #{criteria.productName}, '%')
+ </if>
+ <if test="criteria.blurry != null and criteria.blurry != ''">
+ and p.title like concat('%', #{criteria.blurry}, '%')
+ </if>
+ <if test="criteria.productTitle != null and criteria.productTitle != ''">
+ and p.title like concat('%', #{criteria.productTitle}, '%')
+ </if>
<if test="criteria.productId != null">
- and product_id = #{criteria.productId}
+ and pa.product_id = #{criteria.productId}
</if>
<if test="criteria.type != null and criteria.type != ''">
- and type = #{criteria.type}
+ and pa.type = #{criteria.type}
</if>
<if test="criteria.status != null">
- and status = #{criteria.status}
+ and pa.status = #{criteria.status}
+ </if>
+ <if test="criteria.createBy != null and criteria.createBy != ''">
+ and pa.create_by = #{criteria.createBy}
</if>
</where>
- order by audit_id desc
+ order by pa.audit_id desc
</select>
</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml b/oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml
index 209639f..c9caf4c 100644
--- a/oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml
+++ b/oying-system/src/main/resources/mapper/pc/product/ProductMapper.xml
@@ -11,6 +11,7 @@
<result column="category_id" property="categoryId"/>
<result column="second_category_id" property="secondCategoryId"/>
<result column="status" property="status"/>
+ <result column="shelf_status" property="shelfStatus"/>
<result column="main_image_id" property="mainImageId"/>
<result column="main_image_Url" property="mainImageUrl"/>
<result column="description" property="description"/>
@@ -33,13 +34,13 @@
</resultMap>
<sql id="Base_Column_List">
- product_id, store_id, code, barcode, name, title, category_id, second_category_id, status, main_image_id, main_image_url, description, price, stock_quantity, min_purchase_quantity, warn_stock, weight, width, length, height, returns, self_pickup, deleted_flag, create_by, create_time, update_by, update_time, version
+ product_id, store_id, code, barcode, name, title, category_id, second_category_id, status, shelf_status, main_image_id, main_image_url, description, price, stock_quantity, min_purchase_quantity, warn_stock, weight, width, length, height, returns, self_pickup, deleted_flag, create_by, create_time, update_by, update_time, version
</sql>
<select id="findAll" resultMap="BaseResultMap">
- select
+ SELECT
<include refid="Base_Column_List"/>
- from pc_product
+ FROM pc_product
<where>
<if test="criteria.storeId != null">
and store_id = #{criteria.storeId}
@@ -56,13 +57,27 @@
<if test="criteria.status != null">
and status = #{criteria.status}
</if>
+ <if test="criteria.shelfStatus != null">
+ and shelf_status = #{criteria.shelfStatus}
+ </if>
<if test="criteria.active != null">
and active = #{criteria.active}
</if>
</where>
- order by product_id desc
+ <!--<if test="criteria.sortColumn != null and criteria.sortColumn != ''">
+ order by ${criteria.sortColumn} ${criteria.sortDirection}
+ </if>-->
+ ORDER BY
+ <choose>
+ <!-- 价格升序 -->
+ <when test="criteria.sortColumn == 'price' and criteria.sortDirection == 'asc'">price ASC</when>
+ <!-- 价格降序 -->
+ <when test="criteria.sortColumn == 'price' and criteria.sortDirection == 'desc'">price DESC</when>
+ <!-- 创建时间降序(默认) -->
+ <otherwise>create_time DESC</otherwise>
+ </choose>
<if test="criteria.limit != null">
- limit #{criteria.limit}
+ LIMIT #{criteria.limit}
</if>
</select>
diff --git a/oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml b/oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml
index 45844e3..658d0fc 100644
--- a/oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml
+++ b/oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml
@@ -16,25 +16,55 @@
<result column="update_time" property="updateTime"/>
</resultMap>
+ <resultMap id="JoinResultMap" type="com.oying.modules.pc.store.view.StoreAuditView">
+ <result column="store_name" property="storeName"/>
+ <result column="audit_id" property="auditId"/>
+ <result column="store_id" property="storeId"/>
+ <result column="type" property="type"/>
+ <result column="status" property="status"/>
+ <result column="data" property="data"/>
+ <result column="reason" property="reason"/>
+ <result column="auditor" property="auditor"/>
+ <result column="audit_time" property="auditTime"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
<sql id="Base_Column_List">
audit_id, store_id, type, status, reason, auditor, audit_time, data, create_by, create_time, update_by, update_time
</sql>
- <select id="findAll" resultMap="BaseResultMap">
+ <sql id="Join_Column_List">
+ s.store_name,
+ sa.audit_id, sa.store_id, sa.type, sa.status, sa.reason, sa.auditor, sa.audit_time, sa.data, sa.create_by, sa.create_time, sa.update_by, sa.update_time
+ </sql>
+
+ <select id="findAll" resultMap="JoinResultMap">
select
- <include refid="Base_Column_List"/>
- from pc_store_audit
+ <include refid="Join_Column_List"/>
+ from pc_store_audit as sa left join pc_store s on sa.store_id = s.store_id
<where>
+ <if test="criteria.blurry != null and criteria.blurry != ''">
+ and s.store_name like concat('%', #{criteria.blurry}, '%')
+ </if>
+ <if test="criteria.storeName != null and criteria.storeName != ''">
+ and s.store_name like concat('%', #{criteria.storeName}, '%')
+ </if>
<if test="criteria.storeId != null">
- and store_id = #{criteria.storeId}
+ and sa.store_id = #{criteria.storeId}
</if>
<if test="criteria.type != null and criteria.type != ''">
- and type = #{criteria.type}
+ and sa.type = #{criteria.type}
</if>
<if test="criteria.status != null">
- and status = #{criteria.status}
+ and sa.status = #{criteria.status}
+ </if>
+ <if test="criteria.createBy != null and criteria.createBy != ''">
+ and sa.create_by = #{criteria.createBy}
</if>
</where>
- order by audit_id desc
+ order by sa.audit_id desc
</select>
</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml b/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml
index ccbbecf..8182980 100644
--- a/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml
+++ b/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml
@@ -23,6 +23,7 @@
<result property="tags" column="tags"/>
<result property="deliveryFee" column="delivery_fee"/>
<result property="deliveryMinimum" column="delivery_minimum"/>
+ <result property="packagingFee" column="packaging_fee"/>
<result property="contactPhone" column="contact_phone"/>
<result property="openTime" column="open_time"/>
<result property="closeTime" column="close_time"/>
@@ -43,14 +44,14 @@
<sql id="store_column_list">
store_id, merchant_id, platform_category_id, store_type, store_code, store_name, business_scope, status, business_status, audit_status, logo_image_id, logo_image_url,
- cover_image_id, cover_image_url, description, tags, delivery_fee, delivery_minimum, contact_phone, open_time, close_time,
+ cover_image_id, cover_image_url, description, tags, delivery_fee, delivery_minimum, packaging_fee, contact_phone, open_time, close_time,
address, longitude, latitude, geo_hash, geo_point, coordinate_system, radius, returns, self_pickup, create_by, create_time, update_by, update_time, version
</sql>
<sql id="selectStoreVo">
select
store_id, merchant_id, platform_category_id, store_type, store_code, store_name, business_scope, status, business_status, audit_status, logo_image_id, logo_image_url,
- cover_image_id, cover_image_url, description, tags, delivery_fee, delivery_minimum, contact_phone, open_time, close_time,
+ cover_image_id, cover_image_url, description, tags, delivery_fee, delivery_minimum, packaging_fee, contact_phone, open_time, close_time,
address, longitude, latitude, geo_hash, geo_point, coordinate_system, radius, returns, self_pickup, create_by, create_time, update_by, update_time, version from pc_store
</sql>
@@ -126,7 +127,7 @@
<!-- 店铺名称模糊查询 AND s.name LIKE CONCAT('%', #{criteria.blurry}, '%') -->
<if test="criteria.blurry != null and criteria.blurry != ''">
- AND MATCH(s.store_name) AGAINST(#{criteria.blurry} IN NATURAL LANGUAGE MODE)
+ AND s.store_name like concat('%', #{criteria.blurry}, '%')
</if>
<!-- 营业状态 -->
diff --git a/oying-system/src/main/resources/mapper/sh/OrderMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderMapper.xml
index 4ec5aec..6417087 100644
--- a/oying-system/src/main/resources/mapper/sh/OrderMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/OrderMapper.xml
@@ -9,6 +9,8 @@
<result column="order_status_describe" property="orderStatusDescribe"/>
<result column="order_remark" property="orderRemark"/>
<result column="order_time" property="orderTime"/>
+ <result column="order_finish_time" property="orderFinishTime"/>
+ <result column="packaging_price" property="packagingPrice"/>
<result column="send_price" property="sendPrice"/>
<result column="send_type" property="sendType"/>
<result column="user_id" property="userId"/>
@@ -63,7 +65,7 @@
<sql id="Base_Column_List">
o.order_id, o.order_num, o.order_store_num, o.order_status, o.order_status_describe,
- o.order_remark, o.order_time, o.send_price, o.send_type, o.user_id, o.username, o.store_id,
+ o.order_remark, o.order_time, o.order_finish_time, o.packaging_price, o.send_price, o.send_type, o.user_id, o.username, o.store_id,
o.store_name, o.store_logo, o.store_address, o.store_longitude, o.store_latitude,
o.order_describe, o.original_price order_original_price, o.paid_price order_paid_price,
o.actually_pay_price order_actually_pay_price, o.pay_state order_pay_state, o.pay_message, o.pay_type, o.pay_time, o.expire_time,
diff --git a/oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml
index 86f4724..21bb698 100644
--- a/oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml
@@ -6,6 +6,7 @@
<result column="username" property="username"/>
<result column="user_type" property="userType"/>
<result column="operation" property="operation"/>
+ <result column="operation_type" property="operationType"/>
<result column="operation_describe" property="operationDescribe"/>
<result column="remark" property="remark"/>
<result column="snapshot_data" property="snapshotData"/>
@@ -14,7 +15,7 @@
</resultMap>
<sql id="Base_Column_List">
- log_id, username, user_type, operation, operation_describe, remark, snapshot_data, operation_time, order_num
+ log_id, username, user_type, operation, operation_type, operation_describe, remark, snapshot_data, operation_time, order_num
</sql>
<select id="findAll" resultMap="BaseResultMap">
@@ -41,6 +42,10 @@
select
<include refid="Base_Column_List"/>
from sh_order_operation_log
- where order_num = #{orderNum} order by log_id
+ where order_num = #{orderNum}
+ <if test="type!= null and type != ''">
+ and operation_type = #{type}
+ </if>
+ order by log_id
</select>
</mapper>
diff --git a/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
index 53e1556..2829091 100644
--- a/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/OrderReturnMapper.xml
@@ -9,6 +9,7 @@
<result column="order_num" property="orderNum"/>
<result column="order_store_num" property="orderStoreNum"/>
<result column="order_time" property="orderTime"/>
+ <result column="packaging_price" property="packagingPrice"/>
<result column="send_price" property="sendPrice"/>
<result column="send_type" property="sendType"/>
<result column="pay_type" property="payType"/>
@@ -58,7 +59,7 @@
<sql id="Base_Column_List">
o.return_id, o.return_num, o.return_status, o.return_status_describe, o.order_num, o.order_store_num,
- o.order_time, o.send_price, o.send_type, o.pay_type, o.user_id, o.username, o.store_id, o.store_name, o.store_logo,
+ o.order_time, o.packaging_price, o.send_price, o.send_type, o.pay_type, o.user_id, o.username, o.store_id, o.store_name, o.store_logo,
o.original_price order_original_price, o.paid_price order_paid_price, o.actually_pay_price order_actually_pay_price,
o.refund_price, o.refund_status, o.success_time, o.channel, o.reason, o.remark, o.photos, o.audit_status,
o.audit_user, o.audit_time, o.audit_message, o.rider_id, o.rider_phone, o.rider_name,
@@ -131,9 +132,16 @@
<update id="updatePayStatus">
update sh_order_return
- set return_status = #{payState},
- success_time = #{payTime}
- where order_num = #{orderNum}
+ 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>
<select id="findAll" resultMap="BaseResultMap">
@@ -150,7 +158,7 @@
) o
left join sh_order_return_product_snapshot as p on p.return_num = o.return_num
<include refid="Where_Sql_Product"/>
- order by o.order_id desc
+ order by o.return_id desc
</select>
<select id="getByReturnNum" resultMap="BaseResultMap">
select o.* from ( select
@@ -172,4 +180,10 @@
<include refid="Where_Sql_Product"/>
) t
</select>
+ <select id="getByOrderNum" resultType="com.oying.modules.sh.domain.OrderReturn">
+ select
+ <include refid="Base_Column_List"/>
+ from sh_order_return as o
+ where o.order_num = #{orderNum} and o.audit_status = #{status}
+ </select>
</mapper>
diff --git a/oying-system/src/main/resources/mapper/sh/OrderReturnOperationLogMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderReturnOperationLogMapper.xml
deleted file mode 100644
index 34006bf..0000000
--- a/oying-system/src/main/resources/mapper/sh/OrderReturnOperationLogMapper.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.oying.modules.sh.mapper.OrderReturnOperationLogMapper">
- <resultMap id="BaseResultMap" type="com.oying.modules.sh.domain.OrderReturnOperationLog">
- <id column="log_id" property="logId"/>
- <result column="return_num" property="returnNum"/>
- <result column="username" property="username"/>
- <result column="user_type" property="userType"/>
- <result column="operation" property="operation"/>
- <result column="operation_describe" property="operationDescribe"/>
- <result column="remark" property="remark"/>
- <result column="snapshot_data" property="snapshotData"/>
- <result column="operation_time" property="operationTime"/>
- </resultMap>
-
- <sql id="Base_Column_List">
- log_id, return_num, username, user_type, operation, operation_describe, remark, snapshot_data, operation_time
- </sql>
-
- <select id="findAll" resultMap="BaseResultMap">
- select
- <include refid="Base_Column_List"/>
- from sh_order_return_operation_log
- <where>
- <if test="criteria.returnNum != null">
- and return_num = #{criteria.returnNum}
- </if>
- <if test="criteria.username != null">
- and username like concat('%',#{criteria.username},'%')
- </if>
- <if test="criteria.userType != null">
- and user_type = #{criteria.userType}
- </if>
- <if test="criteria.operationTime != null and criteria.operationTime.size() > 0">
- AND operation_time BETWEEN #{criteria.operationTime[0]} AND #{criteria.operationTime[1]}
- </if>
- </where>
- order by log_id desc
- </select>
- <select id="getByReturnNum" resultMap="BaseResultMap">
- select
- <include refid="Base_Column_List"/>
- from sh_order_return_operation_log
- where return_num = #{returnNum}
- order by log_id
- </select>
-</mapper>
--
Gitblit v1.9.3