فهرست منبع

部署到生产环境版本

wuweihao 4 سال پیش
والد
کامیت
834b837054

+ 9 - 1
README.md

@@ -4,7 +4,15 @@
     客户api: http://1clintel.cn:9081/
 
 
-        
+# sit
+service:8.135.106.227 项目测试服务器 
+doc: http://8.135.106.227:8004/doc.html
+
+
+
+# pro
+2021-04-29
+    已部署到客服服务器
         
 
             

+ 2 - 2
gis_application/pom.xml

@@ -12,8 +12,8 @@
 
     <groupId>com.gis</groupId>
     <artifactId>gis_application</artifactId>
-    <version>1.0.0</version>
-    <packaging>war</packaging>
+     <version>1.0.0</version>
+    <packaging>jar</packaging>
     <name>gis_application</name>
     <description>项目入口</description>
 

+ 9 - 1
gis_application/src/main/resources/application-dev.properties

@@ -55,11 +55,19 @@ logging.config=classpath:logback-spring.xml
 logging.level.com.gis=debug
 
 # file info
-server.file.path=F:\\test\\ngin\\${project.name}_data\\
+server.file.path=F:\\test\\ngin\\${project.name}_data
 
 # url info
 server.url.prefix=/data/
 
+# springboot\u914D\u7F6E\u9879\u76EE\u5916\u8BBF\u95EE\u9759\u6001\u8D44\u6E90
+# http://127.0.0.1:8200/data/aa.jpg
+# \u5339\u914D\u89C4\u5219
+spring.mvc.static-path-pattern=/${server.url.prefix}/**
+### \u5339\u914D\u8DEF\u5F84
+spring.resources.static-locations=file:\\${server.file.path}
+
+
 # swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
 swagger.package=com.gis.web.controller
 swagger.title=\u73E0\u6D77\u4E00\u952E\u667A\u6167-dev

+ 98 - 0
gis_application/src/main/resources/application-pro.properties

@@ -0,0 +1,98 @@
+
+#DB
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+
+# \u5BA2\u6237\u670D\u52A1\u5668
+spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+spring.datasource.druid.username=root
+spring.datasource.druid.password=20210429ZHgc$
+
+
+
+
+# \u521D\u59CB\u8FDE\u63A5\u6570
+spring.datasource.druid.initial-size=5
+# \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.min-idle=10
+# \u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.max-active=20
+# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
+spring.datasource.druid.max-wait=60000
+# \u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.min-evictable-idle-time-millis=30000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.max-evictable-idle-time-millis=90000
+# \u914D\u7F6E\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548
+spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.stat-view-servlet.enabled=true
+
+
+# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA4\u4E3A0\uFF09
+spring.redis.database=0
+spring.redis.host=127.0.0.1
+spring.redis.port=6379
+spring.redis.password=
+# \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4 \u5355\u4F4D ms\uFF08\u6BEB\u79D2\uFF09
+spring.redis.timeout=3000ms
+# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F8\u3002
+spring.redis.jedis.pool.max-idle=8
+#\u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F0\u3002
+spring.redis.jedis.pool.min-idle=0
+# \u5982\u679C\u8D4B\u503C\u4E3A-1\uFF0C\u5219\u8868\u793A\u4E0D\u9650\u5236\uFF1B\u5982\u679Cpool\u5DF2\u7ECF\u5206\u914D\u4E86maxActive\u4E2Ajedis\u5B9E\u4F8B\uFF0C\u5219\u6B64\u65F6pool\u7684\u72B6\u6001\u4E3Aexhausted(\u8017\u5C3D)\u3002
+spring.redis.jedis.pool.max-active=8
+# \u7B49\u5F85\u53EF\u7528\u8FDE\u63A5\u7684\u6700\u5927\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF0C\u9ED8\u8BA4\u503C\u4E3A-1\uFF0C\u8868\u793A\u6C38\u4E0D\u8D85\u65F6\u3002\u5982\u679C\u8D85\u8FC7\u7B49\u5F85\u65F6\u95F4\uFF0C\u5219\u76F4\u63A5\u629B\u51FAJedisConnectionException
+spring.redis.jedis.pool.max-wait=-1ms
+
+
+#log
+logging.path=/home/data/${project.name}_log
+logging.config=classpath:logback-spring.xml
+logging.level.com.gis=debug
+
+
+
+# file info
+server.file.path=/home/data/${project.name}_data
+
+# url prefix
+server.url.prefix=/data/
+
+# springboot\u914D\u7F6E\u9879\u76EE\u5916\u8BBF\u95EE\u9759\u6001\u8D44\u6E90
+# http://127.0.0.1:8200/data/aa.jpg
+# \u5339\u914D\u89C4\u5219
+#spring.mvc.static-path-pattern=/${server.url.prefix}/**
+# \u76EE\u524D\u4E0D\u7528\u540E\u7F00
+spring.mvc.static-path-pattern=/**
+### \u5339\u914D\u8DEF\u5F84
+spring.resources.static-locations=file:${server.file.path}
+
+# swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
+swagger.package=com.gis.web.controller
+swagger.title=\u73E0\u6D77\u4E00\u952E\u667A\u6167-pro
+swagger.description=${swagger.title}
+swagger.version=1.0
+
+
+# \u4E00\u952E\u667A\u6167api\u6587\u6863, \u63A5\u53E3\u8C03\u7528\u9700\u8981\u5E26\u4E0AapiKey\u3001sign
+iot.domain=http://1clintel.cn:9081
+iot.apiKey=gyVI8WoXfHuQcuWd
+iot.sign=cYM6a5PNIOE3PFxL
+
+
+
+
+# swagger login
+# \uFFFD\uFFFD\uFFFD\uFFFDbasic\uFFFD\uFFFD\u00BC\uFFFD\uFFFD\u05A4
+knife4j.basic.enable=true
+knife4j.basic.username=owen
+knife4j.basic.password=owen
+
+
+

+ 22 - 5
gis_application/src/main/resources/application-sit.properties

@@ -2,15 +2,15 @@
 #DB
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-#spring.datasource.druid.url=jdbc:mysql://localhost:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
-#spring.datasource.druid.username=root
-#spring.datasource.druid.password=4dkk2020test%
 
+# \u9879\u76EE\u6D4B\u8BD5\u670D\u52A1\u5668
 spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
 spring.datasource.druid.username=root
 spring.datasource.druid.password=4dkk2021testproject%
 
 
+
+
 # \u521D\u59CB\u8FDE\u63A5\u6570
 spring.datasource.druid.initial-size=5
 # \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
@@ -52,18 +52,27 @@ spring.redis.jedis.pool.max-wait=-1ms
 
 
 #log
-logging.path=/root/user/${project.name}_log
+logging.path=/root/data/${project.name}_log
 logging.config=classpath:logback-spring.xml
 logging.level.com.gis=debug
 
 
 
 # file info
-server.file.path=/root/user/${project.name}_data/
+server.file.path=/root/data/${project.name}_data
 
 # url prefix
 server.url.prefix=/data/
 
+# springboot\u914D\u7F6E\u9879\u76EE\u5916\u8BBF\u95EE\u9759\u6001\u8D44\u6E90
+# http://127.0.0.1:8200/data/aa.jpg
+# \u5339\u914D\u89C4\u5219
+#spring.mvc.static-path-pattern=/${server.url.prefix}/**
+# \u76EE\u524D\u4E0D\u7528\u540E\u7F00
+spring.mvc.static-path-pattern=/**
+### \u5339\u914D\u8DEF\u5F84
+spring.resources.static-locations=file:${server.file.path}
+
 # swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
 swagger.package=com.gis.web.controller
 swagger.title=\u73E0\u6D77\u4E00\u952E\u667A\u6167-sit
@@ -71,6 +80,14 @@ swagger.description=${swagger.title}
 swagger.version=1.0
 
 
+# \u4E00\u952E\u667A\u6167api\u6587\u6863, \u63A5\u53E3\u8C03\u7528\u9700\u8981\u5E26\u4E0AapiKey\u3001sign
+iot.domain=http://1clintel.cn:9081
+iot.apiKey=gyVI8WoXfHuQcuWd
+iot.sign=cYM6a5PNIOE3PFxL
+
+
+
+
 # swagger login
 # \uFFFD\uFFFD\uFFFD\uFFFDbasic\uFFFD\uFFFD\u00BC\uFFFD\uFFFD\u05A4
 #knife4j.basic.enable=true

+ 11 - 0
gis_application/src/main/resources/data/shutdown.sh

@@ -0,0 +1,11 @@
+#!/bin/bash
+RESOURCE_NAME=scene_wisdom.jar
+   tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
+
+if [ ${tpid} ]; then
+echo 'Kill Process!'
+kill -9 $tpid
+else
+echo 'Stop Success!'
+fi
+

+ 29 - 0
gis_application/src/main/resources/data/start.sh

@@ -0,0 +1,29 @@
+#!/bin/sh
+RESOURCE_NAME=scene_wisdom.jar
+tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
+if [ ${tpid} ]; then
+echo 'Stop Process...'
+kill -15 $tpid
+fi
+
+sleep 5
+
+tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
+
+if [ ${tpid} ]; then
+echo 'Kill Process!'
+kill -9 $tpid
+else
+echo 'Stop Success!'
+fi
+
+tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
+if [ ${tpid} ]; then
+    echo 'App is running.'
+else
+    echo 'App is NOT running.'
+fi
+rm -f tpid
+nohup java -jar ./$RESOURCE_NAME --spring.profiles.active=sit &
+echo $! > tpid
+echo Start Success!

+ 22 - 0
gis_common/src/main/java/com/gis/common/config/WebMvcConfig.java

@@ -10,6 +10,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.http.MediaType;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import java.util.ArrayList;
@@ -36,6 +37,27 @@ public class WebMvcConfig implements WebMvcConfigurer {
 
 
     /**
+     * 2021-04-27
+     * 开发静态资源
+     */
+
+    private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
+            "classpath:/META-INF/resources/", "classpath:/resources/",
+            "classpath:/static/", "classpath:/public/" };
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+        if (!registry.hasMappingForPattern("/webjars/**")) {
+            registry.addResourceHandler("/webjars/**").addResourceLocations(
+                    "classpath:/META-INF/resources/webjars/");
+        }
+        if (!registry.hasMappingForPattern("/**")) {
+            registry.addResourceHandler("/**").addResourceLocations(
+                    CLASSPATH_RESOURCE_LOCATIONS);
+        }
+    }
+
+
+    /**
      * fastJson相关设置
      * Dto包含json,需要配置不然会异常
      * @return

+ 7 - 11
gis_service/src/main/java/com/gis/service/impl/SceneServiceImpl.java

@@ -16,6 +16,7 @@ import com.gis.mapper.IBaseMapper;
 import com.gis.service.SceneService;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -26,7 +27,7 @@ import java.util.Set;
 /**
  * Created by owen on 2020/3/11 0011 16:16
  */
-@Log4j2
+@Slf4j
 @Service
 public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implements SceneService {
 
@@ -44,10 +45,7 @@ public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implem
         return entityMapper.findBySceneCode(m);
     }
 
-//    @Override
-//    public List<SceneEntity> search(ScenePageDto param) {
-//        return entityMapper.search(param);
-//    }
+
 
     @Override
     public Result<SceneEntity> search(PageDto param) {
@@ -73,8 +71,7 @@ public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implem
         String visionModelDataName = "vision.modeldata";
         // 注意网络下载会有缓存,必须加时间戳
 //        log.info("网络下载文件地址: {}", urlPath);
-//        String localBasePath = FILE_PATH + sceneCode;
-        String localBasePath = configConstant.serverBasePath + sceneCode;
+        String localBasePath = configConstant.serverBasePath + entity.getPath();
 
         // 2. 将vision.modeldata 转 vision.json
         String visionModelDataPath = localBasePath + "/" + visionModelDataName;
@@ -82,7 +79,6 @@ public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implem
             log.error("vision.modeldata不存在 : {}", visionModelDataPath);
             return Result.failure("vision.modeldata不存在");
         }
-//        log.info(visionModelDataName+ "下载完成");
 
 
         String visionJsonPath = localBasePath + "/vision.json";
@@ -155,12 +151,12 @@ public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implem
             return Result.failure("场景不存在");
         }
 
-        String basePath = configConstant.serverBasePath + sceneCode;
+        String basePath = configConstant.serverBasePath + entity.getPath();
+        log.info("basePath: {}", basePath);
 
 
         // 处理someData.json
 
-//        String someDataPath = entity.getPath() + "/someData.json";
         String someDataPath = basePath + "/someData.json";
         if (!FileUtil.isFile(someDataPath)) {
             log.error("someData.json文件不存在");
@@ -383,7 +379,7 @@ public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implem
         }
 
         log.info("out data.js : {}", dataJsJson);
-        String basePath = configConstant.serverBasePath + entity.getSceneCode();
+        String basePath = configConstant.serverBasePath + entity.getPath();
 
         String dataPath = basePath + "/hot/js/data.js";
         FileUtil.writeUtf8String(dataJsJson.toJSONString(), dataPath);

+ 4 - 4
gis_web/src/main/java/com/gis/web/controller/SceneController.java

@@ -67,7 +67,7 @@ public class SceneController extends BaseController {
         String basePath = configConstant.serverBasePath;
 
         for (SceneEntity entity: entities) {
-            FileUtil.del(basePath + entity.getSceneCode());
+            FileUtil.del(basePath + entity.getPath());
             sceneService.delete(entity);
         }
 
@@ -124,14 +124,14 @@ public class SceneController extends BaseController {
         // 转小写
         pinyinName =  StringUtils.lowerCase(pinyinName);
 
-
-        String basePath = configConstant.serverBasePath + sceneCode;
+        String path = entity.getPath();
+        String basePath = configConstant.serverBasePath + path;
         String savePath = basePath + "/edit/" + pinyinName;
         log.info("文件保存位置:" + savePath);
         FileUtil.writeFromStream(file.getInputStream(), savePath);
 
 
-        Object urlPath = configConstant.serverUrlPrefix + sceneCode + "/edit/" + pinyinName;
+        Object urlPath =  path + "/edit/" + pinyinName;
 
         log.info("文件写入成功: {}", urlPath);