From 45c8db9f7f9b05480d5234177e6743fd0c8a1e40 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 22 Jan 2025 18:02:09 +0800
Subject: [PATCH] refactor(mall): 重构订单确认和删除方法的验证逻辑 - 使用 ValidateEntityUtils 工具类统一处理实体验证逻辑 - 提高代码复用性,减少重复代码 - 增加 ensureNotEqual 方法用于验证两个值不相等
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 18 +++++-------------
src/main/java/cc/mrbird/febs/common/utils/ValidateEntityUtils.java | 20 ++++++++++++++++++++
2 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/utils/ValidateEntityUtils.java b/src/main/java/cc/mrbird/febs/common/utils/ValidateEntityUtils.java
index c766630..4833a8e 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/ValidateEntityUtils.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/ValidateEntityUtils.java
@@ -252,4 +252,24 @@
}
+ /**
+ * 确保两个参数不相等,如果相等则抛出异常
+ *
+ * @param value1 第一个参数
+ * @param value2 第二个参数
+ * @param errMsg 当两个参数相等时抛出的异常消息格式字符串
+ * @throws FebsException 如果两个参数相等
+ */
+ public static <T> void ensureNotEqual(
+ T value1,
+ T value2,
+ String errMsg) {
+ // 使用 Objects.equals 处理 null 值,避免显式 null 检查
+ if (Objects.equals(value1, value2)) {
+ // 延迟字符串格式化,只在需要抛出异常时进行
+ throw new FebsException(StrUtil.format(errMsg, value1, value2));
+ }
+ }
+
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index c346f21..1124cd7 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -662,15 +662,10 @@
@Transactional(rollbackFor = Exception.class)
public void confirmOrder(Long id) {
MallMember member = LoginUserUtil.getLoginUser();
- MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id);
- if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
- throw new FebsException("订单不存在");
- }
- if (orderInfo.getStatus() != OrderStatusEnum.WAIT_FINISH.getValue()) {
- throw new FebsException("该状态不能确认收货");
- }
-
+ MallOrderInfo orderInfo = ValidateEntityUtils.ensureColumnReturnEntity(id,MallOrderInfo::getId,this.baseMapper::selectOne,"订单不存在");
+ ValidateEntityUtils.ensureEqual(member.getId(), orderInfo.getMemberId(), "订单数据异常");
+ ValidateEntityUtils.ensureEqual(orderInfo.getStatus(), OrderStatusEnum.WAIT_FINISH.getValue(), "该状态不能确认收货");
// if (orderInfo.getDeliveryState() != OrderDeliveryStateEnum.DELIVERY_FINISH.getValue()) {
// throw new FebsException("还未送至自提点");
// }
@@ -720,11 +715,8 @@
@Override
public void delOrder(Long id) {
MallMember member = LoginUserUtil.getLoginUser();
- MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id);
- if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
- throw new FebsException("订单不存在");
- }
-
+ MallOrderInfo orderInfo = ValidateEntityUtils.ensureColumnReturnEntity(id,MallOrderInfo::getId,this.baseMapper::selectOne,"订单不存在");
+ ValidateEntityUtils.ensureNotEqual(orderInfo.getDelFlag(),AppContants.DEL_FLAG_Y,"订单已删除");
orderInfo.setDelFlag(AppContants.DEL_FLAG_Y);
this.baseMapper.updateById(orderInfo);
}
--
Gitblit v1.9.1