Search in sources :

Example 6 with Order

use of cn.hutool.db.sql.Order in project Jpom by dromara.

the class BaseDbService method listPage.

@Override
public PageResultDto<T> listPage(Entity where, Page page) {
    if (ArrayUtil.isEmpty(page.getOrders())) {
        page.addOrder(new Order("createTimeMillis", Direction.DESC));
        page.addOrder(new Order("modifyTimeMillis", Direction.DESC));
    }
    return super.listPage(where, page);
}
Also used : Order(cn.hutool.db.sql.Order)

Example 7 with Order

use of cn.hutool.db.sql.Order in project Jpom by dromara.

the class BaseDbService method listPage.

/**
 * 通用的分页查询, 使用该方法查询,数据库表字段不能包含 "page", "limit", "order_field", "order", "total"
 * <p>
 * page=1&limit=10&order=ascend&order_field=name
 *
 * @param paramMap 请求参数
 * @return page
 */
public PageResultDto<T> listPage(Map<String, String> paramMap) {
    String orderField = paramMap.get("order_field");
    String order = paramMap.get("order");
    // 
    Page pageReq = this.parsePage(paramMap);
    Entity where = Entity.create();
    List<String> ignoreField = new ArrayList<>(10);
    // 查询条件
    for (Map.Entry<String, String> stringStringEntry : paramMap.entrySet()) {
        String key = stringStringEntry.getKey();
        String value = stringStringEntry.getValue();
        if (StrUtil.isEmpty(value)) {
            continue;
        }
        key = StrUtil.removeAll(key, "%");
        if (StrUtil.startWith(stringStringEntry.getKey(), "%") && StrUtil.endWith(stringStringEntry.getKey(), "%")) {
            where.set(StrUtil.format("`{}`", key), StrUtil.format(" like '%{}%'", value));
        } else if (StrUtil.endWith(stringStringEntry.getKey(), "%")) {
            where.set(StrUtil.format("`{}`", key), StrUtil.format(" like '{}%'", value));
        } else if (StrUtil.startWith(stringStringEntry.getKey(), "%")) {
            where.set(StrUtil.format("`{}`", key), StrUtil.format(" like '%{}'", value));
        } else if (StrUtil.containsIgnoreCase(key, "time") && StrUtil.contains(value, "~")) {
            // 时间筛选
            String[] val = StrUtil.splitToArray(value, "~");
            if (val.length == 2) {
                DateTime startDateTime = DateUtil.parse(val[0], DatePattern.NORM_DATETIME_FORMAT);
                where.set(key, ">= " + startDateTime.getTime());
                DateTime endDateTime = DateUtil.parse(val[1], DatePattern.NORM_DATETIME_FORMAT);
                if (startDateTime.equals(endDateTime)) {
                    endDateTime = DateUtil.endOfDay(endDateTime);
                }
                // 防止字段重复
                where.set(key + " ", "<= " + endDateTime.getTime());
            }
        } else if (StrUtil.containsIgnoreCase(key, "time")) {
            // 时间筛选
            String timeKey = StrUtil.removeAny(key, "[0]", "[1]");
            if (ignoreField.contains(timeKey)) {
                continue;
            }
            String startTime = paramMap.get(timeKey + "[0]");
            String endTime = paramMap.get(timeKey + "[1]");
            if (StrUtil.isAllNotEmpty(startTime, endTime)) {
                DateTime startDateTime = DateUtil.parse(startTime, DatePattern.NORM_DATETIME_FORMAT);
                where.set(timeKey, ">= " + startDateTime.getTime());
                DateTime endDateTime = DateUtil.parse(endTime, DatePattern.NORM_DATETIME_FORMAT);
                if (startDateTime.equals(endDateTime)) {
                    endDateTime = DateUtil.endOfDay(endDateTime);
                }
                // 防止字段重复
                where.set(timeKey + " ", "<= " + endDateTime.getTime());
            }
            ignoreField.add(timeKey);
        } else if (StrUtil.endWith(key, ":in")) {
            String inKey = StrUtil.removeSuffix(key, ":in");
            where.set(StrUtil.format("`{}`", inKey), StrUtil.split(value, StrUtil.COMMA));
        } else {
            where.set(StrUtil.format("`{}`", key), value);
        }
    }
    // 排序
    if (StrUtil.isNotEmpty(orderField)) {
        orderField = StrUtil.removeAll(orderField, "%");
        pageReq.addOrder(new Order(orderField, StrUtil.equalsIgnoreCase(order, "ascend") ? Direction.ASC : Direction.DESC));
    }
    return this.listPage(where, pageReq);
}
Also used : Order(cn.hutool.db.sql.Order) Entity(cn.hutool.db.Entity) ArrayList(java.util.ArrayList) Page(cn.hutool.db.Page) Map(java.util.Map) DateTime(cn.hutool.core.date.DateTime)

Example 8 with Order

use of cn.hutool.db.sql.Order in project Jpom by dromara.

the class MonitorItem method getPreStatus.

/**
 * 获取上次是否也为异常状态
 *
 * @param monitorId 监控id
 * @param nodeId    节点id
 * @param projectId 项目id
 * @return true 为正常状态,false 异常状态
 */
private boolean getPreStatus(String monitorId, String nodeId, String projectId) {
    // 检查是否已经触发通知
    MonitorNotifyLog monitorNotifyLog = new MonitorNotifyLog();
    monitorNotifyLog.setNodeId(nodeId);
    monitorNotifyLog.setProjectId(projectId);
    monitorNotifyLog.setMonitorId(monitorId);
    List<MonitorNotifyLog> queryList = dbMonitorNotifyLogService.queryList(monitorNotifyLog, 1, new Order("createTime", Direction.DESC));
    MonitorNotifyLog entity1 = CollUtil.getFirst(queryList);
    return entity1 == null || entity1.status();
}
Also used : Order(cn.hutool.db.sql.Order) MonitorNotifyLog(io.jpom.model.log.MonitorNotifyLog)

Example 9 with Order

use of cn.hutool.db.sql.Order in project hutool by dromara.

the class PageTest method addOrderTest.

@Test
public void addOrderTest() {
    Page page = new Page();
    page.addOrder(new Order("aaa"));
    Assert.assertEquals(page.getOrders().length, 1);
    page.addOrder(new Order("aaa"));
    Assert.assertEquals(page.getOrders().length, 2);
}
Also used : Order(cn.hutool.db.sql.Order) Test(org.junit.Test)

Aggregations

Order (cn.hutool.db.sql.Order)9 Entity (cn.hutool.db.Entity)4 Page (cn.hutool.db.Page)4 DateTime (cn.hutool.core.date.DateTime)2 Test (org.junit.Test)2 BackupInfoModel (io.jpom.model.data.BackupInfoModel)1 NodeModel (io.jpom.model.data.NodeModel)1 MonitorNotifyLog (io.jpom.model.log.MonitorNotifyLog)1 SystemMonitorLog (io.jpom.model.log.SystemMonitorLog)1 ArrayList (java.util.ArrayList)1 Map (java.util.Map)1