From 199c0de8e7a101584c5abf7a8c2bd9eb2217f6a3 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 16 五月 2024 13:09:04 +0800
Subject: [PATCH] 提交微服务业务基础模块

---
 ruoyi-modules/ruoyi-article/src/main/resources/mybatis-config.xml                              |   27 
 ruoyi-modules/ruoyi-member/src/main/resources/banner.txt                                       |   12 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/RuoYiArticleApplication.java       |   36 
 ruoyi-modules/ruoyi-promotion/src/main/resources/bootstrap.yml                                 |   82 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/RuoYiGoodsApplication.java             |   36 
 ruoyi-modules/ruoyi-system/src/main/resources/banner.txt                                       |   12 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/RuoYiAuctionApplication.java       |   36 
 ruoyi-modules/ruoyi-article/src/main/resources/logback.xml                                     |   74 +
 ruoyi-modules/pom.xml                                                                          |    6 
 ruoyi-modules/ruoyi-auction/src/main/resources/logback.xml                                     |   74 +
 ruoyi-modules/ruoyi-order/pom.xml                                                              |  146 +++
 ruoyi-modules/ruoyi-goods/src/main/resources/logback.xml                                       |   74 +
 ruoyi-modules/ruoyi-auction/src/main/resources/bootstrap.yml                                   |   82 ++
 ruoyi-modules/ruoyi-goods/src/main/resources/mybatis-config.xml                                |   27 
 ruoyi-modules/ruoyi-member/src/main/resources/logback.xml                                      |   74 +
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/RuoYiPromotionApplication.java |   36 
 ruoyi-modules/ruoyi-auction/src/main/resources/mybatis-config.xml                              |   27 
 ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml                                     |   82 ++
 ruoyi-modules/ruoyi-promotion/src/main/resources/banner.txt                                    |   10 
 ruoyi-modules/ruoyi-promotion/src/main/resources/logback.xml                                   |   74 +
 ruoyi-modules/ruoyi-order/src/main/resources/banner.txt                                        |   10 
 ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml                                     |   82 ++
 ruoyi-modules/ruoyi-promotion/src/main/resources/mybatis-config.xml                            |   27 
 ruoyi-modules/ruoyi-order/src/main/resources/logback.xml                                       |   74 +
 ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml                                    |   82 ++
 ruoyi-modules/ruoyi-article/src/main/resources/bootstrap.yml                                   |   82 ++
 ruoyi-modules/ruoyi-member/pom.xml                                                             |  145 +++
 ruoyi-modules/ruoyi-promotion/pom.xml                                                          |  146 +++
 ruoyi-modules/ruoyi-auction/pom.xml                                                            |  146 +++
 ruoyi-modules/ruoyi-goods/pom.xml                                                              |  145 +++
 ruoyi-modules/ruoyi-goods/src/main/resources/banner.txt                                        |   11 
 ruoyi-modules/ruoyi-article/pom.xml                                                            |  146 +++
 ruoyi-modules/ruoyi-member/src/main/resources/mybatis-config.xml                               |   27 
 ruoyi-modules/ruoyi-article/src/main/resources/banner.txt                                      |   13 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/RuoYiMemberApplication.java          |   36 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/RuoYiOrderApplication.java             |   36 
 ruoyi-modules/ruoyi-auction/src/main/resources/banner.txt                                      |   12 
 ruoyi-modules/ruoyi-order/src/main/resources/mybatis-config.xml                                |   27 
 38 files changed, 2,268 insertions(+), 6 deletions(-)

diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml
index 3fa1bdd..456e50b 100644
--- a/ruoyi-modules/pom.xml
+++ b/ruoyi-modules/pom.xml
@@ -14,6 +14,12 @@
         <module>ruoyi-job</module>
         <module>ruoyi-file</module>
         <module>ruoyi-seata-demo</module>
+        <module>ruoyi-member</module>
+        <module>ruoyi-goods</module>
+        <module>ruoyi-auction</module>
+        <module>ruoyi-order</module>
+        <module>ruoyi-promotion</module>
+        <module>ruoyi-article</module>
     </modules>
 
     <artifactId>ruoyi-modules</artifactId>
diff --git a/ruoyi-modules/ruoyi-article/pom.xml b/ruoyi-modules/ruoyi-article/pom.xml
new file mode 100644
index 0000000..bd337b3
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/pom.xml
@@ -0,0 +1,146 @@
+<?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.ruoyi</groupId>
+    <artifactId>ruoyi-modules</artifactId>
+    <version>3.6.2</version>
+  </parent>
+
+  <artifactId>ruoyi-modules-article</artifactId>
+
+  <properties>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  <description>
+    ruoyi-modules-article资讯模块
+  </description>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-api-system</artifactId>
+      <scope>compile</scope>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos Config -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Sentinel -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+    </dependency>
+
+    <!-- SpringBoot Actuator -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+    </dependency>
+
+    <!-- Swagger UI -->
+    <dependency>
+      <groupId>io.springfox</groupId>
+      <artifactId>springfox-swagger-ui</artifactId>
+      <version>${swagger.fox.version}</version>
+    </dependency>
+
+    <!-- Mysql Connector -->
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataSource -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datasource</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataScope -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datascope</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Log -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-log</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Swagger -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-swagger</artifactId>
+    </dependency>
+
+    <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>druid-spring-boot-starter</artifactId>
+      <version>${druid.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>fastjson</artifactId>
+      <version>1.2.47</version>
+    </dependency>
+
+    <dependency>
+      <groupId>cn.afterturn</groupId>
+      <artifactId>easypoi-spring-boot-starter</artifactId>
+      <version>4.0.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>guava</artifactId>
+          <groupId>com.google.guava</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <finalName>${project.artifactId}</finalName>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <directory>src/main/java</directory>
+        <includes>
+          <include>**/*.xml</include>
+        </includes>
+        <filtering>false</filtering>
+      </resource>
+    </resources>
+  </build>
+</project>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/RuoYiArticleApplication.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/RuoYiArticleApplication.java
new file mode 100644
index 0000000..f580c71
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/RuoYiArticleApplication.java
@@ -0,0 +1,36 @@
+package com.ruoyi.article;
+
+import com.ruoyi.common.security.annotation.EnableCustomConfig;
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
+import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 系统模块
+ * 
+ * @author ruoyi
+ */
+@EnableCustomConfig
+@MapperScan({"com.ruoyi.article.mapper"})
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+public class RuoYiArticleApplication
+{
+    public static void main(String[] args)
+    {
+        SpringApplication.run(RuoYiArticleApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  资讯模块启动成功   ლ(´ڡ`ლ)゙  \n" +
+                " .-------.       ____     __        \n" +
+                " |  _ _   \\      \\   \\   /  /    \n" +
+                " | ( ' )  |       \\  _. /  '       \n" +
+                " |(_ o _) /        _( )_ .'         \n" +
+                " | (_,_).' __  ___(_ o _)'          \n" +
+                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+                " |  | \\ `'   /|   `-'  /           \n" +
+                " |  |  \\    /  \\      /           \n" +
+                " ''-'   `'-'    `-..-'              ");
+    }
+}
diff --git a/ruoyi-modules/ruoyi-article/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-article/src/main/resources/banner.txt
new file mode 100644
index 0000000..b8d9d06
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/resources/banner.txt
@@ -0,0 +1,13 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+                    ██   ██          ██
+                   ░██  ░░          ░██
+  ██████   ██████ ██████ ██  █████  ░██  █████
+ ░░░░░░██ ░░██░░█░░░██░ ░██ ██░░░██ ░██ ██░░░██
+  ███████  ░██ ░   ░██  ░██░██  ░░  ░██░███████
+ ██░░░░██  ░██     ░██  ░██░██   ██ ░██░██░░░░
+░░████████░███     ░░██ ░██░░█████  ███░░██████
+ ░░░░░░░░ ░░░       ░░  ░░  ░░░░░  ░░░  ░░░░░░
+
+
+
diff --git a/ruoyi-modules/ruoyi-article/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-article/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..d8b60a6
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/resources/bootstrap.yml
@@ -0,0 +1,82 @@
+# Spring
+spring: 
+  application:
+    # 应用名称
+    name: ruoyi-article
+  main:
+    allow-bean-definition-overriding: true
+  profiles:
+    # 环境配置
+    active: dev
+---
+spring:
+  config:
+    activate:
+      on-profile: dev
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8858
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8858
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: prod
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: test
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-article/src/main/resources/logback.xml b/ruoyi-modules/ruoyi-article/src/main/resources/logback.xml
new file mode 100644
index 0000000..780256f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="logs/ruoyi-article" />
+   <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+    <!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+
+    <!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+			<!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+	<logger name="com.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>
+</configuration>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-article/src/main/resources/mybatis-config.xml b/ruoyi-modules/ruoyi-article/src/main/resources/mybatis-config.xml
new file mode 100644
index 0000000..6bd8b03
--- /dev/null
+++ b/ruoyi-modules/ruoyi-article/src/main/resources/mybatis-config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+
+    <settings>
+        <!-- 打印查询语句 不会写入到日志文件中-->
+        <setting name="logImpl" value="STDOUT_LOGGING"/>
+        <!--<setting name="logImpl" value="LOG4J" />-->
+        <!-- 控制全局缓存(二级缓存),按美团技术团队的说法,尽量别用缓存机制 emmmm.... -->
+        <setting name="cacheEnabled" value="true"/>
+        <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false  -->
+        <!-- <setting name="lazyLoadingEnabled" value="true"/> -->
+        <setting name="mapUnderscoreToCamelCase" value="false"/><!--是否将map下划线方式转为驼峰式命名-->
+        <!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖-->
+        <!-- <setting name="aggressiveLazyLoading" value="false"/>-->
+        <!--  Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST -->
+        <!--<setting name="proxyFactory" value="CGLIB" />-->
+        <!-- 关于mybatis的一二级缓存 请参照:https://tech.meituan.com/2018/01/19/mybatis-cache.html -->
+        <!-- 一级缓存范围默认:SESSION ,此范围在复杂应用场景中可能会出现脏读数据-->
+        <!-- STATEMENT级别的缓存,使一级缓存,只针对当前执行的这一statement有效 -->
+        <!--<setting name="localCacheScope" value="STATEMENT"/>-->
+        <setting name="localCacheScope" value="STATEMENT"/>
+        <!--开启枚举类自动转换-->
+        <setting name="defaultEnumTypeHandler" value="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
+    </settings>
+
+</configuration>
diff --git a/ruoyi-modules/ruoyi-auction/pom.xml b/ruoyi-modules/ruoyi-auction/pom.xml
new file mode 100644
index 0000000..8f94805
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/pom.xml
@@ -0,0 +1,146 @@
+<?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.ruoyi</groupId>
+    <artifactId>ruoyi-modules</artifactId>
+    <version>3.6.2</version>
+  </parent>
+
+  <artifactId>ruoyi-modules-auction</artifactId>
+
+  <properties>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  <description>
+    ruoyi-modules-auction拍卖模块
+  </description>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-api-system</artifactId>
+      <scope>compile</scope>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos Config -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Sentinel -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+    </dependency>
+
+    <!-- SpringBoot Actuator -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+    </dependency>
+
+    <!-- Swagger UI -->
+    <dependency>
+      <groupId>io.springfox</groupId>
+      <artifactId>springfox-swagger-ui</artifactId>
+      <version>${swagger.fox.version}</version>
+    </dependency>
+
+    <!-- Mysql Connector -->
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataSource -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datasource</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataScope -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datascope</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Log -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-log</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Swagger -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-swagger</artifactId>
+    </dependency>
+
+    <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>druid-spring-boot-starter</artifactId>
+      <version>${druid.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>fastjson</artifactId>
+      <version>1.2.47</version>
+    </dependency>
+
+    <dependency>
+      <groupId>cn.afterturn</groupId>
+      <artifactId>easypoi-spring-boot-starter</artifactId>
+      <version>4.0.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>guava</artifactId>
+          <groupId>com.google.guava</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <finalName>${project.artifactId}</finalName>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <directory>src/main/java</directory>
+        <includes>
+          <include>**/*.xml</include>
+        </includes>
+        <filtering>false</filtering>
+      </resource>
+    </resources>
+  </build>
+</project>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/RuoYiAuctionApplication.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/RuoYiAuctionApplication.java
new file mode 100644
index 0000000..db66f58
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/RuoYiAuctionApplication.java
@@ -0,0 +1,36 @@
+package com.ruoyi.auction;
+
+import com.ruoyi.common.security.annotation.EnableCustomConfig;
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
+import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 系统模块
+ * 
+ * @author ruoyi
+ */
+@EnableCustomConfig
+@MapperScan({"com.ruoyi.auction.mapper"})
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+public class RuoYiAuctionApplication
+{
+    public static void main(String[] args)
+    {
+        SpringApplication.run(RuoYiAuctionApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  拍卖模块启动成功   ლ(´ڡ`ლ)゙  \n" +
+                " .-------.       ____     __        \n" +
+                " |  _ _   \\      \\   \\   /  /    \n" +
+                " | ( ' )  |       \\  _. /  '       \n" +
+                " |(_ o _) /        _( )_ .'         \n" +
+                " | (_,_).' __  ___(_ o _)'          \n" +
+                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+                " |  | \\ `'   /|   `-'  /           \n" +
+                " |  |  \\    /  \\      /           \n" +
+                " ''-'   `'-'    `-..-'              ");
+    }
+}
diff --git a/ruoyi-modules/ruoyi-auction/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-auction/src/main/resources/banner.txt
new file mode 100644
index 0000000..bdd6fa4
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/resources/banner.txt
@@ -0,0 +1,12 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+                              ██   ██
+                             ░██  ░░
+   ██████   ██   ██  █████  ██████ ██  ██████  ███████
+  ░░░░░░██ ░██  ░██ ██░░░██░░░██░ ░██ ██░░░░██░░██░░░██
+   ███████ ░██  ░██░██  ░░   ░██  ░██░██   ░██ ░██  ░██
+  ██░░░░██ ░██  ░██░██   ██  ░██  ░██░██   ░██ ░██  ░██
+ ░░████████░░██████░░█████   ░░██ ░██░░██████  ███  ░██
+  ░░░░░░░░  ░░░░░░  ░░░░░     ░░  ░░  ░░░░░░  ░░░   ░░
+
+
diff --git a/ruoyi-modules/ruoyi-auction/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-auction/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..9d0661c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/resources/bootstrap.yml
@@ -0,0 +1,82 @@
+# Spring
+spring: 
+  application:
+    # 应用名称
+    name: ruoyi-auction
+  main:
+    allow-bean-definition-overriding: true
+  profiles:
+    # 环境配置
+    active: dev
+---
+spring:
+  config:
+    activate:
+      on-profile: dev
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8858
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8858
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: prod
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: test
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-auction/src/main/resources/logback.xml b/ruoyi-modules/ruoyi-auction/src/main/resources/logback.xml
new file mode 100644
index 0000000..12526cf
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="logs/ruoyi-auction" />
+   <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+    <!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+
+    <!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+			<!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+	<logger name="com.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>
+</configuration>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-auction/src/main/resources/mybatis-config.xml b/ruoyi-modules/ruoyi-auction/src/main/resources/mybatis-config.xml
new file mode 100644
index 0000000..6bd8b03
--- /dev/null
+++ b/ruoyi-modules/ruoyi-auction/src/main/resources/mybatis-config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+
+    <settings>
+        <!-- 打印查询语句 不会写入到日志文件中-->
+        <setting name="logImpl" value="STDOUT_LOGGING"/>
+        <!--<setting name="logImpl" value="LOG4J" />-->
+        <!-- 控制全局缓存(二级缓存),按美团技术团队的说法,尽量别用缓存机制 emmmm.... -->
+        <setting name="cacheEnabled" value="true"/>
+        <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false  -->
+        <!-- <setting name="lazyLoadingEnabled" value="true"/> -->
+        <setting name="mapUnderscoreToCamelCase" value="false"/><!--是否将map下划线方式转为驼峰式命名-->
+        <!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖-->
+        <!-- <setting name="aggressiveLazyLoading" value="false"/>-->
+        <!--  Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST -->
+        <!--<setting name="proxyFactory" value="CGLIB" />-->
+        <!-- 关于mybatis的一二级缓存 请参照:https://tech.meituan.com/2018/01/19/mybatis-cache.html -->
+        <!-- 一级缓存范围默认:SESSION ,此范围在复杂应用场景中可能会出现脏读数据-->
+        <!-- STATEMENT级别的缓存,使一级缓存,只针对当前执行的这一statement有效 -->
+        <!--<setting name="localCacheScope" value="STATEMENT"/>-->
+        <setting name="localCacheScope" value="STATEMENT"/>
+        <!--开启枚举类自动转换-->
+        <setting name="defaultEnumTypeHandler" value="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
+    </settings>
+
+</configuration>
diff --git a/ruoyi-modules/ruoyi-goods/pom.xml b/ruoyi-modules/ruoyi-goods/pom.xml
new file mode 100644
index 0000000..72af07e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/pom.xml
@@ -0,0 +1,145 @@
+<?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.ruoyi</groupId>
+    <artifactId>ruoyi-modules</artifactId>
+    <version>3.6.2</version>
+  </parent>
+
+  <artifactId>ruoyi-modules-goods</artifactId>
+
+  <properties>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  <description>
+    ruoyi-modules-goods商品模块
+  </description>
+  <dependencies>
+
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-api-system</artifactId>
+      <scope>compile</scope>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos Config -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Sentinel -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+    </dependency>
+
+    <!-- SpringBoot Actuator -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+    </dependency>
+
+    <!-- Swagger UI -->
+    <dependency>
+      <groupId>io.springfox</groupId>
+      <artifactId>springfox-swagger-ui</artifactId>
+      <version>${swagger.fox.version}</version>
+    </dependency>
+
+    <!-- Mysql Connector -->
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataSource -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datasource</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataScope -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datascope</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Log -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-log</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Swagger -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-swagger</artifactId>
+    </dependency>
+
+    <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>druid-spring-boot-starter</artifactId>
+      <version>${druid.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>fastjson</artifactId>
+      <version>1.2.47</version>
+    </dependency>
+
+    <dependency>
+      <groupId>cn.afterturn</groupId>
+      <artifactId>easypoi-spring-boot-starter</artifactId>
+      <version>4.0.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>guava</artifactId>
+          <groupId>com.google.guava</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <finalName>${project.artifactId}</finalName>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <directory>src/main/java</directory>
+        <includes>
+          <include>**/*.xml</include>
+        </includes>
+        <filtering>false</filtering>
+      </resource>
+    </resources>
+  </build>
+</project>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/RuoYiGoodsApplication.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/RuoYiGoodsApplication.java
new file mode 100644
index 0000000..2b9bca3
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/RuoYiGoodsApplication.java
@@ -0,0 +1,36 @@
+package com.ruoyi.goods;
+
+import com.ruoyi.common.security.annotation.EnableCustomConfig;
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
+import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 系统模块
+ * 
+ * @author ruoyi
+ */
+@EnableCustomConfig
+@MapperScan({"com.ruoyi.goods.mapper"})
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+public class RuoYiGoodsApplication
+{
+    public static void main(String[] args)
+    {
+        SpringApplication.run(RuoYiGoodsApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  商品模块启动成功   ლ(´ڡ`ლ)゙  \n" +
+                " .-------.       ____     __        \n" +
+                " |  _ _   \\      \\   \\   /  /    \n" +
+                " | ( ' )  |       \\  _. /  '       \n" +
+                " |(_ o _) /        _( )_ .'         \n" +
+                " | (_,_).' __  ___(_ o _)'          \n" +
+                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+                " |  | \\ `'   /|   `-'  /           \n" +
+                " |  |  \\    /  \\      /           \n" +
+                " ''-'   `'-'    `-..-'              ");
+    }
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-goods/src/main/resources/banner.txt
new file mode 100644
index 0000000..aef06f6
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/banner.txt
@@ -0,0 +1,11 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+                                ██
+  █████                        ░██
+ ██░░░██  ██████   ██████      ░██  ██████
+░██  ░██ ██░░░░██ ██░░░░██  ██████ ██░░░░
+░░██████░██   ░██░██   ░██ ██░░░██░░█████
+ ░░░░░██░██   ░██░██   ░██░██  ░██ ░░░░░██
+  █████ ░░██████ ░░██████ ░░██████ ██████
+ ░░░░░   ░░░░░░   ░░░░░░   ░░░░░░ ░░░░░░
+
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..beecb57
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml
@@ -0,0 +1,82 @@
+# Spring
+spring: 
+  application:
+    # 应用名称
+    name: ruoyi-goods
+  main:
+    allow-bean-definition-overriding: true
+  profiles:
+    # 环境配置
+    active: dev
+---
+spring:
+  config:
+    activate:
+      on-profile: dev
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8858
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8858
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: prod
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: test
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/logback.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/logback.xml
new file mode 100644
index 0000000..7b7b75b
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="logs/ruoyi-goods" />
+   <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+    <!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+
+    <!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+			<!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+	<logger name="com.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>
+</configuration>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mybatis-config.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mybatis-config.xml
new file mode 100644
index 0000000..6bd8b03
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mybatis-config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+
+    <settings>
+        <!-- 打印查询语句 不会写入到日志文件中-->
+        <setting name="logImpl" value="STDOUT_LOGGING"/>
+        <!--<setting name="logImpl" value="LOG4J" />-->
+        <!-- 控制全局缓存(二级缓存),按美团技术团队的说法,尽量别用缓存机制 emmmm.... -->
+        <setting name="cacheEnabled" value="true"/>
+        <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false  -->
+        <!-- <setting name="lazyLoadingEnabled" value="true"/> -->
+        <setting name="mapUnderscoreToCamelCase" value="false"/><!--是否将map下划线方式转为驼峰式命名-->
+        <!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖-->
+        <!-- <setting name="aggressiveLazyLoading" value="false"/>-->
+        <!--  Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST -->
+        <!--<setting name="proxyFactory" value="CGLIB" />-->
+        <!-- 关于mybatis的一二级缓存 请参照:https://tech.meituan.com/2018/01/19/mybatis-cache.html -->
+        <!-- 一级缓存范围默认:SESSION ,此范围在复杂应用场景中可能会出现脏读数据-->
+        <!-- STATEMENT级别的缓存,使一级缓存,只针对当前执行的这一statement有效 -->
+        <!--<setting name="localCacheScope" value="STATEMENT"/>-->
+        <setting name="localCacheScope" value="STATEMENT"/>
+        <!--开启枚举类自动转换-->
+        <setting name="defaultEnumTypeHandler" value="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
+    </settings>
+
+</configuration>
diff --git a/ruoyi-modules/ruoyi-member/pom.xml b/ruoyi-modules/ruoyi-member/pom.xml
new file mode 100644
index 0000000..55dcb88
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/pom.xml
@@ -0,0 +1,145 @@
+<?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.ruoyi</groupId>
+    <artifactId>ruoyi-modules</artifactId>
+    <version>3.6.2</version>
+  </parent>
+
+  <artifactId>ruoyi-modules-member</artifactId>
+
+  <properties>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  <description>
+    ruoyi-modules-member会员模块
+  </description>
+  <dependencies>
+
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-api-system</artifactId>
+      <scope>compile</scope>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos Config -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Sentinel -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+    </dependency>
+
+    <!-- SpringBoot Actuator -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+    </dependency>
+
+    <!-- Swagger UI -->
+    <dependency>
+      <groupId>io.springfox</groupId>
+      <artifactId>springfox-swagger-ui</artifactId>
+      <version>${swagger.fox.version}</version>
+    </dependency>
+
+    <!-- Mysql Connector -->
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataSource -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datasource</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataScope -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datascope</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Log -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-log</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Swagger -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-swagger</artifactId>
+    </dependency>
+
+    <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>druid-spring-boot-starter</artifactId>
+      <version>${druid.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>fastjson</artifactId>
+      <version>1.2.47</version>
+    </dependency>
+
+    <dependency>
+      <groupId>cn.afterturn</groupId>
+      <artifactId>easypoi-spring-boot-starter</artifactId>
+      <version>4.0.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>guava</artifactId>
+          <groupId>com.google.guava</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <finalName>${project.artifactId}</finalName>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <directory>src/main/java</directory>
+        <includes>
+          <include>**/*.xml</include>
+        </includes>
+        <filtering>false</filtering>
+      </resource>
+    </resources>
+  </build>
+</project>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/RuoYiMemberApplication.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/RuoYiMemberApplication.java
new file mode 100644
index 0000000..5786867
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/RuoYiMemberApplication.java
@@ -0,0 +1,36 @@
+package com.ruoyi.member;
+
+import com.ruoyi.common.security.annotation.EnableCustomConfig;
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
+import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 系统模块
+ * 
+ * @author ruoyi
+ */
+@EnableCustomConfig
+@MapperScan({"com.ruoyi.member.mapper"})
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+public class RuoYiMemberApplication
+{
+    public static void main(String[] args)
+    {
+        SpringApplication.run(RuoYiMemberApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  会员模块启动成功   ლ(´ڡ`ლ)゙  \n" +
+                " .-------.       ____     __        \n" +
+                " |  _ _   \\      \\   \\   /  /    \n" +
+                " | ( ' )  |       \\  _. /  '       \n" +
+                " |(_ o _) /        _( )_ .'         \n" +
+                " | (_,_).' __  ___(_ o _)'          \n" +
+                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+                " |  | \\ `'   /|   `-'  /           \n" +
+                " |  |  \\    /  \\      /           \n" +
+                " ''-'   `'-'    `-..-'              ");
+    }
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-member/src/main/resources/banner.txt
new file mode 100644
index 0000000..264a500
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/banner.txt
@@ -0,0 +1,12 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+                                 ██
+                                ░██
+ ██████████   █████  ██████████ ░██       █████  ██████
+░░██░░██░░██ ██░░░██░░██░░██░░██░██████  ██░░░██░░██░░█
+ ░██ ░██ ░██░███████ ░██ ░██ ░██░██░░░██░███████ ░██ ░
+ ░██ ░██ ░██░██░░░░  ░██ ░██ ░██░██  ░██░██░░░░  ░██
+ ███ ░██ ░██░░██████ ███ ░██ ░██░██████ ░░██████░███
+░░░  ░░  ░░  ░░░░░░ ░░░  ░░  ░░ ░░░░░    ░░░░░░ ░░░
+
+
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..bf86a85
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml
@@ -0,0 +1,82 @@
+# Spring
+spring: 
+  application:
+    # 应用名称
+    name: ruoyi-member
+  main:
+    allow-bean-definition-overriding: true
+  profiles:
+    # 环境配置
+    active: dev
+---
+spring:
+  config:
+    activate:
+      on-profile: dev
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8858
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8858
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: prod
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: test
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/logback.xml b/ruoyi-modules/ruoyi-member/src/main/resources/logback.xml
new file mode 100644
index 0000000..5273bf3
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="logs/ruoyi-member" />
+   <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+    <!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+
+    <!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+			<!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+	<logger name="com.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>
+</configuration>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mybatis-config.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mybatis-config.xml
new file mode 100644
index 0000000..6bd8b03
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mybatis-config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+
+    <settings>
+        <!-- 打印查询语句 不会写入到日志文件中-->
+        <setting name="logImpl" value="STDOUT_LOGGING"/>
+        <!--<setting name="logImpl" value="LOG4J" />-->
+        <!-- 控制全局缓存(二级缓存),按美团技术团队的说法,尽量别用缓存机制 emmmm.... -->
+        <setting name="cacheEnabled" value="true"/>
+        <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false  -->
+        <!-- <setting name="lazyLoadingEnabled" value="true"/> -->
+        <setting name="mapUnderscoreToCamelCase" value="false"/><!--是否将map下划线方式转为驼峰式命名-->
+        <!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖-->
+        <!-- <setting name="aggressiveLazyLoading" value="false"/>-->
+        <!--  Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST -->
+        <!--<setting name="proxyFactory" value="CGLIB" />-->
+        <!-- 关于mybatis的一二级缓存 请参照:https://tech.meituan.com/2018/01/19/mybatis-cache.html -->
+        <!-- 一级缓存范围默认:SESSION ,此范围在复杂应用场景中可能会出现脏读数据-->
+        <!-- STATEMENT级别的缓存,使一级缓存,只针对当前执行的这一statement有效 -->
+        <!--<setting name="localCacheScope" value="STATEMENT"/>-->
+        <setting name="localCacheScope" value="STATEMENT"/>
+        <!--开启枚举类自动转换-->
+        <setting name="defaultEnumTypeHandler" value="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
+    </settings>
+
+</configuration>
diff --git a/ruoyi-modules/ruoyi-order/pom.xml b/ruoyi-modules/ruoyi-order/pom.xml
new file mode 100644
index 0000000..21c4fd8
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/pom.xml
@@ -0,0 +1,146 @@
+<?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.ruoyi</groupId>
+    <artifactId>ruoyi-modules</artifactId>
+    <version>3.6.2</version>
+  </parent>
+
+  <artifactId>ruoyi-modules-order</artifactId>
+
+  <properties>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  <description>
+    ruoyi-modules-system订单模块
+  </description>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-api-system</artifactId>
+      <scope>compile</scope>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos Config -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Sentinel -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+    </dependency>
+
+    <!-- SpringBoot Actuator -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+    </dependency>
+
+    <!-- Swagger UI -->
+    <dependency>
+      <groupId>io.springfox</groupId>
+      <artifactId>springfox-swagger-ui</artifactId>
+      <version>${swagger.fox.version}</version>
+    </dependency>
+
+    <!-- Mysql Connector -->
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataSource -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datasource</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataScope -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datascope</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Log -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-log</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Swagger -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-swagger</artifactId>
+    </dependency>
+
+    <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>druid-spring-boot-starter</artifactId>
+      <version>${druid.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>fastjson</artifactId>
+      <version>1.2.47</version>
+    </dependency>
+
+    <dependency>
+      <groupId>cn.afterturn</groupId>
+      <artifactId>easypoi-spring-boot-starter</artifactId>
+      <version>4.0.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>guava</artifactId>
+          <groupId>com.google.guava</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <finalName>${project.artifactId}</finalName>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <directory>src/main/java</directory>
+        <includes>
+          <include>**/*.xml</include>
+        </includes>
+        <filtering>false</filtering>
+      </resource>
+    </resources>
+  </build>
+</project>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/RuoYiOrderApplication.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/RuoYiOrderApplication.java
new file mode 100644
index 0000000..7688118
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/RuoYiOrderApplication.java
@@ -0,0 +1,36 @@
+package com.ruoyi.order;
+
+import com.ruoyi.common.security.annotation.EnableCustomConfig;
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
+import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 系统模块
+ * 
+ * @author ruoyi
+ */
+@EnableCustomConfig
+@MapperScan({"com.ruoyi.order.mapper"})
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+public class RuoYiOrderApplication
+{
+    public static void main(String[] args)
+    {
+        SpringApplication.run(RuoYiOrderApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  订单模块启动成功   ლ(´ڡ`ლ)゙  \n" +
+                " .-------.       ____     __        \n" +
+                " |  _ _   \\      \\   \\   /  /    \n" +
+                " | ( ' )  |       \\  _. /  '       \n" +
+                " |(_ o _) /        _( )_ .'         \n" +
+                " | (_,_).' __  ___(_ o _)'          \n" +
+                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+                " |  | \\ `'   /|   `-'  /           \n" +
+                " |  |  \\    /  \\      /           \n" +
+                " ''-'   `'-'    `-..-'              ");
+    }
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-order/src/main/resources/banner.txt
new file mode 100644
index 0000000..35c2490
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/banner.txt
@@ -0,0 +1,10 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+                      ██
+                     ░██
+  ██████  ██████     ░██  █████  ██████
+ ██░░░░██░░██░░█  ██████ ██░░░██░░██░░█
+░██   ░██ ░██ ░  ██░░░██░███████ ░██ ░
+░██   ░██ ░██   ░██  ░██░██░░░░  ░██
+░░██████ ░███   ░░██████░░██████░███
+ ░░░░░░  ░░░     ░░░░░░  ░░░░░░ ░░░
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..b950648
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml
@@ -0,0 +1,82 @@
+# Spring
+spring: 
+  application:
+    # 应用名称
+    name: ruoyi-order
+  main:
+    allow-bean-definition-overriding: true
+  profiles:
+    # 环境配置
+    active: dev
+---
+spring:
+  config:
+    activate:
+      on-profile: dev
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8858
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8858
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: prod
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: test
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/logback.xml b/ruoyi-modules/ruoyi-order/src/main/resources/logback.xml
new file mode 100644
index 0000000..61d523e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="logs/ruoyi-order" />
+   <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+    <!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+
+    <!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+			<!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+	<logger name="com.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>
+</configuration>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mybatis-config.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mybatis-config.xml
new file mode 100644
index 0000000..6bd8b03
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mybatis-config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+
+    <settings>
+        <!-- 打印查询语句 不会写入到日志文件中-->
+        <setting name="logImpl" value="STDOUT_LOGGING"/>
+        <!--<setting name="logImpl" value="LOG4J" />-->
+        <!-- 控制全局缓存(二级缓存),按美团技术团队的说法,尽量别用缓存机制 emmmm.... -->
+        <setting name="cacheEnabled" value="true"/>
+        <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false  -->
+        <!-- <setting name="lazyLoadingEnabled" value="true"/> -->
+        <setting name="mapUnderscoreToCamelCase" value="false"/><!--是否将map下划线方式转为驼峰式命名-->
+        <!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖-->
+        <!-- <setting name="aggressiveLazyLoading" value="false"/>-->
+        <!--  Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST -->
+        <!--<setting name="proxyFactory" value="CGLIB" />-->
+        <!-- 关于mybatis的一二级缓存 请参照:https://tech.meituan.com/2018/01/19/mybatis-cache.html -->
+        <!-- 一级缓存范围默认:SESSION ,此范围在复杂应用场景中可能会出现脏读数据-->
+        <!-- STATEMENT级别的缓存,使一级缓存,只针对当前执行的这一statement有效 -->
+        <!--<setting name="localCacheScope" value="STATEMENT"/>-->
+        <setting name="localCacheScope" value="STATEMENT"/>
+        <!--开启枚举类自动转换-->
+        <setting name="defaultEnumTypeHandler" value="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
+    </settings>
+
+</configuration>
diff --git a/ruoyi-modules/ruoyi-promotion/pom.xml b/ruoyi-modules/ruoyi-promotion/pom.xml
new file mode 100644
index 0000000..a3ed8b5
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/pom.xml
@@ -0,0 +1,146 @@
+<?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.ruoyi</groupId>
+    <artifactId>ruoyi-modules</artifactId>
+    <version>3.6.2</version>
+  </parent>
+
+  <artifactId>ruoyi-modules-promotion</artifactId>
+
+  <properties>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+  <description>
+    ruoyi-modules-promotion营销模块
+  </description>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-api-system</artifactId>
+      <scope>compile</scope>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Nacos Config -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+    </dependency>
+
+    <!-- SpringCloud Alibaba Sentinel -->
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+    </dependency>
+
+    <!-- SpringBoot Actuator -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+    </dependency>
+
+    <!-- Swagger UI -->
+    <dependency>
+      <groupId>io.springfox</groupId>
+      <artifactId>springfox-swagger-ui</artifactId>
+      <version>${swagger.fox.version}</version>
+    </dependency>
+
+    <!-- Mysql Connector -->
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataSource -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datasource</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common DataScope -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-datascope</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Log -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-log</artifactId>
+    </dependency>
+
+    <!-- RuoYi Common Swagger -->
+    <dependency>
+      <groupId>com.ruoyi</groupId>
+      <artifactId>ruoyi-common-swagger</artifactId>
+    </dependency>
+
+    <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>druid-spring-boot-starter</artifactId>
+      <version>${druid.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>fastjson</artifactId>
+      <version>1.2.47</version>
+    </dependency>
+
+    <dependency>
+      <groupId>cn.afterturn</groupId>
+      <artifactId>easypoi-spring-boot-starter</artifactId>
+      <version>4.0.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>guava</artifactId>
+          <groupId>com.google.guava</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <finalName>${project.artifactId}</finalName>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <directory>src/main/java</directory>
+        <includes>
+          <include>**/*.xml</include>
+        </includes>
+        <filtering>false</filtering>
+      </resource>
+    </resources>
+  </build>
+</project>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/RuoYiPromotionApplication.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/RuoYiPromotionApplication.java
new file mode 100644
index 0000000..ed5fd56
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/RuoYiPromotionApplication.java
@@ -0,0 +1,36 @@
+package com.ruoyi.promotion;
+
+import com.ruoyi.common.security.annotation.EnableCustomConfig;
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
+import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 系统模块
+ * 
+ * @author ruoyi
+ */
+@EnableCustomConfig
+@MapperScan({"com.ruoyi.promotion.mapper"})
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+public class RuoYiPromotionApplication
+{
+    public static void main(String[] args)
+    {
+        SpringApplication.run(RuoYiPromotionApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  营销模块启动成功   ლ(´ڡ`ლ)゙  \n" +
+                " .-------.       ____     __        \n" +
+                " |  _ _   \\      \\   \\   /  /    \n" +
+                " | ( ' )  |       \\  _. /  '       \n" +
+                " |(_ o _) /        _( )_ .'         \n" +
+                " | (_,_).' __  ___(_ o _)'          \n" +
+                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+                " |  | \\ `'   /|   `-'  /           \n" +
+                " |  |  \\    /  \\      /           \n" +
+                " ''-'   `'-'    `-..-'              ");
+    }
+}
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-promotion/src/main/resources/banner.txt
new file mode 100644
index 0000000..9ca5982
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/src/main/resources/banner.txt
@@ -0,0 +1,10 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+                                                ██   ██
+ ██████                                        ░██  ░░
+░██░░░██ ██████  ██████  ██████████   ██████  ██████ ██  ██████  ███████
+░██  ░██░░██░░█ ██░░░░██░░██░░██░░██ ██░░░░██░░░██░ ░██ ██░░░░██░░██░░░██
+░██████  ░██ ░ ░██   ░██ ░██ ░██ ░██░██   ░██  ░██  ░██░██   ░██ ░██  ░██
+░██░░░   ░██   ░██   ░██ ░██ ░██ ░██░██   ░██  ░██  ░██░██   ░██ ░██  ░██
+░██     ░███   ░░██████  ███ ░██ ░██░░██████   ░░██ ░██░░██████  ███  ░██
+░░      ░░░     ░░░░░░  ░░░  ░░  ░░  ░░░░░░     ░░  ░░  ░░░░░░  ░░░   ░░
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-promotion/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..2d3960a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/src/main/resources/bootstrap.yml
@@ -0,0 +1,82 @@
+# Spring
+spring: 
+  application:
+    # 应用名称
+    name: ruoyi-promotion
+  main:
+    allow-bean-definition-overriding: true
+  profiles:
+    # 环境配置
+    active: dev
+---
+spring:
+  config:
+    activate:
+      on-profile: dev
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8858
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8858
+        namespace: 689e0f09-d102-460c-ac5c-5ea50a3174be
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: prod
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+---
+spring:
+  config:
+    activate:
+      on-profile: test
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        service: ${spring.application.name}
+        group: DEFAULT_GROUP
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        namespace: 96712c7a-480b-4f40-b783-39f00f3b33ce
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/resources/logback.xml b/ruoyi-modules/ruoyi-promotion/src/main/resources/logback.xml
new file mode 100644
index 0000000..6d76bcc
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="logs/ruoyi-promotion" />
+   <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+    <!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+
+    <!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+			<!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+	<logger name="com.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>
+</configuration>
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/resources/mybatis-config.xml b/ruoyi-modules/ruoyi-promotion/src/main/resources/mybatis-config.xml
new file mode 100644
index 0000000..6bd8b03
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/src/main/resources/mybatis-config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+
+    <settings>
+        <!-- 打印查询语句 不会写入到日志文件中-->
+        <setting name="logImpl" value="STDOUT_LOGGING"/>
+        <!--<setting name="logImpl" value="LOG4J" />-->
+        <!-- 控制全局缓存(二级缓存),按美团技术团队的说法,尽量别用缓存机制 emmmm.... -->
+        <setting name="cacheEnabled" value="true"/>
+        <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false  -->
+        <!-- <setting name="lazyLoadingEnabled" value="true"/> -->
+        <setting name="mapUnderscoreToCamelCase" value="false"/><!--是否将map下划线方式转为驼峰式命名-->
+        <!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖-->
+        <!-- <setting name="aggressiveLazyLoading" value="false"/>-->
+        <!--  Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST -->
+        <!--<setting name="proxyFactory" value="CGLIB" />-->
+        <!-- 关于mybatis的一二级缓存 请参照:https://tech.meituan.com/2018/01/19/mybatis-cache.html -->
+        <!-- 一级缓存范围默认:SESSION ,此范围在复杂应用场景中可能会出现脏读数据-->
+        <!-- STATEMENT级别的缓存,使一级缓存,只针对当前执行的这一statement有效 -->
+        <!--<setting name="localCacheScope" value="STATEMENT"/>-->
+        <setting name="localCacheScope" value="STATEMENT"/>
+        <!--开启枚举类自动转换-->
+        <setting name="defaultEnumTypeHandler" value="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
+    </settings>
+
+</configuration>
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-system/src/main/resources/banner.txt
index fbd45f5..dcc7b80 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/banner.txt
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/banner.txt
@@ -1,10 +1,10 @@
 Spring Boot Version: ${spring-boot.version}
 Spring Application Name: ${spring.application.name}
-                            _                           _                    
-                           (_)                         | |                   
- _ __  _   _   ___   _   _  _  ______  ___  _   _  ___ | |_   ___  _ __ ___  
-| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \ 
+                            _                           _
+                           (_)                         | |
+ _ __  _   _   ___   _   _  _  ______  ___  _   _  ___ | |_   ___  _ __ ___
+| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \
 | |   | |_| || (_) || |_| || |        \__ \| |_| |\__ \| |_ |  __/| | | | | |
 |_|    \__,_| \___/  \__, ||_|        |___/ \__, ||___/ \__| \___||_| |_| |_|
-                      __/ |                  __/ |                           
-                     |___/                  |___/                            
\ No newline at end of file
+                      __/ |                  __/ |
+                     |___/                  |___/
\ No newline at end of file

--
Gitblit v1.7.1