From 212fb6978bcab021ca64cd25c1bb6d87e493ef4a Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Mon, 12 May 2025 17:06:43 +0800
Subject: [PATCH 1/2] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9Emock=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E5=B7=A5=E5=85=B7=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/java/utils/MockDataUtils.java | 87 +++++++++++++++++++
1 file changed, 87 insertions(+)
create mode 100644 ruoyi-modules/ruoyi-demo/src/main/java/utils/MockDataUtils.java
diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/utils/MockDataUtils.java b/ruoyi-modules/ruoyi-demo/src/main/java/utils/MockDataUtils.java
new file mode 100644
index 000000000..dfcc2a4b5
--- /dev/null
+++ b/ruoyi-modules/ruoyi-demo/src/main/java/utils/MockDataUtils.java
@@ -0,0 +1,87 @@
+package utils;
+
+import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.io.resource.ResourceUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.dromara.common.json.utils.JsonUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * mock数据工具类
+ *
+ * 可用于开发测试阶段模拟接口数据
+ *
+ *
+ * @author AprilWind
+ */
+public class MockDataUtils {
+
+ /**
+ * 读取 resources/mock 目录下的 JSON 文件内容
+ *
+ * @param fileName 文件名
+ * @return JSON 字符串
+ */
+ public static String readJson(String fileName) {
+ InputStream is = ResourceUtil.getStream("mock/" + fileName);
+ return IoUtil.readUtf8(is);
+ }
+
+ /**
+ * 解析 mock JSON 文件为单个对象
+ *
+ * @param fileName 文件名
+ * @param clazz 要解析的目标类型
+ * @param 类型泛型
+ * @return 对象实例
+ */
+ public static T parseObject(String fileName, Class clazz) {
+ String json = readJson(fileName);
+ return JsonUtils.parseObject(json, clazz);
+ }
+
+ /**
+ * 解析 mock JSON 文件为对象列表
+ *
+ * @param fileName 文件名
+ * @param clazz 要解析的目标类型
+ * @param 类型泛型
+ * @return 对象列表
+ */
+ public static List parseList(String fileName, Class clazz) {
+ String json = readJson(fileName);
+ return JsonUtils.parseArray(json, clazz);
+ }
+
+ /**
+ * 解析 mock JSON 文件为分页数据
+ *
+ * @param fileName 文件名
+ * @param clazz 要解析的目标类型
+ * @param page 分页参数(IPage实现类)
+ * @param 类型泛型
+ * @return 模拟分页结果
+ */
+ public static TableDataInfo parsePage(String fileName, Class clazz, IPage page) {
+ List list = parseList(fileName, clazz);
+ return TableDataInfo.build(list, page);
+ }
+
+ /**
+ * 判断 mock 文件是否存在
+ *
+ * @param fileName 文件名
+ * @return true: 文件存在;false: 不存在
+ */
+ public static boolean exists(String fileName) {
+ try {
+ return ResourceUtil.getStream("mock/" + fileName) != null;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+}
From c96dd23649a34442c7a31a418244435791094016 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Mon, 12 May 2025 17:15:41 +0800
Subject: [PATCH 2/2] =?UTF-8?q?update=20=E7=A7=BB=E5=8A=A8=E5=88=B0?=
=?UTF-8?q?=E6=AD=A3=E7=A1=AE=E7=9B=AE=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/java/{ => org/dromara/demo}/utils/MockDataUtils.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
rename ruoyi-modules/ruoyi-demo/src/main/java/{ => org/dromara/demo}/utils/MockDataUtils.java (98%)
diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/utils/MockDataUtils.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/utils/MockDataUtils.java
similarity index 98%
rename from ruoyi-modules/ruoyi-demo/src/main/java/utils/MockDataUtils.java
rename to ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/utils/MockDataUtils.java
index dfcc2a4b5..4a278a1c2 100644
--- a/ruoyi-modules/ruoyi-demo/src/main/java/utils/MockDataUtils.java
+++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/utils/MockDataUtils.java
@@ -1,4 +1,4 @@
-package utils;
+package org.dromara.demo.utils;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.ResourceUtil;