From b884819165f828fdd3ce313fd503876a2292ad32 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Thu, 8 Aug 2024 17:25:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9QueryGenerator=E5=92=8Cjeecg?= =?UTF-8?q?=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/system/query/QueryGenerator.java | 35 ++++++++++++++----- .../impl/${entityName}ServiceImpl.javai | 5 ++- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zhgd/jeecg/common/system/query/QueryGenerator.java b/src/main/java/com/zhgd/jeecg/common/system/query/QueryGenerator.java index 7c83ec7ba..2d9ac587b 100644 --- a/src/main/java/com/zhgd/jeecg/common/system/query/QueryGenerator.java +++ b/src/main/java/com/zhgd/jeecg/common/system/query/QueryGenerator.java @@ -75,32 +75,45 @@ public class QueryGenerator { public static QueryWrapper initQueryWrapper(T searchObj) { long start = System.currentTimeMillis(); QueryWrapper queryWrapper = new QueryWrapper(); - installMplus1(queryWrapper, searchObj, null, null, null, null); + installMplus1(queryWrapper, searchObj, null, null, null, null, false); log.info("---查询条件构造器初始化完成,耗时:" + (System.currentTimeMillis() - start) + "毫秒----"); return queryWrapper; } + public static QueryWrapper initPageQueryWrapper(Class t, Map map, String alias, List excludeFields, List likeFields) { + return initPageQueryWrapper(t, map, alias, excludeFields, likeFields, false); + } + /** * 获取查询条件构造器QueryWrapper实例 通用查询条件已被封装完成 * * @param map 查询map * @param likeFields RefUtil.fieldNames + * @param allSearch * @return QueryWrapper实例 */ - public static QueryWrapper initPageQueryWrapper(Class t, Map map, String alias, List excludeFields, List likeFields) { + public static QueryWrapper initPageQueryWrapper(Class t, Map map, String alias, List excludeFields, List likeFields, boolean allSearch) { long start = System.currentTimeMillis(); QueryWrapper queryWrapper = new QueryWrapper(); - 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 QueryWrapper initPageQueryWrapper(Class t, Map map, String alias, boolean allSearch) { + return initPageQueryWrapper(t, map, alias, null, null, allSearch); + } + public static QueryWrapper initPageQueryWrapper(Class t, Map map, String alias) { - return initPageQueryWrapper(t, map, alias, null, null); + return initPageQueryWrapper(t, map, alias, null, null, false); + } + + public static QueryWrapper initPageQueryWrapper(Class t, Map map, boolean allSearch) { + return initPageQueryWrapper(t, map, null, allSearch); } public static QueryWrapper initPageQueryWrapper(Class t, Map map) { - return initPageQueryWrapper(t, map, null); + return initPageQueryWrapper(t, map, null, false); } private static Map initParamMap(Map map) { @@ -122,7 +135,7 @@ public class QueryGenerator { *
正确示例:QueryWrapper queryWrapper = new QueryWrapper(); *
3.也可以不使用这个方法直接调用 {@link #initQueryWrapper}直接获取实例 */ - public static void installMplus1(QueryWrapper queryWrapper, Object searchObj, Map parameterMap, String alias, List excludeFields, List likeFields) { + public static void installMplus1(QueryWrapper queryWrapper, Object searchObj, Map parameterMap, String alias, List excludeFields, List 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); diff --git a/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai b/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai index a804ad7a9..64f0ec45f 100644 --- a/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai +++ b/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai @@ -43,9 +43,8 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $ } private QueryWrapper<${entityName}> getQueryWrapper(HashMap 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; }