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