wanxl 2 anni fa
parent
commit
71002d2c22
26 ha cambiato i file con 1789 aggiunte e 1582 eliminazioni
  1. 73 61
      pom.xml
  2. 75 75
      src/main/java/com/template/common/utils/ExcelClassField.java
  3. 22 22
      src/main/java/com/template/common/utils/ExcelUtil3.java
  4. 64 64
      src/main/java/com/template/common/utils/ExcelUtils.java
  5. 1008 1008
      src/main/java/com/template/common/utils/ExcelUtils2.java
  6. 76 76
      src/main/java/com/template/common/utils/FileUtils.java
  7. 36 36
      src/main/java/com/template/common/utils/HttpsClient.java
  8. 213 213
      src/main/java/com/template/common/utils/SendSms.java
  9. 18 0
      src/main/java/com/template/controller/CompaniesController.java
  10. 4 4
      src/main/java/com/template/controller/DevicesAlarmController.java
  11. 18 1
      src/main/java/com/template/controller/DevicesController.java
  12. 7 0
      src/main/java/com/template/controller/RecordDViewController.java
  13. 2 1
      src/main/java/com/template/controller/RecordsController.java
  14. 7 3
      src/main/java/com/template/controller/RepairsController.java
  15. 14 0
      src/main/java/com/template/mapper/CompaniesMapper.java
  16. 3 2
      src/main/java/com/template/mapper/RecordsMapper.java
  17. 2 2
      src/main/java/com/template/mapper/RepairsMapper.java
  18. 6 0
      src/main/java/com/template/model/RecordDView.java
  19. 0 1
      src/main/java/com/template/result/CompaniesResult.java
  20. 105 8
      src/main/java/com/template/scheduled/ScheduledService.java
  21. 4 0
      src/main/java/com/template/services/CompaniesService.java
  22. 1 1
      src/main/java/com/template/services/RepairsService.java
  23. 14 0
      src/main/java/com/template/services/impl/CompaniesServiceImpl.java
  24. 2 2
      src/main/java/com/template/services/impl/RepairsServiceImpl.java
  25. 8 1
      src/main/resources/application-dev.yml
  26. 7 1
      src/main/resources/application.yml

+ 73 - 61
pom.xml

@@ -16,7 +16,7 @@
 
     <properties>
         <java.version>1.8</java.version>
-        <tencent.qcloudsms.version>1.0.6</tencent.qcloudsms.version>
+<!--        <tencent.qcloudsms.version>1.0.6</tencent.qcloudsms.version>-->
     </properties>
 
     <dependencies>
@@ -27,23 +27,23 @@
             <version>2.0.1.Final</version>
         </dependency>
 
-        <dependency>
-            <groupId>org.hibernate</groupId>
-            <artifactId>hibernate-validator</artifactId>
-            <version>6.1.5.Final</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.hibernate</groupId>-->
+<!--            <artifactId>hibernate-validator</artifactId>-->
+<!--            <version>6.1.5.Final</version>-->
+<!--        </dependency>-->
 
         <!--   读取excel数据     -->
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi</artifactId>
-            <version>4.1.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-ooxml</artifactId>
-            <version>4.1.0</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.apache.poi</groupId>-->
+<!--            <artifactId>poi</artifactId>-->
+<!--            <version>4.1.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.apache.poi</groupId>-->
+<!--            <artifactId>poi-ooxml</artifactId>-->
+<!--            <version>4.1.0</version>-->
+<!--        </dependency>-->
 
         <!-- fastjson -->
         <dependency>
@@ -53,28 +53,28 @@
         </dependency>
 
         <!--引入JWT-->
-        <dependency>
-            <groupId>com.auth0</groupId>
-            <artifactId>java-jwt</artifactId>
-            <version>3.10.0</version>
-        </dependency>
-        <dependency>
-            <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt</artifactId>
-            <version>0.9.1</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.auth0</groupId>-->
+<!--            <artifactId>java-jwt</artifactId>-->
+<!--            <version>3.10.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>io.jsonwebtoken</groupId>-->
+<!--            <artifactId>jjwt</artifactId>-->
+<!--            <version>0.9.1</version>-->
+<!--        </dependency>-->
 
-        <dependency>
-            <groupId>com.github.qcloudsms</groupId>
-            <artifactId>qcloudsms</artifactId>
-            <version>${tencent.qcloudsms.version}</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.github.qcloudsms</groupId>-->
+<!--            <artifactId>qcloudsms</artifactId>-->
+<!--            <version>${tencent.qcloudsms.version}</version>-->
+<!--        </dependency>-->
 
-        <dependency>
-            <groupId>com.tencentcloudapi</groupId>
-            <artifactId>tencentcloud-sdk-java</artifactId>
-            <version>3.1.742</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.tencentcloudapi</groupId>-->
+<!--            <artifactId>tencentcloud-sdk-java</artifactId>-->
+<!--            <version>3.1.742</version>-->
+<!--        </dependency>-->
 
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -110,6 +110,12 @@
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.0.5</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>mybatis-spring</artifactId>
+                    <groupId>org.mybatis</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -135,11 +141,11 @@
         </dependency>
 
         <!-- https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit -->
-        <dependency>
-            <groupId>org.eclipse.jgit</groupId>
-            <artifactId>org.eclipse.jgit</artifactId>
-            <version>5.4.3.201909031940-r</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.eclipse.jgit</groupId>-->
+<!--            <artifactId>org.eclipse.jgit</artifactId>-->
+<!--            <version>5.4.3.201909031940-r</version>-->
+<!--        </dependency>-->
 
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -159,10 +165,10 @@
             </exclusions>
         </dependency>
 
-        <dependency>
-            <groupId>redis.clients</groupId>
-            <artifactId>jedis</artifactId>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>redis.clients</groupId>-->
+<!--            <artifactId>jedis</artifactId>-->
+<!--        </dependency>-->
 
         <dependency>
             <groupId>io.springfox</groupId>
@@ -189,6 +195,12 @@
             <groupId>com.qcloud</groupId>
             <artifactId>cos_api</artifactId>
             <version>5.6.155</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>okio</artifactId>
+                    <groupId>com.squareup.okio</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
 
@@ -212,27 +224,27 @@
         </dependency>
 
         <!-- 上传文件的依赖 -->
-        <dependency>
-            <!--common-fileupload的依赖组件-->
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.6</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-fileupload</groupId>
-            <artifactId>commons-fileupload</artifactId>
-            <version>1.4</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            &lt;!&ndash;common-fileupload的依赖组件&ndash;&gt;-->
+<!--            <groupId>commons-io</groupId>-->
+<!--            <artifactId>commons-io</artifactId>-->
+<!--            <version>2.6</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>commons-fileupload</groupId>-->
+<!--            <artifactId>commons-fileupload</artifactId>-->
+<!--            <version>1.4</version>-->
+<!--        </dependency>-->
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>druid</artifactId>
             <version>1.2.16</version>
         </dependency>
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>easyexcel</artifactId>
-            <version>2.2.11</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.alibaba</groupId>-->
+<!--            <artifactId>easyexcel</artifactId>-->
+<!--            <version>2.2.11</version>-->
+<!--        </dependency>-->
         <dependency>
             <groupId>org.eclipse.paho</groupId>
             <artifactId>org.eclipse.paho.client.mqttv3</artifactId>

+ 75 - 75
src/main/java/com/template/common/utils/ExcelClassField.java

@@ -1,75 +1,75 @@
-package com.template.common.utils;
- 
-import java.util.LinkedHashMap;
- 
-/**
- *  */
-public class ExcelClassField {
- 
-    /** 字段名称 */
-    private String fieldName;
- 
-    /** 表头名称 */
-    private String name;
- 
-    /** 映射关系 */
-    private LinkedHashMap<String, String> kvMap;
- 
-    /** 示例值 */
-    private Object example;
- 
-    /** 排序 */
-    private int sort;
- 
-    /** 是否为注解字段:0-否,1-是 */
-    private int hasAnnotation;
- 
-    public String getFieldName() {
-        return fieldName;
-    }
- 
-    public void setFieldName(String fieldName) {
-        this.fieldName = fieldName;
-    }
- 
-    public String getName() {
-        return name;
-    }
- 
-    public void setName(String name) {
-        this.name = name;
-    }
- 
-    public LinkedHashMap<String, String> getKvMap() {
-        return kvMap;
-    }
- 
-    public void setKvMap(LinkedHashMap<String, String> kvMap) {
-        this.kvMap = kvMap;
-    }
- 
-    public Object getExample() {
-        return example;
-    }
- 
-    public void setExample(Object example) {
-        this.example = example;
-    }
- 
-    public int getSort() {
-        return sort;
-    }
- 
-    public void setSort(int sort) {
-        this.sort = sort;
-    }
- 
-    public int getHasAnnotation() {
-        return hasAnnotation;
-    }
- 
-    public void setHasAnnotation(int hasAnnotation) {
-        this.hasAnnotation = hasAnnotation;
-    }
- 
-}
+//package com.template.common.utils;
+//
+//import java.util.LinkedHashMap;
+//
+///**
+// *  */
+//public class ExcelClassField {
+//
+//    /** 字段名称 */
+//    private String fieldName;
+//
+//    /** 表头名称 */
+//    private String name;
+//
+//    /** 映射关系 */
+//    private LinkedHashMap<String, String> kvMap;
+//
+//    /** 示例值 */
+//    private Object example;
+//
+//    /** 排序 */
+//    private int sort;
+//
+//    /** 是否为注解字段:0-否,1-是 */
+//    private int hasAnnotation;
+//
+//    public String getFieldName() {
+//        return fieldName;
+//    }
+//
+//    public void setFieldName(String fieldName) {
+//        this.fieldName = fieldName;
+//    }
+//
+//    public String getName() {
+//        return name;
+//    }
+//
+//    public void setName(String name) {
+//        this.name = name;
+//    }
+//
+//    public LinkedHashMap<String, String> getKvMap() {
+//        return kvMap;
+//    }
+//
+//    public void setKvMap(LinkedHashMap<String, String> kvMap) {
+//        this.kvMap = kvMap;
+//    }
+//
+//    public Object getExample() {
+//        return example;
+//    }
+//
+//    public void setExample(Object example) {
+//        this.example = example;
+//    }
+//
+//    public int getSort() {
+//        return sort;
+//    }
+//
+//    public void setSort(int sort) {
+//        this.sort = sort;
+//    }
+//
+//    public int getHasAnnotation() {
+//        return hasAnnotation;
+//    }
+//
+//    public void setHasAnnotation(int hasAnnotation) {
+//        this.hasAnnotation = hasAnnotation;
+//    }
+//
+//}

+ 22 - 22
src/main/java/com/template/common/utils/ExcelUtil3.java

@@ -1,22 +1,22 @@
-package com.template.common.utils;
-
-
-
-import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.support.ExcelTypeEnum;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.net.URLEncoder;
-import java.util.List;
-
-public class ExcelUtil3 {
-
-    public static void process(String fileName, List target, Class clazs , HttpServletResponse response) throws IOException {
-        response.setCharacterEncoding("UTF-8");
-        response.setContentType("application/vnd.ms-excel");
-        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
-        EasyExcel.write(response.getOutputStream(), clazs).excelType(ExcelTypeEnum.XLSX).autoCloseStream(Boolean.TRUE)
-                .sheet("预警报表").doWrite(target);
-    }
-}
+//package com.template.common.utils;
+//
+//
+//
+//import com.alibaba.excel.EasyExcel;
+//import com.alibaba.excel.support.ExcelTypeEnum;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//import java.net.URLEncoder;
+//import java.util.List;
+//
+//public class ExcelUtil3 {
+//
+//    public static void process(String fileName, List target, Class clazs , HttpServletResponse response) throws IOException {
+//        response.setCharacterEncoding("UTF-8");
+//        response.setContentType("application/vnd.ms-excel");
+//        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
+//        EasyExcel.write(response.getOutputStream(), clazs).excelType(ExcelTypeEnum.XLSX).autoCloseStream(Boolean.TRUE)
+//                .sheet("预警报表").doWrite(target);
+//    }
+//}

+ 64 - 64
src/main/java/com/template/common/utils/ExcelUtils.java

@@ -1,64 +1,64 @@
-package com.template.common.utils;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.springframework.boot.system.ApplicationHome;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.*;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-
-/**
- * @Author: binguo
- * @Date: 2023/7/10 星期一 14:21
- * @Description: com.repair.common.utils
- * @Version: 1.0
- */
-@Slf4j
-public class ExcelUtils {
-    public static void fileDownload(String fileName, HttpServletResponse response) {
-        try {
-            ApplicationHome applicationHome = new ApplicationHome(ExcelUtils.class);
-            String pathResouce = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath();
-            String decode = URLDecoder.decode(pathResouce, "utf-8");
-            File readPath = new File(decode + "/project/repair" + File.separator);
-            File file = new File(readPath.getAbsolutePath() + fileName);
-            // 获取文件名
-            String filename = file.getName();
-            // 获取文件后缀名
-            String ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();
-            InputStream inputStream = new FileInputStream(file);//根据路径获取要下载的文件输入流
-            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
-            response.setCharacterEncoding("utf-8");
-            response.setHeader("Content-disposition", "attachment;fileName=" + URLEncoder.encode(filename, "UTF-8"));
-            OutputStream out = response.getOutputStream();
-            byte[] b = new byte[1024];  //创建数据缓冲区
-            int length;
-            while ((length = inputStream.read(b)) > 0) {  //把文件流写到缓冲区里
-                out.write(b, 0, length);
-            }
-            out.flush();
-            out.close();
-            inputStream.close();
-        } catch (IOException ex) {
-            System.out.println("模板导出失败:" + ex.getMessage());
-            ex.printStackTrace();
-        }
-    }
-
-    public static void excelDownload(Workbook workbook, String fileName, HttpServletResponse response) {
-        try {
-            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
-            response.setCharacterEncoding("utf-8");
-            response.setHeader("Content-disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));
-            OutputStream out = response.getOutputStream();
-            workbook.write(out);
-            out.flush();
-            out.close();
-        } catch (IOException ex) {
-            System.out.println("模板导出失败:" + ex.getMessage());
-            ex.printStackTrace();
-        }
-    }
-}
+//package com.template.common.utils;
+//
+//import lombok.extern.slf4j.Slf4j;
+//import org.apache.poi.ss.usermodel.Workbook;
+//import org.springframework.boot.system.ApplicationHome;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.*;
+//import java.net.URLDecoder;
+//import java.net.URLEncoder;
+//
+///**
+// * @Author: binguo
+// * @Date: 2023/7/10 星期一 14:21
+// * @Description: com.repair.common.utils
+// * @Version: 1.0
+// */
+//@Slf4j
+//public class ExcelUtils {
+//    public static void fileDownload(String fileName, HttpServletResponse response) {
+//        try {
+//            ApplicationHome applicationHome = new ApplicationHome(ExcelUtils.class);
+//            String pathResouce = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath();
+//            String decode = URLDecoder.decode(pathResouce, "utf-8");
+//            File readPath = new File(decode + "/project/repair" + File.separator);
+//            File file = new File(readPath.getAbsolutePath() + fileName);
+//            // 获取文件名
+//            String filename = file.getName();
+//            // 获取文件后缀名
+//            String ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();
+//            InputStream inputStream = new FileInputStream(file);//根据路径获取要下载的文件输入流
+//            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+//            response.setCharacterEncoding("utf-8");
+//            response.setHeader("Content-disposition", "attachment;fileName=" + URLEncoder.encode(filename, "UTF-8"));
+//            OutputStream out = response.getOutputStream();
+//            byte[] b = new byte[1024];  //创建数据缓冲区
+//            int length;
+//            while ((length = inputStream.read(b)) > 0) {  //把文件流写到缓冲区里
+//                out.write(b, 0, length);
+//            }
+//            out.flush();
+//            out.close();
+//            inputStream.close();
+//        } catch (IOException ex) {
+//            System.out.println("模板导出失败:" + ex.getMessage());
+//            ex.printStackTrace();
+//        }
+//    }
+//
+//    public static void excelDownload(Workbook workbook, String fileName, HttpServletResponse response) {
+//        try {
+//            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+//            response.setCharacterEncoding("utf-8");
+//            response.setHeader("Content-disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));
+//            OutputStream out = response.getOutputStream();
+//            workbook.write(out);
+//            out.flush();
+//            out.close();
+//        } catch (IOException ex) {
+//            System.out.println("模板导出失败:" + ex.getMessage());
+//            ex.printStackTrace();
+//        }
+//    }
+//}

File diff suppressed because it is too large
+ 1008 - 1008
src/main/java/com/template/common/utils/ExcelUtils2.java


+ 76 - 76
src/main/java/com/template/common/utils/FileUtils.java

@@ -1,76 +1,76 @@
-package com.template.common.utils;
-
-
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemFactory;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.springframework.http.MediaType;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * @Author: binguo
- * @Date: 2023/12/27 星期三 11:08
- * @Description: com.template.common.utils
- * @Version: 1.0
- */
-public class FileUtils {
-
-
-    /**
-     * 获取封装得MultipartFile
-     *
-     * @param inputStream inputStream
-     * @return MultipartFile
-     */
-    public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) {
-        FileItem fileItem = createFileItem(inputStream, fileName);
-        //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象
-        return new CommonsMultipartFile(fileItem);
-    }
-    /**
-     * FileItem类对象创建
-     *
-     * @param inputStream inputStream
-     * @param fileName    fileName
-     * @return FileItem
-     */
-    public static FileItem createFileItem(InputStream inputStream, String fileName) {
-        FileItemFactory factory = new DiskFileItemFactory(16, null);
-        String textFieldName = "file";
-        FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName);
-        int bytesRead = 0;
-        byte[] buffer = new byte[10 * 1024 * 1024];
-        OutputStream os = null;
-        //使用输出流输出输入流的字节
-        try {
-            os = item.getOutputStream();
-            while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) {
-                os.write(buffer, 0, bytesRead);
-            }
-            inputStream.close();
-        } catch (IOException e) {
-            throw new IllegalArgumentException("文件上传失败");
-        } finally {
-            if (os != null) {
-                try {
-                    os.close();
-                } catch (IOException e) {
-
-                }
-            }
-            if (inputStream != null) {
-                try {
-                    inputStream.close();
-                } catch (IOException e) {
-                }
-            }
-        }
-
-        return item;
-    }
-}
+//package com.template.common.utils;
+//
+//
+//import org.apache.commons.fileupload.FileItem;
+//import org.apache.commons.fileupload.FileItemFactory;
+//import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+//import org.springframework.http.MediaType;
+//import org.springframework.web.multipart.MultipartFile;
+//import org.springframework.web.multipart.commons.CommonsMultipartFile;
+//
+//import java.io.IOException;
+//import java.io.InputStream;
+//import java.io.OutputStream;
+//
+///**
+// * @Author: binguo
+// * @Date: 2023/12/27 星期三 11:08
+// * @Description: com.template.common.utils
+// * @Version: 1.0
+// */
+//public class FileUtils {
+//
+//
+//    /**
+//     * 获取封装得MultipartFile
+//     *
+//     * @param inputStream inputStream
+//     * @return MultipartFile
+//     */
+//    public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) {
+//        FileItem fileItem = createFileItem(inputStream, fileName);
+//        //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象
+//        return new CommonsMultipartFile(fileItem);
+//    }
+//    /**
+//     * FileItem类对象创建
+//     *
+//     * @param inputStream inputStream
+//     * @param fileName    fileName
+//     * @return FileItem
+//     */
+//    public static FileItem createFileItem(InputStream inputStream, String fileName) {
+//        FileItemFactory factory = new DiskFileItemFactory(16, null);
+//        String textFieldName = "file";
+//        FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName);
+//        int bytesRead = 0;
+//        byte[] buffer = new byte[10 * 1024 * 1024];
+//        OutputStream os = null;
+//        //使用输出流输出输入流的字节
+//        try {
+//            os = item.getOutputStream();
+//            while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) {
+//                os.write(buffer, 0, bytesRead);
+//            }
+//            inputStream.close();
+//        } catch (IOException e) {
+//            throw new IllegalArgumentException("文件上传失败");
+//        } finally {
+//            if (os != null) {
+//                try {
+//                    os.close();
+//                } catch (IOException e) {
+//
+//                }
+//            }
+//            if (inputStream != null) {
+//                try {
+//                    inputStream.close();
+//                } catch (IOException e) {
+//                }
+//            }
+//        }
+//
+//        return item;
+//    }
+//}

+ 36 - 36
src/main/java/com/template/common/utils/HttpsClient.java

@@ -13,7 +13,7 @@ import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.entity.ContentType;
-import org.apache.http.entity.mime.MultipartEntityBuilder;
+//import org.apache.http.entity.mime.MultipartEntityBuilder;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.message.BasicNameValuePair;
@@ -255,41 +255,41 @@ public class HttpsClient {
         return sb.toString();
     }
 
-    public static String postFile(String url, File file){
-
-        CloseableHttpClient httpClient = null;
-        HttpPost httpPost = null;
-        StringBuilder sb = new StringBuilder("");
-        try {
-            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
-            builder.addBinaryBody("files", file, ContentType.DEFAULT_BINARY, file.getName());
-            httpClient = HttpClients.createDefault();
-            RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();
-            httpPost = new HttpPost(url);
-            httpPost.setConfig(requestConfig);
-            httpPost.setEntity(builder.build());
-            CloseableHttpResponse response = httpClient.execute(httpPost);
-            HttpEntity httpEntity = response.getEntity();
-            sb.append(EntityUtils.toString(httpEntity,"utf-8"));
-        } catch (ClientProtocolException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }finally{
-            try {
-                if(httpPost!=null){
-                    httpPost.releaseConnection();
-                }
-                if(httpClient!=null){
-                    httpClient.close();
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        }
-        JSONObject  jsonObject = JSONObject.parseObject(sb.toString());
-        return jsonObject.get("data").toString();
-    }
+//    public static String postFile(String url, File file){
+//
+//        CloseableHttpClient httpClient = null;
+//        HttpPost httpPost = null;
+//        StringBuilder sb = new StringBuilder("");
+//        try {
+//            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
+//            builder.addBinaryBody("files", file, ContentType.DEFAULT_BINARY, file.getName());
+//            httpClient = HttpClients.createDefault();
+//            RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();
+//            httpPost = new HttpPost(url);
+//            httpPost.setConfig(requestConfig);
+//            httpPost.setEntity(builder.build());
+//            CloseableHttpResponse response = httpClient.execute(httpPost);
+//            HttpEntity httpEntity = response.getEntity();
+//            sb.append(EntityUtils.toString(httpEntity,"utf-8"));
+//        } catch (ClientProtocolException e) {
+//            e.printStackTrace();
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }finally{
+//            try {
+//                if(httpPost!=null){
+//                    httpPost.releaseConnection();
+//                }
+//                if(httpClient!=null){
+//                    httpClient.close();
+//                }
+//            } catch (IOException e) {
+//                e.printStackTrace();
+//            }
+//        }
+//        JSONObject  jsonObject = JSONObject.parseObject(sb.toString());
+//        return jsonObject.get("data").toString();
+//    }
 
     //url表示请求链接,param表示json格式的请求参数		//自定义菜单创建访问方式
     public static String sendPost(String url, String param) {

+ 213 - 213
src/main/java/com/template/common/utils/SendSms.java

@@ -1,213 +1,213 @@
-package com.template.common.utils;
-
-
-import com.tencentcloudapi.common.Credential;
-import com.tencentcloudapi.common.exception.TencentCloudSDKException;
-
-//导入可选配置类
-import com.tencentcloudapi.common.profile.ClientProfile;
-import com.tencentcloudapi.common.profile.HttpProfile;
-
-// 导入对应SMS模块的client
-import com.tencentcloudapi.sms.v20210111.SmsClient;
-
-// 导入要请求接口对应的request response类
-import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
-import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
-import com.tencentcloudapi.sms.v20210111.models.SendStatus;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-
-import java.util.Date;
-
-/**
- * Tencent Cloud Sms Sendsms
- */
-public class SendSms {
-
-
-    //腾讯云上的签名
-//    private static String secretID="AKIDDPo13qZCZqtgJsGQL7AyYu1wc7QVMyLl";
-    private static String secretID = "AKIDCPVZdcWIxgHpy5FYxVyPiqkZGrhdXUBg";
-
-    //腾讯云上的密钥
-//    private static String secretKey="JPGrELFySiv0pOrKOPEwSnulOq9IPPDr";
-    private static String secretKey = "NkyCN3cz97qKaeXLvHOGxOcdS8f184pL";
-
-    //短信应用id
-//    private static String sdkAppid="1400813506";
-    private static String sdkAppid = "1400885930";
-
-    //短信签名内容
-//    private static String signName="华仁享学教育";
-    private static String signName = "江西省创海科技有限公司";
-
-    //模板Id
-//    private static String templateId="1770016";
-    private static String templateId = "2060673"; //验证码
-    private static String templateId2 = "2065770"; //预约短信
-
-    //验证码有效时长
-    private static String smsMin = "1";
-
-
-    public static String sendSms(String phoneNumber, String code) {
-        String returString = "";
-        try {
-            /* 必要步骤:
-             * 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
-             * 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
-             * 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
-             * 以免泄露密钥对危及你的财产安全。
-             * SecretId、SecretKey 查询: https://console.cloud.tencent.com/cam/capi */
-//            Credential cred = new Credential(smsConfig.getSecretID(), smsConfig.getSecretKey());
-            Credential cred = new Credential(secretID, secretKey);
-
-            // 实例化一个http选项,可选,没有特殊需求可以跳过
-            HttpProfile httpProfile = new HttpProfile();
-            // 设置代理(无需要直接忽略)
-            // httpProfile.setProxyHost("真实代理ip");
-            // httpProfile.setProxyPort(真实代理端口);
-            /* SDK默认使用POST方法。
-             * 如果你一定要使用GET方法,可以在这里设置。GET方法无法处理一些较大的请求 */
-            httpProfile.setReqMethod("POST");
-            /* SDK有默认的超时时间,非必要请不要进行调整
-             * 如有需要请在代码中查阅以获取最新的默认值 */
-            httpProfile.setConnTimeout(60);
-            /* 指定接入地域域名,默认就近地域接入域名为 sms.tencentcloudapi.com ,也支持指定地域域名访问,例如广州地域的域名为 sms.ap-guangzhou.tencentcloudapi.com */
-            httpProfile.setEndpoint("sms.tencentcloudapi.com");
-
-            /* 非必要步骤:
-             * 实例化一个客户端配置对象,可以指定超时时间等配置 */
-            ClientProfile clientProfile = new ClientProfile();
-            /* SDK默认用TC3-HMAC-SHA256进行签名
-             * 非必要请不要修改这个字段 */
-            clientProfile.setSignMethod("HmacSHA256");
-            clientProfile.setHttpProfile(httpProfile);
-            /* 实例化要请求产品(以sms为例)的client对象
-             * 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,支持的地域列表参考 https://cloud.tencent.com/document/api/382/52071#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8 */
-            SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);
-            /* 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
-             * 你可以直接查询SDK源码确定接口有哪些属性可以设置
-             * 属性可能是基本类型,也可能引用了另一个数据结构
-             * 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 */
-            SendSmsRequest req = new SendSmsRequest();
-
-            /* 填充请求参数,这里request对象的成员变量即对应接口的入参
-             * 你可以通过官网接口文档或跳转到request对象的定义处查看请求参数的定义
-             * 基本类型的设置:
-             * 帮助链接:
-             * 短信控制台: https://console.cloud.tencent.com/smsv2
-             * 腾讯云短信小助手: https://cloud.tencent.com/document/product/382/3773#.E6.8A.80.E6.9C.AF.E4.BA.A4.E6.B5.81 */
-
-            /* 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666 */
-            // 应用 ID 可前往 [短信控制台](https://console.cloud.tencent.com/smsv2/app-manage) 查看
-//            String sdkAppId = "1400009099";
-//            req.setSmsSdkAppId(smsConfig.getSdkAppid());
-            req.setSmsSdkAppId(sdkAppid);
-
-            /* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名 */
-            // 签名信息可前往 [国内短信](https://console.cloud.tencent.com/smsv2/csms-sign) 或 [国际/港澳台短信](https://console.cloud.tencent.com/smsv2/isms-sign) 的签名管理查看
-//            String signName = "腾讯云";
-//            req.setSignName(smsConfig.getSignName());
-            req.setSignName(signName);
-
-            /* 模板 ID: 必须填写已审核通过的模板 ID */
-            // 模板 ID 可前往 [国内短信](https://console.cloud.tencent.com/smsv2/csms-template) 或 [国际/港澳台短信](https://console.cloud.tencent.com/smsv2/isms-template) 的正文模板管理查看
-//            String templateId = "449739";
-//            req.setTemplateId(smsConfig.getTemplateId());
-            req.setTemplateId(templateId);
-
-
-            /* 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,若无模板参数,则设置为空 */
-//           第一个为验证码,第二个为有效时间
-//            String[] templateParamSet = {code,smsConfig.getSmsMin()};
-            String[] templateParamSet = {code, "1"};
-            req.setTemplateParamSet(templateParamSet);
-
-            /* 下发手机号码,采用 E.164 标准,+[国家或地区码][手机号]
-             * 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 */
-//            String[] phoneNumberSet = {"+8621212313123", "+8612345678902", "+8612345678903"};
-            String[] phoneNumbers = {phoneNumber};
-            req.setPhoneNumberSet(phoneNumbers);
-
-            /* 用户的 session 内容(无需要可忽略): 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
-//            String sessionContext = "";
-//            req.setSessionContext(sessionContext);
-
-            /* 短信码号扩展号(无需要可忽略): 默认未开通,如需开通请联系 [腾讯云短信小助手] */
-//            String extendCode = "";
-//            req.setExtendCode(extendCode);
-
-            /* 国际/港澳台短信 SenderId(无需要可忽略): 国内短信填空,默认未开通,如需开通请联系 [腾讯云短信小助手] */
-//            String senderid = "";
-//            req.setSenderId(senderid);
-
-            /* 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的
-             * 返回的 res 是一个 SendSmsResponse 类的实例,与请求对象对应 */
-            SendSmsResponse res = client.SendSms(req);
-
-            // 输出json格式的字符串回包
-//            System.out.println(SendSmsResponse.toJsonString(res));
-
-            // 也可以取出单个值,你可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
-            // System.out.println(res.getRequestId());
-
-            /* 当出现以下错误码时,快速解决方案参考
-             * [FailedOperation.SignatureIncorrectOrUnapproved](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Afailedoperation.signatureincorrectorunapproved-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
-             * [FailedOperation.TemplateIncorrectOrUnapproved](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Afailedoperation.templateincorrectorunapproved-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
-             * [UnauthorizedOperation.SmsSdkAppIdVerifyFail](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Aunauthorizedoperation.smssdkappidverifyfail-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
-             * [UnsupportedOperation.ContainDomesticAndInternationalPhoneNumber](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Aunsupportedoperation.containdomesticandinternationalphonenumber-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
-             * 更多错误,可咨询[腾讯云助手](https://tccc.qcloud.com/web/im/index.html#/chat?webAppId=8fa15978f85cb41f7e2ea36920cb3ae1&title=Sms)
-             */
-            SendStatus sendStatus = res.getSendStatusSet()[0];
-            System.out.println(sendStatus.getMessage());
-//            System.out.println("sendStatus = " + sendStatus);
-            returString = sendStatus.getMessage();
-        } catch (TencentCloudSDKException e) {
-            e.printStackTrace();
-        }
-        return returString;
-    }
-
-
-    public static String sendVisitorSms(String phoneNumber, String year, String month, String day, String startTime, String endTime, String code) {
-        String returString = "";
-        try {
-            Credential cred = new Credential(secretID, secretKey);
-
-            HttpProfile httpProfile = new HttpProfile();
-            httpProfile.setReqMethod("POST");
-            httpProfile.setConnTimeout(60);
-            httpProfile.setEndpoint("sms.tencentcloudapi.com");
-            ClientProfile clientProfile = new ClientProfile();
-            clientProfile.setSignMethod("HmacSHA256");
-            clientProfile.setHttpProfile(httpProfile);
-            SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);
-            SendSmsRequest req = new SendSmsRequest();
-            req.setSmsSdkAppId(sdkAppid);
-            req.setSignName(signName);
-            req.setTemplateId(templateId2);
-            String[] templateParamSet = {year, month, day, startTime, endTime, code};
-            req.setTemplateParamSet(templateParamSet);
-            String[] phoneNumbers = {phoneNumber};
-            req.setPhoneNumberSet(phoneNumbers);
-            SendSmsResponse res = client.SendSms(req);
-            SendStatus sendStatus = res.getSendStatusSet()[0];
-            System.out.println(sendStatus.getMessage());
-            returString = sendStatus.getMessage();
-        } catch (TencentCloudSDKException e) {
-            e.printStackTrace();
-        }
-        return returString;
-    }
-
-    public static void main(String[] args) throws TencentCloudSDKException {
-        //这里定义一个存储电话号码的数组
-
-        String tels = "+8618279193722"; // 手机号前面记得带上国家区域编码
-        String test = sendSms("+8618279193722", "123456");
-
-    }
-
-}
+//package com.template.common.utils;
+//
+//
+//import com.tencentcloudapi.common.Credential;
+//import com.tencentcloudapi.common.exception.TencentCloudSDKException;
+//
+////导入可选配置类
+//import com.tencentcloudapi.common.profile.ClientProfile;
+//import com.tencentcloudapi.common.profile.HttpProfile;
+//
+//// 导入对应SMS模块的client
+//import com.tencentcloudapi.sms.v20210111.SmsClient;
+//
+//// 导入要请求接口对应的request response类
+//import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
+//import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
+//import com.tencentcloudapi.sms.v20210111.models.SendStatus;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//
+//import java.util.Date;
+//
+///**
+// * Tencent Cloud Sms Sendsms
+// */
+//public class SendSms {
+//
+//
+//    //腾讯云上的签名
+////    private static String secretID="AKIDDPo13qZCZqtgJsGQL7AyYu1wc7QVMyLl";
+//    private static String secretID = "AKIDCPVZdcWIxgHpy5FYxVyPiqkZGrhdXUBg";
+//
+//    //腾讯云上的密钥
+////    private static String secretKey="JPGrELFySiv0pOrKOPEwSnulOq9IPPDr";
+//    private static String secretKey = "NkyCN3cz97qKaeXLvHOGxOcdS8f184pL";
+//
+//    //短信应用id
+////    private static String sdkAppid="1400813506";
+//    private static String sdkAppid = "1400885930";
+//
+//    //短信签名内容
+////    private static String signName="华仁享学教育";
+//    private static String signName = "江西省创海科技有限公司";
+//
+//    //模板Id
+////    private static String templateId="1770016";
+//    private static String templateId = "2060673"; //验证码
+//    private static String templateId2 = "2065770"; //预约短信
+//
+//    //验证码有效时长
+//    private static String smsMin = "1";
+//
+//
+//    public static String sendSms(String phoneNumber, String code) {
+//        String returString = "";
+//        try {
+//            /* 必要步骤:
+//             * 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
+//             * 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
+//             * 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
+//             * 以免泄露密钥对危及你的财产安全。
+//             * SecretId、SecretKey 查询: https://console.cloud.tencent.com/cam/capi */
+////            Credential cred = new Credential(smsConfig.getSecretID(), smsConfig.getSecretKey());
+//            Credential cred = new Credential(secretID, secretKey);
+//
+//            // 实例化一个http选项,可选,没有特殊需求可以跳过
+//            HttpProfile httpProfile = new HttpProfile();
+//            // 设置代理(无需要直接忽略)
+//            // httpProfile.setProxyHost("真实代理ip");
+//            // httpProfile.setProxyPort(真实代理端口);
+//            /* SDK默认使用POST方法。
+//             * 如果你一定要使用GET方法,可以在这里设置。GET方法无法处理一些较大的请求 */
+//            httpProfile.setReqMethod("POST");
+//            /* SDK有默认的超时时间,非必要请不要进行调整
+//             * 如有需要请在代码中查阅以获取最新的默认值 */
+//            httpProfile.setConnTimeout(60);
+//            /* 指定接入地域域名,默认就近地域接入域名为 sms.tencentcloudapi.com ,也支持指定地域域名访问,例如广州地域的域名为 sms.ap-guangzhou.tencentcloudapi.com */
+//            httpProfile.setEndpoint("sms.tencentcloudapi.com");
+//
+//            /* 非必要步骤:
+//             * 实例化一个客户端配置对象,可以指定超时时间等配置 */
+//            ClientProfile clientProfile = new ClientProfile();
+//            /* SDK默认用TC3-HMAC-SHA256进行签名
+//             * 非必要请不要修改这个字段 */
+//            clientProfile.setSignMethod("HmacSHA256");
+//            clientProfile.setHttpProfile(httpProfile);
+//            /* 实例化要请求产品(以sms为例)的client对象
+//             * 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,支持的地域列表参考 https://cloud.tencent.com/document/api/382/52071#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8 */
+//            SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);
+//            /* 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
+//             * 你可以直接查询SDK源码确定接口有哪些属性可以设置
+//             * 属性可能是基本类型,也可能引用了另一个数据结构
+//             * 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 */
+//            SendSmsRequest req = new SendSmsRequest();
+//
+//            /* 填充请求参数,这里request对象的成员变量即对应接口的入参
+//             * 你可以通过官网接口文档或跳转到request对象的定义处查看请求参数的定义
+//             * 基本类型的设置:
+//             * 帮助链接:
+//             * 短信控制台: https://console.cloud.tencent.com/smsv2
+//             * 腾讯云短信小助手: https://cloud.tencent.com/document/product/382/3773#.E6.8A.80.E6.9C.AF.E4.BA.A4.E6.B5.81 */
+//
+//            /* 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666 */
+//            // 应用 ID 可前往 [短信控制台](https://console.cloud.tencent.com/smsv2/app-manage) 查看
+////            String sdkAppId = "1400009099";
+////            req.setSmsSdkAppId(smsConfig.getSdkAppid());
+//            req.setSmsSdkAppId(sdkAppid);
+//
+//            /* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名 */
+//            // 签名信息可前往 [国内短信](https://console.cloud.tencent.com/smsv2/csms-sign) 或 [国际/港澳台短信](https://console.cloud.tencent.com/smsv2/isms-sign) 的签名管理查看
+////            String signName = "腾讯云";
+////            req.setSignName(smsConfig.getSignName());
+//            req.setSignName(signName);
+//
+//            /* 模板 ID: 必须填写已审核通过的模板 ID */
+//            // 模板 ID 可前往 [国内短信](https://console.cloud.tencent.com/smsv2/csms-template) 或 [国际/港澳台短信](https://console.cloud.tencent.com/smsv2/isms-template) 的正文模板管理查看
+////            String templateId = "449739";
+////            req.setTemplateId(smsConfig.getTemplateId());
+//            req.setTemplateId(templateId);
+//
+//
+//            /* 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,若无模板参数,则设置为空 */
+////           第一个为验证码,第二个为有效时间
+////            String[] templateParamSet = {code,smsConfig.getSmsMin()};
+//            String[] templateParamSet = {code, "1"};
+//            req.setTemplateParamSet(templateParamSet);
+//
+//            /* 下发手机号码,采用 E.164 标准,+[国家或地区码][手机号]
+//             * 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 */
+////            String[] phoneNumberSet = {"+8621212313123", "+8612345678902", "+8612345678903"};
+//            String[] phoneNumbers = {phoneNumber};
+//            req.setPhoneNumberSet(phoneNumbers);
+//
+//            /* 用户的 session 内容(无需要可忽略): 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
+////            String sessionContext = "";
+////            req.setSessionContext(sessionContext);
+//
+//            /* 短信码号扩展号(无需要可忽略): 默认未开通,如需开通请联系 [腾讯云短信小助手] */
+////            String extendCode = "";
+////            req.setExtendCode(extendCode);
+//
+//            /* 国际/港澳台短信 SenderId(无需要可忽略): 国内短信填空,默认未开通,如需开通请联系 [腾讯云短信小助手] */
+////            String senderid = "";
+////            req.setSenderId(senderid);
+//
+//            /* 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的
+//             * 返回的 res 是一个 SendSmsResponse 类的实例,与请求对象对应 */
+//            SendSmsResponse res = client.SendSms(req);
+//
+//            // 输出json格式的字符串回包
+////            System.out.println(SendSmsResponse.toJsonString(res));
+//
+//            // 也可以取出单个值,你可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
+//            // System.out.println(res.getRequestId());
+//
+//            /* 当出现以下错误码时,快速解决方案参考
+//             * [FailedOperation.SignatureIncorrectOrUnapproved](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Afailedoperation.signatureincorrectorunapproved-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
+//             * [FailedOperation.TemplateIncorrectOrUnapproved](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Afailedoperation.templateincorrectorunapproved-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
+//             * [UnauthorizedOperation.SmsSdkAppIdVerifyFail](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Aunauthorizedoperation.smssdkappidverifyfail-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
+//             * [UnsupportedOperation.ContainDomesticAndInternationalPhoneNumber](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Aunsupportedoperation.containdomesticandinternationalphonenumber-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
+//             * 更多错误,可咨询[腾讯云助手](https://tccc.qcloud.com/web/im/index.html#/chat?webAppId=8fa15978f85cb41f7e2ea36920cb3ae1&title=Sms)
+//             */
+//            SendStatus sendStatus = res.getSendStatusSet()[0];
+//            System.out.println(sendStatus.getMessage());
+////            System.out.println("sendStatus = " + sendStatus);
+//            returString = sendStatus.getMessage();
+//        } catch (TencentCloudSDKException e) {
+//            e.printStackTrace();
+//        }
+//        return returString;
+//    }
+//
+//
+//    public static String sendVisitorSms(String phoneNumber, String year, String month, String day, String startTime, String endTime, String code) {
+//        String returString = "";
+//        try {
+//            Credential cred = new Credential(secretID, secretKey);
+//
+//            HttpProfile httpProfile = new HttpProfile();
+//            httpProfile.setReqMethod("POST");
+//            httpProfile.setConnTimeout(60);
+//            httpProfile.setEndpoint("sms.tencentcloudapi.com");
+//            ClientProfile clientProfile = new ClientProfile();
+//            clientProfile.setSignMethod("HmacSHA256");
+//            clientProfile.setHttpProfile(httpProfile);
+//            SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);
+//            SendSmsRequest req = new SendSmsRequest();
+//            req.setSmsSdkAppId(sdkAppid);
+//            req.setSignName(signName);
+//            req.setTemplateId(templateId2);
+//            String[] templateParamSet = {year, month, day, startTime, endTime, code};
+//            req.setTemplateParamSet(templateParamSet);
+//            String[] phoneNumbers = {phoneNumber};
+//            req.setPhoneNumberSet(phoneNumbers);
+//            SendSmsResponse res = client.SendSms(req);
+//            SendStatus sendStatus = res.getSendStatusSet()[0];
+//            System.out.println(sendStatus.getMessage());
+//            returString = sendStatus.getMessage();
+//        } catch (TencentCloudSDKException e) {
+//            e.printStackTrace();
+//        }
+//        return returString;
+//    }
+//
+//    public static void main(String[] args) throws TencentCloudSDKException {
+//        //这里定义一个存储电话号码的数组
+//
+//        String tels = "+8618279193722"; // 手机号前面记得带上国家区域编码
+//        String test = sendSms("+8618279193722", "123456");
+//
+//    }
+//
+//}

+ 18 - 0
src/main/java/com/template/controller/CompaniesController.java

@@ -75,5 +75,23 @@ public class CompaniesController {
         int count=companiesService.count(qw);
         return CommonResult.ok(count);
     }
+
+    @RequestMapping("/getAllCount")
+    public CommonResult getAllCount() {
+        List<Map<String,Object>> mapList=companiesService.getAllCount();
+        return CommonResult.ok(mapList);
+    }
+
+
+    @RequestMapping("/getComByTown")
+    public CommonResult getComByTown() {
+        List<Map<String,Object>> posList=postionsService.listMaps(new QueryWrapper<Postions>());
+
+        for(Map<String,Object> postions:posList){
+            List<Companies> comList=companiesService.list(new QueryWrapper<Companies>().eq("postion_id",postions.get("id")));
+            postions.put("children",comList);
+        }
+        return CommonResult.ok(posList);
+    }
 }
 

+ 4 - 4
src/main/java/com/template/controller/DevicesAlarmController.java

@@ -28,11 +28,11 @@ public class DevicesAlarmController {
     @Autowired
     private DevicesAlarmService devicesAlarmService;
 
-    @RequestMapping("/getInfoByCom")
-    public CommonResult getAll(@Param("companyId") String companyId) {
+    @RequestMapping("/getInfoByDev")
+    public CommonResult getAll(@Param("deviceId") String deviceId) {
         QueryWrapper<DevicesAlarm> qw = new QueryWrapper<>();
-        if (companyId!=null && companyId!=""){
-            qw.eq("company_id",companyId);
+        if (deviceId!=null && deviceId!=""){
+            qw.eq("device_id",deviceId);
         }
         qw.last("order by update_at desc");
         List<DevicesAlarm> companiesList=devicesAlarmService.list(qw);

+ 18 - 1
src/main/java/com/template/controller/DevicesController.java

@@ -1,9 +1,12 @@
 package com.template.controller;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.template.common.result.CommonResult;
+import com.template.model.Configs;
 import com.template.model.Devices;
+import com.template.services.ConfigsService;
 import com.template.services.DevicesService;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +33,9 @@ public class DevicesController {
     @Autowired
     private DevicesService devicesService;
 
+    @Autowired
+    private ConfigsService configsService;
+
     @RequestMapping("/getCount")
     public CommonResult getCount() {
         int total=devicesService.count(new QueryWrapper<>());
@@ -52,8 +58,19 @@ public class DevicesController {
         if (companyId!=null&&companyId!=""){
             queryWrapper.eq("company_id",companyId);
         }
+        Map<String,Object> map=new HashMap<>();
+
+        Configs configs=configsService.getOne(new QueryWrapper<Configs>().eq("name","ys_access_token"));
+        JSONObject jsonObject = JSONObject.parseObject(configs.getValue());
+        if(jsonObject!=null) {
+            map.put("accessToken", jsonObject.getString("accessToken"));
+        }else {
+            map.put("accessToken", "");
+        }
         List<Devices> list = devicesService.list(queryWrapper);
-        return CommonResult.ok(list);
+
+        map.put("list",list);
+        return CommonResult.ok(map);
     }
 }
 

+ 7 - 0
src/main/java/com/template/controller/RecordDViewController.java

@@ -6,6 +6,7 @@ import com.template.common.result.CommonResult;
 import com.template.model.RecordDView;
 import com.template.services.CompaniesService;
 import com.template.services.RecordDViewService;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 
@@ -34,5 +35,11 @@ public class RecordDViewController {
         return CommonResult.ok(companiesList);
     }
 
+    @RequestMapping("/getRealTimeById")
+    public CommonResult getRealTimeById(@Param("id") String id) {
+        List<RecordDView> companiesList=recordDViewService.list(new QueryWrapper<RecordDView>().eq("device_id",id));
+        return CommonResult.ok(companiesList);
+    }
+
 }
 

+ 2 - 1
src/main/java/com/template/controller/RecordsController.java

@@ -35,7 +35,8 @@ public class RecordsController {
     @RequestMapping("/getEnergyCollect")
     public CommonResult getEnergyCollect() {
         QueryWrapper<Records> qw = new QueryWrapper<>();
-        qw.between("update_at", TimeExchange.getMonth(),TimeExchange.getTime());
+        qw.gt("update_at", TimeExchange.getMonth()+"-01 00:00:00");
+        qw.le("update_at", TimeExchange.getTime());
         qw.in("type", new String[]{"Electric", "Water"});
         List<Records> companiesList=recordsService.list(qw);
         if (companiesList==null||companiesList.isEmpty()){

+ 7 - 3
src/main/java/com/template/controller/RepairsController.java

@@ -6,6 +6,7 @@ import com.template.common.result.CommonResult;
 import com.template.mapper.RepairsMapper;
 import com.template.model.Repairs;
 import com.template.services.RepairsService;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 
@@ -29,9 +30,12 @@ public class RepairsController {
     @Autowired
     private RepairsService repairsService;
 
-    @RequestMapping("/getAll")
-    public CommonResult getAll() {
-        List<Map<String,Object>> companiesList=repairsService.listRepair();
+    @RequestMapping("/getByDeviceId")
+    public CommonResult getByDeviceId(@Param("deviceId") String deviceId) {
+        if (deviceId==null||deviceId==""){
+            return CommonResult.ok("请求参数不能为空");
+        }
+        List<Map<String,Object>> companiesList=repairsService.listRepair(deviceId);
         return CommonResult.ok(companiesList);
     }
 }

+ 14 - 0
src/main/java/com/template/mapper/CompaniesMapper.java

@@ -2,6 +2,12 @@ package com.template.mapper;
 
 import com.template.model.Companies;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -11,6 +17,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author ceshi
  * @since 2024-06-18
  */
+@Component
+@Mapper
 public interface CompaniesMapper extends BaseMapper<Companies> {
 
+    @Select("SELECT p.* ,\n" +
+            "(SELECT COUNT(1)  from companies cc where cc.postion_id=p.id ) tcount \n" +
+            "from\n" +
+            "postions p ")
+    List<Map<String, Object>> getAllCount();
+
 }

+ 3 - 2
src/main/java/com/template/mapper/RecordsMapper.java

@@ -23,9 +23,10 @@ import java.util.Map;
 public interface RecordsMapper extends BaseMapper<Records> {
 
     @Select("select 'Electric' type, date_format(update_at, '%Y-%m') mon,sum(value) total from records where `type` ='Electric' and device_id =#{device_id}" +
-            "  group by date_format(update_at, '%Y-%m')")
+            "  group by date_format(update_at, '%Y-%m') order by date_format(update_at, '%Y-%m') desc limit 6")
     List<Map<String, Object>> listElectric(@Param("device_id") String device_id);
 
-    @Select("select 'Water' type, date_format(update_at, '%Y-%m') mon,sum(value) total from records where `type` ='Water' and device_id =#{device_id} group by date_format(update_at, '%Y-%m')")
+    @Select("select 'Water' type, date_format(update_at, '%Y-%m') mon,sum(value) total from records where `type` ='Water' and device_id =#{device_id} group by date_format(update_at, '%Y-%m')" +
+            " order by date_format(update_at, '%Y-%m') desc limit 6")
     List<Map<String, Object>> listWater(String device_id);
 }

+ 2 - 2
src/main/java/com/template/mapper/RepairsMapper.java

@@ -22,6 +22,6 @@ import java.util.Map;
 public interface RepairsMapper extends BaseMapper<Repairs> {
 
     @Select("select r.*,d.name dname,u.name uname from repairs r ,devices d ,users u where \n" +
-            "r.device_id =d.id and u.id=r.user_id and r.deleted =0")
-    List<Map<String, Object>> listRepair();
+            "r.device_id =d.id and u.id=r.user_id and r.deleted =0 and r.device_id=#{deviceId}")
+    List<Map<String, Object>> listRepair(String deviceId);
 }

+ 6 - 0
src/main/java/com/template/model/RecordDView.java

@@ -50,6 +50,12 @@ public class RecordDView implements Serializable {
     @TableField("Water")
     private Double Water;
 
+    @TableField("Rotate")
+    private Double Rotate;
+
+    @TableField("Air")
+    private Double Air;
+
     private Date updateAt;
 
 

+ 0 - 1
src/main/java/com/template/result/CompaniesResult.java

@@ -3,7 +3,6 @@ package com.template.result;
 import com.baomidou.mybatisplus.annotation.*;
 import com.template.model.Companies;
 import com.template.model.Users;
-import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;

+ 105 - 8
src/main/java/com/template/scheduled/ScheduledService.java

@@ -1,17 +1,28 @@
 package com.template.scheduled;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.template.model.Configs;
 import com.template.model.Devices;
 import com.template.model.Records;
+import com.template.services.ConfigsService;
 import com.template.services.DevicesService;
 import com.template.services.RecordsService;
 import org.apache.commons.lang3.time.DateUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.ResponseEntity;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Controller;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.client.RestTemplate;
 
 import java.util.*;
 
@@ -24,7 +35,7 @@ import java.util.*;
  * @since 2023-04-20
  */
 @Component
-@Controller
+@RequestMapping("/api/jiankong")
 public class ScheduledService {
 
     private static Logger logger = LoggerFactory.getLogger( ScheduledService.class);
@@ -35,21 +46,29 @@ public class ScheduledService {
     @Autowired
     DevicesService devicesService;
 
-    //定时保存停车场实时数据 每小时一次
-    @Scheduled(cron="0 0/10 * * * ?")
+    @Autowired
+    ConfigsService configsService;
+
+    @Value("${openys7.url}")
+    String url;
+    @Value("${openys7.appKey}")
+    String appKey;
+    @Value("${openys7.secret}")
+    String secret;
+
+    //定时保存设备传感器假数据 后续删除
+    @Scheduled(cron="0 0/5 * * * ?")
     public void getParkingInfoScheduled() {
         QueryWrapper<Records> queryWrapper=new QueryWrapper<>();
         queryWrapper.last("order by update_at desc");
         //查询最新记录获取事件,更新10分钟后数据
         Records oldRecords=recordsService.getOne(queryWrapper);
         Date endTime = DateUtils.addMinutes(oldRecords.getUpdateAt(), 10);
-        if(endTime.after(new Date())){
-            System.exit(0);
-        }
+
         List<Devices> devicesList=devicesService.list(new QueryWrapper<>());
         logger.info("devicesList++++++++++++++"+devicesList.size());
         List<Records> recordsList=new ArrayList<>();
-        String[] arr= {"Temperature","Humidity","Light","CO2"};
+        String[] arr= {"Temperature","Humidity","Light","CO2","Rotate","Air"};
         for(Devices devic:devicesList){
             for(int i=0;i< arr.length;i++){
                 Records records=new Records();
@@ -79,12 +98,26 @@ public class ScheduledService {
                         records.setCreateAt(endTime);
                         records.setUpdateAt(endTime);
                         break;
+                    case "Rotate":
+                        records.setType("Rotate");
+                        records.setValue(this.getRandValue(5,95));
+                        records.setCreateAt(endTime);
+                        records.setUpdateAt(endTime);
+                        break;
+                    case "Air":
+                        records.setType("Air");
+                        records.setValue(this.getRandValue(0,95));
+                        records.setCreateAt(endTime);
+                        records.setUpdateAt(endTime);
+                        break;
                 }
                 recordsList.add(records);
             }
         }
-        boolean a=recordsService.saveOrUpdateBatch(recordsList);
+        if(!endTime.after(new Date())){
+         boolean a=recordsService.saveOrUpdateBatch(recordsList);
         logger.info("批量导入结果:"+a);
+        }
     }
 
     public double getRandValue(int min, int max) {
@@ -92,4 +125,68 @@ public class ScheduledService {
         int count = rand.nextInt(max - min + 1) + min;
         return count;
     }
+
+    //定时保存设备传感器假数据 后续删除
+    @Scheduled(cron="0 0 1 1/5 * ?")
+    @RequestMapping("/updateAccessToken")
+    public void updateAccessToken() {
+        RestTemplate client = new RestTemplate();
+        MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
+        map.add("appKey", appKey);
+        map.add("appSecret", secret);
+        HttpHeaders header = new HttpHeaders();
+        //header.setBearerAuth(request.getHeader("Authorization").replace("Bearer ",""));
+        HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(map, header);
+        String result = client.postForObject(url+"/token/get", httpEntity, String.class);
+        logger.info("获取accesstoken返回结果"+result);
+        JSONObject jsonObject = JSONObject.parseObject(result);
+        String status = String.valueOf(jsonObject.get("code"));
+        if("200".equals(status)){
+            Configs configs=configsService.getOne(new QueryWrapper<Configs>().eq("name","ys_access_token"));
+            configs.setValue(jsonObject.getString("data"));
+            boolean a=configsService.saveOrUpdate(configs);
+            logger.info("更新accesstoken返回结果:"+a);
+        }
+    }
+
+    //定时保存设备传感器假数据 后续删除
+    @Scheduled(cron="0 0 1 * * ?")
+    @RequestMapping("/updatePicture")
+    public void updatePicture() {
+        RestTemplate client = new RestTemplate();
+        Configs configs=configsService.getOne(new QueryWrapper<Configs>().eq("name","ys_access_token"));
+        JSONObject jsonObject1 = JSONObject.parseObject(configs.getValue());
+        String accessToken =jsonObject1.getString("accessToken");
+        logger.info("查询accesstoken返回结果:"+accessToken);
+        List<Devices> devicesList = devicesService.list(new QueryWrapper<>());
+        for (Devices devices:devicesList){
+            String[] arr=devices.getDeviceSerial().split(",");
+            if (arr==null||arr.length<1){
+                continue;
+            }
+            StringBuffer picbuffer=new StringBuffer();
+            for (int i = 0; i <arr.length ; i++) {
+                MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
+                map.add("accessToken", accessToken);
+                map.add("deviceSerial", arr[i]);
+                HttpHeaders header = new HttpHeaders();
+                //header.setBearerAuth(request.getHeader("Authorization").replace("Bearer ",""));
+                HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(map, header);
+                String result = client.postForObject(url+"/v2/live/address/get", httpEntity, String.class);
+                logger.info("获取accesstoken返回结果"+result);
+                JSONObject jsonObject = JSONObject.parseObject(result);
+                String status = String.valueOf(jsonObject.get("code"));
+                if("200".equals(status)){
+                    configs.setValue(jsonObject.getString("data"));
+                    String picUrl =jsonObject.getJSONObject("data").getString("url");
+                    if (i!=0){
+                        picbuffer.append(",");
+                    }
+                    picbuffer.append(picUrl);
+                }
+            }
+            devices.setPicture(picbuffer.toString());
+        }
+        devicesService.saveOrUpdateBatch(devicesList);
+    }
 }

+ 4 - 0
src/main/java/com/template/services/CompaniesService.java

@@ -4,6 +4,9 @@ import com.template.common.result.CommonResult;
 import com.template.model.Companies;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -14,4 +17,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface CompaniesService extends IService<Companies> {
 
+    List<Map<String, Object>> getAllCount();
 }

+ 1 - 1
src/main/java/com/template/services/RepairsService.java

@@ -16,5 +16,5 @@ import java.util.Map;
  */
 public interface RepairsService extends IService<Repairs> {
 
-    List<Map<String, Object>> listRepair();
+    List<Map<String, Object>> listRepair(String deviceId);
 }

+ 14 - 0
src/main/java/com/template/services/impl/CompaniesServiceImpl.java

@@ -4,8 +4,13 @@ import com.template.model.Companies;
 import com.template.mapper.CompaniesMapper;
 import com.template.services.CompaniesService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +22,13 @@ import org.springframework.stereotype.Service;
 @Service
 public class CompaniesServiceImpl extends ServiceImpl<CompaniesMapper, Companies> implements CompaniesService {
 
+    @Autowired
+    private CompaniesMapper companiesMapper;
+    /**
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getAllCount() {
+        return companiesMapper.getAllCount();
+    }
 }

+ 2 - 2
src/main/java/com/template/services/impl/RepairsServiceImpl.java

@@ -24,7 +24,7 @@ public class RepairsServiceImpl extends ServiceImpl<RepairsMapper, Repairs> impl
     @Autowired
     private RepairsMapper repairsMapper;
     @Override
-    public List<Map<String, Object>> listRepair() {
-        return repairsMapper.listRepair();
+    public List<Map<String, Object>> listRepair(String deviceId) {
+        return repairsMapper.listRepair(deviceId);
     }
 }

+ 8 - 1
src/main/resources/application-dev.yml

@@ -68,4 +68,11 @@ mqtt:
   password: iovadmin                 #MQTT-密码
   timeout: 2                         #MQTT-超时 单位秒
   keepAlive: 2                       #MQTT-
-  topic: topic                       #MQTT-默认的消息推送主题,实际可在调用接口时指定
+  topic: topic                       #MQTT-默认的消息推送主题,实际可在调用接口时指定
+
+#获取监控地址
+openys7:
+  url: https://open.ys7.com/api/lapp
+  appKey: dc94b29250f6408a8bc98a84b7d407ac
+  secret: 77139b53f930a5891ce38327aed7ea02
+

+ 7 - 1
src/main/resources/application.yml

@@ -68,4 +68,10 @@ mqtt:
   password: iovadmin                 #MQTT-密码
   timeout: 2                         #MQTT-超时 单位秒
   keepAlive: 2                       #MQTT-
-  topic: topic                       #MQTT-默认的消息推送主题,实际可在调用接口时指定
+  topic: topic                       #MQTT-默认的消息推送主题,实际可在调用接口时指定
+
+#获取监控地址
+openys7:
+  url: https://open.ys7.com/api/lapp
+  appKey: dc94b29250f6408a8bc98a84b7d407ac
+  secret: 77139b53f930a5891ce38327aed7ea02