Explorar o código

1、调整Maven结构

zk %!s(int64=2) %!d(string=hai) anos
pai
achega
4ffa1a24aa
Modificáronse 86 ficheiros con 2506 adicións e 2381 borrados
  1. 199 123
      pom.xml
  2. 0 27
      sckw-api/pom.xml
  3. 0 61
      sckw-api/sckw-app-api/pom.xml
  4. 0 14
      sckw-api/sckw-app-api/src/main/java/com/sckw/app/AppApiApplication.java
  5. 0 21
      sckw-api/sckw-app-api/src/main/java/com/sckw/app/controller/IndexController.java
  6. 0 5
      sckw-api/sckw-app-api/src/main/resources/banner.txt
  7. 0 37
      sckw-api/sckw-app-api/src/main/resources/bootstrap-dev.yml
  8. 0 10
      sckw-api/sckw-app-api/src/main/resources/bootstrap.yml
  9. 0 154
      sckw-api/sckw-app-api/src/main/resources/log4j2.xml
  10. 0 61
      sckw-api/sckw-web-api/pom.xml
  11. 0 14
      sckw-api/sckw-web-api/src/main/java/com/sckw/web/WebApiApplication.java
  12. 0 21
      sckw-api/sckw-web-api/src/main/java/com/sckw/web/controller/IndexController.java
  13. 0 5
      sckw-api/sckw-web-api/src/main/resources/banner.txt
  14. 0 37
      sckw-api/sckw-web-api/src/main/resources/bootstrap-dev.yml
  15. 0 10
      sckw-api/sckw-web-api/src/main/resources/bootstrap.yml
  16. 0 154
      sckw-api/sckw-web-api/src/main/resources/log4j2.xml
  17. 32 8
      sckw-auth/pom.xml
  18. 4 8
      sckw-auth/src/main/java/com/sckw/auth/AuthApplication.java
  19. 51 54
      sckw-auth/src/main/resources/bootstrap-dev.yml
  20. 1 1
      sckw-auth/src/main/resources/bootstrap.yml
  21. 199 0
      sckw-auth/src/main/resources/logback-spring.xml
  22. 11 14
      sckw-common/pom.xml
  23. 77 0
      sckw-common/sckw-common-bom/pom.xml
  24. 36 24
      sckw-common/sckw-common-core/pom.xml
  25. 4 16
      sckw-common/sckw-common-datasource/pom.xml
  26. 0 40
      sckw-common/sckw-common-elasticsearch/pom.xml
  27. 0 495
      sckw-common/sckw-common-elasticsearch/src/main/java/com/sckw/elasticsearch/service/es/EsUtils.java
  28. 0 114
      sckw-common/sckw-common-elasticsearch/src/main/java/com/sckw/elasticsearch/service/es/autoconfigure/EsAutoConfiguration.java
  29. 0 11
      sckw-common/sckw-common-elasticsearch/src/main/java/com/sckw/elasticsearch/service/es/constants/EsConstant.java
  30. 0 39
      sckw-common/sckw-common-elasticsearch/src/main/java/com/sckw/elasticsearch/service/es/properties/EsProperties.java
  31. 0 2
      sckw-common/sckw-common-elasticsearch/src/main/resources/META-INF/spring.factories
  32. 0 1
      sckw-common/sckw-common-elasticsearch/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  33. 9 19
      sckw-common/sckw-common-excel/pom.xml
  34. 31 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/CustomCellWriteHandler.java
  35. 46 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/ExcelImportListener.java
  36. 64 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/ExcelListener.java
  37. 46 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/ExcelSelectedResolve.java
  38. 30 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/LocalDateTimeConverter.java
  39. 21 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/RequestHolder.java
  40. 36 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/RowWriteHandlerImpl.java
  41. 60 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/SelectedSheetWriteHandler.java
  42. 24 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/SheetExcelData.java
  43. 2 9
      sckw-common/sckw-common-mongo/pom.xml
  44. 10 20
      sckw-common/sckw-common-redis/pom.xml
  45. 5 7
      sckw-common/sckw-common-remote/pom.xml
  46. 43 0
      sckw-common/sckw-common-seata/pom.xml
  47. 1 1
      sckw-common/sckw-common-seata/src/main/java/com/sckw/seata/config/GlobalTransactionalConfig.java
  48. 39 0
      sckw-common/sckw-common-sentinel/pom.xml
  49. 6 2
      sckw-common/sckw-common-sentinel/src/main/java/com/sckw/sentinel/CustomBlockExceptionHandler.java
  50. 3 12
      sckw-common/sckw-common-stream/pom.xml
  51. 7 5
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwSms.java
  52. 0 4
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/utils/SmsUtil.java
  53. 15 8
      sckw-common/sckw-common-xxljob/pom.xml
  54. 0 0
      sckw-common/sckw-common-xxljob/src/main/java/com/sckw/xxljob/config/XxlJobAutoConfiguration.java
  55. 0 0
      sckw-common/sckw-common-xxljob/src/main/resources/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  56. 26 22
      sckw-gateway/pom.xml
  57. 7 3
      sckw-gateway/src/main/resources/bootstrap.yml
  58. 199 0
      sckw-gateway/src/main/resources/logback-spring.xml
  59. 3 14
      sckw-modules-api/pom.xml
  60. 8 12
      sckw-modules-api/sckw-file-api/pom.xml
  61. 8 7
      sckw-modules-api/sckw-message-api/pom.xml
  62. 39 0
      sckw-modules-api/sckw-modules-bom/pom.xml
  63. 12 8
      sckw-modules-api/sckw-system-api/pom.xml
  64. 4 74
      sckw-modules/pom.xml
  65. 44 51
      sckw-modules/sckw-example/pom.xml
  66. 1 6
      sckw-modules/sckw-example/src/main/java/com/sckw/example/ExampleApplication.java
  67. 0 86
      sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/EsController.java
  68. 4 4
      sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/ExcelExportController.java
  69. 3 4
      sckw-modules/sckw-example/src/main/java/com/sckw/example/service/ExcelExportService.java
  70. 29 79
      sckw-modules/sckw-example/src/main/resources/bootstrap-dev.yml
  71. 184 30
      sckw-modules/sckw-example/src/main/resources/logback-spring.xml
  72. 50 33
      sckw-modules/sckw-file/pom.xml
  73. 1 9
      sckw-modules/sckw-file/src/main/java/com/sckw/file/FileApplication.java
  74. 17 51
      sckw-modules/sckw-file/src/main/resources/bootstrap-dev.yml
  75. 184 30
      sckw-modules/sckw-file/src/main/resources/logback-spring.xml
  76. 47 33
      sckw-modules/sckw-message/pom.xml
  77. 3 32
      sckw-modules/sckw-message/src/main/java/com/sckw/message/MessageApplication.java
  78. 12 4
      sckw-modules/sckw-message/src/main/java/com/sckw/message/controller/TestMqController.java
  79. 22 57
      sckw-modules/sckw-message/src/main/resources/bootstrap-dev.yml
  80. 1 15
      sckw-modules/sckw-message/src/main/resources/bootstrap.yml
  81. 199 0
      sckw-modules/sckw-message/src/main/resources/logback-spring.xml
  82. 73 5
      sckw-modules/sckw-system/pom.xml
  83. 1 5
      sckw-modules/sckw-system/src/main/java/com/sckw/system/SystemApplication.java
  84. 13 38
      sckw-modules/sckw-system/src/main/resources/bootstrap-dev.yml
  85. 1 1
      sckw-modules/sckw-system/src/main/resources/bootstrap.yml
  86. 199 0
      sckw-modules/sckw-system/src/main/resources/logback-spring.xml

+ 199 - 123
pom.xml

@@ -4,44 +4,59 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>sckw-service-platform</artifactId>
     <groupId>com.sckw</groupId>
+    <artifactId>sckw-service-platform</artifactId>
     <version>1.0.0</version>
 
-    <description>微服务</description>
-    <packaging>pom</packaging>
+    <name>sckw-service-platform</name>
+    <url>http://git.sckaiwu.cn/17358629955/sckw-service-platform.git</url>
+    <description>sckw-service-platform微服务系统</description>
 
     <modules>
-        <module>sckw-auth</module>
-        <module>sckw-common</module>
-        <module>sckw-gateway</module>
         <module>sckw-modules</module>
+        <module>sckw-common</module>
         <module>sckw-modules-api</module>
-        <module>sckw-api</module>
+        <module>sckw-auth</module>
+        <module>sckw-gateway</module>
     </modules>
+    <packaging>pom</packaging>
+
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
         <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
         <spring-boot.version>3.0.5</spring-boot.version>
         <spring-cloud.version>2022.0.0</spring-cloud.version>
         <spring-cloud-alibaba.version>2022.0.0.0-RC1</spring-cloud-alibaba.version>
+
         <!--不能使用3.2.0版本,会导致redisson里面的kryo版本降低值4.2.0-->
         <dubbo.version>3.2.2</dubbo.version>
-        <nacos-client.version>2.2.1</nacos-client.version>
         <snakeyaml.version>2.0</snakeyaml.version>
-        <slf4j-log4j12.version>2.0.7</slf4j-log4j12.version>
         <springdoc.version>2.1.0</springdoc.version>
         <redisson.version>3.21.3</redisson.version>
         <fastjson.version>2.0.32</fastjson.version>
+        <easyexcel.version>3.0.5</easyexcel.version>
+        <cglib.version>3.3.0</cglib.version>
+        <commons-io.version>2.11.0</commons-io.version>
+        <alicloud-sms.version>2.2.0.RELEASE</alicloud-sms.version>
+        <oss.version>2.2.0.RELEASE</oss.version>
+        <sentinel-csp.version>1.8.6</sentinel-csp.version>
+        <nacos-client.version>2.2.1</nacos-client.version>
         <hutool.version>5.8.18</hutool.version>
+        <mybatis-plus.version>3.5.3.1</mybatis-plus.version>
+        <dynamic-datasource.version>3.6.1</dynamic-datasource.version>
+        <latest.release.version>5.2.0</latest.release.version>
         <pagehelper.version>5.3.2</pagehelper.version>
         <pagehelper-spring-boot-starter.version>1.4.7</pagehelper-spring-boot-starter.version>
         <junit.version>4.13.2</junit.version>
+        <xxljob.version>2.4.0</xxljob.version>
     </properties>
+
     <dependencyManagement>
         <dependencies>
+
             <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-dependencies</artifactId>
@@ -74,6 +89,26 @@
                 </exclusions>
             </dependency>
 
+            <!-- common 的依赖配置-->
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <!-- modules 的依赖配置-->
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-modules-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+
+
             <!-- apache dubbo -->
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
@@ -88,32 +123,138 @@
                     </exclusion>
                 </exclusions>
             </dependency>
-<!--&lt;!&ndash;            处理序列化问题&ndash;&gt;-->
-<!--            <dependency>-->
-<!--                <groupId>com.caucho</groupId>-->
-<!--                <artifactId>hessian</artifactId>-->
-<!--            </dependency>-->
-            <!--redisson-->
+
+            <!-- yaml/yml配置文件 -->
+            <dependency>
+                <groupId>org.yaml</groupId>
+                <artifactId>snakeyaml</artifactId>
+                <version>${snakeyaml.version}</version>
+                <!--<scope>compile</scope>-->
+            </dependency>
+
+            <!--处理序列化问题-->
+            <dependency>
+                <groupId>com.caucho</groupId>
+                <artifactId>hessian</artifactId>
+            </dependency>
+
+            <!--reids操作-->
             <dependency>
                 <groupId>org.redisson</groupId>
                 <artifactId>redisson-spring-boot-starter</artifactId>
                 <version>${redisson.version}</version>
             </dependency>
+
+            <!--alibaba fastjson-->
             <dependency>
                 <groupId>com.alibaba</groupId>
                 <artifactId>fastjson</artifactId>
                 <version>${fastjson.version}</version>
             </dependency>
 
+            <!--alibaba EasyExcel导入导出-->
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>easyexcel</artifactId>
+                <version>${easyexcel.version}</version>
+            </dependency>
+
+            <!--cglib-->
+            <dependency>
+                <groupId>cglib</groupId>
+                <artifactId>cglib</artifactId>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.ow2.asm</groupId>
+                        <artifactId>asm</artifactId>
+                    </exclusion>
+                </exclusions>
+                <version>${cglib.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>commons-io</groupId>
+                <artifactId>commons-io</artifactId>
+                <version>${commons-io.version}</version>
+            </dependency>
+
+            <!--alibaba 短信-->
+            <dependency>
+                <groupId>com.alibaba.cloud</groupId>
+                <artifactId>spring-cloud-alicloud-sms</artifactId>
+                <version>${alicloud-sms.version}</version>
+            </dependency>
+
+            <!--alibaba oss-->
+            <dependency>
+                <groupId>com.alibaba.cloud</groupId>
+                <artifactId>spring-cloud-starter-alicloud-oss</artifactId>
+                <version>${oss.version}</version>
+            </dependency>
+
+            <!-- Sentinel Datasource Nacos 持久化存储-->
+            <dependency>
+                <groupId>com.alibaba.csp</groupId>
+                <artifactId>sentinel-datasource-nacos</artifactId>
+                <version>${sentinel-csp.version}</version>
+            </dependency>
+
+            <!--nacos-->
+            <dependency>
+                <groupId>com.alibaba.nacos</groupId>
+                <artifactId>nacos-client</artifactId>
+                <version>${nacos-client.version}</version>
+            </dependency>
+
+
+            <!-- 上面排除掉了springcloud默认seata版本,此处引入和seata-server版本对应的seata包-->
+            <dependency>
+                <groupId>io.seata</groupId>
+                <artifactId>seata-spring-boot-starter</artifactId>
+                <version>1.6.1</version>
+            </dependency>
+
+            <!--jdk9+ 以上需要手动添加 JAXB能够使用Jackson对JAXB注解-->
+            <dependency>
+                <groupId>javax.xml.bind</groupId>
+                <artifactId>jaxb-api</artifactId>
+                <version>2.3.1</version>
+            </dependency>
+
             <!--hutool-->
             <dependency>
                 <groupId>cn.hutool</groupId>
-                <artifactId>hutool-bom</artifactId>
+                <artifactId>hutool-http</artifactId>
                 <version>${hutool.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>cn.hutool</groupId>
+                <artifactId>hutool-extra</artifactId>
+                <version>${hutool.version}</version>
+            </dependency>
+
+
+            <!--mybatis-plus 依赖-->
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-boot-starter</artifactId>
+                <version>${mybatis-plus.version}</version>
+            </dependency>
+            <!--多数据源-->
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+                <version>${dynamic-datasource.version}</version>
             </dependency>
 
+            <!--ShardingSphere-JDBC-->
+            <dependency>
+                <groupId>org.apache.shardingsphere</groupId>
+                <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
+                <version>${latest.release.version}</version>
+            </dependency>
+
+            <!--分页-->
             <dependency>
                 <groupId>com.github.pagehelper</groupId>
                 <artifactId>pagehelper</artifactId>
@@ -130,116 +271,51 @@
                 <version>${pagehelper-spring-boot-starter.version}</version>
             </dependency>
 
-	    <dependency>
+            <!--junit-->
+            <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
                 <scope>test</scope>
             </dependency>
-        </dependencies>
-    </dependencyManagement>
 
-    <dependencies>
-
-        <!--alibaba oss-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alicloud-oss</artifactId>
-            <version>2.2.0.RELEASE</version>
-        </dependency>
-        <!--jdk9+ 以上需要手动添加-->
-        <dependency>
-            <groupId>javax.xml.bind</groupId>
-            <artifactId>jaxb-api</artifactId>
-            <version>2.3.1</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-loadbalancer</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-configuration-processor</artifactId>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter</artifactId>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-autoconfigure</artifactId>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <!--SpringCloud-sentinel集成-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
-        </dependency>
-        <!-- Sentinel Datasource Nacos 持久化存储-->
-        <dependency>
-            <groupId>com.alibaba.csp</groupId>
-            <artifactId>sentinel-datasource-nacos</artifactId>
-<!--            <version>1.8.0</version>-->
-        </dependency>
-        <!-- 注意一定要引入对版本,要引入spring-cloud版本seata,而不是springboot版本的seata-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
-            <!-- 排除掉springcloud默认的seata版本,以免版本不一致出现问题-->
-            <exclusions>
-                <exclusion>
-                    <groupId>io.seata</groupId>
-                    <artifactId>seata-spring-boot-starter</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>io.seata</groupId>
-                    <artifactId>seata-all</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <!-- 上面排除掉了springcloud默认seata版本,此处引入和seata-server版本对应的seata包-->
-        <dependency>
-            <groupId>io.seata</groupId>
-            <artifactId>seata-spring-boot-starter</artifactId>
-            <version>1.6.1</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tomcat.embed</groupId>
-            <artifactId>tomcat-embed-core</artifactId>
-            <version>10.1.7</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-webmvc</artifactId>
-        </dependency>
-
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-<!--                <version>3.5.2</version>-->
-                <configuration>
-                    <source>17</source>
-                    <target>17</target>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+            <!--Lombok-->
+            <dependency>
+                <groupId>org.projectlombok</groupId>
+                <artifactId>lombok</artifactId>
+                <version>1.18.26</version>
+                <!--<scope>provided</scope>-->
+            </dependency>
+
+            <dependency>
+                <groupId>org.apache.tomcat.embed</groupId>
+                <artifactId>tomcat-embed-core</artifactId>
+                <version>10.1.7</version>
+            </dependency>
 
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-webmvc</artifactId>
+            </dependency>
+
+            <!--xxx-job-->
+            <dependency>
+                <groupId>com.xuxueli</groupId>
+                <artifactId>xxl-job-core</artifactId>
+                <version>${xxljob.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.aspectj</groupId>
+                <artifactId>aspectjweaver</artifactId>
+                <version>1.9.19</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.bouncycastle</groupId>
+                <artifactId>bcprov-jdk18on</artifactId>
+                <version>1.74</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
 </project>

+ 0 - 27
sckw-api/pom.xml

@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>com.sckw</groupId>
-        <artifactId>sckw-service-platform</artifactId>
-        <version>1.0.0</version>
-    </parent>
-
-    <packaging>pom</packaging>
-    <artifactId>sckw-api</artifactId>
-    <description>api接口模块</description>
-
-    <modules>
-        <module>sckw-web-api</module>
-        <module>sckw-app-api</module>
-    </modules>
-    <properties>
-        <maven.compiler.source>17</maven.compiler.source>
-        <maven.compiler.target>17</maven.compiler.target>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    </properties>
-
-
-</project>

+ 0 - 61
sckw-api/sckw-app-api/pom.xml

@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>com.sckw</groupId>
-        <artifactId>sckw-service-platform</artifactId>
-        <version>1.0.0</version>
-        <relativePath>../../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>sckw-app-api</artifactId>
-    <packaging>jar</packaging>
-    <description>app接口模块</description>
-
-    <properties>
-        <maven.compiler.source>17</maven.compiler.source>
-        <maven.compiler.target>17</maven.compiler.target>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-remote</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-redis</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <!--注册中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-        <!--配置中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
-        </dependency>
-    </dependencies>
-</project>

+ 0 - 14
sckw-api/sckw-app-api/src/main/java/com/sckw/app/AppApiApplication.java

@@ -1,14 +0,0 @@
-package com.sckw.app;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-
-@EnableDiscoveryClient
-@SpringBootApplication
-public class AppApiApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(AppApiApplication.class, args);
-    }
-}

+ 0 - 21
sckw-api/sckw-app-api/src/main/java/com/sckw/app/controller/IndexController.java

@@ -1,21 +0,0 @@
-package com.sckw.app.controller;
-
-import com.sckw.core.utils.R;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.time.LocalDateTime;
-
-/**
- * @Author xucaiqin
- * @date 2023-06-05 15:02:23
- */
-@RestController
-@RequestMapping("/index")
-public class IndexController {
-    @GetMapping
-    public R<String> get() {
-        return R.ok(LocalDateTime.now().toString());
-    }
-}

+ 0 - 5
sckw-api/sckw-app-api/src/main/resources/banner.txt

@@ -1,5 +0,0 @@
-====================================================================================================================
-
-                    欢迎使用 [sckw-app-api] 开物供应链服务平台-系统服务 - Powered By https://www.xxxx.com
-
-====================================================================================================================

+ 0 - 37
sckw-api/sckw-app-api/src/main/resources/bootstrap-dev.yml

@@ -1,37 +0,0 @@
-spring:
-  cloud:
-    nacos:
-      discovery:
-        # 服务注册地址
-        server-addr: 127.0.0.1:8848
-        # 命名空间
-        namespace: sckw-service-platform-dev
-        # 共享配置
-        group: sckw-service-platform
-      config:
-        # 配置中心地址
-        server-addr: 127.0.0.1:8848
-        # 配置文件格式
-        file-extension: yaml
-        # 命名空间
-        namespace: sckw-service-platform-dev
-        # 共享配置
-        group: sckw-service-platform
-
-# dubbo
-dubbo:
-  application:
-    # 此处没有延用spring.application.name是因为当前项目本身也会注册到nacos中,如果dubbo也延用相同的名称,在nacos服务里会看到注册的producer-server服务数为2
-    name: system-appapi-server
-    qos-port: 8811
-  protocol:
-    name: dubbo
-    port: -1
-  registry:
-    # 配置dubbo的注册中心为nacos
-    address: nacos://${spring.cloud.nacos.discovery.server-addr}
-    group: ${spring.cloud.nacos.config.group}
-    protocol: nacos
-    #use-as-config-center: false
-    #use-as-metadata-center: false
-

+ 0 - 10
sckw-api/sckw-app-api/src/main/resources/bootstrap.yml

@@ -1,10 +0,0 @@
-server:
-  port: 8010
-
-spring:
-  application:
-    name: sckw-app-api
-  profiles:
-    active: ${DEPLOY_MODE:dev}
-  main:
-    allow-bean-definition-overriding: true

+ 0 - 154
sckw-api/sckw-app-api/src/main/resources/log4j2.xml

@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration status="info" monitorInterval="30">
-    <properties>
-        <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符 -->
-        <!-- %logger{36} 表示 Logger 名字最长36个字符 -->
-        <property name="LOG_PATTERN"
-                  value="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%t]}{faint} %clr{%c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx"/>
-        <property name="LOG_WITHOUT_COLOR_PATTERN"
-                  value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${sys:PID}--- [%t] %c{1.} : %m%n%xwEx"/>
-        <property name="LOG_PATH" value="logs/sckw-app-api"/>
-    </properties>
-    <!--DEBUG<INFO<WARNING<ERROR<CRITICAL-->
-    <!-- 先定义所有的appender(附加器)-->
-    <appenders>
-        <!-- 输出控制台的配置 -->
-        <Console name="Console" target="SYSTEM_OUT">
-            <!-- 输出日志的格式 -->
-            <PatternLayout pattern="${LOG_PATTERN}"/>
-        </Console>
-
-        <!--all级别日志-->
-        <RollingFile name="allFileAppender"
-                     fileName="${LOG_PATH}/all.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/all-%d{yyyy-MM-dd}-%i.log.gz">
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <DefaultRolloverStrategy max="100"/>
-        </RollingFile>
-
-        <!--debug级别日志-->
-        <RollingFile name="debugFileAppender"
-                     fileName="${LOG_PATH}/debug.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">
-            <Filters>
-                <!--过滤掉info及更高级别日志-->
-                <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
-            </Filters>
-            <!--设置日志格式-->
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <DefaultRolloverStrategy max="100"/>
-        </RollingFile>
-
-        <!--info级别日志-->
-        <RollingFile name="infoFileAppender"
-                     fileName="${LOG_PATH}/info.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
-            <Filters>
-                <!--过滤掉warn及更高级别日志-->
-                <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
-            </Filters>
-            <!--设置日志格式-->
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <!--<DefaultRolloverStrategy max="100"/>-->
-        </RollingFile>
-
-        <!--warn级别日志-->
-        <RollingFile name="warnFileAppender"
-                     fileName="${LOG_PATH}/warn.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
-            <Filters>
-                <!--过滤掉error及更高级别日志-->
-                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
-            </Filters>
-            <!--设置日志格式-->
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <DefaultRolloverStrategy max="100"/>
-        </RollingFile>
-
-        <!--error及更高级别日志-->
-        <RollingFile name="errorFileAppender"
-                     fileName="${LOG_PATH}/error.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
-            <!--设置日志格式-->
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <DefaultRolloverStrategy max="100"/>
-        </RollingFile>
-
-        <!--json格式error级别日志-->
-        <RollingFile name="errorJsonAppender"
-                     fileName="${LOG_PATH}/error-json.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/error-json-%d{yyyy-MM-dd}-%i.log.gz">
-            <JSONLayout compact="true" eventEol="true" locationInfo="true"/>
-            <Policies>
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
-            </Policies>
-        </RollingFile>
-
-    </appenders>
-
-    <loggers>
-        <root level="debug">
-            <AppenderRef ref="allFileAppender" level="all"/>
-            <AppenderRef ref="debugFileAppender" level="debug"/>
-            <AppenderRef ref="infoFileAppender" level="info"/>
-            <AppenderRef ref="warnFileAppender" level="warn"/>
-            <AppenderRef ref="errorFileAppender" level="error"/>
-            <AppenderRef ref="errorJsonAppender" level="error"/>
-            <appender-ref ref="Console" level="info"/>
-        </root>
-        <Logger name="org.springframework" level="info"/>
-        <Logger name="com.alibaba" level="info"/>
-        <Logger name="com.baomidou" level="info"/>
-    </loggers>
-
-</configuration>

+ 0 - 61
sckw-api/sckw-web-api/pom.xml

@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>com.sckw</groupId>
-        <artifactId>sckw-service-platform</artifactId>
-        <version>1.0.0</version>
-        <relativePath>../../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>sckw-web-api</artifactId>
-    <packaging>jar</packaging>
-    <description>web接口模块</description>
-
-    <properties>
-        <maven.compiler.source>17</maven.compiler.source>
-        <maven.compiler.target>17</maven.compiler.target>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-remote</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-redis</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <!--注册中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-        <!--配置中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
-        </dependency>
-    </dependencies>
-</project>

+ 0 - 14
sckw-api/sckw-web-api/src/main/java/com/sckw/web/WebApiApplication.java

@@ -1,14 +0,0 @@
-package com.sckw.web;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-
-@EnableDiscoveryClient
-@SpringBootApplication
-public class WebApiApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(WebApiApplication.class, args);
-    }
-}

+ 0 - 21
sckw-api/sckw-web-api/src/main/java/com/sckw/web/controller/IndexController.java

@@ -1,21 +0,0 @@
-package com.sckw.web.controller;
-
-import com.sckw.core.utils.R;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.time.LocalDateTime;
-
-/**
- * @Author xucaiqin
- * @date 2023-06-05 15:02:23
- */
-@RestController
-@RequestMapping("/index")
-public class IndexController {
-    @GetMapping
-    public R<String> get() {
-        return R.ok(LocalDateTime.now().toString());
-    }
-}

+ 0 - 5
sckw-api/sckw-web-api/src/main/resources/banner.txt

@@ -1,5 +0,0 @@
-====================================================================================================================
-
-                    欢迎使用 [sckw-web-api] 开物供应链服务平台-系统服务 - Powered By https://www.xxxx.com
-
-====================================================================================================================

+ 0 - 37
sckw-api/sckw-web-api/src/main/resources/bootstrap-dev.yml

@@ -1,37 +0,0 @@
-spring:
-  cloud:
-    nacos:
-      discovery:
-        # 服务注册地址
-        server-addr: 127.0.0.1:8848
-        # 命名空间
-        namespace: sckw-service-platform-dev
-        # 共享配置
-        group: sckw-service-platform
-      config:
-        # 配置中心地址
-        server-addr: 127.0.0.1:8848
-        # 配置文件格式
-        file-extension: yaml
-        # 命名空间
-        namespace: sckw-service-platform-dev
-        # 共享配置
-        group: sckw-service-platform
-
-# dubbo
-dubbo:
-  application:
-    # 此处没有延用spring.application.name是因为当前项目本身也会注册到nacos中,如果dubbo也延用相同的名称,在nacos服务里会看到注册的producer-server服务数为2
-    name: system-webapi-server
-    qos-port: 8821
-  protocol:
-    name: dubbo
-    port: -1
-  registry:
-    # 配置dubbo的注册中心为nacos
-    address: nacos://${spring.cloud.nacos.discovery.server-addr}
-    group: ${spring.cloud.nacos.config.group}
-    protocol: nacos
-    #use-as-config-center: false
-    #use-as-metadata-center: false
-

+ 0 - 10
sckw-api/sckw-web-api/src/main/resources/bootstrap.yml

@@ -1,10 +0,0 @@
-server:
-  port: 8020
-
-spring:
-  application:
-    name: sckw-web-api
-  profiles:
-    active: ${DEPLOY_MODE:dev}
-  main:
-    allow-bean-definition-overriding: true

+ 0 - 154
sckw-api/sckw-web-api/src/main/resources/log4j2.xml

@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration status="info" monitorInterval="30">
-    <properties>
-        <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符 -->
-        <!-- %logger{36} 表示 Logger 名字最长36个字符 -->
-        <property name="LOG_PATTERN"
-                  value="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%t]}{faint} %clr{%c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx"/>
-        <property name="LOG_WITHOUT_COLOR_PATTERN"
-                  value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${sys:PID}--- [%t] %c{1.} : %m%n%xwEx"/>
-        <property name="LOG_PATH" value="logs/sckw-web-api"/>
-    </properties>
-    <!--DEBUG<INFO<WARNING<ERROR<CRITICAL-->
-    <!-- 先定义所有的appender(附加器)-->
-    <appenders>
-        <!-- 输出控制台的配置 -->
-        <Console name="Console" target="SYSTEM_OUT">
-            <!-- 输出日志的格式 -->
-            <PatternLayout pattern="${LOG_PATTERN}"/>
-        </Console>
-
-        <!--all级别日志-->
-        <RollingFile name="allFileAppender"
-                     fileName="${LOG_PATH}/all.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/all-%d{yyyy-MM-dd}-%i.log.gz">
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <DefaultRolloverStrategy max="100"/>
-        </RollingFile>
-
-        <!--debug级别日志-->
-        <RollingFile name="debugFileAppender"
-                     fileName="${LOG_PATH}/debug.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">
-            <Filters>
-                <!--过滤掉info及更高级别日志-->
-                <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
-            </Filters>
-            <!--设置日志格式-->
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <DefaultRolloverStrategy max="100"/>
-        </RollingFile>
-
-        <!--info级别日志-->
-        <RollingFile name="infoFileAppender"
-                     fileName="${LOG_PATH}/info.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
-            <Filters>
-                <!--过滤掉warn及更高级别日志-->
-                <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
-            </Filters>
-            <!--设置日志格式-->
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <!--<DefaultRolloverStrategy max="100"/>-->
-        </RollingFile>
-
-        <!--warn级别日志-->
-        <RollingFile name="warnFileAppender"
-                     fileName="${LOG_PATH}/warn.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
-            <Filters>
-                <!--过滤掉error及更高级别日志-->
-                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
-            </Filters>
-            <!--设置日志格式-->
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <DefaultRolloverStrategy max="100"/>
-        </RollingFile>
-
-        <!--error及更高级别日志-->
-        <RollingFile name="errorFileAppender"
-                     fileName="${LOG_PATH}/error.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
-            <!--设置日志格式-->
-            <PatternLayout pattern="${LOG_WITHOUT_COLOR_PATTERN}"/>
-            <Policies>
-                <!-- 设置日志文件切分参数 -->
-                <!--<OnStartupTriggeringPolicy/>-->
-                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
-                <TimeBasedTriggeringPolicy/>
-            </Policies>
-            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
-            <DefaultRolloverStrategy max="100"/>
-        </RollingFile>
-
-        <!--json格式error级别日志-->
-        <RollingFile name="errorJsonAppender"
-                     fileName="${LOG_PATH}/error-json.log"
-                     filePattern="${LOG_PATH}/$${date:yyyy-MM}/error-json-%d{yyyy-MM-dd}-%i.log.gz">
-            <JSONLayout compact="true" eventEol="true" locationInfo="true"/>
-            <Policies>
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
-            </Policies>
-        </RollingFile>
-
-    </appenders>
-
-    <loggers>
-        <root level="debug">
-            <AppenderRef ref="allFileAppender" level="all"/>
-            <AppenderRef ref="debugFileAppender" level="debug"/>
-            <AppenderRef ref="infoFileAppender" level="info"/>
-            <AppenderRef ref="warnFileAppender" level="warn"/>
-            <AppenderRef ref="errorFileAppender" level="error"/>
-            <AppenderRef ref="errorJsonAppender" level="error"/>
-            <appender-ref ref="Console" level="info"/>
-        </root>
-        <Logger name="org.springframework" level="info"/>
-        <Logger name="com.alibaba" level="info"/>
-        <Logger name="com.baomidou" level="info"/>
-    </loggers>
-
-</configuration>

+ 32 - 8
sckw-auth/pom.xml

@@ -22,41 +22,65 @@
 
 
     <dependencies>
+        <!-- 核心模块 -->
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-remote</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-redis</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-system-api</artifactId>
-            <version>1.0.0</version>
-            <scope>compile</scope>
         </dependency>
+
         <!--web-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-loadbalancer</artifactId>
+        </dependency>
+
         <!--注册中心客户端-->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
         </dependency>
+
         <!--配置中心客户端-->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
-        </dependency>
 
     </dependencies>
 

+ 4 - 8
sckw-auth/src/main/java/com/sckw/auth/AuthApplication.java

@@ -3,6 +3,7 @@ package com.sckw.auth;
 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.boot.web.servlet.ServletComponentScan;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
@@ -14,17 +15,12 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 @EnableDubbo
 @EnableFeignClients({"com.sckw.*.api.feign"})
 @EnableDiscoveryClient
-@SpringBootApplication(scanBasePackages = {"com.sckw.core.*", "com.sckw.redis","com.sckw.auth.*"})
-@ServletComponentScan("com.sckw.core.filter")
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
 public class AuthApplication {
     public static void main(String[] args) {
         // 关闭nacos日志
-        System.setProperty("nacos.logging.default.config.enabled", "false");
-        try {
-            SpringApplication.run(AuthApplication.class, args);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        //System.setProperty("nacos.logging.default.config.enabled", "false");
+        SpringApplication.run(AuthApplication.class, args);
     }
 }
 

+ 51 - 54
sckw-auth/src/main/resources/bootstrap-dev.yml

@@ -5,7 +5,7 @@ spring:
         # 服务注册地址
         server-addr: 10.10.10.230:8848
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
       config:
@@ -14,74 +14,71 @@ spring:
         # 配置文件格式
         file-extension: yaml
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
+
+  #redis
+  redis:
+    #redis机器ip
+    host: 10.10.10.230
+    #redis端口
+    port: 6379
+    #redis密码
+    password: test
+    #数据库
+    database: 1
+    #redis超时时间(毫秒),如果不设置,取默认值2000
+    timeout: 10000
+    #最大空闲数
+    maxIdle: 300
+    #连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
+    #maxActive=600
+    #控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性
+    maxTotal: 1000
+    #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
+    maxWaitMillis: 1000
+    #连接的最小空闲时间 默认1800000毫秒(30分钟)
+    minEvictableIdleTimeMillis: 300000
+    #每次释放连接的最大数目,默认3
+    numTestsPerEvictionRun: 1024
+    #逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
+    timeBetweenEvictionRunsMillis: 30000
+    #是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
+    testOnBorrow: true
+    #在空闲时检查有效性, 默认false
+    testWhileIdle: true
+    #连接池最大连接数(如果配置<=0,则没有限制)
+    jedis:
+      pool:
+        max-active: -1
+
   data:
     redis:
-      #redis机器ip
-      host: 127.0.0.1
-      #redis端口
+      host: 10.10.10.230
+      password: test
       port: 6379
-      #redis密码
-      password:
-      #数据库
-      database: 1
-      #redis超时时间(毫秒),如果不设置,取默认值2000
+      database: 13
       timeout: 10000
-      #最大空闲数
-      maxIdle: 300
-        #连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
-        #maxActive=600
-        #控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性
-      maxTotal: 1000
-        #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
-      maxWaitMillis: 1000
-        #连接的最小空闲时间 默认1800000毫秒(30分钟)
-      minEvictableIdleTimeMillis: 300000
-        #每次释放连接的最大数目,默认3
-      numTestsPerEvictionRun: 1024
-        #逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
-      timeBetweenEvictionRunsMillis: 30000
-        #是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
-      testOnBorrow: true
-        #在空闲时检查有效性, 默认false
-      testWhileIdle: true
-        #连接池最大连接数(如果配置<=0,则没有限制)
-      jedis:
-        pool:
-          max-active: -1
-  datasource:
-    dynamic:
-      primary: master #设置默认的数据源或者数据源组,默认值即为master
-      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
-      datasource:
-        master:
-          url: jdbc:mysql://47.108.162.14:3306/sckw_system?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
-          username: root
-          password: Yy123...
-          driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
-        slave_1:
-          url: jdbc:mysql://47.108.162.14:3306/wph_system?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
-          username: root
-          password: Yy123...
-          driver-class-name: com.mysql.jdbc.Driver
 
+# dubbo
 dubbo:
   application:
+    # 此处没有延用spring.application.name是因为当前项目本身也会注册到nacos中,如果dubbo也延用相同的名称,在nacos服务里会看到注册的producer-server服务数为2
     name: auth-dubbo-server
-    # 该配置在producer-server中是没有的,但是在consumer这里要配置一下
-    # 如果不配置这个QOS的端口,它会延用dubbo自动生成的端口,在启动的时候,QOS注册就会提示该端口已经被使用的错误
-    # 虽然启动时有打印端口已经被使用的错误,但是依旧可以正常启动服务,并且dubbo也可以正常调用,但是为了解决启动报错还是加上这个端口
-    # 这个也是apache官方给出的解决方案,这个端口不能给-1,它不会自动找到一个可用的端口,给-1会报错,端口1-65535自己选择一个
-    qos-port: 3334
+    parameters:
+      group: ${spring.cloud.nacos.discovery.group}
+      namespace: ${spring.cloud.nacos.discovery.namespace}
   protocol:
     name: dubbo
-    # port为-1表示自动找一个可用的端口
     port: -1
   registry:
+    # 配置dubbo的注册中心为nacos
     address: nacos://${spring.cloud.nacos.discovery.server-addr}
-    group: ${spring.cloud.nacos.config.group}
+    group: ${spring.cloud.nacos.discovery.group}
+    namespace: ${spring.cloud.nacos.discovery.namespace}
     protocol: nacos
+    #use-as-config-center: false
+    #use-as-metadata-center: false
 
 links: /auth/login,/kwsUser/resetPassword,/kwsUser/updatePassword,/kwsUser/forgetPassword

+ 1 - 1
sckw-auth/src/main/resources/bootstrap.yml

@@ -3,7 +3,7 @@ server:
 
 spring:
   application:
-    name: sckw-auth-czh
+    name: sckw-auth
   profiles:
     active: ${DEPLOY_MODE:dev}
   main:

+ 199 - 0
sckw-auth/src/main/resources/logback-spring.xml

@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
+                 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration  scan="true" scanPeriod="10 seconds">
+    <contextName>logback</contextName>
+    <springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue="service"/>
+
+    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
+    <property name="log.path" value="/logs/${applicationName}" />
+
+    <!--0. 日志格式和颜色渲染 -->
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 输出到控制台-->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--2. 输出到文档-->
+    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_debug.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志归档 -->
+            <fileNamePattern>${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录debug级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_info.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 每天日志归档路径以及格式 -->
+            <fileNamePattern>${log.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录info级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_warn.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录warn级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_error.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录ERROR级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!--
+        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
+        以及指定<appender>。<logger>仅有一个name属性,
+        一个可选的level和一个可选的addtivity属性。
+        name:用来指定受此logger约束的某一个包或者具体的某一个类。
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+              还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
+              如果未设置此属性,那么当前logger将会继承上级的级别。
+        addtivity:是否向上级logger传递打印信息。默认是true。
+        <logger name="org.springframework.web" level="info"/>
+        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
+    -->
+    <!-- hibernate logger -->
+    <logger name="com.atguigu" level="debug" />
+    <!-- Spring framework logger -->
+    <logger name="org.springframework" level="debug" additivity="false"></logger>
+
+
+    <!--
+        使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
+        第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
+        第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
+        【logging.level.org.mybatis=debug logging.level.dao=debug】
+     -->
+
+    <!--
+        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+        不能设置为INHERITED或者同义词NULL。默认是DEBUG
+        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+    -->
+
+    <!-- 4. 最终的策略 -->
+    <!-- 4.1 开发环境:打印控制台-->
+    <springProfile name="dev">
+        <logger name="com.sdcm.pmp" level="debug"/>
+    </springProfile>
+
+    <root level="info">
+        <appender-ref ref="CONSOLE" />
+        <appender-ref ref="DEBUG_FILE" />
+        <appender-ref ref="INFO_FILE" />
+        <appender-ref ref="WARN_FILE" />
+        <appender-ref ref="ERROR_FILE" />
+    </root>
+
+    <!-- 4.2 生产环境:输出到文档 -->
+    <springProfile name="pro">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="WARN_FILE" />
+        </root>
+    </springProfile>
+
+</configuration>

+ 11 - 14
sckw-common/pom.xml

@@ -2,35 +2,32 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-service-platform</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
-    <packaging>pom</packaging>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-common</artifactId>
-    <version>1.0.0</version>
-    <description>通用模块</description>
+    <packaging>pom</packaging>
     <modules>
+        <module>sckw-common-bom</module>
         <module>sckw-common-core</module>
-        <module>sckw-common-datasource</module>
-        <module>sckw-common-redis</module>
+        <module>sckw-common-mongo</module>
+        <module>sckw-common-xxljob</module>
         <module>sckw-common-stream</module>
-        <module>sckw-common-elasticsearch</module>
-        <module>sckw-common-excel</module>
         <module>sckw-common-remote</module>
-        <module>sckw-common-xxl-job</module>
-        <module>sckw-common-mongo</module>
+        <module>sckw-common-redis</module>
+        <module>sckw-common-excel</module>
+        <module>sckw-common-datasource</module>
+        <module>sckw-common-sentinel</module>
+        <module>sckw-common-seata</module>
     </modules>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
-
 </project>

+ 77 - 0
sckw-common/sckw-common-bom/pom.xml

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.sckw</groupId>
+    <artifactId>sckw-common-bom</artifactId>
+    <version>1.0.0</version>
+    <packaging>pom</packaging>
+    <description>common依赖项</description>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- 核心模块 -->
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-core</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-mongo</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-xxljob</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-stream</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-remote</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-redis</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-excel</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-datasource</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-sentinel</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-common-seata</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>

+ 36 - 24
sckw-common/sckw-common-core/pom.xml

@@ -2,34 +2,32 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-common-core</artifactId>
-    <version>1.0.0</version>
-    <description>核心模块</description>
+    <description>核心基础</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
-
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-autoconfigure</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-commons</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter</artifactId>
@@ -40,6 +38,7 @@
                 </exclusion>
             </exclusions>
         </dependency>
+
         <!--log4j2日志-->
         <!--全局日志排除-->
         <dependency>
@@ -52,11 +51,13 @@
                 </exclusion>
             </exclusions>
         </dependency>
+
         <!--采用log4j2 日志输出方式-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-log4j2</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
@@ -66,22 +67,27 @@
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-annotations</artifactId>
         </dependency>
+
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
         </dependency>
+
         <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper</artifactId>
         </dependency>
+
         <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
         </dependency>
+
         <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper-spring-boot-starter</artifactId>
         </dependency>
+
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-http</artifactId>
@@ -96,39 +102,45 @@
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.apache.tomcat.embed</groupId>
             <artifactId>tomcat-embed-core</artifactId>
         </dependency>
+
         <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-redis</artifactId>
-            <version>1.0.0</version>
+            <groupId>org.apache.tomcat.embed</groupId>
+            <artifactId>tomcat-embed-core</artifactId>
         </dependency>
+
         <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-datasource</artifactId>
-            <version>1.0.0</version>
+            <groupId>jakarta.validation</groupId>
+            <artifactId>jakarta.validation-api</artifactId>
         </dependency>
+
         <dependency>
-            <groupId>org.apache.tomcat.embed</groupId>
-            <artifactId>tomcat-embed-core</artifactId>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
         </dependency>
+
         <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-redis</artifactId>
-            <version>1.0.0</version>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
         </dependency>
+
         <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-datasource</artifactId>
-            <version>1.0.0</version>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjweaver</artifactId>
         </dependency>
+
         <dependency>
-            <groupId>jakarta.validation</groupId>
-            <artifactId>jakarta.validation-api</artifactId>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk18on</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-redis</artifactId>
+        </dependency>
     </dependencies>
-
 </project>

+ 4 - 16
sckw-common/sckw-common-datasource/pom.xml

@@ -2,30 +2,21 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-common-datasource</artifactId>
-    <version>1.0.0</version>
-
-    <description>多数据源</description>
+    <description>数据库连接</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <mysql.version>8.0.30</mysql.version>
-        <mybatis-plus.version>3.5.3.1</mybatis-plus.version>
-        <dynamic-datasource.version>3.6.1</dynamic-datasource.version>
-        <latest.release.version>5.2.0</latest.release.version>
     </properties>
 
-
     <dependencies>
         <!--mysql-->
         <dependency>
@@ -37,21 +28,18 @@
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
-            <version>${mybatis-plus.version}</version>
         </dependency>
+
         <!--多数据源-->
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
-            <version>${dynamic-datasource.version}</version>
         </dependency>
 
         <!--ShardingSphere-JDBC-->
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
             <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
-            <version>${latest.release.version}</version>
         </dependency>
     </dependencies>
-
 </project>

+ 0 - 40
sckw-common/sckw-common-elasticsearch/pom.xml

@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>com.sckw</groupId>
-        <artifactId>sckw-common</artifactId>
-        <version>1.0.0</version>
-    </parent>
-
-    <artifactId>sckw-common-elasticsearch</artifactId>
-    <version>1.0.0</version>
-    <description>核心模块</description>
-
-    <properties>
-        <maven.compiler.source>17</maven.compiler.source>
-        <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <elasticsearch.version>8.5.3</elasticsearch.version>
-    </properties>
-    <dependencies>
-        <dependency>
-            <groupId>co.elastic.clients</groupId>
-            <artifactId>elasticsearch-java</artifactId>
-            <version>${elasticsearch.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.elasticsearch.client</groupId>
-            <artifactId>elasticsearch-rest-client</artifactId>
-            <version>${elasticsearch.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>fastjson</artifactId>
-        </dependency>
-    </dependencies>
-
-</project>

+ 0 - 495
sckw-common/sckw-common-elasticsearch/src/main/java/com/sckw/elasticsearch/service/es/EsUtils.java

@@ -1,495 +0,0 @@
-package com.sckw.elasticsearch.service.es;
-
-import co.elastic.clients.elasticsearch.ElasticsearchClient;
-import co.elastic.clients.elasticsearch._types.ElasticsearchException;
-import co.elastic.clients.elasticsearch._types.FieldValue;
-import co.elastic.clients.elasticsearch._types.SortOrder;
-import co.elastic.clients.elasticsearch._types.aggregations.Aggregate;
-import co.elastic.clients.elasticsearch._types.aggregations.TermsAggregation;
-import co.elastic.clients.elasticsearch._types.mapping.TypeMapping;
-import co.elastic.clients.elasticsearch._types.query_dsl.Query;
-import co.elastic.clients.elasticsearch.core.*;
-import co.elastic.clients.elasticsearch.core.bulk.BulkOperation;
-import co.elastic.clients.elasticsearch.core.search.Hit;
-import co.elastic.clients.elasticsearch.indices.IndexSettings;
-import co.elastic.clients.json.JsonData;
-import co.elastic.clients.util.ObjectBuilder;
-import com.alibaba.fastjson.JSON;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.util.CollectionUtils;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-import java.util.function.Function;
-
-/**
- * @author yuzhongchuan
- * @description COMMENT='ES相关工具类'
- * @create 2023 -06 -06 10:01
- */
-@Slf4j
-public class EsUtils {
-
-    private ElasticsearchClient client;
-
-    private static EsUtils esUtils;
-
-    public EsUtils(ElasticsearchClient client) {
-        esUtils = this;
-        this.client = client;
-    }
-
-    /**
-     * @param name
-     * @return void
-     * @desc: 创建索引
-     * @author: yzc
-     * @date: 2023-06-12 11:46
-     */
-    public static void addIndex(String name) {
-        try {
-            if (indexExists(name)) {
-                log.error(" idxName={} 已经存在", name);
-                return;
-            }
-            esUtils.client.indices().create(c -> c.index(name));
-        } catch (IOException e) {
-            log.error("ES addIndex异常", e);
-        }
-    }
-
-    /**
-     * @param name
-     * @return boolean
-     * @desc: 索引是否存在
-     * @author: yzc
-     * @date: 2023-06-12 11:46
-     */
-    public static boolean indexExists(String name) throws IOException {
-        return esUtils.client.indices().exists(b -> b.index(name)).value();
-    }
-
-    /**
-     * @param name
-     * @return void
-     * @desc: 删除索引
-     * @author: yzc
-     * @date: 2023-06-12 11:47
-     */
-    public static void delIndex(String name) {
-        try {
-            if (!indexExists(name)) {
-                log.error(" idxName={} 不存在", name);
-                return;
-            }
-            esUtils.client.indices().delete(c -> c.index(name));
-        } catch (IOException e) {
-            log.error("ES delIndex异常", e);
-        }
-    }
-
-    /**
-     * @param idxName, settingFn, mappingFn
-     * @return void
-     * @desc: 带mapping、setting创建索引
-     * @author: yzc
-     * @date: 2023-06-12 11:47
-     */
-    public static void createIndex(String idxName,
-                                   Function<IndexSettings.Builder, ObjectBuilder<IndexSettings>> settingFn,
-                                   Function<TypeMapping.Builder, ObjectBuilder<TypeMapping>> mappingFn) {
-        try {
-            if (indexExists(idxName)) {
-                log.error(" idxName={} 已经存在", idxName);
-                return;
-            }
-            esUtils.client.indices().create(c -> c
-                    .index(idxName)
-                    .settings(settingFn)
-                    .mappings(mappingFn));
-        } catch (IOException e) {
-            log.error("ES createIndex异常", e);
-        }
-    }
-
-    /**
-     * 添加文档信息
-     *
-     * @param idxName
-     * @param t
-     * @param <T>
-     */
-    public static <T> void add(String idxName, T t) {
-        if (Objects.isNull(idxName) || t == null) {
-            return;
-        }
-        try {
-            esUtils.client.index(s ->
-                    s.index(idxName).document(t));
-        } catch (IOException e) {
-            log.error("es插入单条新数据异常:", e);
-        }
-    }
-
-    /**
-     * 添加文档信息 指定id
-     *
-     * @param idxName
-     * @param id
-     */
-    public static <T> void addSpecifyId(String idxName, String id, T t) {
-        if (Objects.isNull(idxName) || t == null) {
-            return;
-        }
-        try {
-            esUtils.client.index(s ->
-                    s.index(idxName).id(id).document(t));
-        } catch (IOException e) {
-            log.error("es插入指定id单条新数据异常:", e);
-        }
-    }
-
-    /**
-     * 修改文档自定义属性
-     *
-     * @param idxName
-     * @param id
-     * @param t
-     */
-    public static <T> void update(String idxName, String id, T t) {
-        if (Objects.isNull(idxName) || t == null) {
-            return;
-        }
-        try {
-            esUtils.client.update(x -> x.index(idxName).id(id).doc(t), Object.class);
-        } catch (IOException e) {
-            log.error("es修改文档数据异常:", e);
-        }
-    }
-
-    /**
-     * 批量新增
-     *
-     * @param indexName
-     * @param list
-     * @return
-     */
-    public static <T> void bulkSave(String indexName, List<T> list) {
-        if (Objects.isNull(indexName) || CollectionUtils.isEmpty(list)) {
-            return;
-        }
-        BulkRequest.Builder br = new BulkRequest.Builder();
-        //可不指定id es会自动生成id
-        list.forEach(e -> br.operations(op -> op
-                .index(idx -> idx.index(indexName).document(e))));
-        try {
-            esUtils.client.bulk(br.build());
-        } catch (IOException e) {
-            log.error("es批量新增数据异常:", e);
-        }
-    }
-
-    /**
-     * 批量新增 指定id
-     *
-     * @param indexName
-     * @param list
-     * @return
-     */
-    public static <T> void bulkSaveSpecifyId(String indexName, List<T> list) {
-        if (Objects.isNull(indexName) || CollectionUtils.isEmpty(list)) {
-            return;
-        }
-        BulkRequest.Builder br = new BulkRequest.Builder();
-        //对象id为es id
-        list.forEach(e -> br.operations(op -> op
-                .index(idx -> idx.index(indexName).id(JSON.parseObject((String) e).get("id").toString()).document(e))));
-        try {
-            esUtils.client.bulk(br.build());
-        } catch (IOException e) {
-            log.error("es批量新增指定id数据异常:", e);
-        }
-    }
-
-    /**
-     * ids批量删除
-     *
-     * @param indexName
-     * @param list
-     * @return
-     */
-    public static <T> void bulkDel(String indexName, List<T> list) {
-        if (CollectionUtils.isEmpty(list)) {
-            return;
-        }
-        List<BulkOperation> bulkOperations = new ArrayList<>();
-        list.forEach(a ->
-                bulkOperations.add(BulkOperation.of(b ->
-                        b.delete(c -> c.id(JSON.parseObject((String) a).get("id").toString()))
-                )));
-        try {
-            esUtils.client.bulk(a -> a.index(indexName).operations(bulkOperations));
-        } catch (IOException e) {
-            log.error("es批量ids删除数据异常:", e);
-        }
-    }
-
-    /**
-     * term匹配 多次匹配
-     *
-     * @param index
-     * @param field
-     * @param fieldValues
-     * @return Object
-     */
-    public static List<Hit<Object>> advancedQueryByTerm(String index, String field, List<FieldValue> fieldValues) {
-        try {
-            SearchResponse<Object> response = esUtils.client.search(e -> e
-                    .index(index)
-                    .query(q -> q.terms(t -> t.field(field).terms(terms -> terms.value(fieldValues))))
-                    .query(q -> q.matchAll(m -> m)), Object.class);
-            return response.hits().hits();
-        } catch (IOException e) {
-            log.error("es term匹配多次匹配查询异常:", e);
-            return null;
-        }
-    }
-
-    /**
-     * term匹配 单次匹配
-     *
-     * @param index
-     * @param field
-     * @param value
-     * @return Object
-     */
-    public static List<Hit<Object>> advancedQueryByTerm(String index, String field, long value) {
-        try {
-            SearchResponse<Object> response = esUtils.client.search(e -> e
-                    .index(index)
-                    .query(q -> q.term(t -> t.field(field).value(value)))
-                    .query(q -> q.matchAll(m -> m)), Object.class);
-            return response.hits().hits();
-        } catch (IOException e) {
-            log.error("es term匹配单次匹配查询异常:", e);
-            return null;
-        }
-    }
-
-    /**
-     * 分页查询
-     *
-     * @param index
-     * @param from
-     * @param size
-     * @return
-     */
-    public static List<Hit<Object>> advancedQueryByPage(String index, Integer from, Integer size) {
-        try {
-            SearchResponse<Object> response = esUtils.client.search(e -> e
-                    .index(index)
-                    .query(q -> q.matchAll(m -> m))
-                    .from(from).size(size), Object.class);
-            return response.hits().hits();
-        } catch (IOException e) {
-            log.error("es 分页查询异常:", e);
-            return null;
-        }
-    }
-
-    /**
-     * multiMatch多field匹配
-     *
-     * @param indexName
-     * @param fields
-     * @param query
-     * @param sortField
-     * @param order
-     * @param from
-     * @param size
-     * @return
-     * @throws Exception
-     */
-    public static List<Hit<Object>> queryMultiMatch(String indexName, List<String> fields, String query, String sortField, SortOrder order, Integer from, Integer size) {
-        try {
-            SearchResponse<Object> searchResponse = esUtils.client.search(e -> e
-                    .index(indexName)
-                    .query(q -> q.multiMatch(m -> m.fields(fields).query(query)))
-                    .sort(sort -> sort.field(f -> f.field(sortField).order(order)))
-                    .from(from).size(size), Object.class);
-            return searchResponse.hits().hits();
-        } catch (IOException e) {
-            log.error("ES queryMultiMatch查询异常", e);
-            return null;
-        }
-    }
-
-
-    /**
-     * Range范围匹配
-     *
-     * @param indexName
-     * @param field
-     * @param gte       大于等于
-     * @param lte       小于等于
-     * @param sortField
-     * @param order
-     * @param from
-     * @param size
-     * @return
-     */
-    public static List<Hit<Object>> queryBoolRange(String indexName, String field, Object gte, Object lte, String sortField, SortOrder order, Integer from, Integer size) {
-        try {
-            SearchResponse<Object> searchResponse = esUtils.client.search(e -> e
-                    .index(indexName)
-                    .query(q -> q.bool(b -> b.filter(f -> f.range(r -> r.field(field)
-                            .gte((Objects.isNull(gte) ? null : JsonData.of(gte)))
-                            .lte((Objects.isNull(lte) ? null : JsonData.of(lte)))))))
-                    .sort(sort -> sort.field(f -> f.field(sortField).order(order)))
-                    .from(from).size(size), Object.class);
-            return searchResponse.hits().hits();
-        } catch (IOException | ElasticsearchException e) {
-            log.error("ES queryBoolRange查询异常", e);
-            return null;
-        }
-    }
-
-    /**
-     * filter过滤
-     *
-     * @param indexName
-     * @param excludes
-     * @param includes
-     * @param sortField
-     * @param order
-     * @param from
-     * @param size
-     * @return
-     */
-    public static List<Hit<Object>> queryFilter(String indexName, List<String> excludes, List<String> includes, String sortField, SortOrder order, Integer from, Integer size) {
-        try {
-            SearchResponse<Object> searchResponse = esUtils.client.search(e -> e
-                    .index(indexName)
-                    .query(q -> q.matchAll(m -> m))
-                    .source(s -> s.filter(f -> f.excludes(excludes).includes(includes)))
-                    .sort(sort -> sort.field(f -> f.field(sortField).order(order)))
-                    .from(from).size(size), Object.class);
-            return searchResponse.hits().hits();
-        } catch (IOException e) {
-            log.error("ES queryFilter查询异常", e);
-            return null;
-        }
-    }
-
-    /**
-     * fuzzy模糊匹配
-     *
-     * @param indexName
-     * @param field
-     * @param value
-     * @param fuzziness
-     * @param sortField
-     * @param order
-     * @param from
-     * @param size
-     * @return
-     */
-    public static List<Hit<Object>> queryFuzzy(String indexName, String field, String value, String fuzziness, String sortField, SortOrder order, Integer from, Integer size) {
-        try {
-            SearchResponse<Object> searchResponse = esUtils.client.search(e -> e
-                    .index(indexName)
-                    .query(q -> q.fuzzy(f -> f.field(field).value(value).fuzziness(fuzziness)))
-                    .sort(sort -> sort.field(f -> f.field(sortField).order(order)))
-                    .from(from).size(size), Object.class);
-            return searchResponse.hits().hits();
-        } catch (IOException e) {
-            log.error("ES queryFuzzy查询异常", e);
-            return null;
-        }
-    }
-
-    /**
-     * @param indexName, field
-     * @return co.elastic.clients.elasticsearch._types.aggregations.Aggregate
-     * @desc: 分组聚合查询
-     * @author: yzc
-     * @date: 2023-06-12 17:36
-     */
-    public static Aggregate queryGroupAggregation(String indexName, String field) {
-        try {
-            SearchResponse<Void> searchResponse = esUtils.client.search(
-                    b -> b.index(indexName).size(0)
-                            .aggregations(field, a -> a.terms(TermsAggregation.of(s -> s.field(field)))),
-                    Void.class);
-            return searchResponse.aggregations().get(field);
-        } catch (IOException e) {
-            log.error("ES queryGroupAggregation查询异常", e);
-            return null;
-        }
-    }
-
-    /**
-     * 简单聚合查询
-     *
-     * @param countRequest
-     * @return
-     */
-    public static long count(CountRequest countRequest) {
-        try {
-            log.info("开始ES查询indexName:{}的count", Arrays.toString(countRequest.index().toArray()));
-            CountResponse count = esUtils.client.count(countRequest);
-            return count.count();
-        } catch (IOException e) {
-            log.error("ES count异常", e);
-            return 0;
-        }
-    }
-
-    /**
-     * SearchRequest原生查询
-     *
-     * @param searchRequest
-     * @return
-     */
-    public static List<Hit<Object>> queryOriginal(SearchRequest searchRequest) {
-        //Query of = Query.of(q -> q.bool(b -> b.must(m -> m.match(match -> match.field("").query("")))));
-        try {
-            SearchResponse<Object> searchResponse = esUtils.client.search(searchRequest, Object.class);
-            return searchResponse.hits().hits();
-        } catch (IOException e) {
-            log.error("ES queryOriginal查询异常", e);
-            return null;
-        }
-    }
-
-    /**
-     * Query原生查询
-     *
-     * @param indexName
-     * @param field
-     * @param query
-     * @param order
-     * @param from
-     * @param size
-     * @return
-     * @throws Exception
-     */
-    public static List<Hit<Object>> queryOriginal(String indexName, String field, Query query, SortOrder order, Integer from, Integer size) {
-        //Query of = Query.of(q -> q.bool(b -> b.must(m -> m.match(match -> match.field("").query("")))));
-        try {
-            SearchResponse<Object> searchResponse = esUtils.client.search(e -> e
-                    .index(indexName)
-                    .query(query)
-                    .sort(sort -> sort.field(f -> f.field(field).order(order)))
-                    .from(from).size(size), Object.class);
-            return searchResponse.hits().hits();
-        } catch (IOException e) {
-            log.error("ES queryOriginal查询异常", e);
-            return null;
-        }
-    }
-
-}

+ 0 - 114
sckw-common/sckw-common-elasticsearch/src/main/java/com/sckw/elasticsearch/service/es/autoconfigure/EsAutoConfiguration.java

@@ -1,114 +0,0 @@
-package com.sckw.elasticsearch.service.es.autoconfigure;
-
-import co.elastic.clients.elasticsearch.ElasticsearchClient;
-import co.elastic.clients.json.jackson.JacksonJsonpMapper;
-import co.elastic.clients.transport.rest_client.RestClientTransport;
-import com.sckw.elasticsearch.service.es.EsUtils;
-import com.sckw.elasticsearch.service.es.constants.EsConstant;
-import com.sckw.elasticsearch.service.es.properties.EsProperties;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.http.Header;
-import org.apache.http.HttpHost;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.CredentialsProvider;
-import org.apache.http.impl.client.BasicCredentialsProvider;
-import org.apache.http.impl.nio.reactor.IOReactorConfig;
-import org.apache.http.message.BasicHeader;
-import org.elasticsearch.client.Node;
-import org.elasticsearch.client.NodeSelector;
-import org.elasticsearch.client.RestClient;
-import org.elasticsearch.client.RestClientBuilder;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * @Author yzc
- * @Description es自动装配
- * @createTime 2022年03月03日 09:36:00
- */
-@EnableConfigurationProperties(EsProperties.class)
-@Slf4j
-public class EsAutoConfiguration {
-
-    @Autowired
-    private EsProperties esProperties;
-
-
-    @Bean
-    @ConditionalOnClass(ElasticsearchClient.class)
-    @ConditionalOnMissingBean(EsUtils.class)
-    public EsUtils esUtils(ElasticsearchClient elasticsearchClient) {
-        log.info("---------------EsUtils 正在初始化");
-        return new EsUtils(elasticsearchClient);
-    }
-
-    @Bean
-    @ConditionalOnMissingBean(ElasticsearchClient.class)
-    public ElasticsearchClient restHighLevelClient() {
-        log.info("---------------es配置正在加载,当前配置为:{}", esProperties);
-        if (EsConstant.DEFAULT_HOST.equals(esProperties.getHostList())) {
-            throw new RuntimeException("es配置错误,无法加载");
-        }
-        //解析hostList配置信息
-        String[] split = esProperties.getHostList().split(",");
-        //创建HttpHost数组,其中存放es主机和端口的配置信息
-        HttpHost[] httpHostArray = new HttpHost[split.length];
-        for (int i = 0; i < split.length; i++) {
-            String item = split[i];
-            httpHostArray[i] = new HttpHost(item.split(":")[0], Integer.parseInt(item.split(":")[1]), esProperties.getScheme());
-        }
-        RestClientBuilder clientBuilder = RestClient.builder(httpHostArray);
-        // 1.设置请求头
-        Header[] defaultHeaders = {new BasicHeader("header", "value")};
-        clientBuilder.setDefaultHeaders(defaultHeaders);
-        // 2.设置失败监听器,每次节点失败都可以监听到,可以作额外处理
-        clientBuilder.setFailureListener(new RestClient.FailureListener() {
-            @Override
-            public void onFailure(Node node) {
-                super.onFailure(node);
-                log.error(node.getName() + "==节点失败了");
-            }
-        });
-        /** 3.配置节点选择器,客户端以循环方式将每个请求发送到每一个配置的节点上,
-         *发送请求的节点,用于过滤客户端,将请求发送到这些客户端节点,默认向每个配置节点发送,
-         *这个配置通常是用户在启用嗅探时向专用主节点发送请求(即只有专用的主节点应该被HTTP请求命中)
-         */
-        clientBuilder.setNodeSelector(NodeSelector.SKIP_DEDICATED_MASTERS);
-        /**
-         *4. 配置异步请求的线程数量,Apache Http Async Client默认启动一个调度程序线程,以及由连接管理器使用的许多工作线程
-         *(与本地检测到的处理器数量一样多,取决于Runtime.getRuntime().availableProcessors()返回的数量)。线程数可以修改如下,
-         *这里是修改为10个线程,默认1
-         */
-        clientBuilder.setHttpClientConfigCallback(httpAsyncClientBuilder -> httpAsyncClientBuilder.setDefaultIOReactorConfig(
-                IOReactorConfig.custom().setIoThreadCount(10).build()
-        ));
-        /**
-         *5. 配置连接超时和套接字超时
-         *配置请求超时,将连接超时(默认为1秒)和套接字超时(默认为30秒)增加,
-         *这里配置完应该相应地调整最大重试超时(默认为30秒),即上面的setMaxRetryTimeoutMillis,一般于最大的那个值一致即60000
-         */
-        clientBuilder.setRequestConfigCallback(requestConfigBuilder -> {
-            // 连接5秒超时,套接字连接60s超时
-            return requestConfigBuilder
-                    .setConnectTimeout(esProperties.getConnectTimeout())
-                    .setSocketTimeout(60000);
-        });
-
-        //6.设置ES需要基本身份验证的默认凭据提供程序及设置KeepAliveStrategy为3分钟
-        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
-        credentialsProvider.setCredentials(AuthScope.ANY,
-                new UsernamePasswordCredentials(esProperties.getUsername(), esProperties.getPassword()));
-        clientBuilder.setHttpClientConfigCallback(callback -> callback.setDefaultCredentialsProvider(credentialsProvider)
-                .setKeepAliveStrategy((response, context) -> TimeUnit.MINUTES.toMillis(3)));
-        //使用JSON映射器传输数据
-        RestClientTransport restClientTransport = new RestClientTransport(clientBuilder.build(), new JacksonJsonpMapper());
-        //创建API客户端
-        return new ElasticsearchClient(restClientTransport);
-    }
-}

+ 0 - 11
sckw-common/sckw-common-elasticsearch/src/main/java/com/sckw/elasticsearch/service/es/constants/EsConstant.java

@@ -1,11 +0,0 @@
-package com.sckw.elasticsearch.service.es.constants;
-
-/**
- * @Author yzc
- * @Description es常量
- * @createTime 2023 -06 -06 10:01
- */
-public class EsConstant {
-
-    public static final String DEFAULT_HOST = "default:9200";
-}

+ 0 - 39
sckw-common/sckw-common-elasticsearch/src/main/java/com/sckw/elasticsearch/service/es/properties/EsProperties.java

@@ -1,39 +0,0 @@
-package com.sckw.elasticsearch.service.es.properties;
-
-import com.sckw.elasticsearch.service.es.constants.EsConstant;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-/**
- * @Author yzc
- * @Description es配置
- * @createTime 2023 -06 -06 10:01
- */
-@Getter
-@Setter
-@ToString
-@ConfigurationProperties(prefix = "elasticsearch")
-public class EsProperties {
-    /**
-     * host地址
-     */
-    private String hostList = EsConstant.DEFAULT_HOST;
-    /**
-     * scheme
-     */
-    private String scheme = "http";
-    /**
-     * 用户名
-     */
-    private String username = "";
-    /**
-     * 密码
-     */
-    private String password = "";
-    /**
-     * 超时时间
-     */
-    private Integer connectTimeout = 10000;
-}

+ 0 - 2
sckw-common/sckw-common-elasticsearch/src/main/resources/META-INF/spring.factories

@@ -1,2 +0,0 @@
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-com.sckw.elasticsearch.service.es.autoconfigure.EsAutoConfiguration

+ 0 - 1
sckw-common/sckw-common-elasticsearch/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-com.sckw.elasticsearch.service.es.autoconfigure.EsAutoConfiguration

+ 9 - 19
sckw-common/sckw-common-excel/pom.xml

@@ -2,39 +2,33 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-common-excel</artifactId>
-    <version>1.0.0</version>
-    <description>核心模块</description>
+    <description>excel导入导出</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <easyexcel.version>3.0.5</easyexcel.version>
-        <commons-io.version>2.11.0</commons-io.version>
     </properties>
 
-
     <dependencies>
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
         <!--alibaba EasyExcel导入导出-->
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>easyexcel</artifactId>
-            <version>${easyexcel.version}</version>
         </dependency>
+
         <!--cglib-->
         <dependency>
             <groupId>cglib</groupId>
@@ -45,31 +39,27 @@
                     <artifactId>asm</artifactId>
                 </exclusion>
             </exclusions>
-            <version>3.3.0</version>
         </dependency>
+
         <!-- validation -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-validation</artifactId>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>org.springframework</groupId>-->
-<!--            <artifactId>spring-core</artifactId>-->
-<!--            <version>6.0.9</version>-->
-<!--        </dependency>-->
+
         <dependency>
             <groupId>jakarta.validation</groupId>
             <artifactId>jakarta.validation-api</artifactId>
-<!--            <version>2.0.1</version>-->
         </dependency>
+
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
         </dependency>
+
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
-            <version>${commons-io.version}</version>
         </dependency>
     </dependencies>
 </project>

+ 31 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/CustomCellWriteHandler.java

@@ -0,0 +1,31 @@
+package com.sckw.excel.easyexcel;
+
+
+
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.write.handler.CellWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+
+/**
+ * 自定义拦截器。对第一行第一列的头超链接
+ */
+@Slf4j
+public class CustomCellWriteHandler implements CellWriteHandler {
+
+
+    @Override
+    public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
+
+    }
+
+    @Override
+    public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer integer, Boolean aBoolean) {
+
+    }
+
+
+}

+ 46 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/ExcelImportListener.java

@@ -0,0 +1,46 @@
+package com.sckw.excel.easyexcel;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.sckw.excel.utils.ValidDataUtil;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author LengFaQiang
+ * @create 2021-11-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ExcelImportListener extends AnalysisEventListener<Object> {
+    /**
+     * 成功的数据
+     */
+    private List<Object> dataList = new ArrayList<>();
+
+    /**
+     * 错误信息列表
+     */
+    private List<String> errorList = new ArrayList<>();
+
+    @Override
+    public void invoke(Object data, AnalysisContext context) {
+        String validMsg = ValidDataUtil.valid(data);
+        if (validMsg != null) {
+            //+1行(实际中excel中第几行的数据)
+            int rowIndex = context.readRowHolder().getRowIndex() + 1;
+            String errorMsg = "第" + rowIndex + "行数据有误," + validMsg;
+            errorList.add(errorMsg);
+        } else {
+            dataList.add(data);
+        }
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+
+    }
+}

+ 64 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/ExcelListener.java

@@ -0,0 +1,64 @@
+package com.sckw.excel.easyexcel;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 监听类,可以自定义
+ *
+ * @author LengFaQiang
+ * @Created 2019-7-18 18:01:53
+ **/
+public class ExcelListener extends AnalysisEventListener {
+
+    /**
+     * 自定义用于暂时存储data。
+     * 可以通过实例获取该值
+     */
+    private List<Object> datas = new ArrayList<>();
+
+    /**
+     * 通过 AnalysisContext 对象还可以获取当前 sheet,当前行等数据
+     */
+    @Override
+    public void invoke(Object object, AnalysisContext context) {
+        //数据存储到list,供批量处理,或后续自己业务逻辑处理。
+        datas.add(object);
+        //根据业务自行 do something
+        doSomething();
+        /*
+        如数据过大,可以进行定量分批处理
+        if(datas.size()<=100){
+            datas.add(object);
+        }else {
+            doSomething();
+            datas = new ArrayList<Object>();
+        }
+         */
+    }
+
+    /**
+     * 根据业务自行实现该方法
+     */
+    private void doSomething() {
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        /*
+            datas.clear();
+            解析结束销毁不用的资源
+         */
+    }
+
+    public List<Object> getDatas() {
+        return datas;
+    }
+
+    public void setDatas(List<Object> datas) {
+        this.datas = datas;
+    }
+}

+ 46 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/ExcelSelectedResolve.java

@@ -0,0 +1,46 @@
+package com.sckw.excel.easyexcel;
+
+import com.sckw.excel.annotation.ExcelSelected;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author LengFaQiang
+ * @version 1.0.0
+ * @ClassName ExcelSelectedResolve.java
+ * @Description easy导出设置下拉框
+ * @createTime 2022/4/27 10:27
+ */
+@Data
+@Slf4j
+public class ExcelSelectedResolve {
+
+    /**
+     * 下拉内容
+     */
+    private String[] source;
+
+    /**
+     * 设置下拉框的起始行,默认为第二行
+     */
+    private int firstRow;
+
+    /**
+     * 设置下拉框的结束行,默认为最后一行
+     */
+    private int lastRow;
+
+    public String[] resolveSelectedSource(ExcelSelected excelSelected) {
+        if (excelSelected == null) {
+            return null;
+        }
+
+        // 获取固定下拉框的内容
+        String[] source = excelSelected.source();
+        if (source.length > 0) {
+            return source;
+        }
+        return null;
+    }
+
+}

+ 30 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/LocalDateTimeConverter.java

@@ -0,0 +1,30 @@
+package com.sckw.excel.easyexcel;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 导出时的字段类型转换
+ * LocalDateTime to「yyyy-MM-dd HH:mm:ss」
+ *
+ * @author LengFaQiang
+ * @version v1
+ * @create 2020-09-24 11:07:29
+ * @copyright
+ */
+public class LocalDateTimeConverter implements Converter<LocalDateTime> {
+
+    @Override
+    public Class<LocalDateTime> supportJavaTypeKey() {
+        return LocalDateTime.class;
+    }
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+
+}

+ 21 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/RequestHolder.java

@@ -0,0 +1,21 @@
+package com.sckw.excel.easyexcel;
+
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+/**
+ * 获取requestHolder
+ */
+public class RequestHolder {
+    public static HttpServletRequest getRequest(){
+        HttpServletRequest req = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+        return req;
+    }
+
+    public static HttpServletResponse getResponse(){
+        HttpServletResponse resp = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
+        return resp;
+    }
+}

+ 36 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/RowWriteHandlerImpl.java

@@ -0,0 +1,36 @@
+package com.sckw.excel.easyexcel;
+
+//import com.alibaba.excel.metadata.CellData;
+
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.write.handler.CellWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
+import org.apache.poi.ss.usermodel.*;
+
+/**
+ * @author LengFaQiang
+ * @version 1.0.0
+ * @ClassName RowWriteHandlerImpl.java
+ * @Description 设置导出excel的单元格格式为文本
+ * @createTime 2022年012月021日 10:15:00
+ */
+public class RowWriteHandlerImpl implements CellWriteHandler {
+
+    CellStyle cellStyle;
+    @Override
+    public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
+
+    }
+
+    @Override
+    public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer integer, Boolean aBoolean) {
+        Workbook workbook = writeSheetHolder.getSheet().getWorkbook();
+        if (cellStyle == null){
+            cellStyle = workbook.createCellStyle();
+        }
+        DataFormat dataFormat = workbook.createDataFormat();
+        cellStyle.setDataFormat(dataFormat.getFormat("@"));
+        cell.setCellStyle(cellStyle);
+    }
+}

+ 60 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/SelectedSheetWriteHandler.java

@@ -0,0 +1,60 @@
+package com.sckw.excel.easyexcel;
+
+import com.alibaba.excel.write.handler.SheetWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import org.apache.poi.ss.usermodel.DataValidation;
+import org.apache.poi.ss.usermodel.DataValidationConstraint;
+import org.apache.poi.ss.usermodel.DataValidationHelper;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.util.CellRangeAddressList;
+
+import java.util.Map;
+
+/**
+ * @author LengFaQiang
+ * @version 1.0.0
+ * @ClassName SelectedSheetWriteHandler.java
+ * @Description 导出设置下拉框handler
+ * @createTime 2022/4/27 10:29
+ */
+@Data
+@AllArgsConstructor
+public class SelectedSheetWriteHandler implements SheetWriteHandler {
+
+    private final Map<Integer, ExcelSelectedResolve> selectedMap;
+
+    /**
+     * Called before create the sheet
+     */
+    @Override
+    public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+
+    }
+
+    /**
+     * Called after the sheet is created
+     */
+    @Override
+    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+        // 这里可以对cell进行任何操作
+        Sheet sheet = writeSheetHolder.getSheet();
+        DataValidationHelper helper = sheet.getDataValidationHelper();
+        selectedMap.forEach((k, v) -> {
+            // 设置下拉列表的行: 首行,末行,首列,末列
+            CellRangeAddressList rangeList = new CellRangeAddressList(v.getFirstRow(), v.getLastRow(), k, k);
+            // 设置下拉列表的值
+            DataValidationConstraint constraint = helper.createExplicitListConstraint(v.getSource());
+            // 设置约束
+            DataValidation validation = helper.createValidation(constraint, rangeList);
+            // 阻止输入非下拉选项的值
+            validation.setErrorStyle(DataValidation.ErrorStyle.STOP);
+            validation.setShowErrorBox(true);
+            validation.setSuppressDropDownArrow(true);
+            validation.createErrorBox("提示", "请输入下拉选项中的内容");
+            sheet.addValidationData(validation);
+        });
+    }
+}

+ 24 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/easyexcel/SheetExcelData.java

@@ -0,0 +1,24 @@
+package com.sckw.excel.easyexcel;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SheetExcelData<T> {
+
+    /**
+     * 数据
+     */
+    private List<T> dataList;
+
+    /**
+     * sheet名
+     */
+    private String sheetName;
+
+    /**
+     * 对象类型
+     */
+    private Class<T> tClass ;
+}

+ 2 - 9
sckw-common/sckw-common-mongo/pom.xml

@@ -2,24 +2,18 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-common-mongo</artifactId>
-    <version>1.0.0</version>
-
-    <description>mongodb</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <spring-boot.version>3.0.5</spring-boot.version>
     </properties>
 
     <dependencies>
@@ -28,5 +22,4 @@
             <artifactId>spring-boot-starter-data-mongodb</artifactId>
         </dependency>
     </dependencies>
-
 </project>

+ 10 - 20
sckw-common/sckw-common-redis/pom.xml

@@ -2,50 +2,40 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-common-redis</artifactId>
-    <version>1.0.0</version>
-
-    <description>缓存服务</description>
+    <description>Redis缓存服务</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <redisson.version>3.20.1</redisson.version>
     </properties>
 
-
     <dependencies>
-<!--        <dependency>-->
-<!--            <groupId>org.redisson</groupId>-->
-<!--            <artifactId>redisson-spring-boot-starter</artifactId>-->
-<!--            <version>${redisson.version}</version>-->
-<!--        </dependency>-->
-<!--        <dependency>-->
-<!--            <groupId>com.sckw</groupId>-->
-<!--            <artifactId>sckw-common-core</artifactId>-->
-<!--            <version>1.0.0</version>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.redisson</groupId>
             <artifactId>redisson-spring-boot-starter</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-json</artifactId>
         </dependency>
     </dependencies>
-
 </project>

+ 5 - 7
sckw-common/sckw-common-remote/pom.xml

@@ -2,23 +2,19 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-common-remote</artifactId>
-    <version>1.0.0</version>
     <description>远程调用模块</description>
 
-
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
     <dependencies>
@@ -26,6 +22,7 @@
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-spring-boot-starter</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo</artifactId>
@@ -36,6 +33,7 @@
                 </exclusion>
             </exclusions>
         </dependency>
+
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-openfeign</artifactId>
@@ -45,10 +43,10 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-autoconfigure</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-commons</artifactId>
         </dependency>
     </dependencies>
-
 </project>

+ 43 - 0
sckw-common/sckw-common-seata/pom.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
+        <version>1.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>sckw-common-seata</artifactId>
+    <description>分布式事务</description>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+            <!-- 排除掉springcloud默认的seata版本,以免版本不一致出现问题-->
+            <exclusions>
+                <exclusion>
+                    <groupId>io.seata</groupId>
+                    <artifactId>seata-spring-boot-starter</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>io.seata</groupId>
+                    <artifactId>seata-all</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!-- 上面排除掉了springcloud默认seata版本,此处引入和seata-server版本对应的seata包-->
+        <dependency>
+            <groupId>io.seata</groupId>
+            <artifactId>seata-spring-boot-starter</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 1 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/config/GlobalTransactionalConfig.java → sckw-common/sckw-common-seata/src/main/java/com/sckw/seata/config/GlobalTransactionalConfig.java

@@ -1,4 +1,4 @@
-package com.sckw.core.web.config;
+package com.sckw.seata.config;
 
 import io.seata.spring.annotation.AspectTransactionalInterceptor;
 import org.springframework.aop.Advisor;

+ 39 - 0
sckw-common/sckw-common-sentinel/pom.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
+        <version>1.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>sckw-common-sentinel</artifactId>
+    <description>分布式限流熔断</description>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-core</artifactId>
+        </dependency>
+
+        <!--SpringCloud-sentinel集成-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+        </dependency>
+
+        <!-- Sentinel Datasource Nacos 持久化存储-->
+        <dependency>
+            <groupId>com.alibaba.csp</groupId>
+            <artifactId>sentinel-datasource-nacos</artifactId>
+        </dependency>
+
+    </dependencies>
+</project>

+ 6 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/exceptionHandler/CustomBlockExceptionHandler.java → sckw-common/sckw-common-sentinel/src/main/java/com/sckw/sentinel/CustomBlockExceptionHandler.java

@@ -1,5 +1,6 @@
-package com.sckw.core.web.exceptionHandler;
+package com.sckw.sentinel;
 
+/*
 import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler;
 import com.alibaba.csp.sentinel.slots.block.BlockException;
 import com.alibaba.csp.sentinel.slots.block.authority.AuthorityException;
@@ -15,6 +16,7 @@ import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Configuration;
 
+*/
 /**
  * @author lfdc
  * @version 1.0
@@ -22,7 +24,8 @@ import org.springframework.context.annotation.Configuration;
  * @description 自定义sentinel异常Handler
  * @company sckw
  * @date 2023-06-08 09:06:59
- */
+ *//*
+
 @Slf4j
 @Configuration
 public class CustomBlockExceptionHandler implements BlockExceptionHandler {
@@ -99,3 +102,4 @@ public class CustomBlockExceptionHandler implements BlockExceptionHandler {
         new CustomBlockExceptionHandler();
     }
 }
+*/

+ 3 - 12
sckw-common/sckw-common-stream/pom.xml

@@ -2,33 +2,27 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-common-stream</artifactId>
-    <version>1.0.0</version>
     <description>消息驱动服务</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <alicloud-sms.version>2.2.0.RELEASE</alicloud-sms.version>
-        <lombok.version>1.18.26</lombok.version>
     </properties>
 
-
     <dependencies>
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-stream</artifactId>
@@ -39,13 +33,10 @@
             <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
         </dependency>
 
-
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-alicloud-sms</artifactId>
-            <version>${alicloud-sms.version}</version>
         </dependency>
 
     </dependencies>
-
 </project>

+ 7 - 5
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwSms.java

@@ -1,20 +1,22 @@
 package com.sckw.stream.model;
 
 import com.sckw.stream.enums.SmsCodeEnum;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
-
 import java.util.Map;
+
 /**
  * @desc: 发送短信对象
  * @author: yzc
  * @date: 2023-06-16 14:04
  */
-@Getter
-@Setter
-@ToString
+@Data
+@AllArgsConstructor
 @Accessors(chain = true)
 public class SckwSms {
+
     public SckwSms(){
         this.signName = "矿拉拉";
     }

+ 0 - 4
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/utils/SmsUtil.java

@@ -9,10 +9,6 @@ import com.aliyuncs.profile.DefaultProfile;
 import com.aliyuncs.profile.IClientProfile;
 import com.sckw.stream.enums.SmsCodeEnum;
 import com.sckw.stream.model.SckwSms;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
 import java.util.HashMap;
 
 public class SmsUtil {

+ 15 - 8
sckw-common/sckw-common-xxl-job/pom.xml → sckw-common/sckw-common-xxljob/pom.xml

@@ -2,28 +2,35 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-common</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>sckw-common-xxl-job</artifactId>
-    <version>1.0.0</version>
-    <description>核心模块</description>
+    <artifactId>sckw-common-xxljob</artifactId>
+    <description>任务调度</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <xxljob.version>2.4.0</xxljob.version>
     </properties>
+
     <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>com.xuxueli</groupId>
             <artifactId>xxl-job-core</artifactId>
-            <version>${xxljob.version}</version>
         </dependency>
     </dependencies>
 </project>

+ 0 - 0
sckw-common/sckw-common-xxl-job/src/main/java/com/sckw/xxljob/config/XxlJobAutoConfiguration.java → sckw-common/sckw-common-xxljob/src/main/java/com/sckw/xxljob/config/XxlJobAutoConfiguration.java


+ 0 - 0
sckw-common/sckw-common-xxl-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports → sckw-common/sckw-common-xxljob/src/main/resources/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports


+ 26 - 22
sckw-gateway/pom.xml

@@ -2,56 +2,60 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-service-platform</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-gateway</artifactId>
-    <version>1.0.0</version>
-    <description>网关服务</description>
+    <description> 网关模块 </description>
+
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <spring-cloud-gateway.version>4.0.1</spring-cloud-gateway.version>
     </properties>
 
-
     <dependencies>
+        <!--web-->
         <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
         </dependency>
-        <!--注册中心客户端-->
+
         <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+            <optional>true</optional>
         </dependency>
-        <!--配置中心客户端-->
+
         <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
         </dependency>
+
         <dependency>
             <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+            <artifactId>spring-cloud-loadbalancer</artifactId>
         </dependency>
+
         <!--GateWay ⽹关-->
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-gateway</artifactId>
         </dependency>
-        <!--负载均衡-->
+
+        <!--注册中心客户端-->
         <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
         </dependency>
 
+        <!--配置中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
     </dependencies>
-
 </project>

+ 7 - 3
sckw-gateway/src/main/resources/bootstrap.yml

@@ -16,7 +16,7 @@ spring:
         # 服务注册地址
         server-addr: 10.10.10.230:8848
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
       config:
@@ -25,7 +25,7 @@ spring:
         # 配置文件格式
         file-extension: yaml
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
         # 共享配置
@@ -36,6 +36,9 @@ spring:
 dubbo:
   application:
     name: gateway-dubbo-server
+    parameters:
+      group: ${spring.cloud.nacos.discovery.group}
+      namespace: ${spring.cloud.nacos.discovery.namespace}
     # 该配置在producer-server中是没有的,但是在consumer这里要配置一下
     # 如果不配置这个QOS的端口,它会延用dubbo自动生成的端口,在启动的时候,QOS注册就会提示该端口已经被使用的错误
     # 虽然启动时有打印端口已经被使用的错误,但是依旧可以正常启动服务,并且dubbo也可以正常调用,但是为了解决启动报错还是加上这个端口
@@ -47,5 +50,6 @@ dubbo:
     port: -1
   registry:
     address: nacos://${spring.cloud.nacos.discovery.server-addr}
-    group: ${spring.cloud.nacos.config.group}
+    group: ${spring.cloud.nacos.discovery.group}
+    namespace: ${spring.cloud.nacos.discovery.namespace}
     protocol: nacos

+ 199 - 0
sckw-gateway/src/main/resources/logback-spring.xml

@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
+                 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration  scan="true" scanPeriod="10 seconds">
+    <contextName>logback</contextName>
+    <springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue="service"/>
+
+    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
+    <property name="log.path" value="/logs/${applicationName}" />
+
+    <!--0. 日志格式和颜色渲染 -->
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 输出到控制台-->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--2. 输出到文档-->
+    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_debug.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志归档 -->
+            <fileNamePattern>${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录debug级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_info.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 每天日志归档路径以及格式 -->
+            <fileNamePattern>${log.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录info级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_warn.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录warn级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_error.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录ERROR级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!--
+        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
+        以及指定<appender>。<logger>仅有一个name属性,
+        一个可选的level和一个可选的addtivity属性。
+        name:用来指定受此logger约束的某一个包或者具体的某一个类。
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+              还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
+              如果未设置此属性,那么当前logger将会继承上级的级别。
+        addtivity:是否向上级logger传递打印信息。默认是true。
+        <logger name="org.springframework.web" level="info"/>
+        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
+    -->
+    <!-- hibernate logger -->
+    <logger name="com.atguigu" level="debug" />
+    <!-- Spring framework logger -->
+    <logger name="org.springframework" level="debug" additivity="false"></logger>
+
+
+    <!--
+        使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
+        第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
+        第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
+        【logging.level.org.mybatis=debug logging.level.dao=debug】
+     -->
+
+    <!--
+        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+        不能设置为INHERITED或者同义词NULL。默认是DEBUG
+        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+    -->
+
+    <!-- 4. 最终的策略 -->
+    <!-- 4.1 开发环境:打印控制台-->
+    <springProfile name="dev">
+        <logger name="com.sdcm.pmp" level="debug"/>
+    </springProfile>
+
+    <root level="info">
+        <appender-ref ref="CONSOLE" />
+        <appender-ref ref="DEBUG_FILE" />
+        <appender-ref ref="INFO_FILE" />
+        <appender-ref ref="WARN_FILE" />
+        <appender-ref ref="ERROR_FILE" />
+    </root>
+
+    <!-- 4.2 生产环境:输出到文档 -->
+    <springProfile name="pro">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="WARN_FILE" />
+        </root>
+    </springProfile>
+
+</configuration>

+ 3 - 14
sckw-modules-api/pom.xml

@@ -2,30 +2,20 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-service-platform</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-modules-api</artifactId>
-    <version>1.0.0</version>
-
     <packaging>pom</packaging>
-    <description>接口模块</description>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-    </dependencies>
     <modules>
         <module>sckw-system-api</module>
         <module>sckw-file-api</module>
         <module>sckw-message-api</module>
+        <module>sckw-modules-bom</module>
     </modules>
 
     <properties>
@@ -33,5 +23,4 @@
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
-
 </project>

+ 8 - 12
sckw-modules-api/sckw-file-api/pom.xml

@@ -2,37 +2,33 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-modules-api</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
-
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-file-api</artifactId>
-    <version>1.0.0</version>
-    <description>系统基础服务接口</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
-
-
     <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-openfeign-core</artifactId>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
         </dependency>
-
     </dependencies>
-
 </project>

+ 8 - 7
sckw-modules-api/sckw-message-api/pom.xml

@@ -2,32 +2,33 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-modules-api</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-message-api</artifactId>
-    <version>1.0.0</version>
-    <description>系统基础服务接口</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
-
     <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-openfeign-core</artifactId>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
         </dependency>
     </dependencies>
 </project>

+ 39 - 0
sckw-modules-api/sckw-modules-bom/pom.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.sckw</groupId>
+    <artifactId>sckw-modules-bom</artifactId>
+    <version>1.0.0</version>
+    <packaging>pom</packaging>
+    <description>modules依赖项</description>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+    <dependencyManagement>
+        <dependencies>
+            <!-- 核心模块 -->
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-system-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-file-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-message-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>

+ 12 - 8
sckw-modules-api/sckw-system-api/pom.xml

@@ -2,30 +2,34 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-modules-api</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-system-api</artifactId>
-    <version>1.0.0</version>
-    <description>系统基础服务接口</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
-
     <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-openfeign-core</artifactId>
         </dependency>
-    </dependencies>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-core</artifactId>
+        </dependency>
+    </dependencies>
 </project>

+ 4 - 74
sckw-modules/pom.xml

@@ -2,16 +2,16 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>com.sckw</groupId>
         <artifactId>sckw-service-platform</artifactId>
+        <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
+
     <artifactId>sckw-modules</artifactId>
     <packaging>pom</packaging>
-    <version>1.0.0</version>
-    <description>业务模块</description>
+
     <modules>
         <module>sckw-system</module>
         <module>sckw-message</module>
@@ -26,74 +26,4 @@
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
 
-    <dependencies>
-        <!--web-->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <!--注册中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-        <!--配置中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-remote</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-datasource</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-redis</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-stream</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-            <dependency>
-                <groupId>com.sckw</groupId>
-                <artifactId>sckw-system-api</artifactId>
-                <version>1.0.0</version>
-            </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <!--注册中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-        <!--配置中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
-        </dependency>
-    </dependencies>
-
 </project>

+ 44 - 51
sckw-modules/sckw-example/pom.xml

@@ -2,134 +2,127 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>sckw-modules</artifactId>
         <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-example</artifactId>
-    <version>1.0.0</version>
-    <description>示例</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
     <dependencies>
-
+        <!-- 核心模块 -->
         <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-file</artifactId>
-            <version>1.0.0</version>
+            <artifactId>sckw-common-core</artifactId>
         </dependency>
 
-
         <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
+            <artifactId>sckw-common-mongo</artifactId>
         </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-datasource</artifactId>
-            <version>1.0.0</version>
+            <artifactId>sckw-common-xxljob</artifactId>
         </dependency>
 
-        <!--<dependency>
+        <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-elasticsearch</artifactId>
-            <version>1.0.0</version>
-        </dependency>-->
+            <artifactId>sckw-common-stream</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-elasticsearch</artifactId>
-            <version>1.0.0</version>
+            <artifactId>sckw-common-remote</artifactId>
         </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-xxl-job</artifactId>
-            <version>1.0.0</version>
+            <artifactId>sckw-common-redis</artifactId>
         </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-excel</artifactId>
-            <version>1.0.0</version>
         </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-redis</artifactId>
-            <version>1.0.0</version>
+            <artifactId>sckw-common-datasource</artifactId>
         </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-system-api</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-file-api</artifactId>
-            <version>1.0.0</version>
         </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-stream</artifactId>
-            <version>1.0.0</version>
+            <artifactId>sckw-message-api</artifactId>
         </dependency>
 
+        <!--web-->
         <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-mongo</artifactId>
-            <version>1.0.0</version>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
 
         <dependency>
             <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-loadbalancer</artifactId>
         </dependency>
+
         <!--注册中心客户端-->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
         </dependency>
+
         <!--配置中心客户端-->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
         </dependency>
+
+        <!--junit-->
         <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
         </dependency>
+
         <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-message-api</artifactId>
-            <version>1.0.0</version>
-            <scope>compile</scope>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
         </dependency>
-
-
     </dependencies>
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**/*.xml</include>
-                </includes>
-                <filtering>true</filtering>
-            </resource>
-        </resources>
-    </build>
 </project>

+ 1 - 6
sckw-modules/sckw-example/src/main/java/com/sckw/example/ExampleApplication.java

@@ -1,6 +1,5 @@
 package com.sckw.example;
 
-
 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -17,10 +16,6 @@ public class ExampleApplication {
     public static void main(String[] args) {
         // 关闭nacos日志
         System.setProperty("nacos.logging.default.config.enabled", "false");
-        try {
-            SpringApplication.run(ExampleApplication.class, args);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        SpringApplication.run(ExampleApplication.class, args);
     }
 }

+ 0 - 86
sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/EsController.java

@@ -1,86 +0,0 @@
-package com.sckw.example.controller;
-
-import co.elastic.clients.elasticsearch._types.mapping.Property;
-import co.elastic.clients.elasticsearch._types.mapping.TypeMapping;
-import co.elastic.clients.elasticsearch.core.search.Hit;
-import co.elastic.clients.elasticsearch.indices.IndexSettings;
-import co.elastic.clients.util.ObjectBuilder;
-import com.sckw.elasticsearch.service.es.EsUtils;
-import com.sckw.example.model.Product;
-import lombok.RequiredArgsConstructor;
-import org.apache.commons.compress.utils.Lists;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-import java.util.function.Function;
-
-/**
- * @author: yzc
- * @date: 2023-06-06 14:40
- * @description:easy-es测试
- */
-@RestController
-@RequestMapping("/testEs")
-@RequiredArgsConstructor
-public class EsController {
-
-
-    @GetMapping(value = "/createIndex")
-    public void createIndex() {
-        // 索引名
-        String indexName = "product002";
-
-        // 构建setting时,builder用到的lambda
-        Function<IndexSettings.Builder, ObjectBuilder<IndexSettings>> settingFn = sBuilder -> sBuilder
-                .index(iBuilder -> iBuilder
-                        // 三个分片
-                        .numberOfShards("3")
-                        // 一个副本
-                        .numberOfReplicas("1")
-                );
-
-        // 新的索引有三个字段,每个字段都有自己的property,这里依次创建
-        Property keywordProperty = Property.of(pBuilder -> pBuilder.keyword(kBuilder -> kBuilder.ignoreAbove(256)));
-        Property textProperty = Property.of(pBuilder -> pBuilder.text(tBuilder -> tBuilder));
-        Property integerProperty = Property.of(pBuilder -> pBuilder.integer(iBuilder -> iBuilder));
-
-        // // 构建mapping时,builder用到的lambda
-        Function<TypeMapping.Builder, ObjectBuilder<TypeMapping>> mappingFn = mBuilder -> mBuilder
-                .properties("name", keywordProperty)
-                .properties("description", textProperty)
-                .properties("price", integerProperty);
-
-        // 创建索引,并且指定了setting和mapping
-        EsUtils.createIndex(indexName, settingFn, mappingFn);
-
-    }
-
-
-    @GetMapping(value = "/deleteIndex")
-    public void deleteIndex() {
-        EsUtils.delIndex("product002");
-    }
-
-    @GetMapping(value = "/bulkSave")
-    public void bulkSave() {
-        List<Product> list = Lists.newArrayList();
-        Product nancy = Product.builder().name("Nancy").description("试试").price(1000).build();
-        Product jason = Product.builder().name("Jason").description("玩玩").price(2000).build();
-        Product xason = Product.builder().name("xason").description("试试2").price(3000).build();
-        Product qason = Product.builder().name("qason").description("玩玩2").price(3000).build();
-        list.add(nancy);
-        list.add(jason);
-        list.add(xason);
-        list.add(qason);
-        EsUtils.bulkSave("product002", list);
-
-    }
-
-    @GetMapping(value = "/search")
-    public void search() {
-        List<Hit<Object>> list = EsUtils.advancedQueryByPage("product002", 3, 2);
-        System.out.println(list);
-    }
-}

+ 4 - 4
sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/ExcelExportController.java

@@ -7,12 +7,12 @@ import com.sckw.example.dao.KwsDeptDao;
 import com.sckw.example.model.KwsDept;
 import com.sckw.example.model.vo.SysUserVo;
 import com.sckw.example.service.ExcelExportService;
-import com.sckw.excel.config.easyexcel.ExcelImportListener;
-import com.sckw.excel.config.easyexcel.RequestHolder;
+import com.sckw.excel.easyexcel.ExcelImportListener;
+import com.sckw.excel.easyexcel.RequestHolder;
 import com.sckw.excel.utils.DateUtil;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.file.api.dubbo.FileApiDubboService;
-import io.seata.spring.annotation.GlobalTransactional;
+//import io.seata.spring.annotation.GlobalTransactional;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
@@ -126,7 +126,7 @@ public class ExcelExportController {
      * 分布式事务验证
      * @return
      */
-    @GlobalTransactional
+    //@GlobalTransactional
     @RequestMapping(value = "globalTransactionalDemo",method = RequestMethod.GET)
     public HttpResult globalTransactionalDemo() {
         //auth 服务 调用example实现的dubbo接口

+ 3 - 4
sckw-modules/sckw-example/src/main/java/com/sckw/example/service/ExcelExportService.java

@@ -8,14 +8,13 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.example.model.vo.SysEnterpriseVo;
 import com.sckw.example.model.vo.SysUserVo;
 import com.sckw.excel.common.FileType;
-import com.sckw.excel.config.easyexcel.ExcelImportListener;
-import com.sckw.excel.config.easyexcel.SheetExcelData;
+import com.sckw.excel.easyexcel.ExcelImportListener;
+import com.sckw.excel.easyexcel.SheetExcelData;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
-
 import java.io.*;
 import java.net.URLEncoder;
 import java.util.ArrayList;
@@ -209,4 +208,4 @@ public class ExcelExportService {
         }
         return HttpResult.ok(HttpStatus.SUCCESS_CODE);
     }
-}
+}

+ 29 - 79
sckw-modules/sckw-example/src/main/resources/bootstrap-dev.yml

@@ -1,5 +1,3 @@
-server:
-  port: 10300
 spring:
   cloud:
     nacos:
@@ -7,75 +5,21 @@ spring:
         # 服务注册地址
         server-addr: 10.10.10.230:8848
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
-        # 权重 1-100 数值越大权重越大分配的流量就越大,通常结合权重负载均衡策略
-#        weight: 100
       config:
         # 配置中心地址
         server-addr: 10.10.10.230:8848
         # 配置文件格式
         file-extension: yaml
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
-        enabled: true
-    stream:
-      binders:
-        defaultRabbit:
-          type: rabbit
-          environment:
-            spring:
-              rabbitmq:
-                virtual-host: /
-                host: 10.10.10.230
-                port: 5672
-                username: sckw
-                password: Yy123...
-      bindings:
-        sckwSms-in-0:
-          destination: sckw-sms
-          content-type: application/json
-          binder: defaultRabbit
-          group: sckw
-        sckwSms-out-0:
-          destination: sckw-sms
-          content-type: application/json
-          default-binder: defaultRabbit
-          group: sckw
-        sckwMessage-in-0:
-          destination: sckw-message
-          content-type: application/json
-          binder: defaultRabbit
-          group: sckw
-        sckwMessage-out-0:
-          destination: sckw-message
-          content-type: application/json
-          binder: defaultRabbit
-          group: sckw
-  rabbitmq:
-    username: sckw
-    password: Yy123...
-    host: 10.10.10.230
-    port: 5672
-    virtual-host: /
+
   data:
-    mongodb:
-      uri: mongodb://sckw:Yy123...@10.10.10.230:27017/sckw?authSource=admin&authMechanism=SCRAM-SHA-1
-      binders:
-        defaultRabbit:
-          type: rabbit
-          environment:
-            spring:
-              rabbitmq:
-                virtual-host: /
-                host: 39.104.134.114
-                port: 5672
-                username: wph
-                password: Yy123...
-# sentinel降级配置
+    # sentinel降级配置
     sentinel:
       transport:
         client-ip: ${spring.cloud.client.ip-address} # 获取本机IP地址
@@ -89,7 +33,7 @@ spring:
         web-context-unify: false
         #持久化nacos配置中
       datasource:
-#        sentinel-rule: # 唯一名称可自定义
+        #sentinel-rule: 唯一名称可自定义
         #限流
         flow:
           nacos:
@@ -97,7 +41,7 @@ spring:
             namespace:  sckw-service-platform-dev
             server-addr:  ${spring.cloud.nacos.discovery.server-addr}
             # 设置Nacos中配置文件的命名规则
-#            data-id:  ${spring.application.name}-sentinel-flow-rules
+            #            data-id:  ${spring.application.name}-sentinel-flow-rules
             data-id:  sckw-example-sentinel-flow-rules
             group-id: SENTINEL_GROUP
             data-type: json
@@ -106,9 +50,9 @@ spring:
         #熔断
         degrade:
           nacos:
-#            namespace:  sckw-service-platform-dev
+            namespace:  sckw-service-platform-dev
             server-addr: ${spring.cloud.nacos.discovery.server-addr}
-#            data-id: ${spring.application.name}-sentinel-degrade-rules
+            #data-id: ${spring.application.name}-sentinel-degrade-rules
             data-id: sckw-example-sentinel-degrade-rules
             group-id: SENTINEL_GROUP
             #熔断
@@ -117,52 +61,58 @@ spring:
       eager: true
   datasource:
     dynamic:
-      seata: true
+      seata: false
+  main:
+    allow-circular-references: true
+
+
 seata:
   # seata 服务分组,要与服务端nacos-config.txt中service.vgroup_mapping的后缀对应
+  # 事务分组名称,要和服务端对应
   tx-service-group: example-seata-service-group
   service:
     vgroup-mapping:
+      # key是事务分组名称 value要和服务端的机房名称保持一致
       example-seata-service-group: default
   registry:
     # 指定nacos作为注册中心
     type: nacos
     nacos:
-      server-addr: 10.10.10.230:8848
-      namespace: sckw-service-platform-dev
-      group: sckw-service-platform
-
+      server-addr: ${spring.cloud.nacos.discovery.server-addr}
+      namespace: ${spring.cloud.nacos.discovery.namespace}
+      #group: SEATA_GROUP为默认分组
+      group: ${spring.cloud.nacos.discovery.group}
   config:
     # 指定nacos作为配置中心
     type: nacos
     nacos:
-      server-addr: 10.10.10.230:8848
-      namespace: sckw-service-platform-dev
-      group: sckw-service-platform
+      server-addr: ${spring.cloud.nacos.discovery.server-addr}
+      namespace: ${spring.cloud.nacos.discovery.namespace}
+      group: ${spring.cloud.nacos.discovery.group}
   application-id: ${spring.application.name}
-  #  当前不生效,使用驼峰
-  enabled: true
-  #  enable-auto-data-source-proxy: false
-  enableAutoDataSourceProxy: false
 # 支持feign对sentinel支持
 #feign:
 #  sentinel:
 #    enabled: true
 
+# dubbo
 dubbo:
   application:
     # 此处没有延用spring.application.name是因为当前项目本身也会注册到nacos中,如果dubbo也延用相同的名称,在nacos服务里会看到注册的producer-server服务数为2
     name: example-dubbo-server
+    parameters:
+      group: ${spring.cloud.nacos.discovery.group}
+      namespace: ${spring.cloud.nacos.discovery.namespace}
   protocol:
     name: dubbo
     port: -1
-    prefer-serialization: java
-#    host: 10.10.10.5
   registry:
     # 配置dubbo的注册中心为nacos
     address: nacos://${spring.cloud.nacos.discovery.server-addr}
-    group: ${spring.cloud.nacos.config.group}
+    group: ${spring.cloud.nacos.discovery.group}
+    namespace: ${spring.cloud.nacos.discovery.namespace}
     protocol: nacos
     #use-as-config-center: false
     #use-as-metadata-center: false
 
+links:

+ 184 - 30
sckw-modules/sckw-example/src/main/resources/logback-spring.xml

@@ -1,45 +1,199 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-说明:
-    1. 文件的命名和加载顺序有关
-       logback.xml早于application.yml加载,logback-spring.xml晚于application.yml加载
-       如果logback配置需要使用application.yml中的属性,需要命名为logback-spring.xml
-    2. logback使用application.yml中的属性
-       使用springProperty才可使用application.yml中的值 可以设置默认值
--->
-<configuration debug="false">
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
+                 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration  scan="true" scanPeriod="10 seconds">
+    <contextName>logback</contextName>
     <springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue="service"/>
 
-    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
-    <property name="LOG_HOME" value="/tmp/log/${applicationName}" />
-    <!-- 控制台输出 -->
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
+    <property name="log.path" value="/logs/${applicationName}" />
+
+    <!--0. 日志格式和颜色渲染 -->
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 输出到控制台-->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--2. 输出到文档-->
+    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_debug.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 设置字符集 -->
         </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志归档 -->
+            <fileNamePattern>${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录debug级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_info.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 每天日志归档路径以及格式 -->
+            <fileNamePattern>${log.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录info级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
     </appender>
 
-    <!-- 按照每天生成日志文件 -->
-    <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_HOME}/${applicationName}.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <!--日志文件输出的文件名-->
-            <FileNamePattern>${LOG_HOME}/${applicationName}-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
-            <!--日志文件保留天数-->
-            <MaxHistory>30</MaxHistory>
-            <MaxFileSize>1024MB</MaxFileSize>
+    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_warn.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
         </rollingPolicy>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+        <!-- 此日志文档只记录warn级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_error.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
         </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录ERROR级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
     </appender>
 
-    <!-- 日志输出级别 -->
-    <root level="INFO">
-        <appender-ref ref="STDOUT" />
-        <appender-ref ref="FILE" />
+    <!--
+        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
+        以及指定<appender>。<logger>仅有一个name属性,
+        一个可选的level和一个可选的addtivity属性。
+        name:用来指定受此logger约束的某一个包或者具体的某一个类。
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+              还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
+              如果未设置此属性,那么当前logger将会继承上级的级别。
+        addtivity:是否向上级logger传递打印信息。默认是true。
+        <logger name="org.springframework.web" level="info"/>
+        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
+    -->
+    <!-- hibernate logger -->
+    <logger name="com.atguigu" level="debug" />
+    <!-- Spring framework logger -->
+    <logger name="org.springframework" level="debug" additivity="false"></logger>
+
+
+    <!--
+        使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
+        第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
+        第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
+        【logging.level.org.mybatis=debug logging.level.dao=debug】
+     -->
+
+    <!--
+        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+        不能设置为INHERITED或者同义词NULL。默认是DEBUG
+        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+    -->
+
+    <!-- 4. 最终的策略 -->
+    <!-- 4.1 开发环境:打印控制台-->
+    <springProfile name="dev">
+        <logger name="com.sdcm.pmp" level="debug"/>
+    </springProfile>
+
+    <root level="info">
+        <appender-ref ref="CONSOLE" />
+        <appender-ref ref="DEBUG_FILE" />
+        <appender-ref ref="INFO_FILE" />
+        <appender-ref ref="WARN_FILE" />
+        <appender-ref ref="ERROR_FILE" />
     </root>
 
+    <!-- 4.2 生产环境:输出到文档 -->
+    <springProfile name="pro">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="WARN_FILE" />
+        </root>
+    </springProfile>
+
 </configuration>

+ 50 - 33
sckw-modules/sckw-file/pom.xml

@@ -2,90 +2,107 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>sckw-modules</artifactId>
         <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
-<!--    <groupId>com.sckw</groupId>-->
     <artifactId>sckw-file</artifactId>
-    <version>1.0.0</version>
-    <description>文件服务</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
-
     <dependencies>
-
+        <!-- 核心模块 -->
         <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-remote</artifactId>
-            <version>1.0.0</version>
+            <artifactId>sckw-common-core</artifactId>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
+            <artifactId>sckw-common-remote</artifactId>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-datasource</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-redis</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-excel</artifactId>
-            <version>1.0.0</version>
         </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-system-api</artifactId>
-            <version>1.0.0</version>
+        </dependency>
+
+        <!--web-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-loadbalancer</artifactId>
+        </dependency>
+
+        <!--注册中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <!--配置中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
         </dependency>
 
         <!--alibaba oss-->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alicloud-oss</artifactId>
-            <version>2.2.0.RELEASE</version>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.aliyun.oss</groupId>-->
-<!--            <artifactId>aliyun-sdk-oss</artifactId>-->
-<!--            <version>3.8.0</version>-->
-<!--            <scope>compile</scope>-->
-<!--        </dependency>-->
-        <!--jdk9+ 以上需要手动添加-->
+
         <dependency>
             <groupId>javax.xml.bind</groupId>
             <artifactId>jaxb-api</artifactId>
-            <version>2.3.1</version>
         </dependency>
+
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>easyexcel</artifactId>
-            <version>3.0.5</version>
             <scope>compile</scope>
         </dependency>
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-excel</artifactId>
-            <version>1.0.0</version>
-            <scope>compile</scope>
-        </dependency>
-    </dependencies>
 
+    </dependencies>
 </project>

+ 1 - 9
sckw-modules/sckw-file/src/main/java/com/sckw/file/FileApplication.java

@@ -1,7 +1,5 @@
 package com.sckw.file;
 
-
-import io.seata.spring.annotation.datasource.EnableAutoDataSourceProxy;
 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -16,21 +14,15 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
  * @company sckw
  * @date 2023-06-02 17:06:43
  */
-//@MapperScan("com.sckw.file.*.mapper")
 @EnableDubbo
 @EnableFeignClients({"com.sckw.*.api.feign"})
 @EnableDiscoveryClient
-@EnableAutoDataSourceProxy
 @SpringBootApplication
 public class FileApplication {
 
     public static void main(String[] args) {
         // 关闭nacos日志
         System.setProperty("nacos.logging.default.config.enabled", "false");
-        try {
-            SpringApplication.run(FileApplication.class, args);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        SpringApplication.run(FileApplication.class, args);
     }
 }

+ 17 - 51
sckw-modules/sckw-file/src/main/resources/bootstrap-dev.yml

@@ -1,54 +1,24 @@
 spring:
-  rabbitmq:
-    username: admin
-    password: admin
-    host: 10.10.10.138
-    port: 5672
-    virtual-host: /
   cloud:
     nacos:
       discovery:
         # 服务注册地址
         server-addr: 10.10.10.230:8848
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
-        # 权重 1-100 数值越大权重越大分配的流量就越大,通常结合权重负载均衡策略
-      #        weight: 100
       config:
         # 配置中心地址
         server-addr: 10.10.10.230:8848
         # 配置文件格式
         file-extension: yaml
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
-        enabled: true
-    stream:
-      bindings:
-        sckwSms-out-0:
-          destination: sckw-sms
-          content-type: application/json
-          default-binder: defaultRabbit
-          group: sckw
-        sckwMessage-out-0:
-          destination: sckw-message
-          content-type: application/json
-          default-binder: defaultRabbit
-          group: sckw
-      binders:
-        defaultRabbit:
-          type: rabbit
-          environment:
-            spring:
-              rabbitmq:
-                virtual-host: /
-                host: 39.104.134.114
-                port: 5672
-                username: wph
-                password: Yy123...
+
+  data:
     # sentinel降级配置
     sentinel:
       transport:
@@ -91,7 +61,10 @@ spring:
       eager: true
   datasource:
     dynamic:
-      seata: true
+      seata: false
+  main:
+    allow-circular-references: true
+
 seata:
   # seata 服务分组,要与服务端nacos-config.txt中service.vgroup_mapping的后缀对应
   # 事务分组名称,要和服务端对应
@@ -99,10 +72,7 @@ seata:
   service:
     vgroup-mapping:
       # key是事务分组名称 value要和服务端的机房名称保持一致
-      file-seata-service-group: default
-#    配置与nacos同ip
-    grouplist:
-      default: 10.10.10.230
+      system-seata-service-group: default
   registry:
     # 指定nacos作为注册中心
     type: nacos
@@ -119,36 +89,32 @@ seata:
       namespace: ${spring.cloud.nacos.discovery.namespace}
       group: ${spring.cloud.nacos.discovery.group}
   application-id: ${spring.application.name}
-#  当前不生效,使用驼峰
-  enabled: true
-#  enable-auto-data-source-proxy: false
-  enableAutoDataSourceProxy: false
 # 支持feign对sentinel支持
 #feign:
 #  sentinel:
 #    enabled: true
 
-  #限制上传文件大小
-  servlet:
-    multipart:
-      max-file-size: 100MB
-      max-request-size: 100MB
-
+# dubbo
 dubbo:
   application:
     # 此处没有延用spring.application.name是因为当前项目本身也会注册到nacos中,如果dubbo也延用相同的名称,在nacos服务里会看到注册的producer-server服务数为2
     name: file-dubbo-server
+    parameters:
+      group: ${spring.cloud.nacos.discovery.group}
+      namespace: ${spring.cloud.nacos.discovery.namespace}
   protocol:
     name: dubbo
     port: -1
-    prefer-serialization: java
   registry:
     # 配置dubbo的注册中心为nacos
     address: nacos://${spring.cloud.nacos.discovery.server-addr}
-    group: ${spring.cloud.nacos.config.group}
+    group: ${spring.cloud.nacos.discovery.group}
+    namespace: ${spring.cloud.nacos.discovery.namespace}
     protocol: nacos
     #use-as-config-center: false
     #use-as-metadata-center: false
+
+links:
 aliyun:
   oss:
     endpoint: oss-cn-chengdu.aliyuncs.com

+ 184 - 30
sckw-modules/sckw-file/src/main/resources/logback-spring.xml

@@ -1,45 +1,199 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-说明:
-    1. 文件的命名和加载顺序有关
-       logback.xml早于application.yml加载,logback-spring.xml晚于application.yml加载
-       如果logback配置需要使用application.yml中的属性,需要命名为logback-spring.xml
-    2. logback使用application.yml中的属性
-       使用springProperty才可使用application.yml中的值 可以设置默认值
--->
-<configuration debug="false">
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
+                 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration  scan="true" scanPeriod="10 seconds">
+    <contextName>logback</contextName>
     <springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue="service"/>
 
-    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
-    <property name="LOG_HOME" value="/tmp/log/${applicationName}" />
-    <!-- 控制台输出 -->
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
+    <property name="log.path" value="/logs/${applicationName}" />
+
+    <!--0. 日志格式和颜色渲染 -->
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 输出到控制台-->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--2. 输出到文档-->
+    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_debug.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 设置字符集 -->
         </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志归档 -->
+            <fileNamePattern>${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录debug级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_info.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 每天日志归档路径以及格式 -->
+            <fileNamePattern>${log.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录info级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
     </appender>
 
-    <!-- 按照每天生成日志文件 -->
-    <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_HOME}/${applicationName}.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <!--日志文件输出的文件名-->
-            <FileNamePattern>${LOG_HOME}/${applicationName}-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
-            <!--日志文件保留天数-->
-            <MaxHistory>30</MaxHistory>
-            <MaxFileSize>1024MB</MaxFileSize>
+    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_warn.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
         </rollingPolicy>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+        <!-- 此日志文档只记录warn级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_error.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
         </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录ERROR级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
     </appender>
 
-    <!-- 日志输出级别 -->
-    <root level="INFO">
-        <appender-ref ref="STDOUT" />
-        <appender-ref ref="FILE" />
+    <!--
+        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
+        以及指定<appender>。<logger>仅有一个name属性,
+        一个可选的level和一个可选的addtivity属性。
+        name:用来指定受此logger约束的某一个包或者具体的某一个类。
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+              还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
+              如果未设置此属性,那么当前logger将会继承上级的级别。
+        addtivity:是否向上级logger传递打印信息。默认是true。
+        <logger name="org.springframework.web" level="info"/>
+        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
+    -->
+    <!-- hibernate logger -->
+    <logger name="com.atguigu" level="debug" />
+    <!-- Spring framework logger -->
+    <logger name="org.springframework" level="debug" additivity="false"></logger>
+
+
+    <!--
+        使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
+        第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
+        第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
+        【logging.level.org.mybatis=debug logging.level.dao=debug】
+     -->
+
+    <!--
+        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+        不能设置为INHERITED或者同义词NULL。默认是DEBUG
+        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+    -->
+
+    <!-- 4. 最终的策略 -->
+    <!-- 4.1 开发环境:打印控制台-->
+    <springProfile name="dev">
+        <logger name="com.sdcm.pmp" level="debug"/>
+    </springProfile>
+
+    <root level="info">
+        <appender-ref ref="CONSOLE" />
+        <appender-ref ref="DEBUG_FILE" />
+        <appender-ref ref="INFO_FILE" />
+        <appender-ref ref="WARN_FILE" />
+        <appender-ref ref="ERROR_FILE" />
     </root>
 
+    <!-- 4.2 生产环境:输出到文档 -->
+    <springProfile name="pro">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="WARN_FILE" />
+        </root>
+    </springProfile>
+
 </configuration>

+ 47 - 33
sckw-modules/sckw-message/pom.xml

@@ -2,81 +2,95 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>sckw-modules</artifactId>
         <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
-    <groupId>com.sckw</groupId>
     <artifactId>sckw-message</artifactId>
-    <version>1.0.0</version>
-    <description>消息服务</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
-
     <dependencies>
+        <!-- 核心模块 -->
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-core</artifactId>
-            <version>1.0.0</version>
         </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-remote</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-datasource</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-redis</artifactId>
-            <version>1.0.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-stream</artifactId>
         </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-system-api</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-message-api</artifactId>
-            <version>1.0.0</version>
         </dependency>
+
+        <!--web-->
         <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-stream</artifactId>
-            <version>1.0.0</version>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
-    </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>3.0.5</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
 
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-loadbalancer</artifactId>
+        </dependency>
+
+        <!--注册中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <!--配置中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+
+    </dependencies>
 </project>

+ 3 - 32
sckw-modules/sckw-message/src/main/java/com/sckw/message/MessageApplication.java

@@ -1,48 +1,19 @@
 package com.sckw.message;
 
-
 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
-import org.springframework.context.annotation.Bean;
-import org.springframework.messaging.Message;
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.FluxSink;
-
-import java.util.concurrent.atomic.AtomicReference;
-import java.util.function.Supplier;
 
-/**
- * @desc: 消息服务服务
- * @author: yzc
- * @date: 2023-06-21 11:46
- */
 @EnableDubbo
+@EnableFeignClients({"com.sckw.*.api.feign"})
 @EnableDiscoveryClient
-@SpringBootApplication(scanBasePackages = {"com.sckw.core", "com.sckw.message"})
+@SpringBootApplication
 public class MessageApplication {
 
     public static void main(String[] args) {
-        // 关闭nacos日志
-        System.setProperty("nacos.logging.default.config.enabled", "false");
-        try {
-            SpringApplication.run(MessageApplication.class, args);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    @Bean
-    public AtomicReference<FluxSink<Message<String>>> mqSender() {
-        return new AtomicReference<>();
-    }
-
-    @Bean
-    //消息发送者
-    public Supplier<Flux<Message<String>>> im(AtomicReference<FluxSink<Message<String>>> mqSender) {
-        return () -> Flux.create(mqSender::set);
+        SpringApplication.run(MessageApplication.class, args);
     }
 
 }

+ 12 - 4
sckw-modules/sckw-message/src/main/java/com/sckw/message/controller/TestMqController.java

@@ -4,6 +4,7 @@ import cn.hutool.core.lang.UUID;
 import com.alibaba.fastjson2.JSON;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.stream.enums.SmsCodeEnum;
 import com.sckw.stream.model.Person;
 import com.sckw.message.producer.DelayProducer;
 import com.sckw.stream.enums.MessageEnum;
@@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Date;
+import java.util.HashMap;
 
 /**
  * 测试mq
@@ -57,12 +59,18 @@ public class TestMqController {
     public HttpResult sendRabbitMq(String name) {
         String uuid = UUID.fastUUID().toString();
         SckwSms sckwSms = new SckwSms();
-        sckwSms.setTelephone("123456xxxx");
-        streamBridge.send("rec-obj", JSON.toJSONString(sckwSms));
+        sckwSms.setTelephone("17358629955");
+        sckwSms.setSignName("矿拉拉");
+        sckwSms.setTemplateCode(SmsCodeEnum.VERIFICATION_CODE);
+        sckwSms.setParams(new HashMap(){{put("code", "123456");}});
+        streamBridge.send("sckw-sms", JSON.toJSONString(sckwSms));
+
 
         SckwMessage message = new SckwMessage();
-        message.setMessageEnum(MessageEnum.AUDIT_PASS);
-        message.setPushTime(new Date());
+        //person.setName(String.valueOf(System.currentTimeMillis()));
+        message.setMsgUrl("---");
+        message.setPushType("====");
+        message.setClientId("111111111111111");
         streamBridge.send("sckw-message", JSON.toJSONString(message));
         return HttpResult.ok(uuid);
 

+ 22 - 57
sckw-modules/sckw-message/src/main/resources/bootstrap-dev.yml

@@ -5,7 +5,7 @@ spring:
         # 服务注册地址
         server-addr: 10.10.10.230:8848
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
       config:
@@ -14,44 +14,11 @@ spring:
         # 配置文件格式
         file-extension: yaml
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
-    function:
-      definition: sckwSms;sckwMessage
-    stream:
-      binders:
-        defaultRabbit:
-          type: rabbit
-          environment:
-            spring:
-              rabbitmq:
-                virtual-host: /
-                host: 39.104.134.114
-                port: 5672
-                username: wph
-                password: Yy123...
-      bindings:
-        sckwSms-in-0:
-          destination: sckw-sms
-          content-type: application/json
-          binder: defaultRabbit
-          group: sckw
-        sckwSms-out-0:
-          destination: sckw-sms
-          content-type: application/json
-          default-binder: defaultRabbit
-          group: sckw
-        sckwMessage-in-0:
-          destination: sckw-message
-          content-type: application/json
-          binder: defaultRabbit
-          group: sckw
-        sckwMessage-out-0:
-          destination: sckw-message
-          content-type: application/json
-          binder: defaultRabbit
-          group: sckw
+
+  data:
     # sentinel降级配置
     sentinel:
       transport:
@@ -75,7 +42,7 @@ spring:
             server-addr:  ${spring.cloud.nacos.discovery.server-addr}
             # 设置Nacos中配置文件的命名规则
             #            data-id:  ${spring.application.name}-sentinel-flow-rules
-            data-id:  sckw-file-sentinel-flow-rules
+            data-id:  sckw-message-sentinel-flow-rules
             group-id: SENTINEL_GROUP
             data-type: json
             # 必填的重要字段,指定当前规则类型是"限流"
@@ -86,7 +53,7 @@ spring:
             namespace:  sckw-service-platform-dev
             server-addr: ${spring.cloud.nacos.discovery.server-addr}
             #data-id: ${spring.application.name}-sentinel-degrade-rules
-            data-id: sckw-file-sentinel-degrade-rules
+            data-id: sckw-message-sentinel-degrade-rules
             group-id: SENTINEL_GROUP
             #熔断
             rule-type: degrade
@@ -94,7 +61,11 @@ spring:
       eager: true
   datasource:
     dynamic:
-      seata: true
+      seata: false
+  main:
+    allow-circular-references: true
+
+
 seata:
   # seata 服务分组,要与服务端nacos-config.txt中service.vgroup_mapping的后缀对应
   # 事务分组名称,要和服务端对应
@@ -102,7 +73,7 @@ seata:
   service:
     vgroup-mapping:
       # key是事务分组名称 value要和服务端的机房名称保持一致
-      message-seata-service-group: default
+      system-seata-service-group: default
   registry:
     # 指定nacos作为注册中心
     type: nacos
@@ -116,38 +87,32 @@ seata:
     type: nacos
     nacos:
       server-addr: ${spring.cloud.nacos.discovery.server-addr}
-      #server-addr: 47.108.162.14:8848
       namespace: ${spring.cloud.nacos.discovery.namespace}
       group: ${spring.cloud.nacos.discovery.group}
   application-id: ${spring.application.name}
-  # 支持feign对sentinel支持
-  #feign:
-  #  sentinel:
-  #    enabled: true
-  rabbitmq:
-    username: admin
-    password: admin
-    host: 10.10.10.138
-    port: 5672
-    virtual-host: /
-
+# 支持feign对sentinel支持
+#feign:
+#  sentinel:
+#    enabled: true
 
 # dubbo
 dubbo:
   application:
     # 此处没有延用spring.application.name是因为当前项目本身也会注册到nacos中,如果dubbo也延用相同的名称,在nacos服务里会看到注册的producer-server服务数为2
     name: message-dubbo-server
+    parameters:
+      group: ${spring.cloud.nacos.discovery.group}
+      namespace: ${spring.cloud.nacos.discovery.namespace}
   protocol:
     name: dubbo
     port: -1
-    prefer-serialization: java
   registry:
     # 配置dubbo的注册中心为nacos
     address: nacos://${spring.cloud.nacos.discovery.server-addr}
-    group: ${spring.cloud.nacos.config.group}
+    group: ${spring.cloud.nacos.discovery.group}
+    namespace: ${spring.cloud.nacos.discovery.namespace}
     protocol: nacos
     #use-as-config-center: false
     #use-as-metadata-center: false
 
-
-
+links:

+ 1 - 15
sckw-modules/sckw-message/src/main/resources/bootstrap.yml

@@ -8,18 +8,4 @@ spring:
     active: ${DEPLOY_MODE:dev}
   main:
     allow-bean-definition-overriding: true
-# Spring
-dubbo:
-  application:
-    # 此处没有延用spring.application.name是因为当前项目本身也会注册到nacos中,如果dubbo也延用相同的名称,在nacos服务里会看到注册的producer-server服务数为2
-    name: message-dubbo-server
-  protocol:
-    name: dubbo
-    port: -1
-  registry:
-    # 配置dubbo的注册中心为nacos
-    address: nacos://${spring.cloud.nacos.discovery.server-addr}
-    group: ${spring.cloud.nacos.config.group}
-    protocol: nacos
-    #use-as-config-center: false
-    #use-as-metadata-center: false
+

+ 199 - 0
sckw-modules/sckw-message/src/main/resources/logback-spring.xml

@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
+                 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration  scan="true" scanPeriod="10 seconds">
+    <contextName>logback</contextName>
+    <springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue="service"/>
+
+    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
+    <property name="log.path" value="/logs/${applicationName}" />
+
+    <!--0. 日志格式和颜色渲染 -->
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 输出到控制台-->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--2. 输出到文档-->
+    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_debug.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志归档 -->
+            <fileNamePattern>${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录debug级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_info.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 每天日志归档路径以及格式 -->
+            <fileNamePattern>${log.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录info级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_warn.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录warn级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_error.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录ERROR级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!--
+        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
+        以及指定<appender>。<logger>仅有一个name属性,
+        一个可选的level和一个可选的addtivity属性。
+        name:用来指定受此logger约束的某一个包或者具体的某一个类。
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+              还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
+              如果未设置此属性,那么当前logger将会继承上级的级别。
+        addtivity:是否向上级logger传递打印信息。默认是true。
+        <logger name="org.springframework.web" level="info"/>
+        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
+    -->
+    <!-- hibernate logger -->
+    <logger name="com.atguigu" level="debug" />
+    <!-- Spring framework logger -->
+    <logger name="org.springframework" level="debug" additivity="false"></logger>
+
+
+    <!--
+        使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
+        第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
+        第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
+        【logging.level.org.mybatis=debug logging.level.dao=debug】
+     -->
+
+    <!--
+        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+        不能设置为INHERITED或者同义词NULL。默认是DEBUG
+        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+    -->
+
+    <!-- 4. 最终的策略 -->
+    <!-- 4.1 开发环境:打印控制台-->
+    <springProfile name="dev">
+        <logger name="com.sdcm.pmp" level="debug"/>
+    </springProfile>
+
+    <root level="info">
+        <appender-ref ref="CONSOLE" />
+        <appender-ref ref="DEBUG_FILE" />
+        <appender-ref ref="INFO_FILE" />
+        <appender-ref ref="WARN_FILE" />
+        <appender-ref ref="ERROR_FILE" />
+    </root>
+
+    <!-- 4.2 生产环境:输出到文档 -->
+    <springProfile name="pro">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="WARN_FILE" />
+        </root>
+    </springProfile>
+
+</configuration>

+ 73 - 5
sckw-modules/sckw-system/pom.xml

@@ -2,22 +2,90 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>sckw-modules</artifactId>
         <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-system</artifactId>
-    <version>1.0.0</version>
-    <description>系统基础服务</description>
 
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
+    <dependencies>
+        <!-- 核心模块 -->
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-remote</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-datasource</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-redis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-stream</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-system-api</artifactId>
+        </dependency>
+
+        <!--web-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-loadbalancer</artifactId>
+        </dependency>
+
+        <!--注册中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <!--配置中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+
+    </dependencies>
 </project>

+ 1 - 5
sckw-modules/sckw-system/src/main/java/com/sckw/system/SystemApplication.java

@@ -1,19 +1,15 @@
 package com.sckw.system;
 
 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
-import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.servlet.ServletComponentScan;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 
 @EnableDubbo
 @EnableFeignClients({"com.sckw.*.api.feign"})
 @EnableDiscoveryClient
-@SpringBootApplication(scanBasePackages = {"com.sckw.core", "com.sckw.core.aspect","com.sckw.system","com.sckw.redis"})
-@MapperScan(basePackages="com.sckw.system.dao")
-@ServletComponentScan("com.sckw.core.filter")
+@SpringBootApplication
 public class SystemApplication {
 
     public static void main(String[] args) {

+ 13 - 38
sckw-modules/sckw-system/src/main/resources/bootstrap-dev.yml

@@ -5,7 +5,7 @@ spring:
         # 服务注册地址
         server-addr: 10.10.10.230:8848
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
       config:
@@ -14,44 +14,11 @@ spring:
         # 配置文件格式
         file-extension: yaml
         # 命名空间
-        namespace: sckw-service-platform-dev
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
-    stream:
-      bindings:
-        sckwSms-out-0:
-          destination: sckw-sms
-          content-type: application/json
-          default-binder: defaultRabbit
-          group: sckw
-        sckwMessage-out-0:
-          destination: sckw-message
-          content-type: application/json
-          default-binder: defaultRabbit
-          group: sckw
-      binders:
-        defaultRabbit:
-          type: rabbit
-          environment:
-            spring:
-              rabbitmq:
-                virtual-host: /
-                host: 10.10.10.230
-                port: 5672
-                username: sckw
-                password: Yy123...
-  rabbitmq:
-    username: sckw
-    password: Yy123...
-    host: 10.10.10.230
-    port: 5672
-    virtual-host: /
+
   data:
-    redis:
-      host: 127.0.0.1
-      port: 6379
-      database: 1
-      timeout: 5000
     # sentinel降级配置
     sentinel:
       transport:
@@ -94,7 +61,10 @@ spring:
       eager: true
   datasource:
     dynamic:
-      seata: true
+      seata: false
+  main:
+    allow-circular-references: true
+
 seata:
   # seata 服务分组,要与服务端nacos-config.txt中service.vgroup_mapping的后缀对应
   # 事务分组名称,要和服务端对应
@@ -129,14 +99,19 @@ dubbo:
   application:
     # 此处没有延用spring.application.name是因为当前项目本身也会注册到nacos中,如果dubbo也延用相同的名称,在nacos服务里会看到注册的producer-server服务数为2
     name: system-dubbo-server
+    parameters:
+      group: ${spring.cloud.nacos.discovery.group}
+      namespace: ${spring.cloud.nacos.discovery.namespace}
   protocol:
     name: dubbo
     port: -1
   registry:
     # 配置dubbo的注册中心为nacos
     address: nacos://${spring.cloud.nacos.discovery.server-addr}
-    group: ${spring.cloud.nacos.config.group}
+    group: ${spring.cloud.nacos.discovery.group}
+    namespace: ${spring.cloud.nacos.discovery.namespace}
     protocol: nacos
     #use-as-config-center: false
     #use-as-metadata-center: false
 
+links:

+ 1 - 1
sckw-modules/sckw-system/src/main/resources/bootstrap.yml

@@ -1,5 +1,5 @@
 server:
-  port: 10040
+  port: 10030
 
 spring:
   application:

+ 199 - 0
sckw-modules/sckw-system/src/main/resources/logback-spring.xml

@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
+                 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration  scan="true" scanPeriod="10 seconds">
+    <contextName>logback</contextName>
+    <springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue="service"/>
+
+    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
+    <property name="log.path" value="/logs/${applicationName}" />
+
+    <!--0. 日志格式和颜色渲染 -->
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 输出到控制台-->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--2. 输出到文档-->
+    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_debug.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志归档 -->
+            <fileNamePattern>${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录debug级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_info.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 每天日志归档路径以及格式 -->
+            <fileNamePattern>${log.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录info级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_warn.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录warn级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/web_error.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录ERROR级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!--
+        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
+        以及指定<appender>。<logger>仅有一个name属性,
+        一个可选的level和一个可选的addtivity属性。
+        name:用来指定受此logger约束的某一个包或者具体的某一个类。
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+              还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
+              如果未设置此属性,那么当前logger将会继承上级的级别。
+        addtivity:是否向上级logger传递打印信息。默认是true。
+        <logger name="org.springframework.web" level="info"/>
+        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
+    -->
+    <!-- hibernate logger -->
+    <logger name="com.atguigu" level="debug" />
+    <!-- Spring framework logger -->
+    <logger name="org.springframework" level="debug" additivity="false"></logger>
+
+
+    <!--
+        使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
+        第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
+        第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
+        【logging.level.org.mybatis=debug logging.level.dao=debug】
+     -->
+
+    <!--
+        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+        不能设置为INHERITED或者同义词NULL。默认是DEBUG
+        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+    -->
+
+    <!-- 4. 最终的策略 -->
+    <!-- 4.1 开发环境:打印控制台-->
+    <springProfile name="dev">
+        <logger name="com.sdcm.pmp" level="debug"/>
+    </springProfile>
+
+    <root level="info">
+        <appender-ref ref="CONSOLE" />
+        <appender-ref ref="DEBUG_FILE" />
+        <appender-ref ref="INFO_FILE" />
+        <appender-ref ref="WARN_FILE" />
+        <appender-ref ref="ERROR_FILE" />
+    </root>
+
+    <!-- 4.2 生产环境:输出到文档-->
+    <springProfile name="pro">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="WARN_FILE" />
+        </root>
+    </springProfile>
+
+</configuration>