Browse Source

新增 数据统一查询模块

guoenzhou 1 year ago
parent
commit
34249450bf
15 changed files with 227 additions and 78 deletions
  1. 23 0
      service-backend/service-backend-api/src/main/java/com/usky/backend/client/DataQueryClient.java
  2. 1 6
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/request/HistoryQueryVo.java
  3. 3 2
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/HistoryResultVo.java
  4. 3 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/MetricItemVo.java
  5. 6 0
      service-backend/service-backend-biz/pom.xml
  6. 41 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/api/DataQueryApi.java
  7. 19 17
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/web/DataQueryController.java
  8. 1 1
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/web/SysTenantController.java
  9. 17 16
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/web/SysUserController.java
  10. 1 1
      service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/LastQueryVo.java
  11. 30 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/MetricRealItemVo.java
  12. 6 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/service/DataQueryService.java
  13. 22 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataQueryServiceImpl.java
  14. 1 1
      service-backend/service-backend-biz/src/main/resources/bootstrap.yml
  15. 53 33
      service-backend/service-backend-biz/src/main/resources/logback.xml

+ 23 - 0
service-backend/service-backend-api/src/main/java/com/usky/backend/client/DataQueryClient.java

@@ -0,0 +1,23 @@
+package com.usky.backend.client;
+
+import com.usky.backend.domain.request.HistoryQueryVo;
+import com.usky.backend.domain.response.HistoryResultVo;
+import com.usky.common.core.bean.ApiResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(contextId = "dataQueryClient", value = "usky-backend")
+public interface DataQueryClient {
+
+    @PostMapping("/history")
+    public ApiResult<List<HistoryResultVo>> history(@RequestBody HistoryQueryVo historyQueryVo);
+
+}
+
+
+
+
+

+ 1 - 6
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/HistoryQueryVo.java → service-backend/service-backend-api/src/main/java/com/usky/backend/domain/request/HistoryQueryVo.java

@@ -1,14 +1,9 @@
-package com.usky.backend.domain.vo;
+package com.usky.backend.domain.request;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
 import java.util.List;
 
 /**

+ 3 - 2
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/HistoryResultVo.java → service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/HistoryResultVo.java

@@ -1,9 +1,8 @@
-package com.usky.backend.domain.vo;
+package com.usky.backend.domain.response;
 
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
 import java.util.List;
 
 @Data
@@ -12,7 +11,9 @@ public class HistoryResultVo implements Serializable {
    private static final long serialVersionUID = 8837428366010205858L;
 
    private String deviceId;
+
    private String metric;
+
    private List<MetricItemVo> metricItems;
 
    public HistoryResultVo() {

+ 3 - 1
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/MetricItemVo.java → service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/MetricItemVo.java

@@ -1,4 +1,4 @@
-package com.usky.backend.domain.vo;
+package com.usky.backend.domain.response;
 
 import lombok.Data;
 
@@ -9,11 +9,13 @@ import java.util.Date;
 public class MetricItemVo implements Serializable {
 
     private Date timestamp;
+
     private Object value;
 
     public MetricItemVo() {
     }
 
+
     public MetricItemVo(Date timestamp, Object value) {
         this.timestamp = timestamp;
         this.value = value;

+ 6 - 0
service-backend/service-backend-biz/pom.xml

@@ -34,6 +34,12 @@
             <artifactId>springfox-swagger-ui</artifactId>
             <version>${swagger.fox.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>service-backend-api</artifactId>
+            <version>0.0.1</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 41 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/api/DataQueryApi.java

@@ -0,0 +1,41 @@
+package com.usky.backend.controller.api;
+import com.usky.backend.client.DataQueryClient;
+import com.usky.backend.domain.request.HistoryQueryVo;
+import com.usky.backend.domain.response.HistoryResultVo;
+import com.usky.backend.domain.vo.*;
+import com.usky.backend.service.DataQueryService;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.log.annotation.Log;
+import com.usky.system.RemoteLogService;
+import com.usky.system.domain.SysLogininforVO;
+import com.usky.system.domain.SysOperLogVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  数据统一查询 前端控制器
+ * </p>
+ *
+ */
+@RestController
+@Api(tags = "数据统一查询RPC")
+@RequestMapping("/dataQueryApi")
+public class DataQueryApi implements DataQueryClient {
+
+    @Autowired
+    private DataQueryService dataQueryService;
+
+    @Override
+    public ApiResult<List<HistoryResultVo>> history(HistoryQueryVo historyQueryVo) {
+        List<HistoryResultVo> history = dataQueryService.history(historyQueryVo);
+        return ApiResult.success(history);
+    }
+}
+

+ 19 - 17
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/DataQueryController.java → service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/web/DataQueryController.java

@@ -1,13 +1,14 @@
-package com.usky.backend.controller;
-import com.usky.backend.domain.vo.HistoryQueryVo;
-import com.usky.backend.domain.vo.HistoryResultVo;
-import com.usky.backend.domain.vo.LastQueryVo;
-import com.usky.backend.domain.vo.MetricItemVo;
+package com.usky.backend.controller.web;
+import com.usky.backend.domain.request.HistoryQueryVo;
+import com.usky.backend.domain.response.HistoryResultVo;
+import com.usky.backend.domain.response.MetricItemVo;
+import com.usky.backend.domain.vo.*;
+import com.usky.backend.service.DataQueryService;
 import com.usky.common.core.bean.ApiResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.stereotype.Controller;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -24,16 +25,19 @@ import java.util.List;
 @RequestMapping("/dataQuery")
 public class DataQueryController {
 
+    @Autowired
+    private DataQueryService dataQueryService;
 
     @GetMapping("/history")
     @ApiOperation("获取单个设备单属性历史数据")
     public ApiResult<HistoryResultVo> history(@RequestParam("startTime") String startTime,
-                                     @RequestParam("endTime") String endTime,
-                                     @RequestParam("deviceId") String deviceId,
-                                     @RequestParam("metric") String metric ) {
+                                              @RequestParam("endTime") String endTime,
+                                              @RequestParam("deviceId") String deviceId,
+                                              @RequestParam("metric") String metric ) {
         //以下是mock模拟数据
         List<MetricItemVo> items = new ArrayList<>();
         items.add(new MetricItemVo(new Date(),12.3));
+        items.add(new MetricItemVo(new Date(),100));
         HistoryResultVo historyResultVo = new HistoryResultVo(deviceId,metric,items);
         return ApiResult.success(historyResultVo);
     }
@@ -41,18 +45,16 @@ public class DataQueryController {
     @PostMapping("/history")
     @ApiOperation("获取单个设备多属性历史数据")
     public ApiResult<List<HistoryResultVo>> history(@RequestBody HistoryQueryVo historyQueryVo) {
-        List<HistoryResultVo> result  = new ArrayList<>();
-        List<MetricItemVo> items = new ArrayList<>();
-        items.add(new MetricItemVo(new Date(),12.3));
-        HistoryResultVo historyResultVo = new HistoryResultVo(historyQueryVo.getDeviceId(),"cpu.load",items);
-        result.add(historyResultVo);
-        return ApiResult.success(result);
+        List<HistoryResultVo> history = dataQueryService.history(historyQueryVo);
+        return ApiResult.success(history);
     }
 
     @PostMapping("/last")
     @ApiOperation("获取单个设备多指标实时数据")
-    public ApiResult<List<MetricItemVo>> last(@RequestBody LastQueryVo lastQueryVo) {
-        List<MetricItemVo>  metricItemVos = new ArrayList<>();
+    public ApiResult<List<MetricRealItemVo>> last(@RequestBody LastQueryVo lastQueryVo) {
+        List<MetricRealItemVo>  metricItemVos = new ArrayList<>();
+        metricItemVos.add(new MetricRealItemVo("cpu.load",new Date(),11.2));
+        metricItemVos.add(new MetricRealItemVo("cpu.5min",new Date(),12.2));
         return ApiResult.success(metricItemVos);
     }
 

+ 1 - 1
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/SysTenantController.java → service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/web/SysTenantController.java

@@ -1,4 +1,4 @@
-package com.usky.backend.controller;
+package com.usky.backend.controller.web;
 
 import com.usky.backend.domain.vo.SysConfigLoginVo;
 import com.usky.backend.domain.vo.SysConfigTenantVo;

+ 17 - 16
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/web/SysUserController.java

@@ -2,7 +2,13 @@ package com.usky.backend.controller.web;
 
 
 import com.usky.backend.service.SysUserService;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.system.RemoteUserService;
+import com.usky.system.domain.SysUser;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
@@ -14,10 +20,9 @@ import java.util.List;
  * 用户信息表 前端控制器
  * </p>
  *
- * @author ya
- * @since 2022-04-21
  */
 @RestController
+@Api(tags = "用户信息表")
 @RequestMapping("/sysUser")
 public class SysUserController {
 
@@ -26,19 +31,15 @@ public class SysUserController {
     private SysUserService sysUserService;
 
 
-//    @Autowired
-//    private RemoteUserService remoteUserService;
-//
-//    public ApiResult<List<SysUser>> list(){
-//        return ApiResult.success(sysUserService.list());
-//    }
-//
-//
-//    @GetMapping("feginTest")
-//    public ApiResult<List<SysUserVO>> feginTest() {
-//        ApiResult<List<SysUserVO>> test = remoteUserService.getByUserName("test");
-//        List<SysUserVO> data = test.getData();
-//        return test;
-//    }
+    @Autowired
+    private RemoteUserService remoteUserService;
+
+    @GetMapping("/list")
+    @ApiOperation("用户列表")
+    public ApiResult<List<SysUser>> list(){
+        return remoteUserService.userList();
+    }
+
+
 }
 

+ 1 - 1
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/LastQueryVo.java

@@ -22,7 +22,7 @@ public class LastQueryVo implements Serializable {
     private String  deviceId;
 
     /**
-     * 指标名
+     * 指标名 非必填
      */
     private List<String>  metrics;
 

+ 30 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/MetricRealItemVo.java

@@ -0,0 +1,30 @@
+package com.usky.backend.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class MetricRealItemVo implements Serializable {
+
+    private String metric;
+
+    private Date timestamp;
+
+    private Object value;
+
+    public MetricRealItemVo() {
+    }
+
+    public MetricRealItemVo(String metric, Date timestamp, Object value) {
+        this.metric = metric;
+        this.timestamp = timestamp;
+        this.value = value;
+    }
+
+    public MetricRealItemVo(Date timestamp, Object value) {
+        this.timestamp = timestamp;
+        this.value = value;
+    }
+}

+ 6 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/DataQueryService.java

@@ -1,6 +1,12 @@
 package com.usky.backend.service;
 
+import com.usky.backend.domain.request.HistoryQueryVo;
+import com.usky.backend.domain.response.HistoryResultVo;
+
+import java.util.List;
+
 public interface DataQueryService {
 
+     List<HistoryResultVo> history(HistoryQueryVo historyQueryVo);
 
 }

+ 22 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataQueryServiceImpl.java

@@ -1,7 +1,29 @@
 package com.usky.backend.service.impl;
 
+import com.usky.backend.domain.request.HistoryQueryVo;
+import com.usky.backend.domain.response.HistoryResultVo;
+import com.usky.backend.domain.response.MetricItemVo;
 import com.usky.backend.service.DataQueryService;
+import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Service
 public class DataQueryServiceImpl implements DataQueryService {
 
+    @Override
+    public List<HistoryResultVo> history(HistoryQueryVo historyQueryVo) {
+        List<HistoryResultVo> result  = new ArrayList<>();
+        List<MetricItemVo> items = new ArrayList<>();
+        items.add(new MetricItemVo(new Date(),12.3));
+        HistoryResultVo historyResultVo = new HistoryResultVo(historyQueryVo.getDeviceId(),"cpu.load",items);
+        List<MetricItemVo> items1 = new ArrayList<>();
+        items1.add(new MetricItemVo(new Date(),11.3));
+        HistoryResultVo historyResultVo1 = new HistoryResultVo(historyQueryVo.getDeviceId(),"cpu.5min",items1);
+        result.add(historyResultVo);
+        result.add(historyResultVo1);
+        return result;
+    }
 }

+ 1 - 1
service-backend/service-backend-biz/src/main/resources/bootstrap.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 9887
+  port: 9886
 
 # Spring
 spring: 

+ 53 - 33
service-backend/service-backend-biz/src/main/resources/logback.xml

@@ -1,31 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="60 seconds" debug="false">
     <!-- 日志存放路径 -->
-	<property name="log.path" value="/var/log/uskycloud/service-backend" />
-   <!-- 日志输出格式 -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+    <property name="log.path" value="/var/log/uskycloud/service-system" />
+    <!-- 日志输出格式 -->
+    <property name="log.pattern" value="%d{MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{26}:%line: %msg%n" />
+    <!--    	<property name="log.pattern" value="%gray(%d{MM-dd HH:mm:ss.SSS}) %highlight(%-5level) &#45;&#45; [%gray(%thread)] %cyan(%logger{26}:%line): %msg%n" />-->
+
+
+    <property name="SQL_PACKAGE" value="com.usky"/>
 
     <!-- 控制台输出 -->
-	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-	</appender>
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="file_sql" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/sql.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/sql.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>3</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
 
     <!-- 系统日志输出 -->
-	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/info.log</file>
+    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/info.log</file>
         <!-- 循环政策:基于时间创建日志文件 -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 日志文件名格式 -->
-			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 日志最大的历史 60天 -->
-			<maxHistory>60</maxHistory>
-		</rollingPolicy>
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>3</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <!-- 过滤的级别 -->
             <level>INFO</level>
             <!-- 匹配时的操作:接收(记录) -->
@@ -33,16 +51,16 @@
             <!-- 不匹配时的操作:拒绝(不记录) -->
             <onMismatch>DENY</onMismatch>
         </filter>
-	</appender>
+    </appender>
 
     <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/error.log</file>
+        <file>${log.path}/error.log</file>
         <!-- 循环政策:基于时间创建日志文件 -->
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 日志文件名格式 -->
             <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 日志最大的历史 60天 -->
-			<maxHistory>60</maxHistory>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>60</maxHistory>
         </rollingPolicy>
         <encoder>
             <pattern>${log.pattern}</pattern>
@@ -50,25 +68,27 @@
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <!-- 过滤的级别 -->
             <level>ERROR</level>
-			<!-- 匹配时的操作:接收(记录) -->
+            <!-- 匹配时的操作:接收(记录) -->
             <onMatch>ACCEPT</onMatch>
-			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <!-- 不匹配时的操作:拒绝(不记录) -->
             <onMismatch>DENY</onMismatch>
         </filter>
     </appender>
 
     <!-- 系统模块日志级别控制  -->
-	<logger name="com.usky" level="info" />
-	<!-- Spring日志级别控制  -->
-	<logger name="org.springframework" level="warn" />
+    <!--	<logger name="com.usky" level="info" />-->
+    <!-- Spring日志级别控制  -->
+    <!--	<logger name="org.springframework" level="warn" />-->
+
+    <logger name="${SQL_PACKAGE}" additivity="false" level="debug">
+        <appender-ref ref="console"/>
+        <appender-ref ref="file_sql"/>
+    </logger>
 
-	<root level="info">
-		<appender-ref ref="console" />
-	</root>
-	
-	<!--系统操作日志-->
+    <!--系统操作日志-->
     <root level="info">
         <appender-ref ref="file_info" />
         <appender-ref ref="file_error" />
+        <appender-ref ref="console" />
     </root>
 </configuration>