yaoyi před 1 měsícem
revize
5546cc7251
37 změnil soubory, kde provedl 1570 přidání a 0 odebrání
  1. 38 0
      .gitignore
  2. 10 0
      .idea/.gitignore
  3. 7 0
      .idea/encodings.xml
  4. 65 0
      .idea/inspectionProfiles/Project_Default.xml
  5. 14 0
      .idea/misc.xml
  6. 6 0
      .idea/vcs.xml
  7. binární
      com/hr/repository/jpa/TestJpa.class
  8. 1 0
      deploy.bat
  9. 1 0
      install-dev.bat
  10. 1 0
      install-prod.bat
  11. 1 0
      install-test.bat
  12. 386 0
      pom.xml
  13. 20 0
      run-demo-dev.bat
  14. 14 0
      run-demo.bat
  15. 28 0
      src/main/java/com/hr/InterfacePlatformApplication.java
  16. 232 0
      src/main/java/com/hr/controller/DemoController.java
  17. 23 0
      src/main/java/com/hr/dto/MyDto.java
  18. 12 0
      src/main/java/com/hr/dto/MyParmDto.java
  19. 20 0
      src/main/java/com/hr/fegin/Demo1FeginServer.java
  20. 26 0
      src/main/java/com/hr/fegin/demo2/Demo2FeginServer.java
  21. 18 0
      src/main/java/com/hr/fegin/dto/MyDemoDto.java
  22. 10 0
      src/main/java/com/hr/fegin/dto/MyDto.java
  23. 24 0
      src/main/java/com/hr/repository/domain/Demo1Entity.java
  24. 25 0
      src/main/java/com/hr/repository/domain/TestEntity.java
  25. 23 0
      src/main/java/com/hr/repository/jpa/Demo1Jpa.java
  26. 33 0
      src/main/java/com/hr/repository/jpa/TestJpa.java
  27. 54 0
      src/main/java/com/hr/repository/service/DemoAsyncServer.java
  28. 42 0
      src/main/java/com/hr/repository/service/DemoService.java
  29. 97 0
      src/main/java/com/hr/repository/service/TransServer.java
  30. 2 0
      src/main/resources/banner.txt
  31. 58 0
      src/main/resources/bootstrap-dev.yml
  32. 15 0
      src/main/resources/bootstrap.yml
  33. 149 0
      src/main/resources/logback.xml
  34. 37 0
      src/main/resources/mapper/TestMapper.xml
  35. 32 0
      src/test/java/EncryptUtil.java
  36. 25 0
      src/test/java/TestEnc.java
  37. 21 0
      src/test/resources/bootstrap.yml

+ 38 - 0
.gitignore

@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store

+ 10 - 0
.idea/.gitignore

@@ -0,0 +1,10 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# 依赖于环境的 Maven 主目录路径
+/mavenHomeManager.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml

+ 7 - 0
.idea/encodings.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
+  </component>
+</project>

+ 65 - 0
.idea/inspectionProfiles/Project_Default.xml

@@ -0,0 +1,65 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="JpaQlInspection" enabled="true" level="WARNING" enabled_by_default="true" editorAttributes="WARNING_ATTRIBUTES" />
+    <inspection_tool class="JpaQueryApiInspection" enabled="true" level="WARNING" enabled_by_default="true" editorAttributes="WARNING_ATTRIBUTES" />
+    <inspection_tool class="MsBuiltinInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="MsOrderByInspection" enabled="false" level="WARNING" enabled_by_default="false" editorAttributes="WARNING_ATTRIBUTES" />
+    <inspection_tool class="MysqlSpaceAfterFunctionNameInspection" enabled="true" level="WARNING" enabled_by_default="true" editorAttributes="WARNING_ATTRIBUTES" />
+    <inspection_tool class="SpringDataJdbcAssociatedDbElementsInspection" enabled="false" level="ERROR" enabled_by_default="false" />
+    <inspection_tool class="SpringDataMethodInconsistencyInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SpringDataModifyingAnnotationMissing" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SpringDataMongoDBJsonFieldInspection" enabled="false" level="WARNING" enabled_by_default="false" editorAttributes="WARNING_ATTRIBUTES" />
+    <inspection_tool class="SpringDataPageableParameterMissing" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SpringDataRepositoryMethodParametersInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SpringDataRepositoryMethodReturnTypeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlAddNotNullColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlAggregatesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlAmbiguousColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlAutoIncrementDuplicateInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlCallNotationInspection" enabled="false" level="WARNING" enabled_by_default="false" editorAttributes="WARNING_ATTRIBUTES" />
+    <inspection_tool class="SqlCaseVsCoalesceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlCaseVsIfInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlCheckUsingColumnsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlConstantExpressionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlCurrentSchemaInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlDeprecateTypeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlDerivedTableAliasInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlDialectInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlDropIndexedColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlDtInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlDuplicateColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlIdentifierInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlIllegalCursorStateInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlInsertIntoGeneratedColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlInsertNullIntoNotNullInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlInsertValuesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlJoinWithoutOnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlMisleadingReferenceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlMissingReturnInspection" enabled="false" level="WARNING" enabled_by_default="false" editorAttributes="WARNING_ATTRIBUTES" />
+    <inspection_tool class="SqlMultipleLimitClausesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlNoDataSourceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlRedundantAliasInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlRedundantCodeInCoalesceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlRedundantElseNullInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlRedundantLimitInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlRedundantOrderingDirectionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlResolveInspection" enabled="false" level="WARNING" enabled_by_default="false" editorAttributes="WARNING_ATTRIBUTES" />
+    <inspection_tool class="SqlShadowingAliasInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlShouldBeInGroupByInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlSideEffectsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlSignatureInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlSingleSessionModeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlStorageInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlStringLengthExceededInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlTransactionStatementInTriggerInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlTriggerTransitionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlTypeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlUnicodeStringLiteralInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlUnreachableCodeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlUnusedCteInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlUnusedSubqueryItemInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlUnusedVariableInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+    <inspection_tool class="SqlWithoutWhereInspection" enabled="false" level="WARNING" enabled_by_default="false" />
+  </profile>
+</component>

+ 14 - 0
.idea/misc.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" project-jdk-name="ms-21" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="" />
+  </component>
+</project>

binární
com/hr/repository/jpa/TestJpa.class


+ 1 - 0
deploy.bat

@@ -0,0 +1 @@
+mvn  deploy -P deploy

+ 1 - 0
install-dev.bat

@@ -0,0 +1 @@
+mvn  install -P dev

+ 1 - 0
install-prod.bat

@@ -0,0 +1 @@
+mvn  install -P prod

+ 1 - 0
install-test.bat

@@ -0,0 +1 @@
+mvn  install -P test

+ 386 - 0
pom.xml

@@ -0,0 +1,386 @@
+<?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>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.2.12</version>
+
+    </parent>
+    <groupId>com.hr</groupId>
+    <artifactId>InterfacePlatform</artifactId>
+    <version>1.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>
+        <xiaohh-cloud.version>xiaohh-1.0.0</xiaohh-cloud.version>
+        <spring-boot.version>3.2.12</spring-boot.version>
+        <spring-cloud.version>2023.0.4</spring-cloud.version>
+        <spring-cloud-alibaba.version>2023.0.1.0</spring-cloud-alibaba.version>
+        <mybatis-starter.version>3.0.4</mybatis-starter.version>
+        <!--        <spring-cloud-openfeign.version>4.2.0</spring-cloud-openfeign.version>-->
+        <micrometer-tracing.version>1.4.1</micrometer-tracing.version>
+        <java.version>21</java.version>
+    </properties>
+
+
+    <repositories>
+        <repository>
+            <id>aliyun-public</id>
+            <url>https://maven.aliyun.com/repository/public</url>
+            <releases><enabled>true</enabled></releases>
+            <snapshots><enabled>false</enabled></snapshots>
+        </repository>
+    </repositories>
+
+    <pluginRepositories>
+        <pluginRepository>
+            <id>aliyun-public</id>
+            <url>https://maven.aliyun.com/repository/public</url>
+        </pluginRepository>
+    </pluginRepositories>
+
+
+    <dependencies>
+
+
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>5.9.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+
+
+        <dependency>
+            <groupId>com.google.protobuf</groupId>
+            <artifactId>protobuf-java</artifactId>
+            <version>2.5.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun.openservices</groupId>
+            <artifactId>aliyun-log-logback-appender</artifactId>
+            <version>0.1.15</version>
+        </dependency>
+
+
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.34</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>2.0.57</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.basedevelop</groupId>
+            <artifactId>basedevelop</artifactId>
+            <version>1.0</version>
+        </dependency>
+
+
+
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>3.0.4</version>
+        </dependency>
+
+
+
+
+        <!-- 链路追踪依赖 -->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-tracing-bom</artifactId>
+            <version>1.4.1</version>
+            <type>pom</type>
+            <scope>import</scope>
+        </dependency>
+
+
+
+
+
+
+        <!-- Seata 分布式事务 -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+        </dependency>
+        <!-- SpringWeb 依赖 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <!-- Spring 健康检查依赖 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <!-- Bootstrap 配置文件支持 -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+            <version>4.1.5</version>
+        </dependency>
+
+        <!-- Nacos 注册中心 -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+            <version>2023.0.1.0</version>
+        </dependency>
+
+        <!-- Nacos 注册中心 -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+            <version>2023.0.1.0</version>
+        </dependency>
+
+        <!-- Seata 分布式事务 -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+            <version>2023.0.1.0</version>
+        </dependency>
+
+        <!-- SpringCloud 负载均衡启动器 -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+            <version>4.1.5</version>
+        </dependency>
+
+        <!-- MySQL 数据库驱动 -->
+        <dependency>
+            <groupId>com.mysql</groupId>
+            <artifactId>mysql-connector-j</artifactId>
+        </dependency>
+
+        <!-- MyBatis 整合启动器 -->
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>3.0.4</version>
+        </dependency>
+
+
+
+        <!-- Micrometer 整合 Brave 追踪器 -->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-tracing-bridge-brave</artifactId>
+        </dependency>
+        <!-- Micrometer 指标追踪 -->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-tracing</artifactId>
+        </dependency>
+        <!-- Micrometer 观察者 -->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-observation</artifactId>
+        </dependency>
+        <!-- 整合 Openfeign -->
+        <!-- OpenFeign 依赖 -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+            <version>4.1.4</version>
+        </dependency>
+
+
+
+
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>21</source>
+                    <target>21</target>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>3.0.0</version>
+                <executions>
+                    <execution>
+                        <id>prepare-package</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>java</goal>
+                        </goals>
+                        <configuration>
+                            <mainClass>com.yy.basedevelop.common.util.Codepackage</mainClass>
+                            <arguments>
+
+                            </arguments>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+
+
+    </build>
+
+
+    <profiles>
+        <profile>
+            <id>deploy</id>
+
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-jar-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>client</id>
+                                <goals><goal>jar</goal></goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <classifier>client</classifier>
+                                    <includes>
+                                        <include>**/fegin/**</include>
+                                    </includes>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+
+            </build>
+        </profile>
+        <profile>
+            <id>dev</id>
+            <build>
+                <finalName>${project.artifactId}-dev</finalName>
+                <plugins>
+                    <plugin>
+                        <groupId>org.springframework.boot</groupId>
+                        <artifactId>spring-boot-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>repackage</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-compiler-plugin</artifactId>
+                        <version>3.8.1</version> <!-- 使用最新版本 -->
+                        <configuration>
+                            <source>21</source> <!-- 设置源代码的 JDK 版本 -->
+                            <target>21</target> <!-- 设置目标字节码的 JDK 版本 -->
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>test</id>
+            <build>
+                <finalName>${project.artifactId}-test</finalName>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-deploy-plugin</artifactId>
+                        <version>3.1.2</version>
+                        <configuration>
+                            <skip>false</skip>
+                        </configuration>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.springframework.boot</groupId>
+                        <artifactId>spring-boot-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>repackage</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>prod</id>
+            <build>
+                <finalName>${project.artifactId}-prod</finalName>
+                <plugins>
+                    <plugin>
+                        <groupId>org.springframework.boot</groupId>
+                        <artifactId>spring-boot-maven-plugin</artifactId>
+                        <version>3.2.12</version>
+                        <configuration>
+                            <mainClass>com.hr.InterfacePlatformApplication</mainClass>
+                        </configuration>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-deploy-plugin</artifactId>
+                        <version>3.1.2</version>
+                        <configuration>
+                            <skip>false</skip>
+                        </configuration>
+                    </plugin>
+
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+
+    <distributionManagement>
+        <repository>
+            <id>releases</id>
+            <url>http://192.168.1.168:8081/repository/maven-releases/</url>
+        </repository>
+        <snapshotRepository>
+            <id>snapshots</id>
+            <url>http://192.168.1.168:8081/repository/maven-snapshots/</url>
+        </snapshotRepository>
+    </distributionManagement>
+
+
+</project>

+ 20 - 0
run-demo-dev.bat

@@ -0,0 +1,20 @@
+@echo off
+echo.
+echo [��Ϣ] ʹ��Jar��������Gateway���̡�
+echo.
+chcp 65001
+cd %~dp0
+cd target
+
+@echo off
+
+set SERVER_ADDR=192.168.0.241:8848
+set USERNAME=nacosReadUser1
+set PASSWORD=nacosReadUser*
+
+@set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
+
+java  -Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m   -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35   -XX:ParallelGCThreads=8 -XX:ConcGCThreads=4  -Dfile.encoding=utf-8  -jar InterfacePlatform-dev.jar
+
+cd bin
+pause

+ 14 - 0
run-demo.bat

@@ -0,0 +1,14 @@
+@echo off
+echo.
+echo [��Ϣ] ʹ��Jar��������Gateway���̡�
+echo.
+chcp 65001
+cd %~dp0
+cd target
+
+@set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
+
+java  -Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m   -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35   -XX:ParallelGCThreads=8 -XX:ConcGCThreads=4  -Dfile.encoding=utf-8  -jar InterfacePlatform.jar
+
+cd bin
+pause

+ 28 - 0
src/main/java/com/hr/InterfacePlatformApplication.java

@@ -0,0 +1,28 @@
+package com.hr;
+
+
+import com.yy.basedevelop.BasedevelopBoot;
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+
+@EnableTransactionManagement
+@EnableFeignClients
+@EnableDiscoveryClient
+@MapperScan({"com.hr.repository"})
+@SpringBootApplication
+@Slf4j
+public class InterfacePlatformApplication
+{
+    public static void main(String[] args)
+    {
+
+
+        BasedevelopBoot.run(InterfacePlatformApplication.class, args);
+        log.info("(♥◠‿◠)ノ゙  测试环境启动成功   ლ(´ڡ`ლ)゙  \n" );
+    }
+}

+ 232 - 0
src/main/java/com/hr/controller/DemoController.java

@@ -0,0 +1,232 @@
+package com.hr.controller;
+
+
+import com.alibaba.fastjson2.JSONObject;
+
+import com.hr.dto.MyDto;
+import com.hr.dto.MyParmDto;
+
+import com.hr.fegin.dto.MyDemoDto;
+import com.hr.repository.jpa.TestJpa;
+import com.hr.repository.domain.TestEntity;
+import com.hr.repository.service.DemoService;
+import com.hr.repository.service.TransServer;
+import com.github.pagehelper.PageHelper;
+
+import com.yy.basedevelop.common.data.BasePageResult;
+import com.yy.basedevelop.common.data.BaseReturnDto;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.server.ServerWebExchange;
+
+import java.util.List;
+import java.util.random.RandomGenerator;
+
+
+@Slf4j
+@RestController
+@RequestMapping("/test")
+public class DemoController {
+
+    @Autowired
+    private TestJpa testJpa;
+    @Autowired
+    private DemoService sv;
+
+    @Autowired
+    private TransServer transServer;
+    @Autowired
+    private DemoService demoService;
+
+
+    @GetMapping("listname")
+    public BasePageResult<MyDemoDto> queryname(@RequestParam("name") String name) {
+        BasePageResult<MyDemoDto> lst=demoService.qyeryList(name);
+        return  lst.success();
+    }
+
+    @GetMapping("calldemo2")
+    public MyDto demo2() {
+
+
+        return  MyDto.success();
+    }
+
+    @GetMapping("calldemo1")
+    public MyDto demo1() {
+
+
+        transServer.insertLog();
+
+
+        return  MyDto.success();
+    }
+    @GetMapping("calldemo3")
+    public MyDto demo3() {
+
+        log.info("当前访问了calldemo3");
+        transServer.testsubThread();
+
+
+        return  MyDto.success();
+    }
+
+    @GetMapping("calldemo4")
+    public MyDto demo4() {
+
+        log.info("当前访问了calldemo4");
+
+
+
+        return  MyDto.success();
+    }
+
+    @GetMapping("list1")
+    public MyDto list1() {
+
+        log.info("list1");
+
+        return MyDto.success(JSONObject.parseObject("{\"a\":1}"));
+    }
+
+    @PostMapping("/mothod1")
+    public MyDto mothod1(@RequestBody MyParmDto dto) {
+        log.info("当前访问了mothod1");
+
+
+        transServer.method1(dto.getName());
+
+
+        return   MyDto.success();
+    }
+
+
+    @GetMapping("username")
+    public MyDto username(@RequestParam(value = "name", required = false) String name) {
+        if (name == null || name.trim().isEmpty()) {
+            JSONObject error = new JSONObject();
+            error.put("error", "Name parameter is required and cannot be empty");
+            MyDto d= MyDto.success(error);
+
+            return  d;
+        }
+
+
+        JSONObject response = new JSONObject();
+        response.put("name", name);
+        MyDto d= MyDto.error(response);
+
+        return d;
+    }
+
+    @GetMapping("anniu1")
+    public BaseReturnDto<JSONObject> anniu1(){
+        JSONObject response = new JSONObject();
+        response.put("name", "按钮1,编辑权限");
+        return BaseReturnDto.success(response);
+    }
+
+    @GetMapping("anniu2")
+    public BaseReturnDto<JSONObject> anniu2(){
+        JSONObject response = new JSONObject();
+        response.put("name", "按钮2,删除权限");
+        return BaseReturnDto.success(response);
+    }
+
+    @GetMapping("chaxun")
+    public BaseReturnDto<JSONObject> chaxun(){
+        JSONObject response = new JSONObject();
+        response.put("name", "查询,没有设置权限");
+        return BaseReturnDto.success(response);
+    }
+
+    @GetMapping("chaxun2")
+    public BaseReturnDto<JSONObject> chaxun2(
+            @RequestParam(value = "name", required = true) String name){
+        JSONObject response = new JSONObject();
+        response.put("name", "当前获取的name="+name);
+        return BaseReturnDto.success(response);
+    }
+
+    @GetMapping("chaxun3")
+    public BaseReturnDto chaxun3(
+            @RequestParam(value = "name", required = true) String name){
+        JSONObject response = new JSONObject();
+        response.put("name", "当前获取的name="+name);
+        return BaseReturnDto.success(response);
+    }
+
+    @GetMapping("query1")
+    public BaseReturnDto<JSONObject> query1(
+         @RequestParam(value = "name", required = true) String name){
+
+        JSONObject response = new JSONObject();
+        response.put("name", "查询,操作员权限pos:oper");
+        try {
+
+            int r= RandomGenerator.getDefault().nextInt(1,300);
+            Thread.sleep(r);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+
+        List<TestEntity> list=testJpa.findByName(name);
+        log.info("===info1111111====byName="+JSONObject.toJSONString(list));
+
+        PageHelper.startPage(1, 2);
+        BasePageResult<TestEntity> pg1 =testJpa.queryMylist("111");
+        log.info("===info1111111====size="+pg1.getTotal());
+        log.info("===info1111111====name=");
+
+        List<TestEntity> pg12 =testJpa.queryMylist2("sdaasdasd");
+        log.info("===info1111111====size="+JSONObject.toJSONString(pg12));
+
+
+        List<TestEntity> pg13 =testJpa.queryMylist3("sdaasdasd");
+        log.info("===info1111111====size="+JSONObject.toJSONString(pg13));
+
+
+        TestEntity tt1=new TestEntity();
+        tt1.setName(name);
+//        testJpa.save(tt1);
+
+        return BaseReturnDto.success(response);
+    }
+
+    @GetMapping("query2")
+    public BaseReturnDto<JSONObject> query2(){
+        JSONObject response = new JSONObject();
+        response.put("name", "查询,不在菜单范围内,没有设置权限字段");
+        return BaseReturnDto.success(response);
+    }
+
+    @GetMapping("testSetaRmote1")
+    public BaseReturnDto<JSONObject> testSetaRmote1(ServerWebExchange exchange,
+                                                    @RequestParam(value = "name", required = true) String name){
+
+        log.info("=========从demo2传入的值是:{}",name);
+
+        JSONObject response = new JSONObject();
+        response.put("msg", "远程调用成功!");
+        sv.insertLog();
+        log.info("=====调用成功g======");
+        return BaseReturnDto.success(response).msg("操作成功");
+    }
+
+    @GetMapping("testSetaRmote2")
+    public MyDto testSetaRmote2(ServerWebExchange exchange,
+                                @RequestParam(value = "name", required = true) String name){
+        MyDto dd= MyDto.success();
+        JSONObject jj=new JSONObject();
+        jj.put("mgs","好的");
+        dd.setData(jj);
+        log.info("=====调用成功testSetaRmote2======");
+        return dd;
+    }
+
+
+
+}

+ 23 - 0
src/main/java/com/hr/dto/MyDto.java

@@ -0,0 +1,23 @@
+package com.hr.dto;
+
+//import com.yy.basedevelop.common.data.BaseDto;
+import com.yy.basedevelop.common.data.BaseReturnDto;
+import lombok.Data;
+
+@Data
+public class  MyDto<T> extends BaseReturnDto<T> {
+
+   public MyDto(int code, String msg, T data) {
+      super(code, msg,data);
+   }
+   public static MyDto success( Object data) {
+      return new MyDto(200, "success",data);
+   }
+   public static MyDto error( Object data) {
+      return new MyDto(0, "error",data);
+   }
+   public static MyDto success( ) {
+      return new MyDto(200, "success",null);
+   }
+
+}

+ 12 - 0
src/main/java/com/hr/dto/MyParmDto.java

@@ -0,0 +1,12 @@
+package com.hr.dto;
+
+import lombok.Data;
+
+/**
+ * @author yaoy
+ * @createTime 2025/9/28 15:55
+ **/
+@Data
+public class MyParmDto {
+    private String name;
+}

+ 20 - 0
src/main/java/com/hr/fegin/Demo1FeginServer.java

@@ -0,0 +1,20 @@
+package com.hr.fegin;
+
+
+import com.alibaba.fastjson2.JSONObject;
+import com.hr.fegin.dto.MyDto;
+import com.yy.basedevelop.common.data.BaseReturnDto;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+
+@FeignClient(name = "demo1", contextId = "demo1Remote")
+public interface Demo1FeginServer {
+
+
+    @GetMapping("testSetaRmote1")
+    public BaseReturnDto<JSONObject> testSetaRmote1(@RequestParam(value = "name", required = true) String name);
+    @GetMapping("testSetaRmote2")
+    public MyDto testSetaRmote2(@RequestParam(value = "name", required = true) String name);
+}

+ 26 - 0
src/main/java/com/hr/fegin/demo2/Demo2FeginServer.java

@@ -0,0 +1,26 @@
+package com.hr.fegin.demo2;
+
+import com.yy.basedevelop.common.data.BasePageResult;
+import com.yy.basedevelop.common.data.BaseReturnDto;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+/**
+ * @author AAA
+ * @createTime 2025/9/24 17:48
+ **/
+@FeignClient(name = "demo2")
+public interface Demo2FeginServer {
+    @GetMapping("test1")
+    public BaseReturnDto testremote1();
+
+    @GetMapping("test2")
+    public BasePageResult testremote2();
+
+
+    @GetMapping("trans1")
+    public BaseReturnDto trans1();
+
+    @GetMapping("trans2")
+    public BasePageResult trans2();
+}

+ 18 - 0
src/main/java/com/hr/fegin/dto/MyDemoDto.java

@@ -0,0 +1,18 @@
+package com.hr.fegin.dto;
+
+import com.yy.basedevelop.common.data.BaseReturnDto;
+import jakarta.persistence.Column;
+import lombok.Data;
+
+/**
+ * @author yaoy
+ * @createTime 2025/10/9 16:37
+ **/
+@Data
+public class MyDemoDto {
+
+    private Long fid;
+
+
+    private String fname;
+}

+ 10 - 0
src/main/java/com/hr/fegin/dto/MyDto.java

@@ -0,0 +1,10 @@
+package com.hr.fegin.dto;
+
+
+import com.yy.basedevelop.common.data.BaseReturnDto;
+import lombok.Data;
+
+@Data
+public class MyDto extends BaseReturnDto {
+
+}

+ 24 - 0
src/main/java/com/hr/repository/domain/Demo1Entity.java

@@ -0,0 +1,24 @@
+package com.hr.repository.domain;
+
+import com.yy.basedevelop.common.entity.BaseHrEntity;
+import jakarta.persistence.*;
+import lombok.Data;
+
+/**
+ * @author yaoy
+ * @createTime 2025/9/28 15:15
+ **/
+@Data
+@Entity(name="demo1")
+public class Demo1Entity extends BaseHrEntity {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "fid", nullable = false, updatable = false, columnDefinition = "BIGINT AUTO_INCREMENT COMMENT '主键ID'")
+    private Long fid;
+
+    @Column(name = "fname", columnDefinition = "varchar(80)  NULL comment 'fname'")
+    private String fname;
+
+    @Version
+    protected Long version = 0L;
+}

+ 25 - 0
src/main/java/com/hr/repository/domain/TestEntity.java

@@ -0,0 +1,25 @@
+package com.hr.repository.domain;
+
+import com.yy.basedevelop.common.entity.BaseDeptEntity;
+import jakarta.persistence.*;
+import lombok.Data;
+
+@Data
+@Entity(name="test")
+//@Table(name="test")
+public class TestEntity extends BaseDeptEntity {
+
+//    @Id
+//    @GeneratedValue(strategy = GenerationType.UUID)
+//    private String id;
+
+    @Column(name = "name",columnDefinition = "varchar(255)")
+    private String name;
+
+    @Column(name = "auth_cs_depId",columnDefinition = "bigint")
+    private Long authCSDepId;
+
+    @Column(name = "auth_cs_depcode",columnDefinition = "varchar(50)")
+    private String authCSDepCode;
+
+}

+ 23 - 0
src/main/java/com/hr/repository/jpa/Demo1Jpa.java

@@ -0,0 +1,23 @@
+package com.hr.repository.jpa;
+
+import com.hr.fegin.dto.MyDemoDto;
+import com.hr.repository.domain.Demo1Entity;
+import com.hr.repository.domain.TestEntity;
+import com.yy.basedevelop.common.data.BasePageResult;
+import org.hibernate.annotations.processing.SQL;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+
+
+public interface Demo1Jpa extends JpaRepository<Demo1Entity, String> {
+
+
+    public List<TestEntity> findByFname(String name);
+
+    @Query(nativeQuery=true,value="select t.* from demo1 t where t.fname like '%'||:name||'%'")
+    public BasePageResult<MyDemoDto> queryList(@Param("name") String name);
+}

+ 33 - 0
src/main/java/com/hr/repository/jpa/TestJpa.java

@@ -0,0 +1,33 @@
+package com.hr.repository.jpa;
+
+import com.hr.repository.domain.TestEntity;
+import com.yy.basedevelop.common.data.BasePageResult;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+
+
+public interface TestJpa extends JpaRepository<TestEntity, String> {
+
+
+    public List<TestEntity> findByName(String name);
+
+    public BasePageResult<TestEntity> queryMylist(@Param("id")  String id2);
+
+    public List<TestEntity> queryMylist2(@Param("id2")  String id2);
+
+
+
+    @Query("select t from test t where t.id = :id2")
+    public List<TestEntity> queryMylist3(@Param("id2")  String id2);
+
+
+
+
+
+
+}

+ 54 - 0
src/main/java/com/hr/repository/service/DemoAsyncServer.java

@@ -0,0 +1,54 @@
+package com.hr.repository.service;
+
+import com.hr.repository.domain.Demo1Entity;
+import com.hr.repository.jpa.Demo1Jpa;
+import io.seata.core.context.RootContext;
+import io.seata.spring.annotation.GlobalTransactional;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * @author AAA
+ * @createTime 2025/9/25 09:28
+ **/
+@Component
+@Slf4j
+public class DemoAsyncServer {
+    @Autowired
+    private Demo1Jpa demo1Jpa;
+    @Async("asyncExecutor")
+    @GlobalTransactional
+    public CompletableFuture<String> inserttest1(String name,int i){
+
+        Demo1Entity e = new Demo1Entity();
+        e.setFname(name+i);
+        demo1Jpa.save(e);
+
+        return CompletableFuture.completedFuture(String.valueOf(i));
+    }
+
+    @Async("asyncExecutor")
+    public CompletableFuture<String> testAsyncThread(int i){
+        try {
+            log.info("开始计算: " + i + " + " + i);
+
+//            String currentThreadName = Thread.currentThread().getName();
+//            System.out.println("当前虚拟线程名称: " + currentThreadName);
+
+            java.util.Random random = new java.util.Random();
+            Thread.sleep(4900); // 模拟计算时间
+//            Thread.sleep(random.nextInt(500));
+
+            int result = i + i;
+            log.info("计算完成: " + result);
+            return CompletableFuture.completedFuture(String.valueOf(result));
+        } catch (InterruptedException e) {
+            Thread.currentThread().interrupt();
+            return CompletableFuture.failedFuture(e);
+        }
+    }
+}

+ 42 - 0
src/main/java/com/hr/repository/service/DemoService.java

@@ -0,0 +1,42 @@
+package com.hr.repository.service;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.hr.fegin.dto.MyDemoDto;
+import com.hr.repository.domain.TestEntity;
+import com.hr.repository.jpa.Demo1Jpa;
+import com.hr.repository.jpa.TestJpa;
+import com.yy.basedevelop.common.data.BasePageResult;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+@Slf4j
+public class DemoService {
+
+    @Autowired
+    private TestJpa testJpa;
+    @Autowired
+    private Demo1Jpa demo1Jpa;
+
+    @Transactional
+    public void insertLog(){
+        TestEntity tt1=new TestEntity();
+        tt1.setName("测试日志2");
+        testJpa.save(tt1);
+        log.info("===完成了一个日志的插入===={}",tt1);
+
+//        if(1==1){
+//            throw new RuntimeException("测试事务");
+//        }
+    }
+
+    public BasePageResult<MyDemoDto> qyeryList(String name){
+        BasePageResult<MyDemoDto> list= demo1Jpa.queryList(name);
+        return list;
+    }
+}

+ 97 - 0
src/main/java/com/hr/repository/service/TransServer.java

@@ -0,0 +1,97 @@
+package com.hr.repository.service;
+
+import com.hr.fegin.demo2.Demo2FeginServer;
+import com.hr.repository.domain.TestEntity;
+import com.hr.repository.jpa.Demo1Jpa;
+import com.hr.repository.jpa.TestJpa;
+import com.yy.basedevelop.common.data.BasePageResult;
+import com.yy.basedevelop.common.data.BaseReturnDto;
+import io.seata.core.context.RootContext;
+import io.seata.spring.annotation.GlobalTransactional;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.*;
+
+/**
+ * @author AAA
+ * @createTime 2025/9/25 08:55
+ **/
+@Component
+@Slf4j
+public class TransServer {
+    @Autowired
+    private TestJpa testJpa;
+    @Autowired
+    private Demo1Jpa demo1Jpa;
+    @Autowired
+    private Demo2FeginServer demo2FeginServer;
+    @Autowired
+    private DemoAsyncServer demoAsyncServer;
+
+
+    public void testsubThread(){
+        log.info("==processDataAsync---开始异步处理虚拟线程,name:{}");
+
+
+        try {
+
+//            Thread.sleep(300);
+            List<CompletableFuture<String>> futures = new ArrayList<>();
+
+            for (int i = 1; i <= 10; i++) {
+                CompletableFuture<String> future = demoAsyncServer.testAsyncThread( i);
+                futures.add(future);
+            }
+            for(CompletableFuture<String> s1 :futures){
+                String s = s1.get();
+                log.info("====虚拟线程执行完成后返回值:{}", s);
+            }
+
+
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+
+
+    }
+    @GlobalTransactional
+    public void method1(String name){
+
+
+        List<CompletableFuture<String>> futures = new ArrayList<>();
+        try {
+            for (int i = 1; i <= 2; i++) {
+                CompletableFuture<String> future = demoAsyncServer.inserttest1(name, i);
+                futures.add(future);
+            }
+            for (CompletableFuture<String> s1 : futures) {
+                String s = s1.get();
+                log.info("====虚拟线程执行完成后返回值:{}", s);
+            }
+        }catch (Exception e){
+            throw new RuntimeException(e);
+        }
+
+    }
+
+
+
+
+    @GlobalTransactional
+    public void insertLog(){
+
+
+        TestEntity tt1=new TestEntity();
+        tt1.setName("demo1测试");
+        testJpa.save(tt1);
+        log.info("===完成了一个日志的插入===={}",tt1);
+
+        if(1==1){
+            throw new RuntimeException("测试事务");
+        }
+    }
+}

+ 2 - 0
src/main/resources/banner.txt

@@ -0,0 +1,2 @@
+========== Spring Boot Version: ${spring-boot.version} ==============
+========== starting Spring Application Name: ${spring.application.name} ==============

+ 58 - 0
src/main/resources/bootstrap-dev.yml

@@ -0,0 +1,58 @@
+## Spring
+#
+#
+#
+##spring:
+##  cloud:
+##    nacos:
+##      discovery:
+##        # 服务注册地址
+##        server-addr: 127.0.0.1:8848
+##        namespace: public
+##      config:
+##        namespace: public
+##        group: DEFAULT_GROUP
+##        # 配置中心地址
+##        server-addr: 127.0.0.1:8848
+##        prefix: ${spring.application.name}
+##        # 配置文件格式
+##        file-extension: yml
+##  config:
+##    import-check:
+##      enabled: false
+##    import:
+##      - nacos:${spring.application.name}-${spring.profiles.active}.yml
+##配置动态更新网关路由信息
+##dynamic:
+##  route:
+##    address: ${spring.cloud.nacos.discovery.server-addr}
+##    namespace: public
+##    dataId: dynamic-${spring.application.name}-${spring.profiles.active}
+##    group: DEFAULT_GROUP
+##    timeout: 50000
+#seata:
+#  client:
+#    async-committing-retry-period: 1000
+#    lock:
+#      retry-interval: 10
+#    rpc:
+#      timeout: 20000 # 单位毫秒
+#  enabled: true
+#  webflux:
+#    enable: true
+#  data-source-proxy-mode: AT
+#  registry:
+#    nacos:
+#      server-addr: 192.168.0.243:8848
+#      namespace: seata-server
+#      group: SEATA_GROUP
+#      application: seata-server
+#    type: nacos
+#  service:
+#    vgroup-mapping:
+#      default_tx_group: default
+#    grouplist:
+#      default: 192.168.0.243:8091 # 这里应为 Seata Server 的实际地址
+#  tx-service-group: default_tx_group
+#  enable-auto-data-source-proxy: false # 取消自动代理
+#

+ 15 - 0
src/main/resources/bootstrap.yml

@@ -0,0 +1,15 @@
+server:
+  port: 9700
+# Spring
+spring:
+  profiles:
+    # 环境配置
+    active: dev
+  application:
+    # 应用名称
+    name: InterfacePlatform
+
+  cloud:
+    nacos:
+      config:
+        namespace: Auth

+ 149 - 0
src/main/resources/logback.xml

@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false" >
+    <!--为了防止进程退出时,内存中的数据丢失,请加上此选项-->
+    <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
+    <!-- 日志存放路径 -->
+    <property name="log.path" value="logs" />
+    <!-- 日志输出格式 -->
+    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [traceId:%X{traceId}] [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+    <springProperty scope="context" name="appName" source="spring.application.name" />
+    <!-- 控制台输出 -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <!--    <appender name="aliyun" class="com.aliyun.openservices.log.logback.LoghubAppender">-->
+    <appender name="aliyun" class="com.yy.basedevelop.common.log.AliLoghubAppender">
+
+        <!--必选项-->
+        <!-- 账号及网络配置 -->
+        <!--        <endpoint>your project endpoint</endpoint>-->
+        <endpoint>cn-chengdu.log.aliyuncs.com</endpoint>
+
+        <accessKeyId>LTAI5tFXzkZZaz1NVChtkS7g</accessKeyId>
+        <accessKeySecret>Pnl4RCmx4yLgLJptChVpK76UmvtygR</accessKeySecret>
+
+
+        <!-- sls 项目配置 -->
+        <project>log-service-1004674751578531-cn-chengdu</project>
+        <logStore>demo</logStore>
+        <!--必选项 (end)-->
+
+        <!-- 可选项 -->
+        <!--        <topic>your topic</topic>-->
+        <!--        <source>your source</source>-->
+
+        <!-- 可选项 详见 '参数说明'-->
+        <totalSizeInBytes>104857600</totalSizeInBytes>
+        <maxBlockMs>0</maxBlockMs>
+        <ioThreadCount>8</ioThreadCount>
+        <batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>
+        <batchCountThreshold>4096</batchCountThreshold>
+        <lingerMs>2000</lingerMs>
+        <retries>10</retries>
+        <baseRetryBackoffMs>100</baseRetryBackoffMs>
+        <maxRetryBackoffMs>50000</maxRetryBackoffMs>
+
+        <!-- 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 -->
+        <encoder>
+            <pattern>traceId-%X{traceId}</pattern>
+            <!--            %d{HH:mm:ss.SSS} trace_id=%X{trace_id} span_id=%X{span_id} trace_flags=%X{trace_flags} %msg%n-->
+            <!--            <pattern>%d %-5level [%thread] %logger{0}: %msg</pattern>-->
+        </encoder>
+        <MDCProperty>
+            <key>traceId</key>
+        </MDCProperty>
+        <topic>${appName}</topic>
+        <traceId>traceId</traceId>
+        <!-- 可选项 设置 time 字段呈现的格式 -->
+
+        <timeFormat>yyyy-MM-dd HH:mm:ss.SSS</timeFormat>
+        <!-- 可选项 设置 time 字段呈现的时区 -->
+        <timeZone>GMT+8</timeZone>
+        <!-- 可选项 设置是否要添加 Location 字段(日志打印位置),默认为 true -->
+        <includeLocation>true</includeLocation>
+        <!-- 可选项 当 encoder 不为空时,是否要包含 message 字段,默认为 true -->
+        <includeMessage>true</includeMessage>
+        <!-- 可选项 可注入自定义的 credentialsProvider,允许用户自行实现 AK 获取逻辑 -->
+        <!-- 参见 "自定义凭证提供者 CredentialsProvider" 一节介绍 -->
+        <!--        <credentialsProviderBuilder class="com.aliyun.openservices.log.logback.example.ExampleCredentialsProviderBuilder">-->
+        <!--            <accessKeyId>${accessKeyId}</accessKeyId>-->
+        <!--            <accessKeySecret>${accessKeySecret}</accessKeySecret>-->
+        <!--        </credentialsProviderBuilder>-->
+        <!-- 可选项,exception 堆栈最大记录长度,超出此长度会被截断,默认值为 500 -->
+        <maxThrowable>500</maxThrowable>
+    </appender>
+
+    <!-- 系统日志输出 -->
+    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+<!--        <file>${log.path}/app.log</file>-->
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <encoder>
+            <pattern>%d{HH:mm:ss.SSS} [traceId:%X{traceId}] [%thread] %-5level %logger{20} - [%method,%line] - %msg%n</pattern>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!-- rollover daily and when the file reaches 100MB -->
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/info.%i.log</fileNamePattern>
+            <maxFileSize>1MB</maxFileSize>
+            <maxHistory>30</maxHistory> <!-- keep 30 days' worth of history -->
+            <totalSizeCap>1GB</totalSizeCap> <!-- optional, limit the total size for all archive files -->
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+<!--        <file>${log.path}/error.log</file>-->
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <encoder>
+            <pattern>%d{HH:mm:ss.SSS} [traceId:%X{traceId}] [%thread] %-5level %logger{20} - [%method,%line] - %msg%n</pattern>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!-- rollover daily and when the file reaches 100MB -->
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/err.%i.log</fileNamePattern>
+            <maxFileSize>1MB</maxFileSize>
+            <maxHistory>30</maxHistory> <!-- keep 30 days' worth of history -->
+            <totalSizeCap>1GB</totalSizeCap> <!-- optional, limit the total size for all archive files -->
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+
+    <!-- 系统模块日志级别控制  -->
+    <logger name="com.hr" level="info" />
+    <logger name="com.ruoyi" level="info" />
+
+    <!-- Spring日志级别控制  -->
+    <logger name="org.springframework" level="warn" />
+
+    <root level="info">
+        <appender-ref ref="console" />
+    </root>
+
+    <!--系统操作日志-->
+    <root level="info">
+
+        <appender-ref ref="file_info" />
+        <appender-ref ref="file_error" />
+    </root>
+
+<!--    <logger name="com.hr" additivity="true">-->
+<!--        <appender-ref ref="aliyun"/>-->
+<!--    </logger>-->
+
+</configuration>

+ 37 - 0
src/main/resources/mapper/TestMapper.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hr.repository.jpa.TestJpa">
+
+	<resultMap type="com.hr.repository.domain.TestEntity" id="TestResult">
+		<id     property="id"         column="id"        />
+		<result property="name"       column="name"      />
+
+	</resultMap>
+
+	<select id="queryMylist">
+		select id,name
+		from test
+		<where>
+			<if test="id != null and id != ''">
+				AND id !=  #{id}
+			</if>
+
+		</where>
+	</select>
+
+	<select id="queryMylist2">
+		select id,name
+		from test
+		<where>
+			<if test="id2 != null and id2 != ''">
+				AND id !=  #{id2}
+			</if>
+
+		</where>
+	</select>
+
+
+
+</mapper> 

+ 32 - 0
src/test/java/EncryptUtil.java

@@ -0,0 +1,32 @@
+//
+//import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
+//import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
+//import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
+//
+//public class EncryptUtil {
+//    public static void main(String[] args) {
+////        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
+////        encryptor.setPassword("dsfserrfqw3421rds"); // 设置密钥
+////        encryptor.setAlgorithm("PBEWithMD5AndDES"); // 或 AES
+////
+////        String encrypted = encryptor.encrypt("123");
+////        System.out.println("Encrypted: " + encrypted);
+////        System.out.println(encryptor.decrypt(encrypted));
+//
+//        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
+//
+//        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
+//        config.setPassword("fgyuajrdyujr6ydhserghj7tthse446y");
+//        config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256"); // 算法做了更新
+//        config.setKeyObtentionIterations("1000");
+//        config.setPoolSize("1");
+//        config.setProviderName("SunJCE");
+//        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
+//        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
+//        config.setStringOutputType("base64");
+//        encryptor.setConfig(config);
+//
+//        System.out.println(encryptor.encrypt("admin"));
+//
+//    }
+//}

+ 25 - 0
src/test/java/TestEnc.java

@@ -0,0 +1,25 @@
+//import org.jasypt.encryption.StringEncryptor;
+//import org.junit.jupiter.api.Test;
+//import org.junit.jupiter.api.extension.ExtendWith;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.boot.test.context.SpringBootTest;
+//import org.springframework.test.context.ContextConfiguration;
+//import org.springframework.test.context.junit.jupiter.SpringExtension;
+//
+//@ExtendWith(SpringExtension.class)
+//@ContextConfiguration
+//public class TestEnc {
+//
+//    @Autowired
+//    private StringEncryptor encryptor;
+//
+//    @Test
+//    public void encrypt() {
+//        String url = encryptor.encrypt("jdbc:mysql://localhost:3306/study_db?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai");
+//        String name = encryptor.encrypt("root");
+//        String password = encryptor.encrypt("123456");
+//        System.out.println("database url: " + url);
+//        System.out.println("database username: " + name);
+//        System.out.println("database password: " + password);
+//    }
+//}

+ 21 - 0
src/test/resources/bootstrap.yml

@@ -0,0 +1,21 @@
+jasypt:
+  encryptor:
+    algorithm: PBEWITHHMACSHA512ANDAES_256
+    iv-generator-classname: org.jasypt.iv.RandomIvGenerator
+    password: fgyuajrdyujr6ydhserghj7tthse446y # 这里的秘钥一般不会写在配置文件中,为了方便理解暂时放在这里
+    property:
+      prefix: ENC(
+      suffix: )
+
+# Tomcat
+server:
+  port: 9700
+# Spring
+spring:
+  profiles:
+    # 环境配置
+    active: dev
+  application:
+    # 应用名称
+    name: demo1
+    key: enc(1YBUry4rvr7Py2FSroVJPQ==)