refactor: 更新配置文件和映射器,调整VO类命名规范

This commit is contained in:
Ray.Hao
2026-01-04 08:16:22 +08:00
parent 5c61b7b9bf
commit d94b8207a0
12 changed files with 78 additions and 110 deletions

View File

@@ -1,36 +1,31 @@
server:
port: 8000
# 数据库类型:用于 MyBatis-Plus 分页方言等(仅方言,不负责连接信息)
app:
db-type: mysql # 可选mysql | postgres | dm
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
# === MySQL 数据源(默认启用) ===
driver-class-name: com.mysql.cj.jdbc.Driver
driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
url: jdbc:mysql://www.youlai.tech:3306/youlai_admin?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true
username: youlai
password: 123456
# === PostgreSQL 数据源示例(按需启用) ===
# driver-class-name: org.postgresql.Driver
# url: jdbc:postgresql://127.0.0.1:5432/youlai_admin
# username: postgres
# password: 123456
ai:
openai:
api-key: ${QWEN_API_KEY:sk-c2941d05bf2f411ca80424fcd1eb4e07}
base-url: https://dashscope.aliyuncs.com/compatible-mode
chat:
enabled: true
options:
model: qwen-plus
temperature: 0.7
response-format:
type: json_object
# === 达梦 DM 数据源示例(按需启用,注意按实际驱动与 URL 调整) ===
# driver-class-name: dm.jdbc.driver.DmDriver
# url: jdbc:dm://127.0.0.1:5236?schema=YOULAI_ADMIN
# username: SYSDBA
# password: 123456
data:
redis:
database: 0
database: 11
host: www.youlai.tech
port: 6379
# 如果Redis 服务未设置密码需要将password删掉或注释而不是设置为空字符串
password: 123456
timeout: 10s
lettuce:
@@ -68,31 +63,6 @@ spring:
enable: true
# 邮件发送者
from: youlaitech@163.com
# Spring AI 配置
ai:
openai:
# API Key
api-key: ${DASHSCOPE_API_KEY:sk-c2941d05bf2f411ca80424fcd1eb4e07}
# Base URL
base-url: https://dashscope.aliyuncs.com/compatible-mode
# Chat 模型配置
chat:
enabled: true
options:
# 模型名称qwen-plus、qwen-turbo、qwen-max、qwen-long
model: qwen-plus
# Temperature0.0-1.0,值越高回答越随机)
temperature: 0.7
# JSON 输出格式(确保模型返回合法 JSON
response-format:
type: json_object
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
global-config:
@@ -114,22 +84,21 @@ mybatis-plus:
# 安全配置
security:
session:
type: jwt # 会话方式 jwt/redis-token
access-token-time-to-live: 7200 # 访问令牌 有效期(单位:秒),默认 2 小时,-1 表示永不过期
refresh-token-time-to-live: 604800 # 刷新令牌有效期(单位:秒),默认 7 天,-1 表示永不过期
type: jwt # 会话方式 [jwt|redis-token]
access-token-time-to-live: 7200 # 访问令牌 有效期(单位:秒),默认 2 小时,-1 表示永不过期
refresh-token-time-to-live: 604800 # 刷新令牌有效期(单位:秒),默认 7 天,-1 表示永不过期
jwt:
secret-key: SecretKey012345678901234567890123456789012345678901234567890123456789 # JWT密钥(HS256算法至少32字符)
redis-token:
allow-multi-login: true # 是否允许多设备登录
# 安全白名单路径,仅跳过 AuthorizationFilter 过滤器,还是会走 Spring Security 的其他过滤器(CSRF、CORS等)
ignore-urls:
- /api/v1/auth/login/** # 登录接口(账号密码登录、手机验证码登录和微信登录)
- /api/v1/auth/captcha # 验证码获取接口
- /api/v1/auth/refresh-token # 刷新令牌接口
- /api/v1/auth/logout # 开放退出登录
- /api/v1/auth/wx/miniapp/code-login # 微信小程序code登陆
- /ws/** # WebSocket接口
# 非安全端点路径,完全绕过 Spring Security 的安全控制
- /api/v1/auth/login/** # 登录接口(账号密码登录、手机验证码登录和微信登录)
- /api/v1/auth/captcha # 验证码获取接口
- /api/v1/auth/refresh-token # 刷新令牌接口
- //api/v1/auth/wx/miniapp/code-login # 微信小程序code登陆
- /ws/** # WebSocket接口
# 非安全端点路径,完全绕过 Spring Security 的过滤器
unsecured-urls:
- ${springdoc.swagger-ui.path}
- /doc.html
@@ -140,25 +109,25 @@ security:
# 文件存储配置
oss:
# OSS 类型 (目前支持aliyun、minio、local)
# OSS 类型 (目前支持aliyun、minio)
type: minio
# MinIO 对象存储服务
minio:
# MinIO 服务地址
endpoint: http://localhost:9000
# 服务Endpoint
endpoint: http://111.229.83.153:9000
# 访问凭据
access-key: minioadmin
# 凭据密钥
secret-key: minioadmin
secret-key: Youlai@2025
# 存储桶名称
bucket-name: youlai
# (可选) 自定义域名:配置后,文件 URL 会使用该域名格式
custom-domain:
bucket-name: public
# (可选)自定义域名,如果配置了域名,生成的文件URL是域名格式未配置则URL则是IP格式 (eg: https://www.youlai.tech/storage)
custom-domain: https://www.youlai.tech/storage
# 阿里云OSS对象存储服务
aliyun:
# 服务Endpoint
endpoint: oss-cn-hangzhou.aliyuncs.com
# 访问凭据`
# 访问凭据
access-key-id: your-access-key-id
# 凭据密钥
access-key-secret: your-access-key-secret
@@ -185,50 +154,48 @@ sms:
# 修改手机号短信验证码模板
change-mobile: SMS_22xxx773
# springdoc配置 https://springdoc.org/properties.html
# springdoc 配置文档: https://springdoc.org/properties.html
springdoc:
swagger-ui:
path: /swagger-ui.html
operations-sorter: alpha
tags-sorter: alpha
path: /swagger-ui.html # Swagger UI 访问路径
operationsSorter: alpha # 接口按方法名排序
tags-sorter: alpha # 标签按字母排序
api-docs:
path: /v3/api-docs
group-configs:
- group: "系统管理"
paths-to-match: "/**"
packages-to-scan:
path: /v3/api-docs # OpenAPI JSON 地址
group-configs: # 分组配置
- group: '系统管理' # 分组名称
paths-to-match: "/**" # 匹配的请求路径
packages-to-scan: # 扫描的 Controller 包,限制只生成指定包的接口文档
- com.youlai.boot.auth.controller
- com.youlai.boot.system.controller
- com.youlai.boot.platform.file.controller
- com.youlai.boot.platform.codegen.controller
default-flat-param-object: true
default-flat-param-object: true # 将对象参数扁平化显示在文档中
# knife4j 接口文档配置
# knife4j 配置
knife4j:
# 是否启 Knife4j 增强功能
enable: true # 设置为 true 表示开启增强功能
# 生产环境配置
production: false # 设置为 true 表示在生产环境中不显示文档,为 false 表示显示文档(通常在开发环境中使用)
enable: true # 是否启 Knife4j 增强功能
production: false # 是否启用生产环境保护true=生产环境隐藏文档false=开发环境可访问)
setting:
language: zh_cn
# xxl-job 定时任务配置
xxl:
job:
# 定时任务开关
enabled: false
admin:
# 调度中心地址,多个逗号分隔
addresses: http://127.0.0.1:8080/xxl-job-admin
# 多个地址使用,分割
addresses: http://127.0.0.1:8686/xxl-job-admin
accessToken: default_token
# 执行器配置
executor:
appname: xxl-job-executor-${spring.application.name} # 执行器AppName
address: # 执行器注册地址,默认为空,多网卡时可手动设置
ip: # 执行器IP默认为空多网卡时可手动设置
port: 9999 # 执行器通讯端口
logpath: /data/applogs/xxl-job/jobhandler # 任务运行日志文件存储磁盘路径
logretentiondays: 30 # 日志保存天数值大于3时生效
appname: xxl-job-executor-${spring.application.name}
address:
ip:
port: 9999
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: 30
# 验证码配置
captcha:
@@ -263,4 +230,5 @@ captcha:
wx:
miniapp:
app-id: xxxxxx
app-secret: xxxxxx
app-secret: xxxxxx

View File

@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.youlai.boot.platform.ai.mapper.AiAssistantRecordMapper">
<resultMap id="AiAssistantRecordResultMap" type="com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVo">
<resultMap id="AiAssistantRecordResultMap" type="com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVO">
<id property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="username" column="username"/>

View File

@@ -6,7 +6,7 @@
<mapper namespace="com.youlai.boot.platform.codegen.mapper.DatabaseMapper">
<!-- 查询数据库表分页 mysql版本-->
<select id="getTablePage" resultType="com.youlai.boot.platform.codegen.model.vo.TablePageVo" databaseId="mysql">
<select id="getTablePage" resultType="com.youlai.boot.platform.codegen.model.vo.TablePageVO" databaseId="mysql">
SELECT
t1.TABLE_NAME ,
t1.TABLE_COMMENT ,
@@ -34,7 +34,7 @@
CREATE_TIME DESC
</select>
<!-- 查询数据库表分页 dm版本-->
<select id="getTablePage" resultType="com.youlai.boot.platform.codegen.model.vo.TablePageVo" databaseId="dm">
<select id="getTablePage" resultType="com.youlai.boot.platform.codegen.model.vo.TablePageVO" databaseId="dm">
SELECT
t1.TABLE_NAME ,
c.COMMENTS AS TABLE_COMMENT ,

View File

@@ -5,7 +5,7 @@
<mapper namespace="com.youlai.boot.system.mapper.DictItemMapper">
<!-- 获取字典项分页列表 -->
<select id="getDictItemPage" resultType="com.youlai.boot.system.model.vo.DictItemPageVo">
<select id="getDictItemPage" resultType="com.youlai.boot.system.model.vo.DictItemPageVO">
SELECT
id,
dict_code,

View File

@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.youlai.boot.system.mapper.DictMapper">
<!-- 字典分页列表 -->
<select id="getDictPage" resultType="com.youlai.boot.system.model.vo.DictPageVo">
<select id="getDictPage" resultType="com.youlai.boot.system.model.vo.DictPageVO">
SELECT
t1.id,
t1.name,

View File

@@ -6,7 +6,7 @@
<mapper namespace="com.youlai.boot.system.mapper.LogMapper">
<!-- 日志分页列表 mysql版本 -->
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVo" databaseId="mysql">
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVO" databaseId="mysql">
SELECT
t1.id,
t1.module,
@@ -48,7 +48,7 @@
t1.create_time DESC
</select>
<!-- 日志分页列表 dm版本 -->
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVo" databaseId="dm">
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVO" databaseId="dm">
SELECT
t1.id,
t1.module,
@@ -91,7 +91,7 @@
</select>
<!-- 获取访问量日统计列表 -->
<select id="getPvCounts" resultType="com.youlai.boot.system.model.bo.VisitCountBo">
<select id="getPvCounts" resultType="com.youlai.boot.system.model.bo.VisitCountBO">
SELECT
COUNT(1) AS count,
DATE_FORMAT(create_time,'%Y-%m-%d') AS date
@@ -105,7 +105,7 @@
</select>
<!-- 获取IP日统计列表-->
<select id="getIpCounts" resultType="com.youlai.boot.system.model.bo.VisitCountBo">
<select id="getIpCounts" resultType="com.youlai.boot.system.model.bo.VisitCountBO">
SELECT
COUNT(DISTINCT ip) AS count,
DATE_FORMAT(create_time, '%Y-%m-%d') AS date
@@ -119,7 +119,7 @@
</select>
<!-- 获取访问量(PV)统计数据 mysql版本-->
<select id="getPvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBo" databaseId="mysql">
<select id="getPvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO" databaseId="mysql">
SELECT
COUNT(CASE WHEN DATE(create_time) = CURDATE() THEN 1 END) AS todayCount,
COUNT(*) AS totalCount,
@@ -138,7 +138,7 @@
is_deleted = 0
</select>
<!-- 获取访问量(PV)统计数据 dm-->
<select id="getPvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBo" databaseId="dm">
<select id="getPvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO" databaseId="dm">
SELECT
COUNT(CASE WHEN TRUNC(create_time) = TRUNC(SYSDATE) THEN 1 END) AS todayCount,
COUNT(*) AS totalCount,
@@ -161,7 +161,7 @@
</select>
<!-- 获取IP统计数据 mysql版本-->
<select id="getUvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBo" databaseId="mysql">
<select id="getUvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO" databaseId="mysql">
SELECT
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() THEN ip END) AS todayCount,
COUNT(DISTINCT ip) AS totalCount,
@@ -180,7 +180,7 @@
is_deleted = 0
</select>
<!-- 获取IP统计数据 dm版本-->
<select id="getUvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBo" databaseId="dm">
<select id="getUvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO" databaseId="dm">
SELECT COUNT(DISTINCT CASE WHEN TRUNC(create_time) = TRUNC(SYSDATE) THEN ip END) AS todayCount,
COUNT(DISTINCT ip) AS totalCount,
ROUND(

View File

@@ -3,7 +3,7 @@
<mapper namespace="com.youlai.boot.system.mapper.NoticeMapper">
<!-- 获取通知公告分页列表 -->
<select id="getNoticePage" resultType="com.youlai.boot.system.model.bo.NoticeBo">
<select id="getNoticePage" resultType="com.youlai.boot.system.model.bo.NoticeBO">
SELECT
t1.id,
t1.title,
@@ -42,7 +42,7 @@
</select>
<!-- 获取通知公告详情 -->
<select id="getNoticeDetail" resultType="com.youlai.boot.system.model.bo.NoticeBo">
<select id="getNoticeDetail" resultType="com.youlai.boot.system.model.bo.NoticeBO">
SELECT
t1.id,
t1.title,

View File

@@ -16,7 +16,7 @@
</select>
<!-- 权限和拥有权限的角色的映射 -->
<resultMap id="PremRolesMap" type="com.youlai.boot.system.model.bo.RolePermsBo">
<resultMap id="PremRolesMap" type="com.youlai.boot.system.model.bo.RolePermsBO">
<result property="roleCode" column="role_code"/>
<collection property="perms" ofType="string" javaType="java.util.Set">
<result column="perm"/>

View File

@@ -6,7 +6,7 @@
<mapper namespace="com.youlai.boot.system.mapper.UserMapper">
<!-- 用户分页列表 mysql版本-->
<select id="getUserPage" resultType="com.youlai.boot.system.model.bo.UserBo" databaseId="mysql">
<select id="getUserPage" resultType="com.youlai.boot.system.model.bo.UserBO" databaseId="mysql">
SELECT
u.id,
u.username,
@@ -82,7 +82,7 @@
</choose>
</select>
<!-- 用户分页列表 dm版本-->
<select id="getUserPage" resultType="com.youlai.boot.system.model.bo.UserBo" databaseId="dm">
<select id="getUserPage" resultType="com.youlai.boot.system.model.bo.UserBO" databaseId="dm">
SELECT
u.id,
u.username,
@@ -261,7 +261,7 @@
</select>
<!-- 获取用户导出列表 -->
<select id="listExportUsers" resultType="com.youlai.boot.system.model.dto.UserExportDto">
<select id="listExportUsers" resultType="com.youlai.boot.system.model.dto.UserExportDTO">
SELECT
u.username,
u.nickname,
@@ -302,7 +302,7 @@
</select>
<!-- 根据用户ID获取用户详情 mysql版本-->
<select id="getUserProfile" resultType="com.youlai.boot.system.model.bo.UserBo" databaseId="mysql">
<select id="getUserProfile" resultType="com.youlai.boot.system.model.bo.UserBO" databaseId="mysql">
SELECT
u.id,
u.username,
@@ -324,7 +324,7 @@
u.id = #{userId} AND u.is_deleted = 0
</select>
<!-- 根据用户ID获取用户详情 dm版本-->
<select id="getUserProfile" resultType="com.youlai.boot.system.model.bo.UserBo" databaseId="dm">
<select id="getUserProfile" resultType="com.youlai.boot.system.model.bo.UserBO" databaseId="dm">
SELECT
u.id,
u.username,

View File

@@ -3,7 +3,7 @@
<mapper namespace="com.youlai.boot.system.mapper.UserNoticeMapper">
<!-- 获取我的通知分页列表 -->
<select id="getMyNoticePage" resultType="com.youlai.boot.system.model.vo.UserNoticePageVo">
<select id="getMyNoticePage" resultType="com.youlai.boot.system.model.vo.UserNoticePageVO">
SELECT
t2.id,
t2.title,

View File

@@ -3,7 +3,7 @@
<mapper namespace="${packageName}.${moduleName}.mapper.${entityName}Mapper">
<!-- 获取${businessName}分页列表 -->
<select id="get${entityName}Page" resultType="${packageName}.${moduleName}.model.vo.${entityName}Vo">
<select id="get${entityName}Page" resultType="${packageName}.${moduleName}.model.vo.${entityName}VO">
SELECT
#if($fieldConfigs)
#set ($fields = [])

View File

@@ -38,7 +38,7 @@
#end
<!-- ${table.comment}分页列表 -->
<select id="listPaged${entity}s" resultType="${package.Parent}.model.bo.${entity}Bo">
<select id="listPaged${entity}s" resultType="${package.Parent}.model.bo.${entity}BO">
SELECT
<include refid="Base_Column_List"/>
FROM