add 新增mock数据工具类
This commit is contained in:
parent
553fca28a2
commit
212fb6978b
@ -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数据工具类
|
||||
* <p>
|
||||
* 可用于开发测试阶段模拟接口数据
|
||||
* </p>
|
||||
*
|
||||
* @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 <T> 类型泛型
|
||||
* @return 对象实例
|
||||
*/
|
||||
public static <T> T parseObject(String fileName, Class<T> clazz) {
|
||||
String json = readJson(fileName);
|
||||
return JsonUtils.parseObject(json, clazz);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析 mock JSON 文件为对象列表
|
||||
*
|
||||
* @param fileName 文件名
|
||||
* @param clazz 要解析的目标类型
|
||||
* @param <T> 类型泛型
|
||||
* @return 对象列表
|
||||
*/
|
||||
public static <T> List<T> parseList(String fileName, Class<T> clazz) {
|
||||
String json = readJson(fileName);
|
||||
return JsonUtils.parseArray(json, clazz);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析 mock JSON 文件为分页数据
|
||||
*
|
||||
* @param fileName 文件名
|
||||
* @param clazz 要解析的目标类型
|
||||
* @param page 分页参数(IPage实现类)
|
||||
* @param <T> 类型泛型
|
||||
* @return 模拟分页结果
|
||||
*/
|
||||
public static <T> TableDataInfo<T> parsePage(String fileName, Class<T> clazz, IPage<T> page) {
|
||||
List<T> 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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user