commit:升级到vue3,更新最近工作流技术栈,支持sa-token

This commit is contained in:
Jerry
2024-07-05 22:42:33 +08:00
parent bbcc608584
commit 565ecb6371
1751 changed files with 236790 additions and 0 deletions

View File

@@ -0,0 +1,171 @@
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 数据库链接 [主数据源]
main:
url: jdbc:mysql://localhost:3306/zzdemo-online-open?characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
username: root
password: 123456
# 默认生成的操作日志数据源配置。
operation-log:
url: jdbc:mysql://localhost:3306/zzdemo-online-open?characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
username: root
password: 123456
# 默认生成的全局编码字典数据源配置。
global-dict:
url: jdbc:mysql://localhost:3306/zzdemo-online-open?characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
username: root
password: 123456
# 默认生成的工作流及在线表单数据源配置。
common-flow-online:
url: jdbc:mysql://localhost:3306/zzdemo-online-open?characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
username: root
password: 123456
driverClassName: com.mysql.cj.jdbc.Driver
name: application-webadmin
initialSize: 10
minIdle: 10
maxActive: 50
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
maxOpenPreparedStatements: 20
validationQuery: SELECT 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
filters: stat,wall
useGlobalDataSourceStat: true
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*,/actuator/*"
stat-view-servlet:
enabled: true
urlPattern: /druid/*
resetEnable: true
application:
# 初始化密码。
defaultUserPassword: 123456
# 缺省的文件上传根目录。
uploadFileBaseDir: ./zz-resource/upload-files/app
# 跨域的IP(http://192.168.10.10:8086)白名单列表多个IP之间逗号分隔(* 表示全部信任,空白表示禁用跨域信任)。
credentialIpList: "*"
# Session的用户和数据权限在Redis中的过期时间(秒)。一定要和sa-token.timeout
sessionExpiredSeconds: 86400
# 是否排他登录。
excludeLogin: false
# 这里仅仅是一个第三方配置的示例,如果没有接入斯三方系统,
# 这里的配置项也不会影响到系统的行为,如果觉得多余,也可以手动删除。
third-party:
# 第三方系统接入的用户鉴权配置。
auth:
- appCode: orange-forms-default
# 访问第三方系统接口的URL前缀橙单会根据功能添加接口路径的其余部分
# 比如获取用户Token的接口 http://localhost:8083/orangePluginTest/getTokenData
baseUrl: http://localhost:8083/orangePlugin
# 第三方应用鉴权的HTTP请求令牌头的KEY。
tokenHeaderKey: Authorization
# 第三方返回的用户Token数据的缓存过期时长单位秒。
# 如果为0则不缓存每次涉及第三方的请求都会发出http请求交由第三方验证这样对系统性能会有影响。
tokenExpiredSeconds: 60
# 第三方返回的权限数据的缓存过期时长,单位秒。
permExpiredSeconds: 86400
# 这里仅仅是一个第三方配置的示例,如果没有接入斯三方系统,
# 这里的配置项也不会影响到系统的行为,如果觉得多余,也可以手动删除。
common-ext:
urlPrefix: /admin/commonext
# 这里可以配置多个第三方应用这里的应用数量通常会和上面third-party.auth的配置数量一致。
apps:
# 应用唯一编码,尽量不要使用中文。
- appCode: orange-forms-default
# 业务组件的数据源配置。
bizWidgetDatasources:
# 组件的类型,多个类型之间可以逗号分隔。
- types: upms_user,upms_dept
# 组件获取列表数据的接口地址。
listUrl: http://localhost:8083/orangePlugin/listBizWidgetData
# 组件获取详情数据的接口地址。
viewUrl: http://localhost:8083/orangePlugin/viewBizWidgetData
common-sequence:
# Snowflake 分布式Id生成算法所需的WorkNode参数值。
snowflakeWorkNode: 1
# 存储session数据的Redis所有服务均需要因此放到公共配置中。
# 根据实际情况该Redis也可以用于存储其他数据。
common-redis:
# redisson的配置。每个服务可以自己的配置文件中覆盖此选项。
redisson:
# 如果该值为false系统将不会创建RedissionClient的bean。
enabled: true
# mode的可用值为single/cluster/sentinel/master-slave
mode: single
# single: 单机模式
# address: redis://localhost:6379
# cluster: 集群模式
# 每个节点逗号分隔同时每个节点前必须以redis://开头。
# address: redis://localhost:6379,redis://localhost:6378,...
# sentinel:
# 每个节点逗号分隔同时每个节点前必须以redis://开头。
# address: redis://localhost:6379,redis://localhost:6378,...
# master-slave:
# 每个节点逗号分隔第一个为主节点其余为从节点。同时每个节点前必须以redis://开头。
# address: redis://localhost:6379,redis://localhost:6378,...
address: redis://localhost:6379
# 链接超时,单位毫秒。
timeout: 6000
# 单位毫秒。分布式锁的超时检测时长。
# 如果一次锁内操作超该毫秒数或在释放锁之前异常退出Redis会在该时长之后主动删除该锁使用的key。
lockWatchdogTimeout: 60000
# redis 密码,空可以不填。
password:
pool:
# 连接池数量。
poolSize: 20
# 连接池中最小空闲数量。
minIdle: 5
minio:
enabled: false
endpoint: http://localhost:19000
accessKey: admin
secretKey: admin123456
bucketName: application
sa-token:
# token 名称(同时也是 cookie 名称)
token-name: Authorization
# token 有效期(单位:秒) 默认30天-1 代表永久有效
timeout: ${application.sessionExpiredSeconds}
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
active-timeout: -1
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
is-concurrent: true
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token
is-share: false
# token 风格默认可取值uuid、simple-uuid、random-32、random-64、random-128、tik
token-style: uuid
# 是否输出操作日志
is-log: true
# 配置 Sa-Token 单独使用的 Redis 连接
alone-redis:
# Redis数据库索引默认为0
database: 0
# Redis服务器地址
host: localhost
# Redis服务器连接端口
port: 6379
# Redis服务器连接密码默认为空
password:
# 连接超时时间
timeout: 10s
is-read-header: true
is-read-cookie: false

View File

@@ -0,0 +1,164 @@
logging:
level:
# 这里设置的日志级别优先于logback-spring.xml文件Loggers中的日志级别。
com.orangeforms: info
config: classpath:logback-spring.xml
server:
port: 8082
tomcat:
uri-encoding: UTF-8
threads:
max: 100
min-spare: 10
servlet:
encoding:
force: true
charset: UTF-8
enabled: true
# spring相关配置
spring:
application:
name: application-webadmin
profiles:
active: dev
servlet:
multipart:
max-file-size: 50MB
max-request-size: 50MB
mvc:
converters:
preferred-json-mapper: fastjson
main:
allow-circular-references: true
groovy:
template:
check-template-location: false
flowable:
async-executor-activate: false
database-schema-update: false
mybatis-flex:
mapper-locations: classpath:com/orangeforms/webadmin/*/dao/mapper/*Mapper.xml,com/orangeforms/common/log/dao/mapper/*Mapper.xml,com/orangeforms/common/online/dao/mapper/*Mapper.xml,com/orangeforms/common/flow/dao/mapper/*Mapper.xml
type-aliases-package: com.orangeforms.webadmin.*.model,com.orangeforms.common.log.model,com.orangeforms.common.online.model,com.orangeforms.common.flow.model
global-config:
deleted-value-of-logic-delete: -1
normal-value-of-logic-delete: 1
# 自动分页的配置
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: false
params: count=countSql
common-core:
# 可选值为 mysql / postgresql / oracle / dm8 / kingbase / opengauss
databaseType: mysql
common-online:
# 注意不要以反斜杠(/)结尾。
urlPrefix: /admin/online
# 打印接口的路径,不要以反斜杠(/)结尾。
printUrlPath: /admin/report/reportPrint/print
# 在线表单业务数据上传资源路径
uploadFileBaseDir: ./zz-resource/upload-files/online
# 如果为false在线表单模块中所有Controller接口将不能使用。
operationEnabled: true
# 1: minio 2: aliyun-oss 3: qcloud-cos。
distributeStoreType: 1
# 调用render接口时候是否打开一级缓存加速。
enableRenderCache: false
# 业务表和在线表单内置表是否跨库。
enabledMultiDatabaseWrite: true
# 脱敏字段的掩码字符,只能为单个字符。
maskChar: '*'
# 下面的url列表请保持反斜杠(/)结尾。
viewUrlList:
- ${common-online.urlPrefix}/onlineOperation/viewByDatasourceId/
- ${common-online.urlPrefix}/onlineOperation/viewByOneToManyRelationId/
- ${common-online.urlPrefix}/onlineOperation/listByDatasourceId/
- ${common-online.urlPrefix}/onlineOperation/listByOneToManyRelationId/
- ${common-online.urlPrefix}/onlineOperation/exportByDatasourceId/
- ${common-online.urlPrefix}/onlineOperation/exportByOneToManyRelationId/
- ${common-online.urlPrefix}/onlineOperation/downloadDatasource/
- ${common-online.urlPrefix}/onlineOperation/downloadOneToManyRelation/
- ${common-online.urlPrefix}/onlineOperation/print/
editUrlList:
- ${common-online.urlPrefix}/onlineOperation/addDatasource/
- ${common-online.urlPrefix}/onlineOperation/addOneToManyRelation/
- ${common-online.urlPrefix}/onlineOperation/updateDatasource/
- ${common-online.urlPrefix}/onlineOperation/updateOneToManyRelation/
- ${common-online.urlPrefix}/onlineOperation/deleteDatasource/
- ${common-online.urlPrefix}/onlineOperation/deleteOneToManyRelation/
- ${common-online.urlPrefix}/onlineOperation/deleteBatchDatasource/
- ${common-online.urlPrefix}/onlineOperation/deleteBatchOneToManyRelation/
- ${common-online.urlPrefix}/onlineOperation/uploadDatasource/
- ${common-online.urlPrefix}/onlineOperation/uploadOneToManyRelation/
- ${common-online.urlPrefix}/onlineOperation/importDatasource/
common-flow:
# 请慎重修改urlPrefix的缺省配置注意不要以反斜杠(/)结尾。如必须修改其他路径,请同步修改数据库脚本。
urlPrefix: /admin/flow
# 如果为false流程模块的所有Controller中的接口将不能使用。
operationEnabled: true
common-swagger:
# 当enabled为false的时候则可禁用swagger。
enabled: true
# 工程的基础包名。
basePackage: com.orangeforms
# 工程服务的基础包名。
serviceBasePackage: com.orangeforms.webadmin
title: 橙单单体服务工程
description: 橙单单体服务工程详情
version: 1.0
springdoc:
swagger-ui:
path: /swagger-ui.html
tags-sorter: alpha
#operations-sorter: order
api-docs:
path: /v3/api-docs
default-flat-param-object: false
common-datafilter:
tenant:
# 对于单体服务该值始终为false。
enabled: false
dataperm:
enabled: true
# 在拼接数据权限过滤的SQL时我们会用到sys_dept_relation表该表的前缀由此配置项指定。
# 如果没有前缀,请使用 "" 。
deptRelationTablePrefix: zz_
# 是否在每次执行数据权限查询过滤时都要进行菜单Id和URL之间的越权验证。如果使用SaToken权限框架该参数必须为false。
enableMenuPermVerify: false
# 暴露监控端点
management:
endpoints:
web:
exposure:
include: '*'
jmx:
exposure:
include: '*'
endpoint:
# 与中间件相关的健康详情也会被展示
health:
show-details: always
configprops:
# 在/actuator/configprops中所有包含password的配置将用 * 隐藏。
# 如果不想隐藏任何配置项的值,可以直接使用如下被注释的空值。
# keys-to-sanitize:
keys-to-sanitize: password
server:
base-path: "/"
common-log:
# 操作日志配置对应配置文件common-log/OperationLogProperties.java
operation-log:
enabled: true

View File

@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
scan当此属性设置为true时配置文件如果发生改变将会被重新加载默认值为true。
scanPeriod设置监测配置文件是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒当scan为true时此属性生效。默认的时间间隔为1分钟。
debug当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。
-->
<configuration scan="false" scanPeriod="60 seconds" debug="false">
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
<springProperty scope="context" name="logging.level" source="logging.level" defaultValue="info"/>
<!-- 定义日志的根目录 -->
<property name="LOG_HOME" value="./zzlogs/application-webadmin" />
<!-- 定义日志文件名称 -->
<property name="LOG_NAME" value="application-webadmin"></property>
<property name="LOG_PATTERN" value="[%-5level] [%d{yyyy-MM-dd HH:mm:ss}] [%thread] ==> %msg%n" />
<property name="LOG_PATTERN_EX" value="[%-5level] [%d{yyyy-MM-dd HH:mm:ss}] T:[%X{traceId}] S:[%X{sessionId}] U:[%X{userId}] [%thread] ==> %msg%n" />
<!-- ch.qos.logback.core.ConsoleAppender 表示控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!--
日志输出格式:
%-5level级别从左显示5个字符宽度
%d表示日期时间
%thread表示线程名
%msg日志消息
%n是换行符
-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${LOG_PATTERN}</pattern>
</layout>
</appender>
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
<appender name="file_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 这里为缺省log文件命名配置。注意如果需要支持基于flume的日志搬运为了防止文件名滚动过程中
重复搬运数据,请将下面两行配置注释掉,从而保证每次生成的日志文件均包含日期信息且不会变化。-->
<file>${LOG_HOME}/${LOG_NAME}.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--
滚动时产生的文件的存放位置及文件名称 %d{yyyy-MM-dd}:按天进行日志滚动
%i当文件大小超过maxFileSize时按照i进行文件滚动
-->
<fileNamePattern>${LOG_HOME}/${LOG_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<!--
可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每天滚动,
且maxHistory是365则只保存最近365天的文件删除之前的旧文件。注意删除旧文件是
那些为了归档而创建的目录也会被删除。
-->
<!-- 保存31天数据 -->
<MaxHistory>31</MaxHistory>
<!--
当日志文件超过maxFileSize指定的大小是根据上面提到的%i进行日志文件滚动 注意此处配置SizeBasedTriggeringPolicy是无法实现按文件大小进行滚动的必须配置timeBasedFileNamingAndTriggeringPolicy
-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>20MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 日志输出格式: -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${LOG_PATTERN_EX}</pattern>
</layout>
</appender>
<!-- 然后定义logger只有定义了logger并引入的appenderappender才会生效 -->
<!-- 这里我们把输出到控制台appender的日志级别设置为DEBUG便于调试。但是输出文件我们缺省为INFO两者均可随时修改。-->
<root level="${logging.level}">
<appender-ref ref="console" />
<appender-ref ref="file_log" />
</root>
<logger name="springfox.documentation" additivity="false" level="error">
<appender-ref ref="console" />
</logger>
<logger name="com.orangeforms" additivity="false" level="info">
<appender-ref ref="console" />
<appender-ref ref="file_log" />
</logger>
<!-- 这里将dao的日志级别设置为DEBUG是为了SQL语句的输出 -->
<logger name="com.orangeforms.webadmin.app.dao" additivity="false" level="debug">
<appender-ref ref="console" />
<appender-ref ref="file_log" />
</logger>
<logger name="com.orangeforms.webadmin.upms.dao" additivity="false" level="debug">
<appender-ref ref="console" />
<appender-ref ref="file_log" />
</logger>
<logger name="com.orangeforms.common.log.dao" additivity="false" level="debug">
<appender-ref ref="console" />
<appender-ref ref="file_log" />
</logger>
<logger name="com.orangeforms.common.online.dao" additivity="false" level="debug">
<appender-ref ref="console" />
<appender-ref ref="file_log" />
</logger>
<logger name="com.orangeforms.common.flow.dao" additivity="false" level="debug">
<appender-ref ref="console" />
<appender-ref ref="file_log" />
</logger>
<logger name="org.flowable" additivity="false" level="info">
<appender-ref ref="console" />
<appender-ref ref="file_log" />
</logger>
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>
</configuration>