Compare commits

...

39 Commits

Author SHA1 Message Date
wangannan c01d279664 fix():修改list集合 2024-12-16 15:36:45 +08:00
DongZeLiang fa29749b22 feat(): 增加分页模型,增加DDD模型概念 2024-12-09 18:40:57 +08:00
DongZeLiang 3a875840ad fix(): 移除了pagehelper的工具,使用mybatisplus分页工具 2024-12-09 18:06:01 +08:00
ZhangXushuo 94198b487c 亮哥你好呀 2024-12-09 11:56:03 +08:00
DongZeLiang cb073f2a58 feat(): 调整整体接口,增加xxl-job-admin 2024-12-06 12:29:49 +08:00
DongZeLiang 4cc75afcb0 修正整体服务器地址,修改数据库名称 2024-12-05 20:30:52 +08:00
DongZeLiang 9aa666272b fix():更新日志模板 2024-10-20 21:21:29 +08:00
DongZeLiang b9307d8c53 feat():增加集成rabbitmq,并且进行编写rabbit测试类 2024-08-01 10:41:20 +08:00
DongZeLiang 7c814936f8 feat():增加分片测试代码 2024-07-21 20:22:24 +08:00
DongZeLiang d8ce56b28a fix():更新nacos最新配置文件,增加xll-job的sql运行脚本 2024-07-21 19:18:31 +08:00
DongZeLiang 3b09796958 Merge remote-tracking branch 'origin/boot3.0' into boot3.0
# Conflicts:
#	init-file/cloud-quartz.sql
#	init-file/cloud-seata.sql
#	init-file/cloud-system.sql
#	init-file/nacos_config.zip
2024-07-17 09:03:21 +08:00
DongZeLiang 0887f57c38 fix():更新nacos最新配置文件,sql运行脚本 2024-07-17 09:02:53 +08:00
DongZeLiang e22f1051ba feat(): 移除了自带定时任务框架,集成了xxl-job 2024-07-15 20:54:24 +08:00
DongZeLiang 5f0d5163f3 feat():接口文档相关集成
1、集成了knife4j spring-doc相关接口文档管理工具
2、移除了swagger2相关配置
3、增加了nacos配置文件相关配置
2024-07-10 21:29:22 +08:00
DongZeLiang 9176f8e1ae Merge remote-tracking branch 'origin/boot3.0' into boot3.0 2024-07-10 10:12:15 +08:00
DongZeLiang 0d8434d541 feat(): 整合测试springdoc-openapi 2024-07-10 10:12:06 +08:00
DongZeLiang 68e5411860 fix():更新日志模板 2024-06-07 21:45:32 +08:00
dongzeliang 23b08aaf35 fix(): 增加gateway项目日志,未优化版本 2024-06-07 21:23:05 +08:00
dongzeliang 2d87ebddd8 fix(): 修改项目编码规范 2024-06-07 17:16:03 +08:00
dongzeliang d03437431a fix(): 修改sysjob代码规范.修改JWT令牌秘钥 2024-06-06 18:04:29 +08:00
dongzeliang 0576e94f6c fix(): 修改sysjob代码规范 2024-06-06 16:30:23 +08:00
dongzeliang 4832139590 fix(): 修复诸多依赖冲突问题,javax框架升级为jakarta 2024-06-06 16:28:23 +08:00
dongzeliang 26a4af7c9b fix(): 修复诸多依赖冲突问题 2024-06-06 16:11:29 +08:00
DongZeLiang b42ff96aad fix(): 升级SpringBoot相关版本,解决启动依赖冲突等问题 2024-06-04 23:40:49 +08:00
DongZeLiang 451e75aaa1 Merge branch 'refs/heads/plus' into boot3.0 2024-06-04 21:36:34 +08:00
DongZeLiang 8ae450da92 fix(): 添加脚本生命 2024-06-04 21:35:55 +08:00
dongzeliang e2fb4c7a50 feat(): 升级SpringBoot3.2.5版本,依赖升级 2024-06-04 20:35:13 +08:00
dongzeliang 1e17d4b16a fix(): 移除多余日志文件 2024-05-29 22:06:57 +08:00
dongzeliang 57db8b1fd0 fix(): logback日志配置优化、更新nacos配置文件初始化内容 2024-05-29 22:05:50 +08:00
dongzeliang 766d0c5344 fix(): logback日志配置优化、更新nacos配置文件初始化内容 2024-05-28 18:12:58 +08:00
DongZeLiang daa57d4e05 fix(): 更新新版配置文件 2024-05-28 15:32:03 +08:00
dongzeliang 110b2d8011 logback日志配置优化 2024-05-28 15:07:19 +08:00
DongZeLiang 8d4047d3ca fix(): 代码结构,风格更改 2024-05-27 15:24:13 +08:00
dongzeliang 2a235b198e logback集成skywalking 2024-05-25 10:53:07 +08:00
dongzeliang 00f0d0c2d5 集成skywalking 2024-05-24 22:29:39 +08:00
DongZeLiang f92c4daa36 fix(): 代码结构,风格更改 2024-05-24 15:34:35 +08:00
DongZeLiang d0edb52ddb fix(): 代码结构,风格更改 2024-05-24 15:28:40 +08:00
DongZeLiang 3f15bea510 更新微服务初始化文件 2024-05-23 23:14:28 +08:00
dongzeliang 4b9a0f1bd1 更改整体配置方式 2024-05-23 22:23:02 +08:00
930 changed files with 53216 additions and 7751 deletions

1
.gitignore vendored
View File

@ -8,6 +8,7 @@
target/
!.mvn/wrapper/maven-wrapper.jar
out
######################################################################
# IDE

View File

@ -2,25 +2,25 @@
~~~
com.muyu
├── muyu-ui // 前端框架 [80]
├── muyu-gateway // 网关模块 [8080]
├── muyu-auth // 认证中心 [9200]
├── muyu-common // 通用模块
│ └── muyu-common-core // 核心模块
│ └── muyu-common-datascope // 权限范围
│ └── muyu-common-datasource // 多数据源
│ └── muyu-common-log // 日志记录
│ └── muyu-common-redis // 缓存服务
│ └── muyu-common-seata // 分布式事务
│ └── muyu-common-security // 安全模块
│ └── muyu-common-swagger // 系统接口
│ └── muyu-common-system // 系统基础
├── muyu-modules // 业务模块
│ └── muyu-system // 系统模块 [9201]
│ └── muyu-gen // 代码生成 [9202]
│ └── muyu-job // 定时任务 [9203]
│ └── muyu-file // 文件服务 [9300]
├── muyu-visual // 图形化管理模块
│ └── muyu-visual-monitor // 监控中心 [9100]
├── cloud-ui // 前端框架 [80]
├── cloud-gateway // 网关模块 [8080]
├── cloud-auth // 认证中心 [9200]
├── cloud-common // 通用模块
│ └── cloud-common-core // 核心模块
│ └── cloud-common-datascope // 权限范围
│ └── cloud-common-datasource // 多数据源
│ └── cloud-common-log // 日志记录
│ └── cloud-common-redis // 缓存服务
│ └── cloud-common-seata // 分布式事务
│ └── cloud-common-security // 安全模块
│ └── cloud-common-swagger // 系统接口
│ └── cloud-common-system // 系统基础
├── cloud-modules // 业务模块
│ └── cloud-system // 系统模块 [9201]
│ └── cloud-gen // 代码生成 [9202]
│ └── cloud-job // 定时任务 [9203]
│ └── cloud-file // 文件服务 [9300]
├── cloud-visual // 图形化管理模块
│ └── cloud-visual-monitor // 监控中心 [9100]
├──pom.xml // 公共依赖
~~~

View File

@ -1,12 +0,0 @@
@echo off
echo.
echo [信息] 清理工程target生成路径。
echo.
%~d0
cd %~dp0
cd ..
call mvn clean
pause

View File

@ -1,12 +0,0 @@
@echo off
echo.
echo [信息] 打包Web工程生成war/jar包文件。
echo.
%~d0
cd %~dp0
cd ..
call mvn clean package -Dmaven.test.skip=true
pause

View File

@ -1,14 +0,0 @@
@echo off
echo.
echo [<5B><>Ϣ] ʹ<><CAB9>Jar<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Auth<74><68><EFBFBD>̡<EFBFBD>
echo.
cd %~dp0
cd ../muyu-auth/target
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar muyu-auth.jar
cd bin
pause

View File

@ -1,14 +0,0 @@
@echo off
echo.
echo [<5B><>Ϣ] ʹ<><CAB9>Jar<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Gateway<61><79><EFBFBD>̡<EFBFBD>
echo.
cd %~dp0
cd ../muyu-gateway/target
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar muyu-gateway.jar
cd bin
pause

View File

@ -1,14 +0,0 @@
@echo off
echo.
echo [<5B><>Ϣ] ʹ<><CAB9>Jar<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Modules-File<6C><65><EFBFBD>̡<EFBFBD>
echo.
cd %~dp0
cd ../muyu-modules/muyu-file/target
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar muyu-modules-file.jar
cd bin
pause

View File

@ -1,14 +0,0 @@
@echo off
echo.
echo [<5B><>Ϣ] ʹ<><CAB9>Jar<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Modules-Gen<65><6E><EFBFBD>̡<EFBFBD>
echo.
cd %~dp0
cd ../muyu-modules/muyu-gen/target
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar muyu-modules-gen.jar
cd bin
pause

View File

@ -1,14 +0,0 @@
@echo off
echo.
echo [<5B><>Ϣ] ʹ<><CAB9>Jar<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Modules-Job<6F><62><EFBFBD>̡<EFBFBD>
echo.
cd %~dp0
cd ../muyu-modules/muyu-job/target
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar muyu-modules-job.jar
cd bin
pause

View File

@ -1,14 +0,0 @@
@echo off
echo.
echo [<5B><>Ϣ] ʹ<><CAB9>Jar<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Modules-System<65><6D><EFBFBD>̡<EFBFBD>
echo.
cd %~dp0
cd ../muyu-modules/muyu-system/target
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar muyu-modules-system.jar
cd bin
pause

View File

@ -1,14 +0,0 @@
@echo off
echo.
echo [<5B><>Ϣ] ʹ<><CAB9>Jar<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Monitor<6F><72><EFBFBD>̡<EFBFBD>
echo.
cd %~dp0
cd ../muyu-visual/muyu-monitor/target
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar muyu-visual-monitor.jar
cd bin
pause

View File

@ -3,15 +3,15 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu</artifactId>
<artifactId>cloud-server</artifactId>
<version>3.6.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>muyu-auth</artifactId>
<artifactId>cloud-auth</artifactId>
<description>
muyu-auth认证授权中心
cloud-auth认证授权中心
</description>
<dependencies>
@ -49,7 +49,13 @@
<!-- MuYu Common Security-->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-security</artifactId>
<artifactId>cloud-common-security</artifactId>
</dependency>
<!-- 接口模块 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-api-doc</artifactId>
</dependency>
</dependencies>

View File

@ -12,8 +12,8 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
*/
@EnableMyFeignClients
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class MuYuAuthApplication {
public class CloudAuthApplication {
public static void main (String[] args) {
SpringApplication.run(MuYuAuthApplication.class, args);
SpringApplication.run(CloudAuthApplication.class, args);
}
}

View File

@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
/**
* token

View File

@ -0,0 +1,47 @@
# Tomcat
server:
port: 9500
# nacos线上地址
nacos:
addr: nacos.cloud.muyu.icu:8848
user-name: nacos
password: nacos
namespace: muyu-cloud-zxs
# Spring
spring:
application:
# 应用名称
name: cloud-auth
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: ${nacos.addr}
# nacos用户名
username: ${nacos.user-name}
# nacos密码
password: ${nacos.password}
# 命名空间
namespace: ${nacos.namespace}
config:
# 服务注册地址
server-addr: ${nacos.addr}
# nacos用户名
username: ${nacos.user-name}
# nacos密码
password: ${nacos.password}
# 命名空间
namespace: ${nacos.namespace}
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
# 系统共享配置
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
# 系统环境Config共享配置
- application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/muyu-job"/>
<property name="log.path" value="logs/cloud-auth"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>

View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/cloud-auth"/>
<!-- 日志输出格式 -->
<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>
<property name="log.sky.pattern" value="%d{HH:mm:ss.SSS} %yellow([%tid]) [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 使用gRpc将日志发送到skywalking服务端 -->
<appender name="GRPC_LOG" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${log.sky.pattern}</Pattern>
</layout>
</encoder>
</appender>
<root level="info">
<appender-ref ref="GRPC_LOG"/>
</root>
<!-- 系统模块日志级别控制 -->
<logger name="com.muyu" 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>

View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/cloud-auth"/>
<!-- 日志输出格式 -->
<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>
<property name="log.sky.pattern" value="%d{HH:mm:ss.SSS} %yellow([%tid]) [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 使用gRpc将日志发送到skywalking服务端 -->
<appender name="GRPC_LOG" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${log.sky.pattern}</Pattern>
</layout>
</encoder>
</appender>
<root level="info">
<appender-ref ref="GRPC_LOG"/>
</root>
<!-- 系统模块日志级别控制 -->
<logger name="com.muyu" 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>

View File

@ -4,15 +4,15 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-common</artifactId>
<artifactId>cloud-common</artifactId>
<version>3.6.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>muyu-common-swagger</artifactId>
<artifactId>cloud-common-api-doc</artifactId>
<description>
muyu-common-swagger系统接口
cloud-common-api-doc系统接口
</description>
<dependencies>
@ -23,11 +23,10 @@
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Swagger -->
<!-- knife4j-openapi3 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.fox.version}</version>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
</dependency>
</dependencies>

View File

@ -0,0 +1,34 @@
package com.muyu.common.api.doc.config;
import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SpringDocConfig {
@Value("${spring.application.name}")
private String applicationName;
private Info info(){
return new Info()
.title(String.format("%S-微服务接口文档", applicationName))
.description("微服务接口文档,根据此接口文档可以进行前后端功能对接/联调")
.version("v1.0.0");
}
private ExternalDocumentation externalDocumentation() {
return new ExternalDocumentation()
.description("服务总站")
.url("https://gitea.qinmian.online");
}
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(info())
.externalDocs(externalDocumentation());
}
}

View File

@ -4,15 +4,15 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-common</artifactId>
<artifactId>cloud-common</artifactId>
<version>3.6.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>muyu-common-core</artifactId>
<artifactId>cloud-common-core</artifactId>
<description>
muyu-common-core核心模块
cloud-common-core核心模块
</description>
<dependencies>
@ -47,17 +47,11 @@
<artifactId>transmittable-thread-local</artifactId>
</dependency>
<!-- Pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
<!-- mybatis - plus 依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.6</version>
<exclusions>
<exclusion>
<groupId>com.github.jsqlparser</groupId>
@ -70,6 +64,12 @@
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.16</version>
</dependency>
<!-- Hibernate Validator -->
<dependency>
<groupId>org.springframework.boot</groupId>
@ -94,12 +94,6 @@
<artifactId>jjwt</artifactId>
</dependency>
<!-- Jaxb -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<!-- Apache Lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
@ -118,16 +112,28 @@
<artifactId>poi-ooxml</artifactId>
</dependency>
<!-- Java Servlet -->
<!-- Java jakarta Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<!-- Swagger -->
<!-- Spring Aop 依赖 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- Java Specification Requests 标准库-->
<!-- <dependency>-->
<!-- <groupId>javax.annotation</groupId>-->
<!-- <artifactId>jsr250-api</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>
<!-- lombok -->
@ -136,6 +142,22 @@
<artifactId>lombok</artifactId>
</dependency>
<!-- skywalking 日志收集 -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
</dependency>
<!-- skywalking 日志收集集成logback -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -9,15 +9,15 @@ public class ServiceNameConstants {
/**
* serviceid
*/
public static final String AUTH_SERVICE = "muyu-auth";
public static final String AUTH_SERVICE = "cloud-auth";
/**
* serviceid
*/
public static final String SYSTEM_SERVICE = "muyu-system";
public static final String SYSTEM_SERVICE = "cloud-system";
/**
* serviceid
*/
public static final String FILE_SERVICE = "muyu-file";
public static final String FILE_SERVICE = "cloud-file";
}

View File

@ -19,6 +19,6 @@ public class TokenConstants {
/**
*
*/
public final static String SECRET = "abcdefghijklmnopqrstuvwxyz";
public final static String SECRET = "abcdefghijklmnsalieopadfaqawefwerstuvwxyz";
}

View File

@ -0,0 +1,19 @@
package com.muyu.common.core.feign;
import feign.Contract;
import org.springframework.cloud.openfeign.support.SpringMvcContract;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FeginConfig {
// @Bean
// public Contract feignConfiguration() {
// return new feign.Contract.Default();
// }
@Bean
public Contract feignConfiguration() {
return new SpringMvcContract();
}
}

View File

@ -5,8 +5,11 @@ import com.muyu.common.core.constant.TokenConstants;
import com.muyu.common.core.text.Convert;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import io.jsonwebtoken.security.SecureDigestAlgorithm;
import javax.crypto.SecretKey;
import java.util.Date;
import java.util.Map;
/**
@ -15,7 +18,30 @@ import java.util.Map;
* @author muyu
*/
public class JwtUtils {
public static String secret = TokenConstants.SECRET;
/**
*
*/
private final static SecureDigestAlgorithm<SecretKey, SecretKey> ALGORITHM = Jwts.SIG.HS256;
/**
* / 使secret使
* secret, jwt
* 256(32)
*/
private final static String secret = TokenConstants.SECRET;
/**
*
*/
public static final SecretKey KEY = Keys.hmacShaKeyFor(secret.getBytes());
/**
* jwt
*/
private final static String JWT_ISS = "MUYU";
/**
* jwt
*/
private final static String SUBJECT = "Peripherals";
/**
*
@ -25,8 +51,20 @@ public class JwtUtils {
* @return
*/
public static String createToken (Map<String, Object> claims) {
String token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact();
return token;
return Jwts.builder()
// 设置头部信息header
.header().add("typ", "JWT").add("alg", "HS256").and()
// 设置自定义负载信息payload
.claims(claims)
// 签发时间
.issuedAt(new Date())
// 主题
.subject(SUBJECT)
// 签发者
.issuer(JWT_ISS)
// 签名
.signWith(KEY, ALGORITHM)
.compact();
}
/**
@ -37,7 +75,11 @@ public class JwtUtils {
* @return
*/
public static Claims parseToken (String token) {
return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
return Jwts.parser()
.verifyWith(KEY)
.build()
.parseSignedClaims(token)
.getPayload();
}
/**

View File

@ -4,6 +4,10 @@ import com.alibaba.fastjson2.JSON;
import com.muyu.common.core.constant.Constants;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.text.Convert;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
@ -15,18 +19,13 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import reactor.core.publisher.Mono;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.nio.charset.StandardCharsets;
import java.util.*;
/**
*
@ -108,7 +107,7 @@ public class ServletUtils {
*/
public static HttpServletRequest getRequest () {
try {
return getRequestAttributes().getRequest();
return Objects.requireNonNull(getRequestAttributes()).getRequest();
} catch (Exception e) {
return null;
}
@ -119,7 +118,7 @@ public class ServletUtils {
*/
public static HttpServletResponse getResponse () {
try {
return getRequestAttributes().getResponse();
return Objects.requireNonNull(getRequestAttributes()).getResponse();
} catch (Exception e) {
return null;
}
@ -129,7 +128,7 @@ public class ServletUtils {
* session
*/
public static HttpSession getSession () {
return getRequest().getSession();
return Objects.requireNonNull(getRequest()).getSession();
}
public static ServletRequestAttributes getRequestAttributes () {
@ -227,11 +226,7 @@ public class ServletUtils {
* @return
*/
public static String urlDecode (String str) {
try {
return URLDecoder.decode(str, Constants.UTF8);
} catch (UnsupportedEncodingException e) {
return StringUtils.EMPTY;
}
return URLDecoder.decode(str, StandardCharsets.UTF_8);
}
/**

View File

@ -1,8 +1,9 @@
package com.muyu.common.core.utils.bean;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.Validator;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
import jakarta.validation.Validator;
import java.util.Set;
/**

View File

@ -3,8 +3,8 @@ package com.muyu.common.core.utils.file;
import com.muyu.common.core.utils.StringUtils;
import org.apache.commons.lang3.ArrayUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

View File

@ -3,7 +3,7 @@ package com.muyu.common.core.utils.ip;
import com.muyu.common.core.utils.ServletUtils;
import com.muyu.common.core.utils.StringUtils;
import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;

View File

@ -24,7 +24,7 @@ import org.apache.poi.xssf.usermodel.XSSFDataValidation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;

View File

@ -0,0 +1,14 @@
package com.muyu.common.core.validation;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ValidationConfig {
@Bean
public Validator validator() {
return Validation.byDefaultProvider().configure().buildValidatorFactory().getValidator();
}
}

View File

@ -1,10 +1,9 @@
package com.muyu.common.core.web.controller;
import com.github.pagehelper.PageInfo;
import com.muyu.common.core.utils.DateUtils;
import com.muyu.common.core.utils.PageUtils;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.common.core.web.page.DataPageResp;
import com.muyu.common.core.web.page.PageQueryModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.WebDataBinder;
@ -12,7 +11,6 @@ import org.springframework.web.bind.annotation.InitBinder;
import java.beans.PropertyEditorSupport;
import java.util.Date;
import java.util.List;
/**
* web
@ -37,30 +35,13 @@ public class BaseController {
}
/**
*
*
* @param pageQueryModel
* @return
* @param <T>
*/
protected void startPage () {
PageUtils.startPage();
}
/**
* 线
*/
protected void clearPage () {
PageUtils.clearPage();
}
/**
*
*/
@SuppressWarnings({"rawtypes", "unchecked"})
protected <T> Result<TableDataInfo<T>> getDataTable (List<T> list) {
return Result.success(
TableDataInfo.<T>builder()
.total(new PageInfo(list).getTotal())
.rows(list)
.build()
);
protected <T> Result<DataPageResp<T>> resultList(PageQueryModel<T> pageQueryModel) {
return Result.success(DataPageResp.of(pageQueryModel));
}
/**
@ -73,35 +54,35 @@ public class BaseController {
/**
*
*/
public Result success (String message) {
public Result<String> success (String message) {
return Result.success(message);
}
/**
*
*/
public Result success (Object data) {
public Result success (Object data) {
return Result.success(data);
}
/**
*
*/
public Result error () {
public Result<String> error () {
return Result.error();
}
/**
*
*/
public Result error (String message) {
public Result<String> error (String message) {
return Result.error(message);
}
/**
*
*/
public Result warn (String message) {
public Result<String> warn (String message) {
return Result.warn(message);
}
@ -112,7 +93,7 @@ public class BaseController {
*
* @return
*/
protected Result toAjax (int rows) {
protected Result<String> toAjax (int rows) {
return rows > 0 ? Result.success() : Result.error();
}
@ -123,7 +104,7 @@ public class BaseController {
*
* @return
*/
protected Result toAjax (boolean result) {
protected Result<String> toAjax (boolean result) {
return result ? success() : error();
}
}

View File

@ -0,0 +1,47 @@
package com.muyu.common.core.web.domain;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.ArrayList;
import java.util.List;
/**
* Tree
*
* @author muyu
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TreeEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private String parentName;
/**
* ID
*/
private Long parentId;
/**
*
*/
private Integer orderNum;
/**
*
*/
private String ancestors;
/**
*
*/
private List<?> children = new ArrayList<>();
}

View File

@ -0,0 +1,69 @@
package com.muyu.common.core.web.model;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.muyu.common.core.web.page.PageReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
*
*
* @author DongZeLiang
* @date 2024-11-20 14:18
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class QueryModel<T> {
/**
*
*/
private Integer pageNum;
/**
*
*/
private Integer pageSize;
/**
*
*/
private String orderByColumn;
/**
* descasc
*/
private boolean isAsc = true;
/**
*
* @param pageReq
* @return
*/
public T domainBuild(PageReq pageReq) {
this.pageNum = pageReq.getPageNum();
this.pageSize = pageReq.getPageSize();
this.orderByColumn = pageReq.getOrderByColumn();
this.isAsc = "asc".equals(pageReq.getIsAsc());
return (T) this;
}
/**
*
* @return
*/
public <I> Page<I> buildPage(){
Page<I> page = Page.of(this.getPageNum(), this.getPageSize());
page.setOrders(List.of(this.isAsc()
? OrderItem.asc(this.getOrderByColumn()) : OrderItem.desc(this.getOrderByColumn())));
return page;
}
}

View File

@ -4,7 +4,6 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.poi.ss.formula.functions.T;
import java.io.Serializable;
import java.util.List;
@ -19,7 +18,7 @@ import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TableDataInfo<T> implements Serializable {
public class DataPageResp<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
@ -32,14 +31,7 @@ public class TableDataInfo<T> implements Serializable {
*/
private List<T> rows;
/**
*
*/
private int code;
/**
*
*/
private String msg;
public static <T> DataPageResp<T> of(PageQueryModel<T> pageQueryModel) {
return new DataPageResp<>(pageQueryModel.getTotal(), pageQueryModel.getDataList());
}
}

View File

@ -0,0 +1,39 @@
package com.muyu.common.core.web.page;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
*
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageQueryModel<T> {
/**
*
*/
private long total;
/**
*
*/
private List<T> dataList;
/**
*
* @param page
* @return
* @param <T>
*/
public static <T> PageQueryModel<T> of(Page<T> page) {
return new PageQueryModel<>(page.getTotal(), page.getRecords());
}
}

View File

@ -1,13 +1,21 @@
package com.muyu.common.core.web.page;
import com.muyu.common.core.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author muyu
*/
public class PageDomain {
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class PageReq {
/**
*
*/
@ -40,34 +48,6 @@ public class PageDomain {
return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc;
}
public Integer getPageNum () {
return pageNum;
}
public void setPageNum (Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize () {
return pageSize;
}
public void setPageSize (Integer pageSize) {
this.pageSize = pageSize;
}
public String getOrderByColumn () {
return orderByColumn;
}
public void setOrderByColumn (String orderByColumn) {
this.orderByColumn = orderByColumn;
}
public String getIsAsc () {
return isAsc;
}
public void setIsAsc (String isAsc) {
if (StringUtils.isNotEmpty(isAsc)) {
// 兼容前端排序类型
@ -87,7 +67,4 @@ public class PageDomain {
return reasonable;
}
public void setReasonable (Boolean reasonable) {
this.reasonable = reasonable;
}
}

View File

@ -1,7 +1,8 @@
package com.muyu.common.core.xss;
import javax.validation.Constraint;
import javax.validation.Payload;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

View File

@ -1,9 +1,9 @@
package com.muyu.common.core.xss;
import com.muyu.common.core.utils.StringUtils;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

Some files were not shown because too many files have changed in this diff Show More