Jelajahi Sumber

1.剔除旧的事件表以及相关代码
2.调整新的web端和小程序端查询告警事件接口

hxd 1 bulan lalu
induk
melakukan
fc1a1cb2cc
39 mengubah file dengan 339 tambahan dan 874 penghapusan
  1. 0 6
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/DeviceController.java
  2. 18 7
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/StatsController.java
  3. 6 15
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebStatsController.java
  4. 0 54
      portal-service-common/src/main/java/com/hfln/portal/common/dto/data/event/AlarmEventDTO.java
  5. 2 2
      portal-service-common/src/main/java/com/hfln/portal/common/dto/data/event/AlarmTimePlanDTO.java
  6. 47 0
      portal-service-common/src/main/java/com/hfln/portal/common/dto/data/event/EventsDTO.java
  7. 0 66
      portal-service-common/src/main/java/com/hfln/portal/common/dto/data/event/StayTimeDTO.java
  8. 1 1
      portal-service-common/src/main/java/com/hfln/portal/common/dto/data/home/HomeInfoDTO.java
  9. 3 9
      portal-service-common/src/main/java/com/hfln/portal/common/request/event/WapEventsParams.java
  10. 4 6
      portal-service-common/src/main/java/com/hfln/portal/common/request/event/WebEventsParams.java
  11. 0 22
      portal-service-common/src/main/java/com/hfln/portal/common/response/device/UsedInfoQueryRes.java
  12. 1 2
      portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/DeviceGateway.java
  13. 4 4
      portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/StatsGateway.java
  14. 3 7
      portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/WebStatsGateway.java
  15. 6 66
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/DeviceGatewayImpl.java
  16. 0 7
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/LasGatewayImpl.java
  17. 22 18
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/StatsGatewayImpl.java
  18. 13 52
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebStatsGatewayImpl.java
  19. 0 22
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/AlarmEventMapper.java
  20. 11 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/EventsMapper.java
  21. 0 12
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/RecordPlanMapper.java
  22. 0 12
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/RecordPlanTimeMapper.java
  23. 0 13
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/StatInfoMapper.java
  24. 0 12
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/StayTimeMapper.java
  25. 0 47
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/AlarmEvent.java
  26. 9 4
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/Events.java
  27. 0 56
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/RecordPlan.java
  28. 0 55
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/RecordPlanTime.java
  29. 0 51
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/StatInfo.java
  30. 0 57
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/StayTime.java
  31. 0 15
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/AlarmEventService.java
  32. 3 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/DevInfoService.java
  33. 19 0
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/EventsService.java
  34. 0 25
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/StayTimeService.java
  35. 0 76
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/AlarmEventServiceImpl.java
  36. 22 3
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevInfoServiceImpl.java
  37. 144 0
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/EventsServiceImpl.java
  38. 0 67
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/StayTimeServiceImpl.java
  39. 1 1
      portal-service-server/src/main/resources/bootstrap.yml

+ 0 - 6
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/DeviceController.java

@@ -4,7 +4,6 @@ import cn.hfln.framework.catchlog.CatchAndLog;
 import cn.hfln.framework.dto.ApiResult;
 import com.hfln.portal.common.dto.data.device.DeviceDTO;
 import com.hfln.portal.common.request.device.*;
-import com.hfln.portal.common.response.device.UsedInfoQueryRes;
 import com.hfln.portal.domain.gateway.DeviceGateway;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -81,11 +80,6 @@ public class DeviceController {
         return ApiResult.success(deviceGateway.checkDevByUserId(userId, devId));
     }
 
-    @PostMapping("/getUsedInfo")
-    @Operation(summary = "查询使用信息")
-    public ApiResult<UsedInfoQueryRes> getUsedInfo(@RequestBody @Valid UsedInfoQueryReq req) {
-        return ApiResult.success(deviceGateway.getUsedInfo(req));
-    }
 
     @PostMapping("/transfer")
     @Operation(summary = "设备转移")

+ 18 - 7
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/StatsController.java

@@ -3,11 +3,13 @@ package com.hfln.portal.application.controller.wap;
 
 import cn.hfln.framework.catchlog.CatchAndLog;
 import cn.hfln.framework.dto.ApiResult;
-import com.hfln.portal.common.dto.data.event.AlarmEventDTO;
 import com.hfln.portal.common.dto.data.event.EventListDTO;
-import com.hfln.portal.common.request.event.AlarmEventParams;
+import com.hfln.portal.common.dto.data.event.EventTypeDTO;
+import com.hfln.portal.common.dto.data.event.EventsDTO;
+import com.hfln.portal.common.request.event.WapEventsParams;
 import com.hfln.portal.common.request.event.WapEventListParams;
 import com.hfln.portal.common.vo.PageRecord;
+import com.hfln.portal.domain.gateway.AlarmGateway;
 import com.hfln.portal.domain.gateway.StatsGateway;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -28,15 +30,18 @@ public class StatsController {
     @Autowired
     private StatsGateway statsGateway;
 
-    @PostMapping("/alarmRetentionQuery")
-    @Operation(summary = "异常滞留统计查询")
-    public ApiResult<PageRecord<AlarmEventDTO>> alarmRetentionQuery(@Valid @RequestBody AlarmEventParams params) {
-        return ApiResult.success(statsGateway.alarmRetentionQuery(params));
+    @Autowired
+    private AlarmGateway alarmGateway;
+
+    @PostMapping("/alarmEventsQuery")
+    @Operation(summary = "告警事件统计查询")
+    public ApiResult<PageRecord<EventsDTO>> alarmEventsQuery(@Valid @RequestBody WapEventsParams params) {
+        return ApiResult.success(statsGateway.alarmEventsQuery(params));
     }
 
     @GetMapping("/fallingEventsQuery")
     @Operation(summary = "10分钟内跌倒事件查询")
-    public ApiResult<List<EventListDTO>> fallingEventsQuery(@RequestParam("user_id") Long userId) {
+    public ApiResult<List<EventListDTO>> fallingEventsQuery(@RequestParam Long userId) {
         return ApiResult.success(statsGateway.fallingEventsQuery(userId));
     }
 
@@ -45,4 +50,10 @@ public class StatsController {
     public ApiResult<PageRecord<EventListDTO>> fallQuery(@Valid @RequestBody WapEventListParams params) {
         return ApiResult.success(statsGateway.fallQuery(params));
     }
+
+    @GetMapping("/queryEventType")
+    @Operation(summary = "告警事件类型查询")
+    public ApiResult<List<EventTypeDTO>> queryEventType() {
+        return ApiResult.success(alarmGateway.queryEventType());
+    }
 }

+ 6 - 15
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebStatsController.java

@@ -4,13 +4,11 @@ package com.hfln.portal.application.controller.web;
 
 import cn.hfln.framework.catchlog.CatchAndLog;
 import cn.hfln.framework.dto.ApiResult;
-import com.hfln.portal.common.dto.data.event.AlarmEventDTO;
 import com.hfln.portal.common.dto.data.event.EventListDTO;
-import com.hfln.portal.common.dto.data.event.StayTimeDTO;
+import com.hfln.portal.common.dto.data.event.EventsDTO;
 import com.hfln.portal.common.dto.data.user.UserDailyActiveResult;
-import com.hfln.portal.common.request.event.AlarmEventParams;
 import com.hfln.portal.common.request.event.EventListParams;
-import com.hfln.portal.common.request.event.StayTimeParams;
+import com.hfln.portal.common.request.event.WebEventsParams;
 import com.hfln.portal.common.request.user.UserDailyActiveParams;
 import com.hfln.portal.common.vo.PageRecord;
 import com.hfln.portal.domain.gateway.WebStatsGateway;
@@ -41,17 +39,11 @@ public class WebStatsController {
         return ApiResult.success(webStatsGateway.fallQuery(params));
     }
 
-    @PostMapping("/generalRetentionQuery")
-    @Operation(summary = "一般滞留统计查询")
-    public ApiResult<PageRecord<StayTimeDTO>> generalRetentionQuery(@Valid @RequestBody StayTimeParams params) {
-        return ApiResult.success(webStatsGateway.generalRetentionQuery(params));
-    }
-
 
-    @PostMapping("/alarmRetentionQuery")
-    @Operation(summary = "异常滞留统计查询")
-    public ApiResult<PageRecord<AlarmEventDTO>> alarmRetentionQuery(@Valid @RequestBody AlarmEventParams params) {
-        return ApiResult.success(webStatsGateway.alarmRetentionQuery(params));
+    @PostMapping("/alarmEventsQuery")
+    @Operation(summary = "告警事件统计查询")
+    public ApiResult<PageRecord<EventsDTO>> alarmEventsQuery(@RequestBody @Valid WebEventsParams params) {
+        return ApiResult.success(webStatsGateway.alarmEventsQuery(params));
     }
 
     @PostMapping("/queryUserDailyActive")
@@ -59,5 +51,4 @@ public class WebStatsController {
     public ApiResult<UserDailyActiveResult> queryUserDailyActive(@Valid @RequestBody UserDailyActiveParams params) {
         return ApiResult.success(webStatsGateway.queryUserDailyActive(params));
     }
-
 }

+ 0 - 54
portal-service-common/src/main/java/com/hfln/portal/common/dto/data/event/AlarmEventDTO.java

@@ -1,54 +0,0 @@
-package com.hfln.portal.common.dto.data.event;
-
-import com.hfln.portal.common.vo.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class AlarmEventDTO extends BaseDto {
-
-    /**
-     * 告警表主键ID
-     */
-    @Schema(description = "告警表主键ID")
-    private Long alarmEventId;
-
-    /**
-     * 设备表主键ID
-     */
-    @Schema(description = "设备表主键ID")
-    private Long devId;
-
-    /**
-     * 设备名称
-     */
-    @Schema(description = "设备名称")
-    private String devName;
-
-    /**
-     * 姿势
-     */
-    @Schema(description = "姿势 字典值 person_pose")
-    private Byte pose;
-
-    /**
-     * 停留时间表主键id
-     */
-    @Schema(description = "事件表主键id")
-    private Long stayTimeId;
-
-    /**
-     * 告警类型
-     */
-    @Schema(description = "告警类型 字典值 alarm_event_type")
-    private Integer eventType;
-
-
-    /**
-     * 是否处理
-     */
-    @Schema(description = "是否处理:0-未处理,1-已处理")
-    private Integer isHandle;
-} 

+ 2 - 2
portal-service-common/src/main/java/com/hfln/portal/common/dto/data/event/AlarmTimePlanDTO.java

@@ -1,13 +1,13 @@
 package com.hfln.portal.common.dto.data.event;
 
-import com.hfln.portal.common.vo.BaseDto;
+import com.hfln.portal.common.vo.BaseVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 @Data
 @EqualsAndHashCode(callSuper = true)
-public class AlarmTimePlanDTO extends BaseDto {
+public class AlarmTimePlanDTO extends BaseVO {
 
     @Schema(description = "主键ID")
     private Integer id;

+ 47 - 0
portal-service-common/src/main/java/com/hfln/portal/common/dto/data/event/EventsDTO.java

@@ -0,0 +1,47 @@
+package com.hfln.portal.common.dto.data.event;
+
+import com.hfln.portal.common.vo.BaseVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDateTime;
+
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EventsDTO extends BaseVO {
+
+    @Schema(description = "主键ID")
+    private Long  id;
+
+    @Schema(description = "设备ID")
+    private String clientId;
+
+    @Schema(description = "租户ID")
+    private Long tenantId;
+
+    @Schema(description = "设备名称")
+    private String devName;
+
+    @Schema(description = "告警事件uuid")
+    private String uuid;
+
+    @Schema(description = "告警计划uuid")
+    private String planUuid;
+
+    @Schema(description = "事件类型")
+    private String eventType;
+
+    @Schema(description = "事件内容")
+    private String info;
+
+    @Schema(description = "是否处理:0-未处理,1-已处理")
+    private Integer isHandle;
+
+    @Schema(description = "事件发生时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "备注")
+    private String remark;
+}

+ 0 - 66
portal-service-common/src/main/java/com/hfln/portal/common/dto/data/event/StayTimeDTO.java

@@ -1,66 +0,0 @@
-package com.hfln.portal.common.dto.data.event;
-
-
-import com.hfln.portal.common.vo.BaseDto;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-public class StayTimeDTO extends BaseDto {
-
-    /**
-     * stay_time表主键id
-     */
-    @Schema(description = "stay_time表主键id")
-    private Long stayTimeId;
-
-    /**
-     * 设备表主键id
-     */
-    @Schema(description = "设备表主键id")
-    private Long devId;
-
-    /**
-     * 设备客户端id
-     */
-    @Schema(description = "设备clientId")
-    private String clientId;
-
-    /**
-     * 设备名称
-     */
-    @Schema(description = "设备名称")
-    private String devName;
-
-    /**
-     *  停留类型
-     */
-    @Schema(description = "停留类型 字典值 stay_event_type")
-    private Integer type;
-
-    /**
-     * 进入时间
-     */
-    @Schema(description = "进入时间")
-    private LocalDateTime enterTime;
-
-    /**
-     * 离开时间
-     */
-    @Schema(description = "离开时间")
-    private LocalDateTime leaveTime;
-
-    /**
-     * 停留时长(秒)
-     */
-    @Schema(description = "停留时长(秒)")
-    private Integer stayTime;
-
-    @Schema(description = "子停留信息")
-    private List<StayTimeDTO> childStayTime;
-}

+ 1 - 1
portal-service-common/src/main/java/com/hfln/portal/common/dto/data/home/HomeInfoDTO.java

@@ -28,7 +28,7 @@ public class HomeInfoDTO extends BaseVO {
     @Schema(description = "设备数量")
     private Integer devNum;
 
-    @Schema(description = "异常设备数量")
+    @Schema(description = "异常事件数量")
     private long warnNum;
 
 

+ 3 - 9
portal-service-common/src/main/java/com/hfln/portal/common/request/event/AlarmEventParams.java → portal-service-common/src/main/java/com/hfln/portal/common/request/event/WapEventsParams.java

@@ -10,16 +10,10 @@ import java.time.LocalDate;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
-public class AlarmEventParams extends PageVo {
+public class WapEventsParams extends PageVo {
 
     @Schema(description = "设备ID")
-    private Long devId;
-
-    @Schema(description = "租户id")
-    private Long tenantId;
-
-    @Schema(description = "设备名称")
-    private String devName;
+    private String clientId;
 
     @Schema(description = "起始时间 格式yyyy-MM-dd")
     private LocalDate createTimeStart;
@@ -27,6 +21,6 @@ public class AlarmEventParams extends PageVo {
     @Schema(description = "结束时间 格式yyyy-MM-dd")
     private LocalDate createTimeEnd;
 
-    @Schema(description = "事件类型 0:异常滞留 1:异常消失 2:异常起夜 3:异常入厕")
+    @Schema(description = "事件类型")
     private Integer eventType;
 }

+ 4 - 6
portal-service-common/src/main/java/com/hfln/portal/common/request/event/StayTimeParams.java → portal-service-common/src/main/java/com/hfln/portal/common/request/event/WebEventsParams.java

@@ -10,12 +10,10 @@ import java.time.LocalDate;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
-@Schema(description = "一般滞留事件查询")
-public class StayTimeParams extends PageVo {
-
+public class WebEventsParams extends PageVo {
 
     @Schema(description = "设备ID")
-    private Long devId;
+    private Long clientId;
 
     @Schema(description = "租户id")
     private Long tenantId;
@@ -26,6 +24,6 @@ public class StayTimeParams extends PageVo {
     @Schema(description = "结束时间 格式yyyy-MM-dd")
     private LocalDate createTimeEnd;
 
-    @Schema(description = "类型 0:一般滞留事件 2:马桶滞留事件")
-    private Integer type;
+    @Schema(description = "事件类型")
+    private Integer eventType;
 }

+ 0 - 22
portal-service-common/src/main/java/com/hfln/portal/common/response/device/UsedInfoQueryRes.java

@@ -1,22 +0,0 @@
-package com.hfln.portal.common.response.device;
-
-import com.hfln.portal.common.dto.data.event.StayTimeDTO;
-import com.hfln.portal.common.vo.BaseVO;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.List;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Schema(description = "使用信息查询结果")
-public class UsedInfoQueryRes extends BaseVO {
-
-    @Schema(description = "使用信息")
-    private List<StayTimeDTO> stayTimes;
-
-    @Schema(description = "总数")
-    private int count;
-
-}

+ 1 - 2
portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/DeviceGateway.java

@@ -9,7 +9,6 @@ import com.hfln.portal.common.dto.data.share.ShareDto;
 import com.hfln.portal.common.request.device.*;
 import com.hfln.portal.common.request.room.RoomParam;
 import com.hfln.portal.common.request.share.*;
-import com.hfln.portal.common.response.device.UsedInfoQueryRes;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -103,7 +102,7 @@ public interface DeviceGateway {
 
     String getFloorPlan(String groupUuid);
 
-    UsedInfoQueryRes getUsedInfo(UsedInfoQueryReq req);
+
 
 
     //String checkDevByOpenId(String openId, String clientId);

+ 4 - 4
portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/StatsGateway.java

@@ -1,8 +1,8 @@
 package com.hfln.portal.domain.gateway;
 
-import com.hfln.portal.common.dto.data.event.AlarmEventDTO;
 import com.hfln.portal.common.dto.data.event.EventListDTO;
-import com.hfln.portal.common.request.event.AlarmEventParams;
+import com.hfln.portal.common.dto.data.event.EventsDTO;
+import com.hfln.portal.common.request.event.WapEventsParams;
 import com.hfln.portal.common.request.event.WapEventListParams;
 import com.hfln.portal.common.vo.PageRecord;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -11,9 +11,9 @@ import java.util.List;
 
 public interface StatsGateway {
 
-    PageRecord<AlarmEventDTO> alarmRetentionQuery(AlarmEventParams params);
+    PageRecord<EventsDTO> alarmEventsQuery(WapEventsParams params);
 
-    List<EventListDTO> fallingEventsQuery(@RequestParam("user_id") Long userId);
+    List<EventListDTO> fallingEventsQuery(@RequestParam Long userId);
 
     PageRecord<EventListDTO> fallQuery(WapEventListParams params);
 }

+ 3 - 7
portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/WebStatsGateway.java

@@ -1,12 +1,10 @@
 package com.hfln.portal.domain.gateway;
 
-import com.hfln.portal.common.dto.data.event.AlarmEventDTO;
 import com.hfln.portal.common.dto.data.event.EventListDTO;
-import com.hfln.portal.common.dto.data.event.StayTimeDTO;
+import com.hfln.portal.common.dto.data.event.EventsDTO;
 import com.hfln.portal.common.dto.data.user.UserDailyActiveResult;
-import com.hfln.portal.common.request.event.AlarmEventParams;
 import com.hfln.portal.common.request.event.EventListParams;
-import com.hfln.portal.common.request.event.StayTimeParams;
+import com.hfln.portal.common.request.event.WebEventsParams;
 import com.hfln.portal.common.request.user.UserDailyActiveParams;
 import com.hfln.portal.common.vo.PageRecord;
 
@@ -15,9 +13,7 @@ public interface WebStatsGateway {
 
     PageRecord<EventListDTO> fallQuery(EventListParams params);
 
-    PageRecord<StayTimeDTO> generalRetentionQuery(StayTimeParams params);
-
-    PageRecord<AlarmEventDTO> alarmRetentionQuery(AlarmEventParams params);
+    PageRecord<EventsDTO> alarmEventsQuery(WebEventsParams params);
 
     UserDailyActiveResult queryUserDailyActive(UserDailyActiveParams params);
 }

+ 6 - 66
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/DeviceGatewayImpl.java

@@ -14,7 +14,6 @@ import com.hfln.portal.common.constant.mqtt.topic.TopicConstants;
 import com.hfln.portal.common.constant.redis.RedisCacheConstant;
 import com.hfln.portal.common.dto.data.device.DeviceDTO;
 import com.hfln.portal.common.dto.data.event.EventListDTO;
-import com.hfln.portal.common.dto.data.event.StayTimeDTO;
 import com.hfln.portal.common.dto.data.home.HomeInfoDTO;
 import com.hfln.portal.common.dto.data.oss.OssFileDTO;
 import com.hfln.portal.common.dto.data.room.RegionDTO;
@@ -27,11 +26,9 @@ import com.hfln.portal.common.request.device.*;
 import com.hfln.portal.common.request.room.RoomParam;
 import com.hfln.portal.common.request.room.SubRegionInfo;
 import com.hfln.portal.common.request.share.*;
-import com.hfln.portal.common.response.device.UsedInfoQueryRes;
 import com.hfln.portal.common.vo.PageRecord;
 import com.hfln.portal.domain.customer.OprLogType;
 import com.hfln.portal.domain.customer.OssBusiType;
-import com.hfln.portal.domain.customer.util.CopyUtils;
 import com.hfln.portal.domain.customer.util.DevPosFixUtil;
 import com.hfln.portal.domain.customer.util.PhoneUtils;
 import com.hfln.portal.domain.customer.util.WxOfficeAccountClient;
@@ -99,9 +96,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
     private OssClient ossClient;
 
     @Autowired
-    private AlarmEventService alarmEventService;
-
-    @Autowired
     private WxOfficeAccountClient wxOfficeAccountClient;
 
     @Autowired
@@ -114,9 +108,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
     private  MqttSend mqttSend;
 
     @Autowired
-    private StayTimeService stayTimeService;
-
-    @Autowired
     private RedisUtil redisService;
 
     @Autowired
@@ -131,6 +122,9 @@ public class DeviceGatewayImpl implements DeviceGateway {
     @Autowired
     private MqttSubHandle mqttSubHandle;
 
+    @Autowired
+    private EventsService EventsService;
+
 
     @Override
     public HomeInfoDTO queryHomeInfo(Long userId) {
@@ -169,11 +163,11 @@ public class DeviceGatewayImpl implements DeviceGateway {
         }
 
         // 统计异常事件数量(用户所有设备当天的异常事件数量)
-        List<Long> devIds = devInfos.stream()
-                .map(DevInfo::getDevId)
+        List<String> clientIds = devInfos.stream()
+                .map(DevInfo::getClientId)
                 .collect(Collectors.toList());
 
-        long warningNums = alarmEventService.countUserDevicesAlarmEvents(devIds);
+        long warningNums = EventsService.countUserDevicesEvents(clientIds);
         
         homeInfoDTO.setDeviceList(deviceDTOs);
         // 设置设备总数
@@ -1154,60 +1148,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
     }
 
     @Override
-    public UsedInfoQueryRes getUsedInfo(UsedInfoQueryReq req) {
-
-        List<StayTime> stayTimes = stayTimeService.queryStayTime(req);
-        UsedInfoQueryRes res = new UsedInfoQueryRes();
-        if (CollectionUtils.isEmpty(stayTimes)) {
-            res.setStayTimes(null);
-            res.setCount(0);
-            return res;
-        }
-
-
-        List<StayTimeDTO> roomList = stayTimes.stream().filter(stayTime ->
-                {
-                    if (stayTime != null && stayTime.getType() != null) {
-                        if (0 == (stayTime.getType())) {
-                            return true;
-                        }
-                    }
-                    return false;
-                }
-        ).map(e -> CopyUtils.copy(e, StayTimeDTO.class)).collect(Collectors.toList());
-        List<StayTimeDTO> toiletList = stayTimes.stream().filter(stayTime ->
-                {
-                    if (stayTime != null && stayTime.getType() != null) {
-                        if (1 == (stayTime.getType())) {
-                            return true;
-                        }
-                    }
-                    return false;
-                }
-        ).map(e -> CopyUtils.copy(e, StayTimeDTO.class)).collect(Collectors.toList());
-
-        if (CollectionUtils.isNotEmpty(roomList)) {
-            for (StayTimeDTO stayTime : roomList) {
-
-                if (CollectionUtils.isNotEmpty(toiletList)) {
-                    stayTime.setChildStayTime(toiletList.stream().filter(
-                            toilet ->
-                                    !toilet.getEnterTime().isBefore(stayTime.getEnterTime()) && !toilet.getLeaveTime().isAfter(stayTime.getLeaveTime())
-                    ).collect(Collectors.toList()));
-                }
-            }
-
-            res.setStayTimes(roomList);
-            res.setCount(roomList.size());
-            return res;
-        }
-
-        res.setStayTimes(null);
-        res.setCount(0);
-        return res;
-    }
-
-    @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean deviceTransfer(DeviceTransferParams param){
 

+ 0 - 7
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/LasGatewayImpl.java

@@ -4,9 +4,7 @@ import com.hfln.portal.common.dto.data.event.AlarmPlanDTO;
 import com.hfln.portal.common.request.event.AlarmEventNoticeReq;
 import com.hfln.portal.common.request.event.AlarmPlanReq;
 import com.hfln.portal.domain.gateway.LasGateway;
-import com.hfln.portal.infrastructure.service.AlarmEventService;
 import com.hfln.portal.infrastructure.service.AlarmPlanService;
-import com.hfln.portal.infrastructure.service.StayTimeService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -21,11 +19,6 @@ public class LasGatewayImpl implements LasGateway {
     @Autowired
     private AlarmPlanService alarmPlanService;
 
-    @Autowired
-    private StayTimeService stayTimeService;
-
-    @Autowired
-    private AlarmEventService alarmEventService;
 
 
     @Override

+ 22 - 18
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/StatsGatewayImpl.java

@@ -4,27 +4,25 @@ import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.hfln.portal.common.constant.UserConstants;
 import com.hfln.portal.common.constant.redis.RedisCacheConstant;
-import com.hfln.portal.common.dto.data.event.AlarmEventDTO;
 import com.hfln.portal.common.dto.data.event.EventListDTO;
-import com.hfln.portal.common.request.event.AlarmEventParams;
+import com.hfln.portal.common.dto.data.event.EventsDTO;
 import com.hfln.portal.common.request.event.WapEventListParams;
+import com.hfln.portal.common.request.event.WapEventsParams;
 import com.hfln.portal.common.vo.PageRecord;
 import com.hfln.portal.domain.customer.util.CopyUtils;
 import com.hfln.portal.domain.gateway.StatsGateway;
-import com.hfln.portal.infrastructure.po.AlarmEvent;
-import com.hfln.portal.infrastructure.po.DevInfo;
 import com.hfln.portal.infrastructure.po.EventList;
-import com.hfln.portal.infrastructure.service.AlarmEventService;
+import com.hfln.portal.infrastructure.po.Events;
 import com.hfln.portal.infrastructure.service.DevInfoService;
 import com.hfln.portal.infrastructure.service.DevShareService;
 import com.hfln.portal.infrastructure.service.EventListService;
+import com.hfln.portal.infrastructure.service.EventsService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -40,17 +38,24 @@ public class StatsGatewayImpl implements StatsGateway {
     @Autowired
     private DevInfoService devInfoService;
 
-    @Autowired
-    private AlarmEventService alarmEventService;
 
     @Autowired
     private EventListService eventListService;
 
     @Autowired
+    private EventsService eventsService;
+
+    @Autowired
     private org.springframework.data.redis.core.RedisTemplate<String, Object> redisTemplate;
 
+    /**
+     * 小程序告警事件统计查询
+     * @param params
+     * @return
+     */
+
     @Override
-    public PageRecord<AlarmEventDTO> alarmRetentionQuery(AlarmEventParams params) {
+    public PageRecord<EventsDTO> alarmEventsQuery(WapEventsParams params) {
         // 1.从会话中获取当前用户的id
         Long userId = StpUtil.getSession().getLong(UserConstants.SA_USER_ID);
 
@@ -68,9 +73,12 @@ public class StatsGatewayImpl implements StatsGateway {
         ).distinct()  //去重 + 顺序
          .collect(Collectors.toList());
         log.info("用户设备id集合: {}", allDevIds);
+            //2.4 将devIds集合转换成clientIds集合
+        List<String> clientIds = devInfoService.devIdsChangeClientIds(allDevIds);
+        log.info("用户设备clientId集合: {}", clientIds);
 
-        if (allDevIds.isEmpty()){
-            PageRecord<AlarmEventDTO> pr = new PageRecord<>();
+        if (clientIds.isEmpty()){
+            PageRecord<EventsDTO> pr = new PageRecord<>();
             pr.setPageNum(params.getPageNo());
             pr.setPageSize(params.getPageSize());
             pr.setRows(Collections.emptyList());
@@ -79,17 +87,13 @@ public class StatsGatewayImpl implements StatsGateway {
         }
 
         // 3.分页查询设备
-        Page<AlarmEvent> page = alarmEventService.QueryAlarmEvent(params, allDevIds);
+        Page<Events> page = eventsService.QueryEvents(params, clientIds);
 
         //转化为DTO
-        List<AlarmEventDTO> dtoList = CopyUtils.copyList(page.getRecords(), AlarmEventDTO.class);
+        List<EventsDTO> dtoList = CopyUtils.copyList(page.getRecords(), EventsDTO.class);
 
         //新增 填充devName
-        Map<Long, String> devIdNameMap = devInfoService.queryByIds(
-                dtoList.stream().map(AlarmEventDTO::getDevId).collect(Collectors.toSet())
-        ).stream().collect(Collectors.toMap(DevInfo::getDevId, DevInfo::getDevName));
-
-        dtoList.forEach(dto -> dto.setDevName(devIdNameMap.get(dto.getDevId())));
+        eventsService.fillDevNames(dtoList);
 
         // 封装成 PageRecord 返回
         return CopyUtils.copyPage(page, dtoList);

+ 13 - 52
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebStatsGatewayImpl.java

@@ -4,24 +4,23 @@ import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.hfln.portal.common.constant.UserConstants;
-import com.hfln.portal.common.dto.data.event.AlarmEventDTO;
 import com.hfln.portal.common.dto.data.event.EventListDTO;
-import com.hfln.portal.common.dto.data.event.StayTimeDTO;
+import com.hfln.portal.common.dto.data.event.EventsDTO;
 import com.hfln.portal.common.dto.data.user.UserDailyActiveResult;
 import com.hfln.portal.common.dto.data.user.UsersDailyActiveDTO;
-import com.hfln.portal.common.request.event.AlarmEventParams;
 import com.hfln.portal.common.request.event.EventListParams;
-import com.hfln.portal.common.request.event.StayTimeParams;
+import com.hfln.portal.common.request.event.WebEventsParams;
 import com.hfln.portal.common.request.user.UserDailyActiveParams;
 import com.hfln.portal.common.vo.PageRecord;
 import com.hfln.portal.domain.customer.AdminUserType;
 import com.hfln.portal.domain.customer.util.CopyUtils;
 import com.hfln.portal.domain.gateway.WebStatsGateway;
-import com.hfln.portal.infrastructure.po.AlarmEvent;
 import com.hfln.portal.infrastructure.po.DailyActiveUsers;
 import com.hfln.portal.infrastructure.po.EventList;
-import com.hfln.portal.infrastructure.po.StayTime;
-import com.hfln.portal.infrastructure.service.*;
+import com.hfln.portal.infrastructure.service.DailyActiveUsersService;
+import com.hfln.portal.infrastructure.service.DevInfoService;
+import com.hfln.portal.infrastructure.service.EventListService;
+import com.hfln.portal.infrastructure.service.EventsService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -45,13 +44,10 @@ public class WebStatsGatewayImpl implements WebStatsGateway {
     private EventListService eventListService;
 
     @Autowired
-    private StayTimeService stayTimeService;
+    private DailyActiveUsersService dailyActiveUsersService;;
 
     @Autowired
-    private AlarmEventService alarmEventService;
-
-    @Autowired
-    private DailyActiveUsersService dailyActiveUsersService;;
+    private EventsService eventsService;
 
     @Override
     public PageRecord<EventListDTO> fallQuery(EventListParams params) {
@@ -81,54 +77,19 @@ public class WebStatsGatewayImpl implements WebStatsGateway {
 
 
 
-    @Override
-    public PageRecord<StayTimeDTO> generalRetentionQuery(StayTimeParams params) {
-        Long tenantId =  (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
-        String userType =  (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
-
-        if (AdminUserType.getBgManagerTypes().contains(userType)){
-            tenantId = params.getTenantId();
-        }
-
-        List<Long> devIdList = new ArrayList<>();
-        //根据租户id查询devId集合
-        if(tenantId != null && tenantId != 0){
-            devIdList =  devInfoService.queryByTenantId(tenantId);
-        }
-
-        Page<StayTime> page = stayTimeService.queryStayTime(params, devIdList);
-
-        //转化为DTO
-        List<StayTimeDTO> dtoList = CopyUtils.copyList(page.getRecords(), StayTimeDTO.class);
-
-        // 封装成 PageRecord 返回
-        return CopyUtils.copyPage(page, dtoList);
-    }
 
     @Override
-    public PageRecord<AlarmEventDTO> alarmRetentionQuery(AlarmEventParams params) {
+    public PageRecord<EventsDTO> alarmEventsQuery(WebEventsParams params) {
+        // 1.获取当前用户信息
         Long tenantId =  (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
         String userType =  (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
 
-        if (AdminUserType.getBgManagerTypes().contains(userType)){
-            tenantId = params.getTenantId();
-        }
-
-        List<Long> devIdList = new ArrayList<>();
-        //根据租户id查询devId集合
-        if(tenantId != null && tenantId != 0){
-            devIdList =  devInfoService.queryByTenantId(tenantId);
-        }
-
-        Page<AlarmEvent> page = alarmEventService.QueryAlarmEvent(params, devIdList);
+        // 2.调用web端查询告警信息 queryEvents 方法
+        return  eventsService.queryEvents(params, userType, tenantId);
 
-        //转化为DTO
-        List<AlarmEventDTO> dtoList = CopyUtils.copyList(page.getRecords(), AlarmEventDTO.class);
-
-        // 封装成 PageRecord 返回
-        return CopyUtils.copyPage(page, dtoList);
     }
 
+
     @Override
     public UserDailyActiveResult queryUserDailyActive(UserDailyActiveParams params) {
 

+ 0 - 22
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/AlarmEventMapper.java

@@ -1,22 +0,0 @@
-package com.hfln.portal.infrastructure.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.hfln.portal.infrastructure.po.AlarmEvent;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-@Mapper
-public interface AlarmEventMapper extends BaseMapper<AlarmEvent> {
-
-    /**
-     * 根据设备名称查询异常事件记录
-     */
-    @Select("SELECT ae.* " +
-            "FROM alarm_event ae " +
-            "INNER JOIN dev_info di ON ae.dev_id = di.dev_id " +
-            "WHERE di.dev_name = #{devName}")
-    Page<AlarmEvent> findAlarmEventsByDevName(Page<AlarmEvent> page,
-                                              @Param("devName") String devName);
-} 

+ 11 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/EventsMapper.java

@@ -1,9 +1,19 @@
 package com.hfln.portal.infrastructure.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.hfln.portal.infrastructure.po.Events;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 @Mapper
 public interface EventsMapper extends BaseMapper<Events> {
-} 
+
+    @Select("SELECT e.* " +
+            "FROM events e " +
+            "LEFT JOIN dev_info d ON e.client_id = d.client_id " +
+            "WHERE d.dev_name LIKE CONCAT('%', #{devName}, '%') " +
+            "ORDER BY e.create_time DESC")
+    Page<Events> findEventsByDevName(Page<?> page, @Param("devName") String devName);
+}

+ 0 - 12
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/RecordPlanMapper.java

@@ -1,12 +0,0 @@
-package com.hfln.portal.infrastructure.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.hfln.portal.infrastructure.po.RecordPlan;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 录制计划表 Mapper 接口
- */
-@Mapper
-public interface RecordPlanMapper extends BaseMapper<RecordPlan> {
-} 

+ 0 - 12
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/RecordPlanTimeMapper.java

@@ -1,12 +0,0 @@
-package com.hfln.portal.infrastructure.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.hfln.portal.infrastructure.po.RecordPlanTime;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 录制计划时间表 Mapper 接口
- */
-@Mapper
-public interface RecordPlanTimeMapper extends BaseMapper<RecordPlanTime> {
-} 

+ 0 - 13
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/StatInfoMapper.java

@@ -1,13 +0,0 @@
-package com.hfln.portal.infrastructure.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.hfln.portal.infrastructure.po.StatInfo;
-import com.hfln.portal.infrastructure.po.StayTime;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 停留时间表 Mapper 接口
- */
-@Mapper
-public interface StatInfoMapper extends BaseMapper<StatInfo> {
-}

+ 0 - 12
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/StayTimeMapper.java

@@ -1,12 +0,0 @@
-package com.hfln.portal.infrastructure.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.hfln.portal.infrastructure.po.StayTime;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 停留时间表 Mapper 接口
- */
-@Mapper
-public interface StayTimeMapper extends BaseMapper<StayTime> {
-} 

+ 0 - 47
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/AlarmEvent.java

@@ -1,47 +0,0 @@
-package com.hfln.portal.infrastructure.po;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 告警事件表
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("alarm_event")
-public class AlarmEvent extends BasePO {
-    /**
-     * 主键ID
-     */
-    @TableId(type = IdType.ASSIGN_ID)
-    private Long alarmEventId;
-
-    /**
-     * 设备表主键ID
-     */
-    private Long devId;
-
-    /**
-     * 滞留时间表主键id
-     */
-    private Long stayTimeId;
-
-    /**
-     * 姿势
-     */
-    private Byte pose;
-
-    /**
-     * 事件类型
-     */
-    private Integer eventType;
-
-    /**
-     * 是否处理
-     */
-    private Integer isHandle ;
-
-} 

+ 9 - 4
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/Events.java

@@ -1,9 +1,6 @@
 package com.hfln.portal.infrastructure.po;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import com.hfln.portal.common.vo.BaseVO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -67,10 +64,18 @@ public class Events extends BaseVO {
     /**
      * 删除标记:0-未删除,1-已删除
      */
+    @TableLogic
+    @TableField("is_deleted")
     private Integer isDeleted;
 
     /**
      * 备注
      */
     private String remark;
+
+    /**
+     * 租户id
+     */
+    private Long tenantId;
+
 } 

+ 0 - 56
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/RecordPlan.java

@@ -1,56 +0,0 @@
-package com.hfln.portal.infrastructure.po;
-
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.time.LocalDate;
-
-/**
- * 录制计划表
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("record_plan")
-public class RecordPlan extends BasePO {
-
-    /**
-     * 主键ID(自增)
-     */
-    @TableId(type = IdType.ASSIGN_ID)
-    private Long recordPlanId;
-
-    /**
-     * dev_info表id
-     */
-    private Long devId;
-
-    /**
-     * 设备id
-     */
-    private String clientId;
-
-    /**
-     * 是否启用:0-不启用,1-启用
-     */
-    private Boolean enable;
-
-    /**
-     * 开始日期
-     */
-    private LocalDate startDate;
-    
-    /**
-     * 录制常量类
-     */
-    public static class Constants {
-        
-        /**
-         * 计划状态
-         */
-        public static class PlanStatus {
-            public static final int DISABLED = 0;  // 禁用
-            public static final int ENABLED = 1;   // 启用
-        }
-    }
-} 

+ 0 - 55
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/RecordPlanTime.java

@@ -1,55 +0,0 @@
-package com.hfln.portal.infrastructure.po;
-
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import java.time.LocalTime;
-
-/**
- * 录制计划时间表
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("record_plan_time")
-public class RecordPlanTime extends BasePO {
-
-    /**
-     * 主键ID(自增)
-     */
-    @TableId(type = IdType.ASSIGN_ID)
-    private Long recordPlanTimeId;
-
-    /**
-     * record_plan表id
-     */
-    private Long recordPlanId;
-
-    /**
-     * 设备id
-     */
-    private String clientId;
-
-    /**
-     * 开始时间
-     */
-    private LocalTime startTime;
-
-    /**
-     * 结束时间
-     */
-    private LocalTime endTime;
-    
-    /**
-     * 时间常量类
-     */
-    public static class Constants {
-        
-        /**
-         * 时间状态
-         */
-        public static class TimeStatus {
-            public static final int DISABLED = 0;  // 禁用
-            public static final int ENABLED = 1;   // 启用
-        }
-    }
-} 

+ 0 - 51
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/StatInfo.java

@@ -1,51 +0,0 @@
-package com.hfln.portal.infrastructure.po;
-
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import java.time.LocalDateTime;
-
-/**
- * 统计信息表
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("stat_info")
-public class StatInfo extends BasePO {
-
-    /**
-     * 主键ID(自增)
-     */
-    @TableId(type = IdType.ASSIGN_ID)
-    private Long statId;
-
-    /**
-     * 设备表id
-     */
-    private String clientId;
-
-    /**
-     * 设备名称
-     */
-    private String devName;
-
-    /**
-     * dev_info表id
-     */
-    private Long devId;
-
-    /**
-     * 进入时间
-     */
-    private LocalDateTime enterTime;
-
-    /**
-     * 离开时间
-     */
-    private LocalDateTime leaveTime;
-
-    /**
-     * 停留时长(秒)
-     */
-    private Integer stayTime;
-} 

+ 0 - 57
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/StayTime.java

@@ -1,57 +0,0 @@
-package com.hfln.portal.infrastructure.po;
-
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import java.time.LocalDateTime;
-
-/**
- * 滞留时间表
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("stay_time")
-public class StayTime extends BasePO {
-    /**
-     * 主键ID
-     */
-    @TableId(type = IdType.ASSIGN_ID)
-    private Long stayTimeId;
-
-    /**
-     * dev_info表id
-     */
-    private Long devId;
-
-    /**
-     * 设备id
-     */
-    private String clientId;
-
-    /**
-     * 设备名称
-     */
-    private String devName;
-
-
-    /**
-     * 进入时间
-     */
-    private LocalDateTime enterTime;
-
-    /**
-     * 离开时间
-     */
-    private LocalDateTime leaveTime;
-
-    /**
-     * 停留时长(秒)
-     */
-    private Integer stayTime;
-
-    /**
-     * 类型
-     */
-
-    private Integer type;
-} 

+ 0 - 15
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/AlarmEventService.java

@@ -1,15 +0,0 @@
-package com.hfln.portal.infrastructure.service;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.hfln.portal.common.request.event.AlarmEventParams;
-import com.hfln.portal.infrastructure.po.AlarmEvent;
-
-import java.util.List;
-
-public interface AlarmEventService extends IService<AlarmEvent> {
-
-        Page<AlarmEvent> QueryAlarmEvent(AlarmEventParams params, List<Long> devIdList);
-
-       long countUserDevicesAlarmEvents(List<Long> devIds);
-}

+ 3 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/DevInfoService.java

@@ -17,7 +17,7 @@ public interface DevInfoService extends IService<DevInfo> {
 
     DevInfo queryDevices(Long userId,String deviceId);
 
-    List<DevInfo> queryByIds (Collection<Long> devIds);
+    List<DevInfo> queryByIds (Collection<String> clientIds);
 
     Boolean updateDevice(Object identifier, DeviceBandingParams request);
 
@@ -32,4 +32,6 @@ public interface DevInfoService extends IService<DevInfo> {
     List<Long> queryByTenantId(Long tenantId);
 
     List<Long> queryByUserId (Long userId);
+
+    List<String> devIdsChangeClientIds (List<Long> devIds);
 }

+ 19 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/EventsService.java

@@ -1,8 +1,27 @@
 package com.hfln.portal.infrastructure.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.hfln.portal.common.dto.data.event.EventsDTO;
+import com.hfln.portal.common.request.event.WapEventsParams;
+import com.hfln.portal.common.request.event.WebEventsParams;
+import com.hfln.portal.common.vo.PageRecord;
 import com.hfln.portal.infrastructure.po.Events;
 
+import java.util.List;
+
 public interface EventsService extends IService<Events> {
 
+    Page<Events> QueryEvents(WapEventsParams params, List<String> clientIds);
+
+
+    PageRecord<EventsDTO> queryEvents(WebEventsParams params, String userType, Long tenantId);
+
+    /**
+     * 批量填充设备名称
+     * @param dtoList
+     */
+    void fillDevNames(List<EventsDTO> dtoList);
+
+    long  countUserDevicesEvents(List<String> clientIds);
 }

+ 0 - 25
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/StayTimeService.java

@@ -1,25 +0,0 @@
-package com.hfln.portal.infrastructure.service;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.hfln.portal.common.request.device.UsedInfoQueryReq;
-import com.hfln.portal.common.request.event.StayTimeParams;
-import com.hfln.portal.infrastructure.po.StayTime;
-
-import java.util.List;
-
-/**
- * 停留时间服务接口
- */
-public interface StayTimeService extends IService<StayTime> {
-    
-    /**
-     * 查询停留时间列表
-     * @param params 查询参数
-     * @param devIdList 设备ID列表
-     * @return 分页结果
-     */
-    Page<StayTime> queryStayTime(StayTimeParams params, List<Long> devIdList);
-
-    List<StayTime> queryStayTime(UsedInfoQueryReq req);
-}

+ 0 - 76
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/AlarmEventServiceImpl.java

@@ -1,76 +0,0 @@
-package com.hfln.portal.infrastructure.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.hfln.portal.common.request.event.AlarmEventParams;
-import com.hfln.portal.infrastructure.mapper.AlarmEventMapper;
-import com.hfln.portal.infrastructure.po.AlarmEvent;
-import com.hfln.portal.infrastructure.service.AlarmEventService;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.Objects;
-
-@Service
-public class AlarmEventServiceImpl extends ServiceImpl<AlarmEventMapper, AlarmEvent> implements AlarmEventService {
-
-
-    @Override
-    public Page<AlarmEvent> QueryAlarmEvent(AlarmEventParams params, List<Long> devIdList) {
-        Page<AlarmEvent> page = new Page<>(params.getPageNo(), params.getPageSize());
-
-        // 1.如果入参有devName,调用联表查询
-        if (params.getDevName() != null && !params.getDevName().trim().isEmpty()) {
-            return this.baseMapper.findAlarmEventsByDevName(page,params.getDevName());
-        }
-
-        // 2. 构建查询条件
-        LambdaQueryWrapper<AlarmEvent> queryWrapper = new LambdaQueryWrapper<>();
-        if (devIdList != null && !devIdList.isEmpty()){
-            queryWrapper.in(AlarmEvent::getDevId, devIdList);
-        }
-        // 如果devIdList为空,则不添加设备ID查询条件,查询所有事件
-
-        // 3. 添加日期条件
-        if (Objects.nonNull(params.getCreateTimeStart())) {
-            queryWrapper.ge(AlarmEvent::getCreateTime, params.getCreateTimeStart());
-        }
-        if (Objects.nonNull(params.getCreateTimeEnd())) {
-            queryWrapper.lt(AlarmEvent::getCreateTime, params.getCreateTimeEnd().plusDays(1));
-        }
-
-        //4.添加设备ID条件
-        if (params.getDevId() != null) {
-            queryWrapper.eq(AlarmEvent::getDevId, params.getDevId());
-        }
-
-        //5.添加事件类型条件
-        if (params.getEventType() != null) {
-            queryWrapper.eq(AlarmEvent::getEventType, params.getEventType());
-        }
-
-        // 6. 设置排序
-        queryWrapper.orderByDesc(AlarmEvent::getCreateTime);
-        return this.baseMapper.selectPage(page, queryWrapper);
-    }
-
-    @Override
-    public long countUserDevicesAlarmEvents(List<Long> devIds) {
-        if (devIds == null || devIds.isEmpty()) {
-            return 0L;
-        }
-
-        LocalDate today = LocalDate.now();
-        LocalDateTime startOfDay = today.atStartOfDay();
-        LocalDateTime endOfDay = today.plusDays(1).atStartOfDay().minusNanos(1);
-
-        LambdaQueryWrapper<AlarmEvent> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(AlarmEvent::getDevId, devIds)
-                .between(AlarmEvent::getCreateTime, startOfDay, endOfDay);
-
-        return this.baseMapper.selectCount(queryWrapper);
-    }
-}

+ 22 - 3
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevInfoServiceImpl.java

@@ -88,14 +88,14 @@ public class DevInfoServiceImpl extends ServiceImpl<DevInfoMapper, DevInfo> impl
 
 
     @Override
-    public List<DevInfo> queryByIds(Collection<Long> devIds) {
-        if (CollectionUtils.isEmpty(devIds)) {
+    public List<DevInfo> queryByIds(Collection<String> clientIds) {
+        if (CollectionUtils.isEmpty(clientIds)) {
             return Collections.emptyList();
         }
 
         // 使用 MyBatis-Plus 的 LambdaQueryWrapper 批量查询
         return this.list(new LambdaQueryWrapper<DevInfo>()
-                .in(DevInfo::getDevId, devIds)
+                .in(DevInfo::getClientId, clientIds)
                 .eq(DevInfo::getIsDeleted, 0)  // 如果有逻辑删除字段,过滤掉已删除设备
         );
     }
@@ -247,5 +247,24 @@ public class DevInfoServiceImpl extends ServiceImpl<DevInfoMapper, DevInfo> impl
         return list.stream().map(DevInfo::getDevId).collect(Collectors.toList());
     }
 
+    @Override
+    public List<String> devIdsChangeClientIds(List<Long> devIds) {
+        if (CollectionUtils.isEmpty(devIds)) {
+            return Collections.emptyList();
+        }
 
+        // 查询出对应的 clientId
+        List<DevInfo> devInfos = this.list(
+                Wrappers.<DevInfo>lambdaQuery()
+                        .in(DevInfo::getDevId, devIds)
+                        .eq(DevInfo::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED) // 如果有逻辑删除字段,可以加上
+                        .select(DevInfo::getClientId) // 只查 clientId 就行
+        );
+
+        // 转换成 clientId 集合
+        return devInfos.stream()
+                .map(DevInfo::getClientId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toList());
+    }
 }

+ 144 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/EventsServiceImpl.java

@@ -1,12 +1,156 @@
 package com.hfln.portal.infrastructure.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hfln.portal.common.dto.data.event.EventsDTO;
+import com.hfln.portal.common.request.event.WapEventsParams;
+import com.hfln.portal.common.request.event.WebEventsParams;
+import com.hfln.portal.common.vo.PageRecord;
+import com.hfln.portal.domain.customer.AdminUserType;
+import com.hfln.portal.domain.customer.util.CopyUtils;
 import com.hfln.portal.infrastructure.mapper.EventsMapper;
+import com.hfln.portal.infrastructure.po.DevInfo;
 import com.hfln.portal.infrastructure.po.Events;
+import com.hfln.portal.infrastructure.service.DevInfoService;
 import com.hfln.portal.infrastructure.service.EventsService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
 @Service
 public class EventsServiceImpl extends ServiceImpl<EventsMapper, Events> implements EventsService {
 
+
+    @Autowired
+    private DevInfoService devInfoService;
+    /**
+     * 小程序查询设备事件列表
+     * @param params
+     * @param clientIds
+     * @return
+     */
+    @Override
+    public Page<Events> QueryEvents(WapEventsParams params, List<String> clientIds) {
+        Page<Events> page = new Page<>(params.getPageNo(), params.getPageSize());
+
+        // 1. 构建查询条件
+        LambdaQueryWrapper<Events> queryWrapper = new LambdaQueryWrapper<>();
+        if (clientIds != null && !clientIds.isEmpty()){
+            queryWrapper.in(Events::getClientId, clientIds);
+        }
+
+        // 2. 添加日期条件
+        if (Objects.nonNull(params.getCreateTimeStart())) {
+            queryWrapper.ge(Events::getCreateTime, params.getCreateTimeStart());
+        }
+        if (Objects.nonNull(params.getCreateTimeEnd())) {
+            queryWrapper.lt(Events::getCreateTime, params.getCreateTimeEnd().plusDays(1));
+        }
+
+        // 3.添加设备ID条件
+        if (params.getClientId() != null) {
+            queryWrapper.eq(Events::getClientId, params.getClientId());
+        }
+
+        // 4.添加事件类型条件
+        if (params.getEventType() != null) {
+            queryWrapper.eq(Events::getEventType, params.getEventType());
+        }
+
+        // 6. 设置排序
+        queryWrapper.orderByDesc(Events::getCreateTime);
+        return this.baseMapper.selectPage(page, queryWrapper);
+    }
+
+
+    /**
+     * web端查询设备事件列表
+     * @param params
+     * @param userType
+     * @param tenantId
+     * @return
+     */
+    @Override
+    public PageRecord<EventsDTO> queryEvents(WebEventsParams params, String userType, Long tenantId) {
+
+        Page<Events> page = new Page<>(params.getPageNo(), params.getPageSize());
+        LambdaQueryWrapper<Events> queryWrapper = new LambdaQueryWrapper<>();
+
+        // 1. 时间过滤
+        Optional.ofNullable(params.getCreateTimeStart())
+                .ifPresent(start -> queryWrapper.ge(Events::getCreateTime, start));
+        Optional.ofNullable(params.getCreateTimeEnd())
+                .ifPresent(end -> queryWrapper.lt(Events::getCreateTime, end.plusDays(1)));
+
+        // 2. 事件类型过滤
+        Optional.ofNullable(params.getEventType())
+                .ifPresent(type -> queryWrapper.eq(Events::getEventType, type));
+
+        // 3. 用户类型处理
+        if (AdminUserType.getBgManagerTypes().contains(userType)) {
+            // 后台管理员可选按tenantId过滤
+            if (params.getTenantId() != null) {
+                queryWrapper.eq(Events::getTenantId, params.getTenantId());
+            }
+        } else {
+            // 租户管理员/普通用户:只能查看自己租户
+            queryWrapper.eq(Events::getTenantId, tenantId);
+        }
+
+        // 4. 排序
+        queryWrapper.orderByDesc(Events::getCreateTime);
+
+        // 5. 分页查询
+        page = this.baseMapper.selectPage(page, queryWrapper);
+
+        // 6. 转换为 DTO
+        List<EventsDTO> dtoList = CopyUtils.copyList(page.getRecords(), EventsDTO.class);
+
+        // 7. 填充 devName
+        fillDevNames(dtoList);
+
+        // 8. 封装返回
+        return CopyUtils.copyPage(page, dtoList);
+    }
+
+    /**
+     * 统计用户设备当天的异常事件数量(按 clientId)
+     */
+    @Override
+    public long countUserDevicesEvents(List<String> clientIds) {
+        if (clientIds == null || clientIds.isEmpty()) {
+            return 0L;
+        }
+
+        LocalDate today = LocalDate.now();
+        LocalDateTime startOfDay = today.atStartOfDay();
+        LocalDateTime endOfDay = today.plusDays(1).atStartOfDay();
+
+        LambdaQueryWrapper<Events> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(Events::getClientId, clientIds)
+                .ge(Events::getCreateTime, startOfDay)
+                .lt(Events::getCreateTime, endOfDay);
+
+        return this.baseMapper.selectCount(queryWrapper);
+    }
+
+    // 辅助方法:填充 devName
+    public void fillDevNames(List<EventsDTO> dtoList) {
+        Set<String> allClientIds = dtoList.stream()
+                .map(EventsDTO::getClientId)
+                .collect(Collectors.toSet());
+
+        if (!allClientIds.isEmpty()) {
+            Map<String, String> devIdNameMap = devInfoService.queryByIds(allClientIds)
+                    .stream()
+                    .collect(Collectors.toMap(DevInfo::getClientId, DevInfo::getDevName));
+
+            dtoList.forEach(dto -> dto.setDevName(devIdNameMap.get(dto.getClientId())));
+        }
+    }
 }

+ 0 - 67
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/StayTimeServiceImpl.java

@@ -1,67 +0,0 @@
-package com.hfln.portal.infrastructure.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.hfln.portal.common.request.device.UsedInfoQueryReq;
-import com.hfln.portal.common.request.event.StayTimeParams;
-import com.hfln.portal.infrastructure.mapper.StayTimeMapper;
-import com.hfln.portal.infrastructure.po.StayTime;
-import com.hfln.portal.infrastructure.service.StayTimeService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Objects;
-
-@Service
-public class StayTimeServiceImpl extends ServiceImpl<StayTimeMapper, StayTime> implements StayTimeService {
-    
-    @Override
-    public Page<StayTime> queryStayTime(StayTimeParams params, List<Long> devIdList) {
-        Page<StayTime> page = new Page<>(params.getPageNo(), params.getPageSize());
-
-        // 2. 构建查询条件
-        LambdaQueryWrapper<StayTime> queryWrapper = new LambdaQueryWrapper<>();
-        if (devIdList != null && !devIdList.isEmpty()){
-            queryWrapper.in(StayTime::getDevId, devIdList);
-        }
-        // 如果devIdList为空,则不添加设备ID查询条件,查询所有事件
-
-        // 3. 添加日期条件
-        if (Objects.nonNull(params.getCreateTimeStart())) {
-            queryWrapper.ge(StayTime::getCreateTime, params.getCreateTimeStart());
-        }
-        if (Objects.nonNull(params.getCreateTimeEnd())) {
-            queryWrapper.lt(StayTime::getCreateTime, params.getCreateTimeEnd().plusDays(1));
-        }
-
-        if (params.getDevId() != null) {
-            queryWrapper.eq(StayTime::getDevId, params.getDevId());
-        }
-        if (params.getType() != null) {
-            queryWrapper.eq(StayTime::getType, params.getType());
-        }
-
-        // 4. 设置排序
-        queryWrapper.orderByDesc(StayTime::getCreateTime);
-        return this.baseMapper.selectPage(page, queryWrapper);
-    }
-
-    @Override
-    public List<StayTime> queryStayTime(UsedInfoQueryReq req) {
-
-        LambdaQueryWrapper<StayTime> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(StayTime::getDevId, req.getDevId());
-        // 3. 添加日期条件
-        if (Objects.nonNull(req.getStartDate())) {
-            queryWrapper.ge(StayTime::getLeaveTime, req.getStartDate());
-        }
-
-        if (Objects.nonNull(req.getEndDate())) {
-            queryWrapper.lt(StayTime::getLeaveTime, req.getEndDate().plusDays(1));
-        }
-
-        queryWrapper.orderByDesc(StayTime::getLeaveTime);
-        return this.baseMapper.selectList(queryWrapper);
-    }
-} 

+ 1 - 1
portal-service-server/src/main/resources/bootstrap.yml

@@ -5,7 +5,7 @@ spring:
     pathmatch:
       matching-strategy: ANT_PATH_MATCHER
   profiles:
-    active: local
+    active: han
   application:
     name: portal-service-server