From 70af69c12e20c8c1ee2a991989ff2a32c3922f16 Mon Sep 17 00:00:00 2001 From: tomsun28 Date: Tue, 7 Dec 2021 16:39:20 +0800 Subject: [PATCH] =?UTF-8?q?[manager]=20=E7=B3=BB=E7=BB=9F=E6=91=98?= =?UTF-8?q?=E8=A6=81=E7=BB=9F=E8=AE=A1API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/controller/SummaryController.java | 41 +++++++++++++++++++ .../com/usthe/manager/dao/MonitorDao.java | 8 ++++ .../com/usthe/manager/pojo/dto/AppCount.java | 19 +++++++++ .../com/usthe/manager/pojo/dto/Dashboard.java | 23 +++++++++++ .../usthe/manager/service/MonitorService.java | 7 ++++ .../service/impl/MonitorServiceImpl.java | 7 ++++ 6 files changed, 105 insertions(+) create mode 100644 manager/src/main/java/com/usthe/manager/controller/SummaryController.java create mode 100644 manager/src/main/java/com/usthe/manager/pojo/dto/AppCount.java create mode 100644 manager/src/main/java/com/usthe/manager/pojo/dto/Dashboard.java diff --git a/manager/src/main/java/com/usthe/manager/controller/SummaryController.java b/manager/src/main/java/com/usthe/manager/controller/SummaryController.java new file mode 100644 index 0000000..3bdfc1d --- /dev/null +++ b/manager/src/main/java/com/usthe/manager/controller/SummaryController.java @@ -0,0 +1,41 @@ +package com.usthe.manager.controller; + +import com.usthe.common.entity.dto.Message; +import com.usthe.manager.pojo.dto.AppCount; +import com.usthe.manager.pojo.dto.Dashboard; +import com.usthe.manager.service.MonitorService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +import java.util.List; + +import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; + +/** + * 系统摘要统计API + * @author tom + * @date 2021/12/7 15:57 + */ +@Api(tags = "系统摘要统计API") +@RestController +@RequestMapping(path = "/summary", produces = {APPLICATION_JSON_VALUE}) +public class SummaryController { + + @Autowired + private MonitorService monitorService; + + @GetMapping + @ApiOperation(value = "查询应用类别监控统计", notes = "查询所有应用类别监控统计信息") + public ResponseEntity> appMonitors() { + List appsCount = monitorService.getAllAppMonitorsCount(); + Message message = new Message<>(new Dashboard(appsCount)); + return ResponseEntity.ok(message); + } + +} diff --git a/manager/src/main/java/com/usthe/manager/dao/MonitorDao.java b/manager/src/main/java/com/usthe/manager/dao/MonitorDao.java index 8ce222b..d435706 100644 --- a/manager/src/main/java/com/usthe/manager/dao/MonitorDao.java +++ b/manager/src/main/java/com/usthe/manager/dao/MonitorDao.java @@ -1,8 +1,10 @@ package com.usthe.manager.dao; +import com.usthe.manager.pojo.dto.AppCount; import com.usthe.manager.pojo.entity.Monitor; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; import java.util.List; import java.util.Set; @@ -28,4 +30,10 @@ public interface MonitorDao extends JpaRepository, JpaSpecificati */ List findMonitorsByIdIn(Set monitorIds); + /** + * 查询监控类别及其对应的监控数量 + * @return 监控类别与监控数量映射 + */ + @Query("select new com.usthe.manager.pojo.dto.AppCount(mo.app, COUNT(mo.id)) from Monitor mo group by mo.app") + List findAppsCount(); } diff --git a/manager/src/main/java/com/usthe/manager/pojo/dto/AppCount.java b/manager/src/main/java/com/usthe/manager/pojo/dto/AppCount.java new file mode 100644 index 0000000..ac98e90 --- /dev/null +++ b/manager/src/main/java/com/usthe/manager/pojo/dto/AppCount.java @@ -0,0 +1,19 @@ +package com.usthe.manager.pojo.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author tom + * @date 2021/12/7 16:32 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class AppCount { + /**监控类型**/ + private String app; + /**监控数量**/ + private Long size; +} diff --git a/manager/src/main/java/com/usthe/manager/pojo/dto/Dashboard.java b/manager/src/main/java/com/usthe/manager/pojo/dto/Dashboard.java new file mode 100644 index 0000000..a5f159a --- /dev/null +++ b/manager/src/main/java/com/usthe/manager/pojo/dto/Dashboard.java @@ -0,0 +1,23 @@ +package com.usthe.manager.pojo.dto; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 大屏仪表盘统计信息 + * @author tom + * @date 2021/12/7 16:01 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(description = "大屏仪表盘统计信息") +public class Dashboard { + + List apps; + +} diff --git a/manager/src/main/java/com/usthe/manager/service/MonitorService.java b/manager/src/main/java/com/usthe/manager/service/MonitorService.java index 813dd45..65eb379 100644 --- a/manager/src/main/java/com/usthe/manager/service/MonitorService.java +++ b/manager/src/main/java/com/usthe/manager/service/MonitorService.java @@ -1,5 +1,6 @@ package com.usthe.manager.service; +import com.usthe.manager.pojo.dto.AppCount; import com.usthe.manager.pojo.dto.MonitorDto; import com.usthe.manager.pojo.entity.Monitor; import com.usthe.manager.pojo.entity.Param; @@ -93,4 +94,10 @@ public interface MonitorService { * @param ids 监控IDs */ void enableManageMonitors(HashSet ids); + + /** + * 查询监控类别及其对应的监控数量 + * @return 监控类别与监控数量映射 + */ + List getAllAppMonitorsCount(); } diff --git a/manager/src/main/java/com/usthe/manager/service/impl/MonitorServiceImpl.java b/manager/src/main/java/com/usthe/manager/service/impl/MonitorServiceImpl.java index cc08610..44a2b0a 100644 --- a/manager/src/main/java/com/usthe/manager/service/impl/MonitorServiceImpl.java +++ b/manager/src/main/java/com/usthe/manager/service/impl/MonitorServiceImpl.java @@ -11,6 +11,7 @@ import com.usthe.common.util.IpDomainUtil; import com.usthe.common.util.SnowFlakeIdGenerator; import com.usthe.manager.dao.MonitorDao; import com.usthe.manager.dao.ParamDao; +import com.usthe.manager.pojo.dto.AppCount; import com.usthe.manager.pojo.dto.MonitorDto; import com.usthe.manager.pojo.entity.Monitor; import com.usthe.manager.pojo.entity.Param; @@ -338,4 +339,10 @@ public class MonitorServiceImpl implements MonitorService { } } } + + @Override + public List getAllAppMonitorsCount() { + return monitorDao.findAppsCount(); + + } }