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);
}
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);
}
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();
}
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);
}
Aggregations