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; + } + } + +}