From 02e3fbfc96e08c9285daaa5a6ec53716c747a671 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期五, 29 八月 2025 10:42:18 +0800 Subject: [PATCH] 1 --- zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java | 176 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 141 insertions(+), 35 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java index b89922b..eabae2b 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java @@ -24,6 +24,11 @@ private static final long serialVersionUID = 1L; public static final String ORDER_DESC_VALUE = "desc"; + public static final Integer DEFAULT_PAGESIZE = 100; + + public static final Integer DEFAULT_CURRENT = 1; + + private final U where; /** @@ -45,6 +50,7 @@ this(where, true, cls); } + public PageParam(U where, boolean isToUnderlineCase) { this(where, isToUnderlineCase, null); } @@ -65,39 +71,21 @@ } - public QueryWrapper<T> buildWrapper() { - return this.buildWrapper(false); - } - public QueryWrapper<T> buildWrapper(Consumer<QueryWrapper<T>> consumer) { - return this.buildWrapper(false, consumer); + public QueryWrapper<T> buildWrapperExcludeNull(boolean like) { + return this.buildWrapperExcludeNull(like, null, "create_time"); } public QueryWrapper<T> buildWrapper(boolean like) { - return this.buildWrapper(like, null); + return this.buildWrapper(like, null, "create_time"); } - private boolean sortIsSQL(String sort) { - return sort != null && (sort.contains(",") || sort.trim().contains(" ")); - } - - private List<OrderItem> parseOrderSQL(String orderSQL) { - List<OrderItem> orders = new ArrayList<>(); - if (!Cools.isEmpty(orderSQL)) { - for (String item : orderSQL.split(",")) { - String[] temp = item.trim().split(" "); - if (!temp[0].isEmpty()) { - String column = this.isToUnderlineCase ? Utils.toSymbolCase(temp[0], '_') : temp[0]; - boolean asc = temp.length == 1 || !temp[temp.length - 1].toLowerCase().equals(ORDER_DESC_VALUE); - orders.add(new OrderItem(column, asc)); - } - } - } - return orders; + public QueryWrapper<T> buildWrapper(boolean like, String timeField) { + return this.buildWrapper(like, null, timeField); } @SuppressWarnings("all") - public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer) { + public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField) { QueryWrapper<T> queryWrapper = new QueryWrapper<>(); Map<String, Object> map = where.getMap(); for (String key : map.keySet()) { @@ -134,11 +122,12 @@ if (!Cools.isEmpty(where.getTimeStart())) { Date timeStart = DateUtils.convert(String.valueOf(where.getTimeStart()), DateUtils.yyyyMMdd_F); - queryWrapper.ge("create_time", timeStart); + queryWrapper.ge(timeField, timeStart); + } if (!Cools.isEmpty(where.getTimeEnd())) { Date timeStart = DateUtils.convert(String.valueOf(where.getTimeEnd()), DateUtils.yyyyMMdd_F); - queryWrapper.le("create_time", timeStart); + queryWrapper.le(timeField, timeStart); } if (!Cools.isEmpty(where.getOrderBy())) { @@ -151,25 +140,25 @@ if (!Cools.isEmpty(where.getCondition()) && !Cools.isEmpty(cls)) { List<String> columns = new ArrayList<>(); - for (Field field : Cools.getAllFields(cls)){ + for (Field field : Cools.getAllFields(cls)) { if (Modifier.isFinal(field.getModifiers()) || Modifier.isStatic(field.getModifiers()) - || Modifier.isTransient(field.getModifiers())){ + || Modifier.isTransient(field.getModifiers())) { continue; } - if (field.isAnnotationPresent(TableField.class)){ + if (field.isAnnotationPresent(TableField.class)) { TableField annotation = field.getAnnotation(TableField.class); if (!annotation.exist()) { continue; } } - String column = Utils.toSymbolCase(field.getName(), '_'); + String column = Utils.toSymbolCase(field.getName(), '_'); columns.add(column); } if (!columns.isEmpty()) { - for (int i=0;i<columns.size();i++){ + for (int i = 0; i < columns.size(); i++) { String column = columns.get(i); String condition = where.getCondition(); @@ -184,12 +173,129 @@ return queryWrapper; } - public Map<String, Object> pickOutMap(boolean mergeCondition) { + @SuppressWarnings("all") + public QueryWrapper<T> buildWrapperExcludeNull(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField) { + QueryWrapper<T> queryWrapper = new QueryWrapper<>(); Map<String, Object> map = where.getMap(); - if (mergeCondition) { - if (!Cools.isEmpty(where.getCondition())) { - map.put("condition", where.getCondition()); + for (String key : map.keySet()) { + Object val = map.get(key); + if (val == null) { + continue; } + if (key.contains("Range")) { + ArrayList<String> list = null; + if (val instanceof ArrayList) { + list = (ArrayList<String>) val; + } + if (null != list) { + key = key.replaceAll("Range", ""); + if (this.isToUnderlineCase) { + key = Utils.toSymbolCase(key, '_'); + } + queryWrapper.ge(key, DateUtils.convert(list.get(0))); + queryWrapper.le(key, DateUtils.convert(list.get(1))); + } + } else { + if (this.isToUnderlineCase) { + key = Utils.toSymbolCase(key, '_'); + } + if (like) { + queryWrapper.like(key, val); + } else { + queryWrapper.eq(key, val); + } + } + } + + if (null != consumer) { + consumer.accept(queryWrapper); + } + + if (!Cools.isEmpty(where.getTimeStart())) { + Date timeStart = DateUtils.convert(String.valueOf(where.getTimeStart()), DateUtils.yyyyMMdd_F); + queryWrapper.ge(timeField, timeStart); + + } + if (!Cools.isEmpty(where.getTimeEnd())) { + Date timeStart = DateUtils.convert(String.valueOf(where.getTimeEnd()), DateUtils.yyyyMMdd_F); + queryWrapper.le(timeField, timeStart); + } + + if (!Cools.isEmpty(where.getOrderBy())) { + if (sortIsSQL(where.getOrderBy())) { + setOrders(parseOrderSQL(where.getOrderBy())); + } + } else { +// queryWrapper.orderByDesc("create_time"); + } + + if (!Cools.isEmpty(where.getCondition()) && !Cools.isEmpty(cls)) { + List<String> columns = new ArrayList<>(); + for (Field field : Cools.getAllFields(cls)) { + if (Modifier.isFinal(field.getModifiers()) + || Modifier.isStatic(field.getModifiers()) + || Modifier.isTransient(field.getModifiers())) { + continue; + } + + if (field.isAnnotationPresent(TableField.class)) { + TableField annotation = field.getAnnotation(TableField.class); + if (!annotation.exist()) { + continue; + } + } + + String column = Utils.toSymbolCase(field.getName(), '_'); + columns.add(column); + } + if (!columns.isEmpty()) { + for (int i = 0; i < columns.size(); i++) { + String column = columns.get(i); + String condition = where.getCondition(); + + if (i == 0) { + queryWrapper.and(wrapper -> wrapper.like(column, condition)); + } else { + queryWrapper.or().like(column, condition); + } + } + } + } + return queryWrapper; + } + + private boolean sortIsSQL(String sort) { + return sort != null && (sort.contains(",") || sort.trim().contains(" ")); + } + + private List<OrderItem> parseOrderSQL(String orderSQL) { + List<OrderItem> orders = new ArrayList<>(); + if (!Cools.isEmpty(orderSQL)) { + for (String item : orderSQL.split(",")) { + String[] temp = item.trim().split(" "); + if (!temp[0].isEmpty()) { + String column = this.isToUnderlineCase ? Utils.toSymbolCase(temp[0], '_') : temp[0]; + boolean asc = temp.length == 1 || !temp[temp.length - 1].toLowerCase().equals(ORDER_DESC_VALUE); + orders.add(new OrderItem(column, asc)); + } + } + } + return orders; + } + + public Map<String, Object> checkoutMap() { + Map<String, Object> map = where.getMap(); + if (!Cools.isEmpty(where.getOrderBy())) { + map.put("orderBy", where.getOrderBy()); + } + if (!Cools.isEmpty(where.getTimeStart())) { + map.put("timeStart", DateUtils.convert(String.valueOf(where.getTimeStart()), DateUtils.yyyyMMdd_F)); + } + if (!Cools.isEmpty(where.getTimeEnd())) { + map.put("timeEnd", DateUtils.convert(String.valueOf(where.getTimeEnd()), DateUtils.yyyyMMdd_F)); + } + if (!Cools.isEmpty(where.getCondition())) { + map.put("condition", where.getCondition()); } return map; } -- Gitblit v1.9.1