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