From c3ee5dd9cda004b034fd586b87eda13d99ef054d Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 24 Jan 2025 10:28:02 +0800
Subject: [PATCH] refactor(mall): 修复 API 订单列表接口

---
 src/main/java/cc/mrbird/febs/common/utils/ValidateEntityUtils.java |   33 +++++++++++++++++++++++++++++----
 1 files changed, 29 insertions(+), 4 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..83a8b90 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/ValidateEntityUtils.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/ValidateEntityUtils.java
@@ -17,6 +17,7 @@
 
     /**
      * 确保指定列的有效性,并返回相应的实体对象
+     *      selectOne方法
      *      此方法用于验证数据库中某列的值是否存在,并返回包含该值的实体对象
      *      如果指定的值不存在或为null,将抛出异常
      *
@@ -54,7 +55,8 @@
             if (columnExtractors != null && columnExtractors.length > 0) {
                 wrapper.select(columnExtractors);
             }
-            wrapper.eq(columnExtractor, valueToCheck);
+            wrapper.eq(columnExtractor, valueToCheck)
+                    .last("limit 1");
 
             // 执行查询并获取结果实体
             entity = queryWrapperExtractor.apply(wrapper);
@@ -85,8 +87,9 @@
 
     /**
      * 确保指定列的有效性,并返回相应的实体对象列表
-     * 此方法用于验证数据库中某列的值是否存在,并返回包含该值的实体对象列表
-     * 如果指定的值不存在或为null,将抛出异常
+     *      selectList方法
+     *      此方法用于验证数据库中某列的值是否存在,并返回包含该值的实体对象列表
+     *      如果指定的值不存在或为null,将抛出异常
      *
      * @param valueToCheck 需要验证的值
      * @param columnExtractor 列值提取器,用于指定需要验证的列
@@ -135,7 +138,8 @@
     }
 
     /**
-     * 确保指定列的值在数据库中是存在的,
+     * 确保指定列的值在数据库中是存在的
+     *      selectOne方法
      *      该方法通过查询数据库来验证给定的列值是否存在如果不存在,则抛出异常
      *
      * @param valueToCheck 需要验证的列值
@@ -183,6 +187,7 @@
 
     /**
      * 确保指定值在数据库中是唯一的
+     *      selectCount方法
      *      该方法通过查询数据库来验证给定的列值是否已经存在,如果存在,则抛出异常,以确保数据的唯一性
      *
      * @param valueToCheck 需要检查的值
@@ -252,4 +257,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));
+        }
+    }
+
+
 }

--
Gitblit v1.9.1