修改QueryGenerator和jeecg模版

This commit is contained in:
guoshengxiong 2024-08-08 17:25:11 +08:00
parent 65aaaee65d
commit b884819165
2 changed files with 28 additions and 12 deletions

View File

@ -75,32 +75,45 @@ public class QueryGenerator {
public static <T> QueryWrapper<T> initQueryWrapper(T searchObj) {
long start = System.currentTimeMillis();
QueryWrapper<T> queryWrapper = new QueryWrapper<T>();
installMplus1(queryWrapper, searchObj, null, null, null, null);
installMplus1(queryWrapper, searchObj, null, null, null, null, false);
log.info("---查询条件构造器初始化完成,耗时:" + (System.currentTimeMillis() - start) + "毫秒----");
return queryWrapper;
}
public static <T> QueryWrapper<T> initPageQueryWrapper(Class t, Map<String, Object> map, String alias, List<String> excludeFields, List<String> likeFields) {
return initPageQueryWrapper(t, map, alias, excludeFields, likeFields, false);
}
/**
* 获取查询条件构造器QueryWrapper实例 通用查询条件已被封装完成
*
* @param map 查询map
* @param likeFields RefUtil.fieldNames
* @param allSearch
* @return QueryWrapper实例
*/
public static <T> QueryWrapper<T> initPageQueryWrapper(Class t, Map<String, Object> map, String alias, List<String> excludeFields, List<String> likeFields) {
public static <T> QueryWrapper<T> initPageQueryWrapper(Class t, Map<String, Object> map, String alias, List<String> excludeFields, List<String> likeFields, boolean allSearch) {
long start = System.currentTimeMillis();
QueryWrapper<T> queryWrapper = new QueryWrapper<T>();
installMplus1(queryWrapper, JSONObject.parseObject(JSONObject.toJSONString(map), t), initParamMap(map), alias, excludeFields, likeFields);
installMplus1(queryWrapper, JSONObject.parseObject(JSONObject.toJSONString(map), t), initParamMap(map), alias, excludeFields, likeFields, allSearch);
log.info("---查询条件构造器初始化完成,耗时:" + (System.currentTimeMillis() - start) + "毫秒----");
return queryWrapper;
}
public static <T> QueryWrapper<T> initPageQueryWrapper(Class t, Map<String, Object> map, String alias, boolean allSearch) {
return initPageQueryWrapper(t, map, alias, null, null, allSearch);
}
public static <T> QueryWrapper<T> initPageQueryWrapper(Class t, Map<String, Object> map, String alias) {
return initPageQueryWrapper(t, map, alias, null, null);
return initPageQueryWrapper(t, map, alias, null, null, false);
}
public static <T> QueryWrapper<T> initPageQueryWrapper(Class t, Map<String, Object> map, boolean allSearch) {
return initPageQueryWrapper(t, map, null, allSearch);
}
public static <T> QueryWrapper<T> initPageQueryWrapper(Class t, Map<String, Object> map) {
return initPageQueryWrapper(t, map, null);
return initPageQueryWrapper(t, map, null, false);
}
private static Map<String, String[]> initParamMap(Map<String, Object> map) {
@ -122,7 +135,7 @@ public class QueryGenerator {
* <br>正确示例:QueryWrapper<JeecgDemo> queryWrapper = new QueryWrapper<JeecgDemo>();
* <br>3.也可以不使用这个方法直接调用 {@link #initQueryWrapper}直接获取实例
*/
public static void installMplus1(QueryWrapper<?> queryWrapper, Object searchObj, Map<String, String[]> parameterMap, String alias, List<String> excludeFields, List<String> likeFields) {
public static void installMplus1(QueryWrapper<?> queryWrapper, Object searchObj, Map<String, String[]> parameterMap, String alias, List<String> excludeFields, List<String> likeFields, boolean allSearch) {
/*
* 注意:权限查询由前端配置数据规则 当一个人有多个所属部门时候 可以在规则配置包含条件 orgCode 包含 #{sys_org_code}
@ -145,7 +158,7 @@ public class QueryGenerator {
name = origDescriptors[i].getName();
type = origDescriptors[i].getPropertyType().toString();
try {
if (judgedIsUselessField(name) || !PropertyUtils.isReadable(searchObj, name) || !isExistTable(searchObj, name) || (excludeFields != null && excludeFields.contains(name))) {
if (judgedIsUselessField(name) || !PropertyUtils.isReadable(searchObj, name) || !isExistTable(searchObj, name, allSearch) || (excludeFields != null && excludeFields.contains(name))) {
continue;
}
//模糊查询
@ -207,6 +220,7 @@ public class QueryGenerator {
/**
* 多字段排序 TODO1 需要修改前端
*
* @param queryWrapper
* @param parameterMap
* @param alias
@ -535,7 +549,7 @@ public class QueryGenerator {
name = origDescriptors[i].getName();
type = origDescriptors[i].getPropertyType().toString();
try {
if (!isExistTable(searchObj, name)) {
if (!isExistTable(searchObj, name, false)) {
continue;
}
if (judgedIsUselessField(name) || !PropertyUtils.isReadable(searchObj, name) || (excludeFields != null && excludeFields.contains(name))) {
@ -597,7 +611,10 @@ public class QueryGenerator {
doSuperQuery(queryWrapper, parameterMap, defaultAlias);
}
private static boolean isExistTable(Object searchObj, String name) {
private static boolean isExistTable(Object searchObj, String name, boolean allSearch) {
if (allSearch) {
return true;
}
Field field = ReflectUtil.getField(searchObj.getClass(), name);
Object queryEndTime = AnnotationUtil.getAnnotationValue(field, TableField.class, "exist");
return !Objects.equals(queryEndTime, false);

View File

@ -43,9 +43,8 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $
}
private QueryWrapper<${entityName}> getQueryWrapper(HashMap<String, Object> param) {
String alias = "";
QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initPageQueryWrapper(${entityName}.class, param, alias);
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(${entityName}::getId));
QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initPageQueryWrapper(${entityName}.class, param, true);
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(${entityName}::getId));
return queryWrapper;
}