mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 10:37:41 +08:00 
			
		
		
		
	update hutool 5.8.5
This commit is contained in:
		| @ -46,7 +46,7 @@ | |||||||
|         <jasypt-spring-boot-starter.version>3.0.4</jasypt-spring-boot-starter.version> |         <jasypt-spring-boot-starter.version>3.0.4</jasypt-spring-boot-starter.version> | ||||||
|         <lombok.version>1.18.20</lombok.version> |         <lombok.version>1.18.20</lombok.version> | ||||||
|         <mapstruct.version>1.4.1.Final</mapstruct.version> |         <mapstruct.version>1.4.1.Final</mapstruct.version> | ||||||
|         <hutool.version>5.7.22</hutool.version> |         <hutool.version>5.8.5</hutool.version> | ||||||
|         <easyexcel.verion>3.1.1</easyexcel.verion> |         <easyexcel.verion>3.1.1</easyexcel.verion> | ||||||
|         <velocity.version>2.2</velocity.version> |         <velocity.version>2.2</velocity.version> | ||||||
|         <screw.version>1.0.5</screw.version> |         <screw.version>1.0.5</screw.version> | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| package cn.iocoder.yudao.framework.common.util.collection; | package cn.iocoder.yudao.framework.common.util.collection; | ||||||
|  |  | ||||||
| import cn.hutool.core.collection.CollectionUtil; | import cn.hutool.core.collection.CollectionUtil; | ||||||
|  | import cn.hutool.core.collection.IterUtil; | ||||||
| import cn.hutool.core.util.ArrayUtil; | import cn.hutool.core.util.ArrayUtil; | ||||||
|  |  | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| @ -44,7 +45,7 @@ public class ArrayUtils { | |||||||
|         if (CollectionUtil.isEmpty(from)) { |         if (CollectionUtil.isEmpty(from)) { | ||||||
|             return (T[]) (new Object[0]); |             return (T[]) (new Object[0]); | ||||||
|         } |         } | ||||||
|         return ArrayUtil.toArray(from, (Class<T>) CollectionUtil.getElementType(from.iterator())); |         return ArrayUtil.toArray(from, (Class<T>) IterUtil.getElementType(from.iterator())); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public static <T> T get(T[] array, int index) { |     public static <T> T get(T[] array, int index) { | ||||||
|  | |||||||
| @ -1,6 +1,5 @@ | |||||||
| package cn.iocoder.yudao.framework.pay.core.client.impl; | package cn.iocoder.yudao.framework.pay.core.client.impl; | ||||||
|  |  | ||||||
| import cn.hutool.extra.validation.ValidationUtil; |  | ||||||
| import cn.iocoder.yudao.framework.pay.core.client.AbstractPayCodeMapping; | import cn.iocoder.yudao.framework.pay.core.client.AbstractPayCodeMapping; | ||||||
| import cn.iocoder.yudao.framework.pay.core.client.PayClient; | import cn.iocoder.yudao.framework.pay.core.client.PayClient; | ||||||
| import cn.iocoder.yudao.framework.pay.core.client.PayClientConfig; | import cn.iocoder.yudao.framework.pay.core.client.PayClientConfig; | ||||||
| @ -10,6 +9,8 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.PayRefundUnifiedReqDTO; | |||||||
| import cn.iocoder.yudao.framework.pay.core.client.dto.PayRefundUnifiedRespDTO; | import cn.iocoder.yudao.framework.pay.core.client.dto.PayRefundUnifiedRespDTO; | ||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
|  |  | ||||||
|  | import javax.validation.Validation; | ||||||
|  |  | ||||||
| import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; | import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @ -79,7 +80,7 @@ public abstract class AbstractPayClient<Config extends PayClientConfig> implemen | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public final PayCommonResult<?> unifiedOrder(PayOrderUnifiedReqDTO reqDTO) { |     public final PayCommonResult<?> unifiedOrder(PayOrderUnifiedReqDTO reqDTO) { | ||||||
|         ValidationUtil.validate(reqDTO); |         Validation.buildDefaultValidatorFactory().getValidator().validate(reqDTO); | ||||||
|         // 执行短信发送 |         // 执行短信发送 | ||||||
|         PayCommonResult<?> result; |         PayCommonResult<?> result; | ||||||
|         try { |         try { | ||||||
|  | |||||||
							
								
								
									
										240
									
								
								yudao-server/src/main/resources/application-local.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										240
									
								
								yudao-server/src/main/resources/application-local.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,240 @@ | |||||||
|  | server: | ||||||
|  |   port: 48080 | ||||||
|  |  | ||||||
|  | --- #################### 数据库相关配置 #################### | ||||||
|  |  | ||||||
|  | spring: | ||||||
|  |   # 数据源配置项 | ||||||
|  |   autoconfigure: | ||||||
|  |     exclude: | ||||||
|  |       - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源 | ||||||
|  |       - org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration # 排除积木报表带来的 MongoDB 的自动配置 | ||||||
|  |   datasource: | ||||||
|  |     druid: # Druid 【监控】相关的全局配置 | ||||||
|  |       web-stat-filter: | ||||||
|  |         enabled: true | ||||||
|  |       stat-view-servlet: | ||||||
|  |         enabled: true | ||||||
|  |         allow: # 设置白名单,不填则允许所有访问 | ||||||
|  |         url-pattern: /druid/* | ||||||
|  |         login-username: # 控制台管理用户名和密码 | ||||||
|  |         login-password: | ||||||
|  |       filter: | ||||||
|  |         stat: | ||||||
|  |           enabled: true | ||||||
|  |           log-slow-sql: true # 慢 SQL 记录 | ||||||
|  |           slow-sql-millis: 100 | ||||||
|  |           merge-sql: true | ||||||
|  |         wall: | ||||||
|  |           config: | ||||||
|  |             multi-statement-allow: true | ||||||
|  |     dynamic: # 多数据源配置 | ||||||
|  |       druid: # Druid 【连接池】相关的全局配置 | ||||||
|  |         initial-size: 5 # 初始连接数 | ||||||
|  |         min-idle: 10 # 最小连接池数量 | ||||||
|  |         max-active: 20 # 最大连接池数量 | ||||||
|  |         max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 | ||||||
|  |         time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 | ||||||
|  |         min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 | ||||||
|  |         max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒 | ||||||
|  |         validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 | ||||||
|  |         test-while-idle: true | ||||||
|  |         test-on-borrow: false | ||||||
|  |         test-on-return: false | ||||||
|  |       primary: master | ||||||
|  |       datasource: | ||||||
|  |         master: | ||||||
|  |           name: ruoyi-vue-pro | ||||||
|  |           url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | ||||||
|  |           #          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 | ||||||
|  |           #          url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 | ||||||
|  |           #          url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 | ||||||
|  |           #          url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例 | ||||||
|  |           username: root | ||||||
|  |           password: 123456 | ||||||
|  |         #          username: sa | ||||||
|  |         #          password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W | ||||||
|  |         slave: # 模拟从库,可根据自己需要修改 | ||||||
|  |           name: ruoyi-vue-pro | ||||||
|  |           url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | ||||||
|  |           #          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 | ||||||
|  |           #          url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 | ||||||
|  |           #          url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 | ||||||
|  |           #          url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例 | ||||||
|  |           username: root | ||||||
|  |           password: 123456 | ||||||
|  |   #          username: sa | ||||||
|  |   #          password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W | ||||||
|  |  | ||||||
|  |   # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 | ||||||
|  |   redis: | ||||||
|  |     host: 127.0.0.1 # 地址 | ||||||
|  |     port: 6379 # 端口 | ||||||
|  |     database: 0 # 数据库索引 | ||||||
|  | #    password: 123456 # 密码,建议生产环境开启 | ||||||
|  |  | ||||||
|  | jasypt: | ||||||
|  |   encryptor: | ||||||
|  |     password: yuanma # 加解密的秘钥 | ||||||
|  |  | ||||||
|  | --- #################### 定时任务相关配置 #################### | ||||||
|  |  | ||||||
|  | # Quartz 配置项,对应 QuartzProperties 配置类 | ||||||
|  | spring: | ||||||
|  |   quartz: | ||||||
|  |     auto-startup: false # 本地开发环境,尽量不要开启 Job | ||||||
|  |     scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName | ||||||
|  |     job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。 | ||||||
|  |     wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true | ||||||
|  |     properties: # 添加 Quartz Scheduler 附加属性,更多可以看 http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/configuration.html 文档 | ||||||
|  |       org: | ||||||
|  |         quartz: | ||||||
|  |           # Scheduler 相关配置 | ||||||
|  |           scheduler: | ||||||
|  |             instanceName: schedulerName | ||||||
|  |             instanceId: AUTO # 自动生成 instance ID | ||||||
|  |           # JobStore 相关配置 | ||||||
|  |           jobStore: | ||||||
|  |             # JobStore 实现类。可见博客:https://blog.csdn.net/weixin_42458219/article/details/122247162 | ||||||
|  |             class: org.springframework.scheduling.quartz.LocalDataSourceJobStore | ||||||
|  |             isClustered: true # 是集群模式 | ||||||
|  |             clusterCheckinInterval: 15000 # 集群检查频率,单位:毫秒。默认为 15000,即 15 秒 | ||||||
|  |             misfireThreshold: 60000 # misfire 阀值,单位:毫秒。 | ||||||
|  |           # 线程池相关配置 | ||||||
|  |           threadPool: | ||||||
|  |             threadCount: 25 # 线程池大小。默认为 10 。 | ||||||
|  |             threadPriority: 5 # 线程优先级 | ||||||
|  |             class: org.quartz.simpl.SimpleThreadPool # 线程池类型 | ||||||
|  |     jdbc: # 使用 JDBC 的 JobStore 的时候,JDBC 的配置 | ||||||
|  |       initialize-schema: NEVER # 是否自动使用 SQL 初始化 Quartz 表结构。这里设置成 never ,我们手动创建表结构。 | ||||||
|  |  | ||||||
|  | --- #################### 配置中心相关配置 #################### | ||||||
|  |  | ||||||
|  | # Apollo 配置中心 | ||||||
|  | apollo: | ||||||
|  |   bootstrap: | ||||||
|  |     enabled: true # 设置 Apollo 在启动阶段生效 | ||||||
|  |     eagerLoad: | ||||||
|  |       enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置 | ||||||
|  |   jdbc: # 自定义的 JDBC 配置项,用于数据库的地址 | ||||||
|  |     dao: cn.iocoder.yudao.module.infra.dal.mysql.config.ConfigDAOImpl | ||||||
|  |     url: ${spring.datasource.dynamic.datasource.master.url} | ||||||
|  |     username: ${spring.datasource.dynamic.datasource.master.username} | ||||||
|  |     password: ${spring.datasource.dynamic.datasource.master.password} | ||||||
|  |  | ||||||
|  | --- #################### 服务保障相关配置 #################### | ||||||
|  |  | ||||||
|  | # Lock4j 配置项 | ||||||
|  | lock4j: | ||||||
|  |   acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 | ||||||
|  |   expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 | ||||||
|  |  | ||||||
|  | # Resilience4j 配置项 | ||||||
|  | resilience4j: | ||||||
|  |   ratelimiter: | ||||||
|  |     instances: | ||||||
|  |       backendA: | ||||||
|  |         limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50 | ||||||
|  |         limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500 | ||||||
|  |         timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s | ||||||
|  |         register-health-indicator: true # 是否注册到健康监测 | ||||||
|  |  | ||||||
|  | --- #################### 监控相关配置 #################### | ||||||
|  |  | ||||||
|  | # Actuator 监控端点的配置项 | ||||||
|  | management: | ||||||
|  |   endpoints: | ||||||
|  |     web: | ||||||
|  |       base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator | ||||||
|  |       exposure: | ||||||
|  |         include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 | ||||||
|  |  | ||||||
|  | # Spring Boot Admin 配置项 | ||||||
|  | spring: | ||||||
|  |   boot: | ||||||
|  |     admin: | ||||||
|  |       # Spring Boot Admin Client 客户端的相关配置 | ||||||
|  |       client: | ||||||
|  |         url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path} # 设置 Spring Boot Admin Server 地址 | ||||||
|  |         instance: | ||||||
|  |           service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME] | ||||||
|  |       # Spring Boot Admin Server 服务端的相关配置 | ||||||
|  |       context-path: /admin # 配置 Spring | ||||||
|  |  | ||||||
|  | # 日志文件配置 | ||||||
|  | logging: | ||||||
|  |   file: | ||||||
|  |     name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径 | ||||||
|  |   level: | ||||||
|  |     # 配置自己写的 MyBatis Mapper 打印日志 | ||||||
|  |     cn.iocoder.yudao.module.bpm.dal.mysql: debug | ||||||
|  |     cn.iocoder.yudao.module.infra.dal.mysql: debug | ||||||
|  |     cn.iocoder.yudao.module.pay.dal.mysql: debug | ||||||
|  |     cn.iocoder.yudao.module.system.dal.mysql: debug | ||||||
|  |     cn.iocoder.yudao.module.tool.dal.mysql: debug | ||||||
|  |     cn.iocoder.yudao.module.member.dal.mysql: debug | ||||||
|  |  | ||||||
|  | --- #################### 微信公众号、小程序相关配置 #################### | ||||||
|  | wx: | ||||||
|  |   mp: # 公众号配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档 | ||||||
|  |     app-id: wx041349c6f39b268b | ||||||
|  |     secret: 5abee519483bc9f8cb37ce280e814bd0 | ||||||
|  |     # 存储配置,解决 AccessToken 的跨节点的共享 | ||||||
|  |     config-storage: | ||||||
|  |       type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 | ||||||
|  |       key-prefix: wx # Redis Key 的前缀 TODO 芋艿:解决下 Redis key 管理的配置 | ||||||
|  |       http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 | ||||||
|  |   miniapp: # 小程序配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md 文档 | ||||||
|  |     appid: wx63c280fe3248a3e7 | ||||||
|  |     secret: 6f270509224a7ae1296bbf1c8cb97aed | ||||||
|  |     config-storage: | ||||||
|  |       type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 | ||||||
|  |       key-prefix: wa # Redis Key 的前缀 TODO 芋艿:解决下 Redis key 管理的配置 | ||||||
|  |       http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 | ||||||
|  |  | ||||||
|  | --- #################### 芋道相关配置 #################### | ||||||
|  |  | ||||||
|  | # 芋道配置项,设置当前项目所有自定义的配置 | ||||||
|  | yudao: | ||||||
|  |   captcha: | ||||||
|  |     enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试 | ||||||
|  |   security: | ||||||
|  |     mock-enable: true | ||||||
|  |   xss: | ||||||
|  |     enable: false | ||||||
|  |     exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系 | ||||||
|  |       - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 | ||||||
|  |       - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 | ||||||
|  |   pay: | ||||||
|  |     pay-notify-url: http://niubi.natapp1.cc/api/pay/order/notify | ||||||
|  |     pay-return-url: http://niubi.natapp1.cc/api/pay/order/return | ||||||
|  |     refund-notify-url: http://niubi.natapp1.cc/api/pay/refund/notify | ||||||
|  |   access-log: # 访问日志的配置项 | ||||||
|  |     enable: false | ||||||
|  |   error-code: # 错误码相关配置项 | ||||||
|  |     enable: false | ||||||
|  |   demo: false # 关闭演示模式 | ||||||
|  |  | ||||||
|  | justauth: | ||||||
|  |   enabled: true | ||||||
|  |   type: | ||||||
|  |     DINGTALK: # 钉钉 | ||||||
|  |       client-id: dingvrnreaje3yqvzhxg | ||||||
|  |       client-secret: i8E6iZyDvZj51JIb0tYsYfVQYOks9Cq1lgryEjFRqC79P3iJcrxEwT6Qk2QvLrLI | ||||||
|  |       ignore-check-redirect-uri: true | ||||||
|  |     WECHAT_ENTERPRISE: # 企业微信 | ||||||
|  |       client-id: wwd411c69a39ad2e54 | ||||||
|  |       client-secret: 1wTb7hYxnpT2TUbIeHGXGo7T0odav1ic10mLdyyATOw | ||||||
|  |       agent-id: 1000004 | ||||||
|  |       ignore-check-redirect-uri: true | ||||||
|  |     WECHAT_MINI_APP: # 微信小程序 | ||||||
|  |       client-id: ${wx.miniapp.appid} | ||||||
|  |       client-secret: ${wx.miniapp.secret} | ||||||
|  |       ignore-check-redirect-uri: true | ||||||
|  |       ignore-check-state: true # 微信小程序,不会使用到 state,所以不进行校验 | ||||||
|  |  | ||||||
|  |   cache: | ||||||
|  |     type: REDIS | ||||||
|  |     prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: | ||||||
|  |     timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 xingyu
					xingyu