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;