13693261870
8 天以前 301ac7fa6f583f19b4f4a97bd9b469049b5ff10a
添加3个模块
已添加30个文件
已修改1个文件
2110 ■■■■■ 文件已修改
se-collect/pom.xml 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/java/com/terra/collect/SeCollectApp.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/java/com/terra/collect/controller/TestController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/java/com/terra/collect/controller/all/BaseController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/java/com/terra/collect/entity/all/HttpStatus.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/java/com/terra/collect/entity/all/ResponseMsg.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/resources/banner.txt 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/resources/bootstrap.yml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/resources/logback.xml 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/src/main/resources/mybatis.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/pom.xml 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/src/main/java/com/terra/discover/SeDiscoverApp.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/src/main/java/com/terra/discover/controller/TestController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/src/main/java/com/terra/discover/controller/all/BaseController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/src/main/java/com/terra/discover/entity/all/HttpStatus.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/src/main/java/com/terra/discover/entity/all/ResponseMsg.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/src/main/resources/banner.txt 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/src/main/resources/bootstrap.yml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/src/main/resources/logback.xml 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-discover/src/main/resources/mybatis.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/pom.xml 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/src/main/java/com/terra/publish/SePublishApp.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/src/main/java/com/terra/publish/controller/TestController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/src/main/java/com/terra/publish/controller/all/BaseController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/src/main/java/com/terra/publish/entity/all/HttpStatus.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/src/main/java/com/terra/publish/entity/all/ResponseMsg.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/src/main/resources/banner.txt 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/src/main/resources/bootstrap.yml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/src/main/resources/logback.xml 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-publish/src/main/resources/mybatis.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sm.txt 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
se-collect/pom.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.terra</groupId>
        <artifactId>terra</artifactId>
        <version>1.0.2</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>se-collect</artifactId>
    <description>
        æ•°æ®æ±‡é›†
    </description>
    <dependencies>
        <!-- SpringCloud Alibaba Nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringCloud Alibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!-- SpringCloud Alibaba Sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!-- SpringBoot Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!--postgresql-->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>
        <!--aop-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <!--整合druid数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.25</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.25</version>
        </dependency>
        <!--text-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-text</artifactId>
            <version>1.1</version>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0-jre</version>
        </dependency>
        <!--httpclient-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <!--websocket-->
        <dependency>
            <groupId>javax.websocket</groupId>
            <artifactId>javax.websocket-api</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <!--hutool-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.20</version>
        </dependency>
        <!--commons-fileupload-->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>
        <!--gdal-->
        <dependency>
            <groupId>org.gdal</groupId>
            <artifactId>gdal</artifactId>
            <version>3.2.0</version>
        </dependency>
        <!--zip4j-->
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>2.6.4</version>
        </dependency>
        <!--easyexcel-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.10</version>
        </dependency>
        <!--servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <!--apache.poi-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.16</version>
        </dependency>
        <!--proj4j-->
        <dependency>
            <groupId>org.osgeo</groupId>
            <artifactId>proj4j</artifactId>
            <version>0.1.0</version>
        </dependency>
        <!--JTS-->
        <dependency>
            <groupId>org.locationtech.jts</groupId>
            <artifactId>jts-core</artifactId>
            <version>1.19.0</version>
        </dependency>
        <!-- se-common -->
        <dependency>
            <groupId>com.terra</groupId>
            <artifactId>se-common</artifactId>
            <version>1.0.2</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
se-collect/src/main/java/com/terra/collect/SeCollectApp.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.terra.collect;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableAsync
@EnableSwagger2
@EnableAspectJAutoProxy(exposeProxy = true)
@SpringBootApplication(scanBasePackages = {"com.terra.collect.*"})
public class SeCollectApp
{
    public static void main(String[] args)
    {
        SpringApplication.run(SeCollectApp.class, args);
        System.out.println("----------数据汇集启动成功----------  \n");
    }
}
se-collect/src/main/java/com/terra/collect/controller/TestController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.terra.collect.controller;
import com.terra.collect.controller.all.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import com.terra.collect.entity.all.ResponseMsg;
import java.util.Date;
import java.text.SimpleDateFormat;
@Api(tags = "数据汇集\\测试服务")
@RestController
@RequestMapping("/test")
public class TestController extends BaseController {
    public static final SimpleDateFormat YMDHMS_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    @ApiOperation(value = "Test")
    @GetMapping(value = "/test")
    public ResponseMsg<Object> test() {
        try {
            String date = YMDHMS_FORMAT.format(new Date());
            return success(date);
        } catch (Exception ex) {
            return fail(ex, null);
        }
    }
}
se-collect/src/main/java/com/terra/collect/controller/all/BaseController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.terra.collect.controller.all;
import com.terra.collect.entity.all.HttpStatus;
import com.terra.collect.entity.all.ResponseMsg;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
 * Controller基类
 * @author WWW
 */
public class BaseController {
    public Log log = LogFactory.getLog(getClass());
    public <T> ResponseMsg<T> success(T result) {
        return new ResponseMsg<T>(HttpStatus.OK, result);
    }
    public <T> ResponseMsg<T> success(String msg, T result) {
        return new ResponseMsg<T>(HttpStatus.OK, msg, result);
    }
    public <T> ResponseMsg<T> success(long count, T result) {
        return new ResponseMsg<T>(HttpStatus.OK, count, result);
    }
    public <T> ResponseMsg<T> success(String msg, long count, T result) {
        return new ResponseMsg<T>(HttpStatus.OK, msg, count, result);
    }
    public <T> ResponseMsg<T> fail(T result) {
        return new ResponseMsg<T>(HttpStatus.ERROR, result);
    }
    public <T> ResponseMsg<T> fail(String msg, T result) {
        return new ResponseMsg<T>(HttpStatus.ERROR, msg, result);
    }
    public <T> ResponseMsg<T> fail(Exception ex, T result) {
        log.error(ex.getMessage(), ex);
        return new ResponseMsg<T>(HttpStatus.ERROR, ex.getMessage(), result);
    }
}
se-collect/src/main/java/com/terra/collect/entity/all/HttpStatus.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.terra.collect.entity.all;
/**
 * Http状态码类
 * @author WWW
 */
public enum HttpStatus {
    /**
     * è¯·æ±‚成功
     */
    OK(200,"请求成功"),
    /**
     * è¯·æ±‚无效
     */
    BAD_REQUEST(400,"请求无效"),
    /**
     * æœªç»æŽˆæƒè®¿é—®
     */
    UNAUTHORIZED(401,"未经授权访问"),
    /**
     * æœåŠ¡è¯·æ±‚æœªæ‰¾åˆ°
     */
    NOT_FOUND(404,"服务请求未找到"),
    /**
     * ç³»ç»Ÿé”™è¯¯
     */
    ERROR(500,"系统错误"),
    /**
     * å­˜åœ¨é‡å¤çš„æ•°æ®
     */
    UNIQUE_ERROR(500100,"存在重复的数据"),
    /**
     * å‚数校验错误
     */
    VALIDATE_ERROR(500101,"参数校验错误"),
    /**
     * token错误
     */
    TOKEN_ERROR(500102,"token错误"),
    /**
     * ç”¨æˆ·æœªç™»é™†
     */
    NO_LOGIN_ERROR(500104,"用户未登陆"),
    /**
     * ç™»é™†å¤±è´¥
     */
    LOGIN_ERROR(500105,"登陆失败"),
    /**
     * æ— æƒé™è®¿é—®
     */
    NO_AUTH_ERROR(500106,"无权限访问"),
    /**
     * ç”¨æˆ·åé”™è¯¯
     */
    LOGIN_USER_ERROR(500107,"用户名错误"),
    /**
     * å¯†ç é”™è¯¯
     */
    LOGIN_PWD_ERROR(500108,"密码错误"),
    /**
     * ç”¨æˆ·è¢«é”å®š
     */
    USER_LOCK_ERROR(500109,"用户被锁定"),
    /**
     * å¯†ç ä¸åˆè§„范
     */
    PWD_NONSTANDARD(500111,"密码不合规范"),
    /**
     * å¯†ç è¿‡æœŸ
     */
    LOGIN_PWD_EXPIRE(500116,"密码过期");
    private HttpStatus(int value, String msg) {
        this.value = value;
        this.msg = msg;
    }
    private int value;
    private String msg;
    public int getValue() {
        return value;
    }
    public String getMsg() {
        return msg;
    }
}
se-collect/src/main/java/com/terra/collect/entity/all/ResponseMsg.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
package com.terra.collect.entity.all;
/**
 * å“åº”消息类
 * @author www
 * @param <T> æ³›åž‹
 */
public class ResponseMsg<T> {
    public ResponseMsg() {
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(HttpStatus code, T result) {
        this.code = code.getValue();
        this.msg = this.code == 200 ? "成功" : "失败";
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(HttpStatus code, String msg, T result) {
        this.code = code.getValue();
        this.msg = msg;
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(int code, String msg, T result, long time) {
        this.code = code;
        this.msg = msg;
        this.result = result;
        this.time = time;
    }
    public ResponseMsg(HttpStatus code, long count, T result) {
        this.code = code.getValue();
        this.msg = this.code == 200 ? "成功" : "失败";
        this.count = count;
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(HttpStatus code, String msg, long count, T result) {
        this.code = code.getValue();
        this.msg = msg;
        this.count = count;
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(int code, String msg, long count, T result, long time) {
        this.code = code;
        this.msg = msg;
        this.count = count;
        this.result = result;
        this.time = time;
    }
    private int code;
    private String msg;
    private long count;
    private T result;
    private long time;
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public long getCount() {
        return count;
    }
    public void setCount(long count) {
        this.count = count;
    }
    public T getResult() {
        return result;
    }
    public void setResult(T result) {
        this.result = result;
    }
    public long getTime() {
        return time;
    }
    public void setTime(long time) {
        this.time = time;
    }
}
se-collect/src/main/resources/banner.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Spring Boot Version: ${spring-boot.version}
Spring Application Name: ${spring.application.name}
  _____      _ _           _
 / ____|    | | |         | |
| |     ___ | | | ___  ___| |_
| |    / _ \| | |/ _ \/ __| __|
| |___| (_) | | |  __/ (__| |_
 \_____\___/|_|_|\___|\___|\__|
se-collect/src/main/resources/bootstrap.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
# Tomcat
server:
  port: 8003
# Spring
spring:
  application:
    # åº”用名称
    name: se-collect
  profiles:
    # çŽ¯å¢ƒé…ç½®
    active: dev
  cloud:
    nacos:
      username: nacos
      password: nAcos_!9#_admIn
      discovery:
        # æœåŠ¡æ³¨å†Œåœ°å€
        server-addr: 127.0.0.1:8848
      config:
        group: JHS_GROUP
        # é…ç½®ä¸­å¿ƒåœ°å€
        server-addr: 127.0.0.1:8848
        # é…ç½®æ–‡ä»¶æ ¼å¼
        file-extension: yml
        # å…±äº«é…ç½®
        shared-configs:
          - data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
            group: JHS_GROUP
        # å…è®¸åˆ·æ–°
        refresh-enabled: true
se-collect/src/main/resources/logback.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- æ—¥å¿—存放路径 -->
    <property name="log.path" value="logs/se-collect" />
    <!-- æ—¥å¿—输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
    <!-- æŽ§åˆ¶å°è¾“出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
    <!-- ç³»ç»Ÿæ—¥å¿—输出 -->
    <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">
            <!-- æ—¥å¿—文件名格式 -->
            <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">
            <!-- è¿‡æ»¤çš„级别 -->
            <level>INFO</level>
            <!-- åŒ¹é…æ—¶çš„æ“ä½œï¼šæŽ¥æ”¶ï¼ˆè®°å½•) -->
            <onMatch>ACCEPT</onMatch>
            <!-- ä¸åŒ¹é…æ—¶çš„æ“ä½œï¼šæ‹’绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <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>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- è¿‡æ»¤çš„级别 -->
            <level>ERROR</level>
            <!-- åŒ¹é…æ—¶çš„æ“ä½œï¼šæŽ¥æ”¶ï¼ˆè®°å½•) -->
            <onMatch>ACCEPT</onMatch>
            <!-- ä¸åŒ¹é…æ—¶çš„æ“ä½œï¼šæ‹’绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- ç³»ç»Ÿæ¨¡å—日志级别控制  -->
    <logger name="com.terra" level="info" />
    <!-- Spring日志级别控制  -->
    <logger name="org.springframework" level="warn" />
    <root level="info">
        <appender-ref ref="console" />
    </root>
    <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
    </root>
</configuration>
se-collect/src/main/resources/mybatis.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!--配置影响所有映射器中配置缓存-->
        <setting name="cacheEnabled" value="true"/>
        <!--延迟加载-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!--是否允许单一语句返回多结果集-->
        <setting name="multipleResultSetsEnabled" value="true"/>
        <!--使用列标签代替列名-->
        <setting name="useColumnLabel" value="true"/>
        <!--允许JDBC æ”¯æŒè‡ªåŠ¨ç”Ÿæˆä¸»é”®-->
        <setting name="useGeneratedKeys" value="false"/>
        <!--设置SQL超时时间,秒-->
        <setting name="defaultStatementTimeout" value="360"/>
        <!--默认返回的条数限制-->
        <setting name="defaultFetchSize" value="1000"/>
        <!--是否开启自动驼峰命名规则映射,即从经典数据库列名 A_COLUMN åˆ°ç»å…¸ Java å±žæ€§å aColumn çš„类似映射-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!--MyBatis åˆ©ç”¨æœ¬åœ°ç¼“存机制(Local Cache)防止循环引用(circular references)和加速联复嵌套査询。-->
        <setting name="localCacheScope" value="SESSION"/>
        <!--当没有为参数提供特定的 JDBC ç±»åž‹æ—¶ï¼Œä¸ºç©ºå€¼æŒ‡å®š JDBC ç±»åž‹-->
        <setting name="jdbcTypeForNull" value="NULL"/>
        <!--指定哪个对象的方法触发一次延迟加载-->
        <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
        <!--指定当结果集中值为 null æ—¶ï¼Œæ˜¯å¦è°ƒç”¨æ˜ å°„对象的 setter(map å¯¹è±¡æ—¶ä¸º put)方法-->
        <setting name="callSettersOnNulls" value="true"/>
        <!--指定 MyBatis æ‰€ç”¨æ—¥å¿—的具体实现:LOG4J/LOG4J2/SLF4J/STDOUT_LOGGING/NO_LOGGING-->
        <setting name="logImpl" value="NO_LOGGING" />
    </settings>
    <typeAliases>
        <package name="com.terra.collect.entity"/>
    </typeAliases>
</configuration>
se-discover/pom.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.terra</groupId>
        <artifactId>terra</artifactId>
        <version>1.0.2</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>se-discover</artifactId>
    <description>
        çŸ¥è¯†å‘现
    </description>
    <dependencies>
        <!-- SpringCloud Alibaba Nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringCloud Alibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!-- SpringCloud Alibaba Sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!-- SpringBoot Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!--postgresql-->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>
        <!--aop-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <!--整合druid数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.25</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.25</version>
        </dependency>
        <!--text-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-text</artifactId>
            <version>1.1</version>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0-jre</version>
        </dependency>
        <!--httpclient-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <!--websocket-->
        <dependency>
            <groupId>javax.websocket</groupId>
            <artifactId>javax.websocket-api</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <!--hutool-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.20</version>
        </dependency>
        <!--commons-fileupload-->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>
        <!--gdal-->
        <dependency>
            <groupId>org.gdal</groupId>
            <artifactId>gdal</artifactId>
            <version>3.2.0</version>
        </dependency>
        <!--zip4j-->
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>2.6.4</version>
        </dependency>
        <!--easyexcel-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.10</version>
        </dependency>
        <!--servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <!--apache.poi-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.16</version>
        </dependency>
        <!--proj4j-->
        <dependency>
            <groupId>org.osgeo</groupId>
            <artifactId>proj4j</artifactId>
            <version>0.1.0</version>
        </dependency>
        <!--JTS-->
        <dependency>
            <groupId>org.locationtech.jts</groupId>
            <artifactId>jts-core</artifactId>
            <version>1.19.0</version>
        </dependency>
        <!-- se-common -->
        <dependency>
            <groupId>com.terra</groupId>
            <artifactId>se-common</artifactId>
            <version>1.0.2</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
se-discover/src/main/java/com/terra/discover/SeDiscoverApp.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.terra.discover;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableAsync
@EnableSwagger2
@EnableAspectJAutoProxy(exposeProxy = true)
@SpringBootApplication(scanBasePackages = {"com.terra.discover.*"})
public class SeDiscoverApp
{
    public static void main(String[] args)
    {
        SpringApplication.run(SeDiscoverApp.class, args);
        System.out.println("----------知识发现启动成功----------  \n");
    }
}
se-discover/src/main/java/com/terra/discover/controller/TestController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.terra.discover.controller;
import com.terra.discover.controller.all.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import com.terra.discover.entity.all.ResponseMsg;
import java.util.Date;
import java.text.SimpleDateFormat;
@Api(tags = "知识发现\\测试服务")
@RestController
@RequestMapping("/test")
public class TestController extends BaseController {
    public static final SimpleDateFormat YMDHMS_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    @ApiOperation(value = "Test")
    @GetMapping(value = "/test")
    public ResponseMsg<Object> test() {
        try {
            String date = YMDHMS_FORMAT.format(new Date());
            return success(date);
        } catch (Exception ex) {
            return fail(ex, null);
        }
    }
}
se-discover/src/main/java/com/terra/discover/controller/all/BaseController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.terra.discover.controller.all;
import com.terra.discover.entity.all.HttpStatus;
import com.terra.discover.entity.all.ResponseMsg;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
 * Controller基类
 * @author WWW
 */
public class BaseController {
    public Log log = LogFactory.getLog(getClass());
    public <T> ResponseMsg<T> success(T result) {
        return new ResponseMsg<T>(HttpStatus.OK, result);
    }
    public <T> ResponseMsg<T> success(String msg, T result) {
        return new ResponseMsg<T>(HttpStatus.OK, msg, result);
    }
    public <T> ResponseMsg<T> success(long count, T result) {
        return new ResponseMsg<T>(HttpStatus.OK, count, result);
    }
    public <T> ResponseMsg<T> success(String msg, long count, T result) {
        return new ResponseMsg<T>(HttpStatus.OK, msg, count, result);
    }
    public <T> ResponseMsg<T> fail(T result) {
        return new ResponseMsg<T>(HttpStatus.ERROR, result);
    }
    public <T> ResponseMsg<T> fail(String msg, T result) {
        return new ResponseMsg<T>(HttpStatus.ERROR, msg, result);
    }
    public <T> ResponseMsg<T> fail(Exception ex, T result) {
        log.error(ex.getMessage(), ex);
        return new ResponseMsg<T>(HttpStatus.ERROR, ex.getMessage(), result);
    }
}
se-discover/src/main/java/com/terra/discover/entity/all/HttpStatus.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.terra.discover.entity.all;
/**
 * Http状态码类
 * @author WWW
 */
public enum HttpStatus {
    /**
     * è¯·æ±‚成功
     */
    OK(200,"请求成功"),
    /**
     * è¯·æ±‚无效
     */
    BAD_REQUEST(400,"请求无效"),
    /**
     * æœªç»æŽˆæƒè®¿é—®
     */
    UNAUTHORIZED(401,"未经授权访问"),
    /**
     * æœåŠ¡è¯·æ±‚æœªæ‰¾åˆ°
     */
    NOT_FOUND(404,"服务请求未找到"),
    /**
     * ç³»ç»Ÿé”™è¯¯
     */
    ERROR(500,"系统错误"),
    /**
     * å­˜åœ¨é‡å¤çš„æ•°æ®
     */
    UNIQUE_ERROR(500100,"存在重复的数据"),
    /**
     * å‚数校验错误
     */
    VALIDATE_ERROR(500101,"参数校验错误"),
    /**
     * token错误
     */
    TOKEN_ERROR(500102,"token错误"),
    /**
     * ç”¨æˆ·æœªç™»é™†
     */
    NO_LOGIN_ERROR(500104,"用户未登陆"),
    /**
     * ç™»é™†å¤±è´¥
     */
    LOGIN_ERROR(500105,"登陆失败"),
    /**
     * æ— æƒé™è®¿é—®
     */
    NO_AUTH_ERROR(500106,"无权限访问"),
    /**
     * ç”¨æˆ·åé”™è¯¯
     */
    LOGIN_USER_ERROR(500107,"用户名错误"),
    /**
     * å¯†ç é”™è¯¯
     */
    LOGIN_PWD_ERROR(500108,"密码错误"),
    /**
     * ç”¨æˆ·è¢«é”å®š
     */
    USER_LOCK_ERROR(500109,"用户被锁定"),
    /**
     * å¯†ç ä¸åˆè§„范
     */
    PWD_NONSTANDARD(500111,"密码不合规范"),
    /**
     * å¯†ç è¿‡æœŸ
     */
    LOGIN_PWD_EXPIRE(500116,"密码过期");
    private HttpStatus(int value, String msg) {
        this.value = value;
        this.msg = msg;
    }
    private int value;
    private String msg;
    public int getValue() {
        return value;
    }
    public String getMsg() {
        return msg;
    }
}
se-discover/src/main/java/com/terra/discover/entity/all/ResponseMsg.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
package com.terra.discover.entity.all;
/**
 * å“åº”消息类
 * @author www
 * @param <T> æ³›åž‹
 */
public class ResponseMsg<T> {
    public ResponseMsg() {
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(HttpStatus code, T result) {
        this.code = code.getValue();
        this.msg = this.code == 200 ? "成功" : "失败";
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(HttpStatus code, String msg, T result) {
        this.code = code.getValue();
        this.msg = msg;
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(int code, String msg, T result, long time) {
        this.code = code;
        this.msg = msg;
        this.result = result;
        this.time = time;
    }
    public ResponseMsg(HttpStatus code, long count, T result) {
        this.code = code.getValue();
        this.msg = this.code == 200 ? "成功" : "失败";
        this.count = count;
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(HttpStatus code, String msg, long count, T result) {
        this.code = code.getValue();
        this.msg = msg;
        this.count = count;
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(int code, String msg, long count, T result, long time) {
        this.code = code;
        this.msg = msg;
        this.count = count;
        this.result = result;
        this.time = time;
    }
    private int code;
    private String msg;
    private long count;
    private T result;
    private long time;
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public long getCount() {
        return count;
    }
    public void setCount(long count) {
        this.count = count;
    }
    public T getResult() {
        return result;
    }
    public void setResult(T result) {
        this.result = result;
    }
    public long getTime() {
        return time;
    }
    public void setTime(long time) {
        this.time = time;
    }
}
se-discover/src/main/resources/banner.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Spring Boot Version: ${spring-boot.version}
Spring Application Name: ${spring.application.name}
  _____  _     _
 |  __ \(_)   | |
 | |  | |_  __| | ___  ___ _ __
 | |  | | |/ _` |/ _ \/ _ \ '_ \
 | |__| | | (_| |  __/  __/ |_) |
 |_____/|_|\__,_|\___|\___| .__/
                          | |
                          |_|
se-discover/src/main/resources/bootstrap.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
# Tomcat
server:
  port: 8004
# Spring
spring:
  application:
    # åº”用名称
    name: se-discover
  profiles:
    # çŽ¯å¢ƒé…ç½®
    active: dev
  cloud:
    nacos:
      username: nacos
      password: nAcos_!9#_admIn
      discovery:
        # æœåŠ¡æ³¨å†Œåœ°å€
        server-addr: 127.0.0.1:8848
      config:
        group: JHS_GROUP
        # é…ç½®ä¸­å¿ƒåœ°å€
        server-addr: 127.0.0.1:8848
        # é…ç½®æ–‡ä»¶æ ¼å¼
        file-extension: yml
        # å…±äº«é…ç½®
        shared-configs:
          - data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
            group: JHS_GROUP
        # å…è®¸åˆ·æ–°
        refresh-enabled: true
se-discover/src/main/resources/logback.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- æ—¥å¿—存放路径 -->
    <property name="log.path" value="logs/se-discover" />
    <!-- æ—¥å¿—输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
    <!-- æŽ§åˆ¶å°è¾“出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
    <!-- ç³»ç»Ÿæ—¥å¿—输出 -->
    <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">
            <!-- æ—¥å¿—文件名格式 -->
            <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">
            <!-- è¿‡æ»¤çš„级别 -->
            <level>INFO</level>
            <!-- åŒ¹é…æ—¶çš„æ“ä½œï¼šæŽ¥æ”¶ï¼ˆè®°å½•) -->
            <onMatch>ACCEPT</onMatch>
            <!-- ä¸åŒ¹é…æ—¶çš„æ“ä½œï¼šæ‹’绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <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>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- è¿‡æ»¤çš„级别 -->
            <level>ERROR</level>
            <!-- åŒ¹é…æ—¶çš„æ“ä½œï¼šæŽ¥æ”¶ï¼ˆè®°å½•) -->
            <onMatch>ACCEPT</onMatch>
            <!-- ä¸åŒ¹é…æ—¶çš„æ“ä½œï¼šæ‹’绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- ç³»ç»Ÿæ¨¡å—日志级别控制  -->
    <logger name="com.terra" level="info" />
    <!-- Spring日志级别控制  -->
    <logger name="org.springframework" level="warn" />
    <root level="info">
        <appender-ref ref="console" />
    </root>
    <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
    </root>
</configuration>
se-discover/src/main/resources/mybatis.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!--配置影响所有映射器中配置缓存-->
        <setting name="cacheEnabled" value="true"/>
        <!--延迟加载-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!--是否允许单一语句返回多结果集-->
        <setting name="multipleResultSetsEnabled" value="true"/>
        <!--使用列标签代替列名-->
        <setting name="useColumnLabel" value="true"/>
        <!--允许JDBC æ”¯æŒè‡ªåŠ¨ç”Ÿæˆä¸»é”®-->
        <setting name="useGeneratedKeys" value="false"/>
        <!--设置SQL超时时间,秒-->
        <setting name="defaultStatementTimeout" value="360"/>
        <!--默认返回的条数限制-->
        <setting name="defaultFetchSize" value="1000"/>
        <!--是否开启自动驼峰命名规则映射,即从经典数据库列名 A_COLUMN åˆ°ç»å…¸ Java å±žæ€§å aColumn çš„类似映射-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!--MyBatis åˆ©ç”¨æœ¬åœ°ç¼“存机制(Local Cache)防止循环引用(circular references)和加速联复嵌套査询。-->
        <setting name="localCacheScope" value="SESSION"/>
        <!--当没有为参数提供特定的 JDBC ç±»åž‹æ—¶ï¼Œä¸ºç©ºå€¼æŒ‡å®š JDBC ç±»åž‹-->
        <setting name="jdbcTypeForNull" value="NULL"/>
        <!--指定哪个对象的方法触发一次延迟加载-->
        <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
        <!--指定当结果集中值为 null æ—¶ï¼Œæ˜¯å¦è°ƒç”¨æ˜ å°„对象的 setter(map å¯¹è±¡æ—¶ä¸º put)方法-->
        <setting name="callSettersOnNulls" value="true"/>
        <!--指定 MyBatis æ‰€ç”¨æ—¥å¿—的具体实现:LOG4J/LOG4J2/SLF4J/STDOUT_LOGGING/NO_LOGGING-->
        <setting name="logImpl" value="NO_LOGGING" />
    </settings>
    <typeAliases>
        <package name="com.terra.discover.entity"/>
    </typeAliases>
</configuration>
se-publish/pom.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.terra</groupId>
        <artifactId>terra</artifactId>
        <version>1.0.2</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>se-publish</artifactId>
    <description>
        æ•°æ®å‘布
    </description>
    <dependencies>
        <!-- SpringCloud Alibaba Nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringCloud Alibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!-- SpringCloud Alibaba Sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!-- SpringBoot Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!--postgresql-->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>
        <!--aop-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <!--整合druid数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.25</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.25</version>
        </dependency>
        <!--text-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-text</artifactId>
            <version>1.1</version>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0-jre</version>
        </dependency>
        <!--httpclient-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <!--websocket-->
        <dependency>
            <groupId>javax.websocket</groupId>
            <artifactId>javax.websocket-api</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <!--hutool-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.20</version>
        </dependency>
        <!--commons-fileupload-->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>
        <!--gdal-->
        <dependency>
            <groupId>org.gdal</groupId>
            <artifactId>gdal</artifactId>
            <version>3.2.0</version>
        </dependency>
        <!--zip4j-->
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>2.6.4</version>
        </dependency>
        <!--easyexcel-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.10</version>
        </dependency>
        <!--servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <!--apache.poi-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.16</version>
        </dependency>
        <!--proj4j-->
        <dependency>
            <groupId>org.osgeo</groupId>
            <artifactId>proj4j</artifactId>
            <version>0.1.0</version>
        </dependency>
        <!--JTS-->
        <dependency>
            <groupId>org.locationtech.jts</groupId>
            <artifactId>jts-core</artifactId>
            <version>1.19.0</version>
        </dependency>
        <!-- se-common -->
        <dependency>
            <groupId>com.terra</groupId>
            <artifactId>se-common</artifactId>
            <version>1.0.2</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
se-publish/src/main/java/com/terra/publish/SePublishApp.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.terra.publish;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableAsync
@EnableSwagger2
@EnableAspectJAutoProxy(exposeProxy = true)
@SpringBootApplication(scanBasePackages = {"com.terra.publish.*"})
public class SePublishApp
{
    public static void main(String[] args)
    {
        SpringApplication.run(SePublishApp.class, args);
        System.out.println("----------数据发布启动成功----------  \n");
    }
}
se-publish/src/main/java/com/terra/publish/controller/TestController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.terra.publish.controller;
import com.terra.publish.controller.all.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import com.terra.publish.entity.all.ResponseMsg;
import java.util.Date;
import java.text.SimpleDateFormat;
@Api(tags = "数据发布\\测试服务")
@RestController
@RequestMapping("/test")
public class TestController extends BaseController {
    public static final SimpleDateFormat YMDHMS_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    @ApiOperation(value = "Test")
    @GetMapping(value = "/test")
    public ResponseMsg<Object> test() {
        try {
            String date = YMDHMS_FORMAT.format(new Date());
            return success(date);
        } catch (Exception ex) {
            return fail(ex, null);
        }
    }
}
se-publish/src/main/java/com/terra/publish/controller/all/BaseController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.terra.publish.controller.all;
import com.terra.publish.entity.all.HttpStatus;
import com.terra.publish.entity.all.ResponseMsg;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
 * Controller基类
 * @author WWW
 */
public class BaseController {
    public Log log = LogFactory.getLog(getClass());
    public <T> ResponseMsg<T> success(T result) {
        return new ResponseMsg<T>(HttpStatus.OK, result);
    }
    public <T> ResponseMsg<T> success(String msg, T result) {
        return new ResponseMsg<T>(HttpStatus.OK, msg, result);
    }
    public <T> ResponseMsg<T> success(long count, T result) {
        return new ResponseMsg<T>(HttpStatus.OK, count, result);
    }
    public <T> ResponseMsg<T> success(String msg, long count, T result) {
        return new ResponseMsg<T>(HttpStatus.OK, msg, count, result);
    }
    public <T> ResponseMsg<T> fail(T result) {
        return new ResponseMsg<T>(HttpStatus.ERROR, result);
    }
    public <T> ResponseMsg<T> fail(String msg, T result) {
        return new ResponseMsg<T>(HttpStatus.ERROR, msg, result);
    }
    public <T> ResponseMsg<T> fail(Exception ex, T result) {
        log.error(ex.getMessage(), ex);
        return new ResponseMsg<T>(HttpStatus.ERROR, ex.getMessage(), result);
    }
}
se-publish/src/main/java/com/terra/publish/entity/all/HttpStatus.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.terra.publish.entity.all;
/**
 * Http状态码类
 * @author WWW
 */
public enum HttpStatus {
    /**
     * è¯·æ±‚成功
     */
    OK(200,"请求成功"),
    /**
     * è¯·æ±‚无效
     */
    BAD_REQUEST(400,"请求无效"),
    /**
     * æœªç»æŽˆæƒè®¿é—®
     */
    UNAUTHORIZED(401,"未经授权访问"),
    /**
     * æœåŠ¡è¯·æ±‚æœªæ‰¾åˆ°
     */
    NOT_FOUND(404,"服务请求未找到"),
    /**
     * ç³»ç»Ÿé”™è¯¯
     */
    ERROR(500,"系统错误"),
    /**
     * å­˜åœ¨é‡å¤çš„æ•°æ®
     */
    UNIQUE_ERROR(500100,"存在重复的数据"),
    /**
     * å‚数校验错误
     */
    VALIDATE_ERROR(500101,"参数校验错误"),
    /**
     * token错误
     */
    TOKEN_ERROR(500102,"token错误"),
    /**
     * ç”¨æˆ·æœªç™»é™†
     */
    NO_LOGIN_ERROR(500104,"用户未登陆"),
    /**
     * ç™»é™†å¤±è´¥
     */
    LOGIN_ERROR(500105,"登陆失败"),
    /**
     * æ— æƒé™è®¿é—®
     */
    NO_AUTH_ERROR(500106,"无权限访问"),
    /**
     * ç”¨æˆ·åé”™è¯¯
     */
    LOGIN_USER_ERROR(500107,"用户名错误"),
    /**
     * å¯†ç é”™è¯¯
     */
    LOGIN_PWD_ERROR(500108,"密码错误"),
    /**
     * ç”¨æˆ·è¢«é”å®š
     */
    USER_LOCK_ERROR(500109,"用户被锁定"),
    /**
     * å¯†ç ä¸åˆè§„范
     */
    PWD_NONSTANDARD(500111,"密码不合规范"),
    /**
     * å¯†ç è¿‡æœŸ
     */
    LOGIN_PWD_EXPIRE(500116,"密码过期");
    private HttpStatus(int value, String msg) {
        this.value = value;
        this.msg = msg;
    }
    private int value;
    private String msg;
    public int getValue() {
        return value;
    }
    public String getMsg() {
        return msg;
    }
}
se-publish/src/main/java/com/terra/publish/entity/all/ResponseMsg.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
package com.terra.publish.entity.all;
/**
 * å“åº”消息类
 * @author www
 * @param <T> æ³›åž‹
 */
public class ResponseMsg<T> {
    public ResponseMsg() {
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(HttpStatus code, T result) {
        this.code = code.getValue();
        this.msg = this.code == 200 ? "成功" : "失败";
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(HttpStatus code, String msg, T result) {
        this.code = code.getValue();
        this.msg = msg;
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(int code, String msg, T result, long time) {
        this.code = code;
        this.msg = msg;
        this.result = result;
        this.time = time;
    }
    public ResponseMsg(HttpStatus code, long count, T result) {
        this.code = code.getValue();
        this.msg = this.code == 200 ? "成功" : "失败";
        this.count = count;
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(HttpStatus code, String msg, long count, T result) {
        this.code = code.getValue();
        this.msg = msg;
        this.count = count;
        this.result = result;
        this.time = System.currentTimeMillis();
    }
    public ResponseMsg(int code, String msg, long count, T result, long time) {
        this.code = code;
        this.msg = msg;
        this.count = count;
        this.result = result;
        this.time = time;
    }
    private int code;
    private String msg;
    private long count;
    private T result;
    private long time;
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public long getCount() {
        return count;
    }
    public void setCount(long count) {
        this.count = count;
    }
    public T getResult() {
        return result;
    }
    public void setResult(T result) {
        this.result = result;
    }
    public long getTime() {
        return time;
    }
    public void setTime(long time) {
        this.time = time;
    }
}
se-publish/src/main/resources/banner.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Spring Boot Version: ${spring-boot.version}
Spring Application Name: ${spring.application.name}
  _____       _     _ _
 |  __ \     | |   | | |
 | |__) |   _| |__ | | |__
 |  ___/ | | | '_ \| | '_ \
 | |   | |_| | |_) | | | | |
 |_|    \__,_|_.__/|_|_| |_|
se-publish/src/main/resources/bootstrap.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
# Tomcat
server:
  port: 8005
# Spring
spring:
  application:
    # åº”用名称
    name: se-publish
  profiles:
    # çŽ¯å¢ƒé…ç½®
    active: dev
  cloud:
    nacos:
      username: nacos
      password: nAcos_!9#_admIn
      discovery:
        # æœåŠ¡æ³¨å†Œåœ°å€
        server-addr: 127.0.0.1:8848
      config:
        group: JHS_GROUP
        # é…ç½®ä¸­å¿ƒåœ°å€
        server-addr: 127.0.0.1:8848
        # é…ç½®æ–‡ä»¶æ ¼å¼
        file-extension: yml
        # å…±äº«é…ç½®
        shared-configs:
          - data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
            group: JHS_GROUP
        # å…è®¸åˆ·æ–°
        refresh-enabled: true
se-publish/src/main/resources/logback.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- æ—¥å¿—存放路径 -->
    <property name="log.path" value="logs/se-publish" />
    <!-- æ—¥å¿—输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
    <!-- æŽ§åˆ¶å°è¾“出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
    <!-- ç³»ç»Ÿæ—¥å¿—输出 -->
    <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">
            <!-- æ—¥å¿—文件名格式 -->
            <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">
            <!-- è¿‡æ»¤çš„级别 -->
            <level>INFO</level>
            <!-- åŒ¹é…æ—¶çš„æ“ä½œï¼šæŽ¥æ”¶ï¼ˆè®°å½•) -->
            <onMatch>ACCEPT</onMatch>
            <!-- ä¸åŒ¹é…æ—¶çš„æ“ä½œï¼šæ‹’绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <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>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- è¿‡æ»¤çš„级别 -->
            <level>ERROR</level>
            <!-- åŒ¹é…æ—¶çš„æ“ä½œï¼šæŽ¥æ”¶ï¼ˆè®°å½•) -->
            <onMatch>ACCEPT</onMatch>
            <!-- ä¸åŒ¹é…æ—¶çš„æ“ä½œï¼šæ‹’绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- ç³»ç»Ÿæ¨¡å—日志级别控制  -->
    <logger name="com.terra" level="info" />
    <!-- Spring日志级别控制  -->
    <logger name="org.springframework" level="warn" />
    <root level="info">
        <appender-ref ref="console" />
    </root>
    <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
    </root>
</configuration>
se-publish/src/main/resources/mybatis.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!--配置影响所有映射器中配置缓存-->
        <setting name="cacheEnabled" value="true"/>
        <!--延迟加载-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!--是否允许单一语句返回多结果集-->
        <setting name="multipleResultSetsEnabled" value="true"/>
        <!--使用列标签代替列名-->
        <setting name="useColumnLabel" value="true"/>
        <!--允许JDBC æ”¯æŒè‡ªåŠ¨ç”Ÿæˆä¸»é”®-->
        <setting name="useGeneratedKeys" value="false"/>
        <!--设置SQL超时时间,秒-->
        <setting name="defaultStatementTimeout" value="360"/>
        <!--默认返回的条数限制-->
        <setting name="defaultFetchSize" value="1000"/>
        <!--是否开启自动驼峰命名规则映射,即从经典数据库列名 A_COLUMN åˆ°ç»å…¸ Java å±žæ€§å aColumn çš„类似映射-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!--MyBatis åˆ©ç”¨æœ¬åœ°ç¼“存机制(Local Cache)防止循环引用(circular references)和加速联复嵌套査询。-->
        <setting name="localCacheScope" value="SESSION"/>
        <!--当没有为参数提供特定的 JDBC ç±»åž‹æ—¶ï¼Œä¸ºç©ºå€¼æŒ‡å®š JDBC ç±»åž‹-->
        <setting name="jdbcTypeForNull" value="NULL"/>
        <!--指定哪个对象的方法触发一次延迟加载-->
        <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
        <!--指定当结果集中值为 null æ—¶ï¼Œæ˜¯å¦è°ƒç”¨æ˜ å°„对象的 setter(map å¯¹è±¡æ—¶ä¸º put)方法-->
        <setting name="callSettersOnNulls" value="true"/>
        <!--指定 MyBatis æ‰€ç”¨æ—¥å¿—的具体实现:LOG4J/LOG4J2/SLF4J/STDOUT_LOGGING/NO_LOGGING-->
        <setting name="logImpl" value="NO_LOGGING" />
    </settings>
    <typeAliases>
        <package name="com.terra.publish.entity"/>
    </typeAliases>
</configuration>
sm.txt
@@ -1,29 +1,29 @@
-------------------------------------------------------------------
------------------------------------------------------------------- åŠŸèƒ½æ¨¡å—ï¼Œæ”¯æŒç‹¬ç«‹éƒ¨ç½²
  se-common:      é€šç”¨æ¨¡å—
 se-gateway:8001,系统网关
  se-system:8002,系统模块/数据存储管理
 se-collect:8003,数据汇集
se-discover:8004,知识发现
 se-publish:8005,数据发布
------------------------------------------------------------------- URL
admin:Admin@1234_lf
nacos:nAcos_!9#_admIn
http://localhost:8848/nacos
http://localhost:8002/
http://localhost:8001/system/
http://localhost:8001/system/sign/getPublicKey
http://localhost:8002/sign/getPublicKey
http://localhost:8001/system/dir/selectDir?id=1
http://localhost:8002/dir/selectDir?id=1
http://192.168.11.203:8848/nacos
http://192.168.11.203:8081/api/system/swagger-ui.html
-------------------------------------------------------------------
PIE-Engine Server:Pixel Information Expert
------------------------------------------------------------------- PIE-Engine Server
全称Pixel Information Expert,SDK有:地图开发、WebSDK、RestSDK
官网:piesat.cn,https://engine.piesat.cn/server/#/
遥感/GIS数据汇集、管理、治理、发布与共享的能力,数据接入、编目、存储、共享、发布与应用。
piesat.cn,https://engine.piesat.cn/server/#/
https://support.huaweicloud.com/pie-engine-mapslt/pie-engine_04.html
https://piesat.cn/website/cn/pages/product/dl-center/software-download.html,下载中心
------------------------------------------------------------------- åœ°å›¾å¼€å‘、WebSDK、RestSDK
3.8.4.3.RestSDK开发:接口调用各类型的时空数据服务,获取返回json或xml格式的数据。
数据接入服务:主要提供不同类型数据的接入和监控能力,共计20个接口。
@@ -44,5 +44,3 @@
数据打包服务:主要提供数据打包任务创建、监控、删除,以及压缩包下载服务,共计4个接口。
-------------------------------------------------------------------