From efd0f66ad9528caabcbf83cd7ce3ed4c01da5127 Mon Sep 17 00:00:00 2001 From: huguanghan Date: Tue, 5 Nov 2024 16:34:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E4=BF=A1=E6=81=AF=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=20=E7=A1=AE=E8=AE=A4=E6=8E=A5=E5=8F=A3=E6=96=B0?= =?UTF-8?q?=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/data/domain/DeviceEventInfo.java | 2 - .../modules/data/service/TDEngineService.java | 47 +++++++++++++++++-- .../event/controller/EventController.java | 5 +- .../modules/event/domain/EventQueryParam.java | 14 +++++- .../modules/event/service/EventService.java | 3 +- .../event/service/impl/EventServiceImpl.java | 11 +++-- 6 files changed, 69 insertions(+), 13 deletions(-) diff --git a/das/src/main/java/com/das/modules/data/domain/DeviceEventInfo.java b/das/src/main/java/com/das/modules/data/domain/DeviceEventInfo.java index 7f523ced..f50dfd71 100644 --- a/das/src/main/java/com/das/modules/data/domain/DeviceEventInfo.java +++ b/das/src/main/java/com/das/modules/data/domain/DeviceEventInfo.java @@ -6,10 +6,8 @@ import lombok.Data; @Data public class DeviceEventInfo { - @JsonSerialize(using = ToStringSerializer.class) private Long eventTime; - @JsonSerialize(using = ToStringSerializer.class) private Long eventId; private Integer eventType; diff --git a/das/src/main/java/com/das/modules/data/service/TDEngineService.java b/das/src/main/java/com/das/modules/data/service/TDEngineService.java index 71386e74..e2fe31c1 100644 --- a/das/src/main/java/com/das/modules/data/service/TDEngineService.java +++ b/das/src/main/java/com/das/modules/data/service/TDEngineService.java @@ -2,6 +2,7 @@ package com.das.modules.data.service; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; +import com.das.common.utils.PageDataInfo; import com.das.modules.data.domain.DeviceEventInfo; import com.das.modules.data.service.impl.DataServiceImpl; import com.das.modules.equipment.domain.vo.IotModelFieldVo; @@ -609,9 +610,10 @@ public class TDEngineService { return result; } - public List queryEvent(Integer eventLevel, Long startTime, Long endTime, List deviceCodeList) { + public PageDataInfo queryEvent(Integer eventLevel, Long startTime, Long endTime, List deviceCodeList, Integer limit, Integer offset) { List result = new ArrayList<>(); StringBuffer sb = new StringBuffer(2048); + Integer total = 0; sb.append("select t.* from event_info t where "); sb.append(String.format(" t.event_time >= %d and t.event_time < %d", startTime, endTime)); if (eventLevel != null) { @@ -628,7 +630,13 @@ public class TDEngineService { } } sb.append(" order by t.event_time"); + if (limit != null){ + sb.append(" limit ").append(offset).append(",").append(limit); + total = getEventCount(eventLevel,startTime,endTime,deviceCodeList); + } + log.debug(sb.toString()); + try (Connection conn = hikariDataSource.getConnection(); Statement smt = conn.createStatement(); ResultSet rs = smt.executeQuery(sb.toString())) { @@ -648,9 +656,42 @@ public class TDEngineService { } } catch (Exception e) { log.error("获取数据异常", e); - return result; + return PageDataInfo.build(result, total); } - return result; + return PageDataInfo.build(result, total); + } + + private Integer getEventCount(Integer eventLevel, Long startTime, Long endTime, List deviceCodeList){ + List result = new ArrayList<>(); + StringBuffer sb = new StringBuffer(2048); + sb.append("select count(t.*) as total from event_info t where "); + sb.append(String.format(" t.event_time >= %d and t.event_time < %d", startTime, endTime)); + if (eventLevel != null) { + sb.append(String.format(" and t.event_level = %d", eventLevel)); + } + if (!CollectionUtils.isEmpty(deviceCodeList)) { + sb.append(" and t.device_code in ("); + for (int i = 0; i < deviceCodeList.size(); i++) { + if (i == deviceCodeList.size() - 1) { + sb.append("'").append(deviceCodeList.get(i)).append("')"); + } else { + sb.append("'").append(deviceCodeList.get(i)).append("',"); + } + } + } + log.debug(sb.toString()); + Integer total = null; + try (Connection conn = hikariDataSource.getConnection(); + Statement smt = conn.createStatement(); + ResultSet rs = smt.executeQuery(sb.toString())) { + + while (rs.next()) { + total = rs.getInt("total"); + } + } catch (Exception e) { + log.error("获取数据异常", e); + } + return total; } public void confirmEvent(DeviceEventInfo deviceEventInfo) { diff --git a/das/src/main/java/com/das/modules/event/controller/EventController.java b/das/src/main/java/com/das/modules/event/controller/EventController.java index e19af6d0..9c6e3e45 100644 --- a/das/src/main/java/com/das/modules/event/controller/EventController.java +++ b/das/src/main/java/com/das/modules/event/controller/EventController.java @@ -2,6 +2,7 @@ package com.das.modules.event.controller; import com.das.common.result.R; import com.das.common.utils.JsonUtils; +import com.das.common.utils.PageDataInfo; import com.das.modules.data.domain.DeviceEventInfo; import com.das.modules.event.domain.EventQueryParam; import com.das.modules.event.service.EventService; @@ -33,12 +34,12 @@ public class EventController { * @return TD数据库数据 */ @PostMapping("/query") - public R> queryEvent(@RequestBody @Valid EventQueryParam param) { + public PageDataInfo queryEvent(@RequestBody @Valid EventQueryParam param) { if (log.isDebugEnabled()){ log.debug("/api/event/query is calling"); log.debug(JsonUtils.toJsonString(param)); } - return R.success(eventService.queryEvent(param)); + return eventService.queryEvent(param); } /** diff --git a/das/src/main/java/com/das/modules/event/domain/EventQueryParam.java b/das/src/main/java/com/das/modules/event/domain/EventQueryParam.java index c4946328..e11be94b 100644 --- a/das/src/main/java/com/das/modules/event/domain/EventQueryParam.java +++ b/das/src/main/java/com/das/modules/event/domain/EventQueryParam.java @@ -14,12 +14,12 @@ public class EventQueryParam /** * 开始时间 */ - private String startTime; + private Long startTime; /** * 结束时间 */ - private String endTime; + private Long endTime; /** * 事件等级 @@ -30,4 +30,14 @@ public class EventQueryParam * 设备编码列表 */ private List deviceCode; + + /** + * pageNum; + */ + private Integer pageNum; + + /** + * pageSize + */ + private Integer pageSize; } diff --git a/das/src/main/java/com/das/modules/event/service/EventService.java b/das/src/main/java/com/das/modules/event/service/EventService.java index ee777d12..89e86126 100644 --- a/das/src/main/java/com/das/modules/event/service/EventService.java +++ b/das/src/main/java/com/das/modules/event/service/EventService.java @@ -1,5 +1,6 @@ package com.das.modules.event.service; +import com.das.common.utils.PageDataInfo; import com.das.modules.data.domain.DeviceEventInfo; import com.das.modules.event.domain.EventQueryParam; import org.springframework.web.bind.annotation.RequestBody; @@ -7,7 +8,7 @@ import org.springframework.web.bind.annotation.RequestBody; import java.util.List; public interface EventService { - List queryEvent(EventQueryParam param); + PageDataInfo queryEvent(EventQueryParam param); void confirmEvent(List deviceEventInfoList); } diff --git a/das/src/main/java/com/das/modules/event/service/impl/EventServiceImpl.java b/das/src/main/java/com/das/modules/event/service/impl/EventServiceImpl.java index 04da4c80..00d1e2b3 100644 --- a/das/src/main/java/com/das/modules/event/service/impl/EventServiceImpl.java +++ b/das/src/main/java/com/das/modules/event/service/impl/EventServiceImpl.java @@ -3,6 +3,7 @@ package com.das.modules.event.service.impl; import cn.dev33.satoken.stp.StpUtil; import com.das.common.config.SessionUtil; import com.das.common.exceptions.ServiceException; +import com.das.common.utils.PageDataInfo; import com.das.modules.auth.domain.vo.SysUserVo; import com.das.modules.data.domain.DeviceEventInfo; import com.das.modules.data.service.TDEngineService; @@ -22,11 +23,15 @@ public class EventServiceImpl implements EventService { private TDEngineService tdEngineService; @Override - public List queryEvent(EventQueryParam param) { - if (param.getStartTime() == null || param.getEndTime() ==null){ + public PageDataInfo queryEvent(EventQueryParam param) { + if (param.getStartTime() == null || param.getEndTime() == null) { throw new ServiceException("查询时间不能为空"); } - List deviceEventInfos = tdEngineService.queryEvent(param.getEventLevel(), Long.valueOf(param.getStartTime()), Long.valueOf(param.getEndTime()), param.getDeviceCode()); + Integer offset = null; + if (param.getPageNum() != null) { + offset = (param.getPageNum() - 1) * param.getPageSize(); + } + PageDataInfo deviceEventInfos = tdEngineService.queryEvent(param.getEventLevel(), param.getStartTime(), param.getEndTime(), param.getDeviceCode(), param.getPageSize(), offset); return deviceEventInfos; }