Compare commits

...

782 Commits

Author SHA1 Message Date
YunaiV
036bdc79ba feat:【mp】完善“模版消息”的功能(调整包结构) 2025-11-26 18:43:50 +08:00
YunaiV
bd31e5abb2 feat:【mp】完善“模版消息”的功能 2025-11-26 18:35:24 +08:00
YunaiV
a1f7f81e8d feat:【mp】完善“模版消息”的功能 2025-11-26 18:34:03 +08:00
YunaiV
04fb7b107e feat:【mp】完善“模版消息”的功能 2025-11-26 18:30:07 +08:00
芋道源码
b6f75b3825 !215 feat(mp): 新增公众号消息模板功能
Merge pull request !215 from wuKong/feat(mp)-新增公众号消息模板
2025-11-26 02:49:05 +00:00
YunaiV
6dcbb1829b 【同步】BOOT 和 CLOUD 的功能 2025-11-25 13:00:42 +08:00
YunaiV
8becb49a3b 【同步】BOOT 和 CLOUD 的功能 2025-11-25 12:58:25 +08:00
YunaiV
739487e528 !221 feat(pay): 支持通过支付订单号查询支付订单 2025-11-24 20:20:03 +08:00
芋道源码
21f90806f4 !221 feat(pay): 支持通过支付订单号查询支付订单
Merge pull request !221 from wuKong/feat(pay)-支持通过订单号查询支付订单
2025-11-24 12:09:59 +00:00
YunaiV
a483d57eca feat:【iot】tdengine 调整成 WS 以支持 decimal 字段 2025-11-24 19:21:58 +08:00
wuKong
76380b5e5d 🎨 fix(pay):处理格式 2025-11-24 18:36:55 +08:00
YunaiV
5dc81ab895 fix:【iot】单测报错的问题 2025-11-24 18:24:10 +08:00
YunaiV
9858d5e42a fix:iot-gateway-server 的 spring-boot-maven-plugin 缺少版本号,对应 https://gitee.com/zhijiantianya/yudao-cloud/issues/ID5LU4 2025-11-24 18:04:28 +08:00
YunaiV
c20433df33 chore:依赖升级最新版本 2025-11-24 17:43:58 +08:00
wuKong
4212c8aed8 fix(pay):修复支付订单同步后查询参数错误
- 修复了同步支付订单后查询参数传错的问题
- 将错误的 id 参数替换为正确的 order.getId() 参数
- 确保同步后能正确获取最新的订单状态
2025-11-24 17:37:22 +08:00
YunaiV
6d5bb3f1bd chore:依赖升级最新版本 2025-11-24 17:15:17 +08:00
wuKong
8bfc3b480b feat(pay): 支持通过订单号查询支付订单
- 在 AppPayOrderController 中增加根据支付订单号查询订单的功能
- 新增 PayOrderMapper 的 selectByNo 方法用于按订单号查询
- 扩展 PayOrderService 接口及实现类以支持订单号查询
- 优化查询逻辑,优先使用订单号查询,其次使用订单ID查询
- 更新接口文档,增加支付订单号参数说明
- 使用 CharSequenceUtil 工具类判断订单号是否为空
2025-11-24 17:05:48 +08:00
YunaiV
e286630fdd chore:依赖升级最新版本 2025-11-24 16:56:55 +08:00
YunaiV
43fd4ef18f fix:【ai】单测在 spring-ai 1.1.0 版本下的报错 2025-11-24 16:56:04 +08:00
YunaiV
336b87dd3d Merge branch 'master-jdk17' of https://github.com/YunaiV/yudao-cloud into master-jdk17 2025-11-24 16:44:56 +08:00
YunaiV
1e1d560a25 fix: 更新 AI 平台名称从 '月之暗灭' 修改为 '月之暗面'(= = dota 打多了) 2025-11-24 15:18:43 +08:00
YunaiV
3c1748aff1 !208 使用外部中间件时,如:金蝶、东方通 在不重启整个中间件的情况下,二次部署或多个服务同时部署在一个虚拟机下(JVM) IdTypeEnvir… 2025-11-24 11:24:52 +08:00
YunaiV
187148ee8b fix: 【framework】TimestampLocalDateTimeSerializer 中,使用 ReflectUtil 替代 2025-11-24 11:18:53 +08:00
YunaiV
d0d563ae61 【同步】BOOT 和 CLOUD 的功能(AI) 2025-11-24 11:11:40 +08:00
YunaiV
f881cb74c5 【同步】BOOT 和 CLOUD 的功能(AI) 2025-11-24 11:10:53 +08:00
YunaiV
e98716e526 【同步】BOOT 和 CLOUD 的功能 2025-11-24 10:54:10 +08:00
YunaiV
a901928986 chore:flowable from 7.0.1 to 7.2.0 2025-11-23 17:36:36 +08:00
YunaiV
69e595d62e 【同步】BOOT 和 CLOUD 的功能 2025-11-23 09:07:03 +08:00
YunaiV
a0b7777783 fix:【bpm】LoadBalanced 的 RestTemplate 场景下,影响普通域名的访问,解决 https://gitee.com/zhijiantianya/yudao-cloud/issues/ICY7H3 问题 2025-11-22 16:12:56 +08:00
芋道源码
a5aa2c84e3 !220 回退 'Pull Request !216 : feat(pay,mall-trade): 小程序商品订单详情path配置支持'
Merge pull request !220 from 芋道源码/revert-merge-216-master-jdk17
2025-11-21 13:21:49 +00:00
芋道源码
f63b837300 回退 'Pull Request !216 : feat(pay,mall-trade): 小程序商品订单详情path配置支持' 2025-11-21 13:21:34 +00:00
芋道源码
32260511d9 !216 feat(pay,mall-trade): 小程序商品订单详情path配置支持
Merge pull request !216 from wuKong/feat(pay,mall-trade)-小程序商品订单详情path配置
2025-11-21 13:19:22 +00:00
芋道源码
bb2f5827e9 Merge pull request #273 from cetuer/master-jdk17
fix:【bpm工作流】BpmProcessInstanceCopyServiceImpl抄送时参数顺序错误的问题
2025-11-21 20:33:33 +08:00
wuKong
45603c7132 fix(trade):优化订单详情接口参数处理
- 将同步支付状态参数改为字符串类型以避免空指针异常
- 添加参数非空判断逻辑
- 保留原有 Long 类型订单 ID 查询方式
- 增强接口对不同输入参数的兼容性处理
- 使用 Hutool 工具类进行参数转换与校验
- 维持原接口功能不变的基础上提升健壮性
2025-11-10 17:30:56 +08:00
wuKong
d952cdec59 docs(order): 更新订单详情接口参数说明 2025-11-10 16:34:33 +08:00
wuKong
2d7bad4e98 🎨 feat(trade): 调整订单详情接口支持多种查询方式
- 修改 getOrderDetail 接口参数 id 类型为 String
- 根据 sync 参数决定调用不同的订单查询方法
- 删除冗余的 getOrderDetailByOutTradeNo 接口
- 优化订单支付状态同步逻辑
- 保持原有订单详情返回结构不变
2025-11-10 16:25:39 +08:00
wuKong
534b7e1f73 feat(pay,mall-trade): 小程序商品订单详情path配置支持
- 在 PayOrderApi 中新增 getMerchantOrderIdByPayOrderNo 方法
- 在 PayOrderApiImpl 中实现该方法,调用 service 层逻辑
- 在 PayOrderMapper 中增加 selectByNo 查询方法
- 在 PayOrderService 中定义 getMerchantOrderIdByNo 接口
- 在 PayOrderServiceImpl 中实现 getMerchantOrderIdByNo 业务逻辑
- 支持通过支付订单编号查询对应的商户订单编号feat(trade): 新增通过支付订单编号查询交易订单详情功能
- 在 AppTradeOrderController 中新增 getOrderDetailByOutTradeNo 接口
- 支持微信小程序订单中心跳转到订单详情页面
- 在 TradeOrderQueryService 中定义 getOrderByOutTradeNo 方法
- 在 TradeOrderQueryServiceImpl 中实现该方法
- 通过 PayOrderApi 调用获取商户订单编号
- 根据商户订单编号查询对应的交易订单信息
2025-11-10 11:36:47 +08:00
wuKong
0ec835244d feat(mp): 新增公众号消息模板功能
- 新增消息模板和模板发送记录的增删改查接口
- 新增消息模板和发送记录的分页查询及导出功能
- 新增批量发送模板消息功能
- 新增同步公众号模板功能
- 添加相关数据对象和错误码定义
- 扩展用户分页请求参数支持openid列表查询
- 完善模板消息相关的VO类和转换逻辑
2025-11-05 11:53:06 +08:00
zhangqb
9b891ecf3c fix:【bpm工作流】BpmProcessInstanceCopyServiceImpl抄送时参数顺序错误的问题 2025-10-28 14:18:45 +08:00
芋道源码
d64f4e9343 !211 修改iot中xxljob任务名称重复导致服务启动报错
Merge pull request !211 from huppygo/master-jdk17
2025-10-19 10:36:05 +00:00
YunaiV
5ede07de09 (〃'▽'〃) v2025.10 发布:新增工作流的工单打印、优化物联网的场景联动、完善 vben5 的 antd、vben 版本的功能 2025-10-12 15:25:09 +08:00
YunaiV
1d41aa37c8 【同步】BOOT 和 CLOUD 的功能 2025-10-12 15:11:45 +08:00
huppygo
1618213494 修改iot中xxljob任务名称重复导致服务启动报错
Signed-off-by: huppygo <huppygo@qq.com>
2025-10-11 01:44:54 +00:00
YunaiV
bf0c7dadc7 【同步】BOOT 和 CLOUD 的功能 2025-10-02 18:51:27 +08:00
YunaiV
cd685e2304 【同步】BOOT 和 CLOUD 的功能 2025-10-02 17:58:54 +08:00
YunaiV
186bb144c9 【同步】BOOT 和 CLOUD 的功能 2025-10-02 17:57:40 +08:00
YunaiV
96c6f184fa 【同步】BOOT 和 CLOUD 的功能 2025-10-02 17:51:59 +08:00
YunaiV
f02c004736 【同步】BOOT 和 CLOUD 的功能 2025-10-02 17:51:49 +08:00
YunaiV
ec3a391981 fix:【framework 框架】确保在 Bean 创建前映射应用请求前缀 2025-09-20 21:50:04 +08:00
芋道源码
fb47ed6c14 !209 fix(web): 确保在 Bean 创建前映射应用请求前缀
Merge pull request !209 from egd/fix-PathMatcher
2025-09-20 13:43:10 +00:00
YunaiV
f1167638ce feat:【infra 基础设施】ftp、sftp 库升级与兼容 2025-09-20 21:22:12 +08:00
芋道源码
a660f407d8 !207 feat: ftp/sftp功能优化
Merge pull request !207 from Henry/feture/sftp
2025-09-20 13:15:32 +00:00
YunaiV
17e2c10b05 fix:【framework 框架】XXL-Job 多租户任务不生效的问题 2025-09-20 12:00:28 +08:00
YunaiV
aaed2f4827 fix:【ai 大模型】swagger-annotations-jakarta 依赖冲突 2025-09-20 11:03:22 +08:00
egd
4cb9af22a2 fix(web): 确保在 Bean 创建前映射应用请求前缀
场景:
当 app 和 admin 下的接口地址一致时(比如:/system/user/get),需要依赖前缀(admin-api | app-api)来区分,防止 URI 冲突。
问题:
- 当 xss.enable=true 时,会触发 TechXssAutoConfiguration 中 xssJacksonCustomizer 的构建,间接触发 PathMatcher 注入,调用 DelegatingWebMvcConfiguration.configurePathMatch。
- 此时 RequestMappingHandlerMapping 的 mapping 还未加上前缀。
- 当 api-encrypt.enable=true 时,提前注入的 RequestMappingHandlerMapping 没有前缀,导致接口地址重复报错。
解决:
- 不依赖 DelegatingWebMvcConfiguration 的回调顺序。
- 确保即使其他 Bean 提前触发 Mapping 创建时,也能正确加上前缀,避免 URI 冲突。
2025-09-09 09:51:21 +08:00
YunaiV
5211b4e64f chore: mybatis-plus from 3.5.12 to 3.5.14
fix:BaseDO 移除 jdbcType = JdbcType.VARCHAR 避免被转义
2025-09-01 13:16:47 +08:00
Henry
e01ee4e01d feat: ftp/sftp功能优化
1. 更换jsch依赖库
2. 增加超时设置
3. sftp创建上层目录时,与ftp方式保持一致,因为hutool包的FileUtil.getParent在不同操作系统上不一致
2025-08-31 17:08:34 +08:00
YunaiV
cb5f05b421 fix:【ai 大模型】兼容 mcp server 关闭的情况 2025-08-31 16:06:37 +08:00
YunaiV
ed962134f6 (〃'▽'〃) v2025.09 发布:新增 AI 支持联网搜索、推理、文件/图片、MCP 等功能,完善 IoT 场景联动 2025-08-31 11:24:38 +08:00
YunaiV
edb5cdd372 【同步】BOOT 和 CLOUD 的功能 2025-08-31 10:25:40 +08:00
YunaiV
34aea48b7c reactor:移除 @Accessors 和 @EqualsAndHashCode 注解 2025-08-30 17:48:10 +08:00
YunaiV
32a68885bb fix:【IoT 物联网】yudao-spring-boot-starter-biz-tenant 移除从夫依赖 2025-08-30 17:24:51 +08:00
YunaiV
44c9391254 feat:【IoT 物联网】新版本同步 2025-08-30 10:59:58 +08:00
YunaiV
92581e3b24 feat:【IoT 物联网】新版本同步 2025-08-30 10:54:35 +08:00
YunaiV
a89b6d14a8 feat:【IoT 物联网】新版本同步 2025-08-30 09:34:40 +08:00
YunaiV
d8fbd0f6c5 chore: update dependencies for jimureport and jimubi versions 2025-08-29 22:19:38 +08:00
YunaiV
0626acc93b feat:【AI 大模型】默认 mcp 不开启,避免报错 2025-08-29 21:54:49 +08:00
YunaiV
24402eaeef 【同步】BOOT 和 CLOUD 的功能 2025-08-29 20:19:26 +08:00
YunaiV
2503432067 【同步】BOOT 和 CLOUD 的功能 2025-08-29 20:05:55 +08:00
YunaiV
59429be4df feat:【framework 框架】增加 ApiEncryptTest 单测 2025-08-24 16:08:41 +08:00
芋道源码
a66fe7cc10 !206 修复:Feign 未走自定义 LDT 反序列化
Merge pull request !206 from egd/feature-feignDecoder
2025-08-24 08:01:05 +00:00
YunaiV
178ee2004b fix:【framework 框架】注释 opentracing.Tracer 和 skywalking Tracer 不兼容的问题,后续换 opentelemetry 2025-08-24 15:46:09 +08:00
YunaiV
c52d76b274 chore:更新多个依赖版本,包括 druid、rocketmq-spring、skywalking、jedis-mock、jsoup、hutool、tika-core 和 netty 2025-08-24 14:46:47 +08:00
YunaiV
abf26721c2 chore:maven-surefire-plugin 从 3.2.2 升级到 3.5.3 2025-08-24 11:49:01 +08:00
YunaiV
ffb883f55e chore:commons-lang3 从 3.17 to 3.18(安全升级) 2025-08-24 11:05:36 +08:00
YunaiV
045b362142 chore:redisson 从 3.4.1 to 3.50.0 2025-08-24 10:38:27 +08:00
YunaiV
606e9e27a5 【同步】BOOT 和 CLOUD 的功能 2025-08-24 10:27:08 +08:00
egd
35d62571fd fix(jackson): 统一 LocalDateTime 毫秒时间戳编解码,消除 Feign/WebFlux 的 ObjectMapper 时序问题 2025-08-21 15:54:47 +08:00
YunaiV
63b4b52613 feat:【framework 框架】spring cloud 2025 升级,支持 spring boot 3.5.4 2025-08-20 22:16:04 +08:00
YunaiV
fceaa7ae00 feat:【framework 框架】兼容 knife4j 4.5.0 版本,升级 spring boot 到 3.4.8 2025-08-20 21:10:59 +08:00
egd
b30396d149 fix(feign): Feign 默认的解码器未使用全局 HttpMessageConverters,导致LocalDateTime 不能从毫秒时间戳反序列化。改为 SpringDecoder + ResponseEntityDecoder,复用容器里的 ObjectMapper。 2025-08-20 18:09:28 +08:00
YunaiV
caa75004fb fix:【framework 框架】兼容 SpringBoot 2.X 版本的 API 加解密 2025-08-20 13:22:15 +08:00
YunaiV
2573a98f72 fix:【infra 基础设施】默认禁用 spring boot admin,保证启动速度(按需开启!) 2025-08-20 00:13:46 +08:00
YunaiV
e792054adb feat:【system 系统管理】租户支持匹配多域名、微信小程序 appid 等 2025-08-19 23:19:25 +08:00
YunaiV
816e1fbf9b 【同步】BOOT 和 CLOUD 的功能 2025-08-18 08:42:16 +08:00
YunaiV
8e45cf5787 【同步】BOOT 和 CLOUD 的功能 2025-08-18 00:26:28 +08:00
YunaiV
49572b2994 fix:【system 系统功能】腾讯云短信回调没有 logId 需要 serialNo 来更新本地记录 2025-08-17 17:01:06 +08:00
芋道源码
a980c09d01 !203 腾讯云短信回调没有logId 需要serialNo来更新本地记录
Merge pull request !203 from yubaolin/master-jdk17
2025-08-17 08:41:56 +00:00
YunaiV
37d120b193 fix:【framework 框架】GlobalExceptionHandler 兼容更多 ServiceException 情况 2025-08-17 15:25:21 +08:00
YunaiV
6434ba1847 fix:【framework 框架】YudaoTracerAutoConfiguration 增加必须存在 Filter 2025-08-17 14:58:51 +08:00
YunaiV
adadcf4f62 feat:补充 application-dev 缺失的 xxl-job 配置项,统一一些~(非 bug) 2025-08-17 11:30:17 +08:00
YunaiV
c55fe616b6 reactor:【cloud 微服务】EnvLoadBalancerClient 本地调试时,出现为空是相对正常情况,https://t.zsxq.com/hcam5 2025-08-16 21:23:06 +08:00
YunaiV
b4df6f93cb 【同步】BOOT 和 CLOUD 的功能 2025-08-16 19:13:10 +08:00
YunaiV
66824310c1 Merge remote-tracking branch 'origin/master-jdk17' into master-jdk17 2025-08-16 19:02:50 +08:00
YunaiV
110c38bf6e 【同步】BOOT 和 CLOUD 的功能 2025-08-16 19:02:44 +08:00
baolin
fa02450c56 腾讯云短信回调没有logId 根据serialNo查询id来更新 2025-08-10 11:04:42 +08:00
芋道源码
89fccaf4a9 !204 feat(mp): 添加用户ID筛选条件以提升消息查询功能
Merge pull request !204 from wuKong/master-jdk17
2025-08-09 02:20:29 +00:00
芋道源码
1ad76857b3 !201 fix 修复菜单组件名重复校验不严谨问题
Merge pull request !201 from 我是阿志吖/master-jdk17
2025-08-09 02:13:15 +00:00
wuKong
cd08ffe9e8 feat(mp): 添加用户ID筛选条件以提升消息查询功能
- 在 MpMessagePageReqVO 类中添加 userId 字段,用于筛选特定用户的消息
- 在 MpMessageMapper 类中添加对应的查询条件,实现按用户ID筛选消息的功能
2025-08-09 00:33:20 +08:00
wuKong
9f4c7f1fea fix(pay): 修复支付宝证书模式的签名验证
- 修改 AbstractAlipayPayClient 类中的签名验证逻辑
- 在证书模式下,使用正确的公钥编码方式进行验证- 优化代码,确保支付宝签名验证的正确性和可靠性
2025-08-09 00:32:41 +08:00
yubaolin
2de710190e 腾讯云短信回调没有logId 需要serialNo来更新本地记录
https://gitee.com/zhijiantianya/yudao-cloud/issues/ICNG6O
2025-08-07 17:29:51 +08:00
YunaiV
2382c3d844 reactor:【system 系统功能】优化“文字验证码”的代码 2025-08-04 13:01:02 +08:00
YunaiV
1f02103d1b fix:【framework 全局】GlobalExceptionHandler 处理 guava UncheckedExecutionException 异常,https://t.zsxq.com/UszdH 2025-08-03 19:41:36 +08:00
YunaiV
a277987139 fix:【framework 全局】GlobalExceptionHandler 处理 guava UncheckedExecutionException 异常,https://t.zsxq.com/UszdH 2025-08-03 19:39:33 +08:00
YunaiV
9502fef140 fix:【bpm 工作流】BpmSequentialMultiInstanceBehavior 兼容 CallActivity、SubProcess 场景 2025-08-03 19:16:31 +08:00
YunaiV
9f8188dcd4 reactor:@MockBean => @MockitoBean 2025-08-02 17:22:21 +08:00
YunaiV
6161166af9 (〃'▽'〃) v2025.08 发布:完善 vben5(antd) 工作流、迁移 vben5(ep) 商城、支持 IoT TCP 协议 2025-07-31 13:05:10 +08:00
YunaiV
05f1b1e4f9 fix:【bpm 工作流】BpmCategoryServiceImplTest 单测不正确的问题 2025-07-31 13:04:28 +08:00
YunaiV
0abfa60e89 【同步】BOOT 和 CLOUD 的功能 2025-07-31 09:52:04 +08:00
YunaiV
7d9de01556 【同步】BOOT 和 CLOUD 的功能 2025-07-30 19:06:21 +08:00
YunaiV
3c5c3ddc87 fix:【bpm 工作流】跨进程调用,无法回调 crm 的工作流结果的问题 2025-07-30 18:51:23 +08:00
YunaiV
8eea97add4 fix:【bpm 工作流】跨进程调用,无法回调 crm 的工作流结果的问题 2025-07-30 18:46:32 +08:00
zhouhongzhi
19ca4e7e89 fix 修复菜单组件名重复校验不严谨问题 2025-07-30 14:20:13 +08:00
YunaiV
b46f29e45f 【同步】BOOT 和 CLOUD 的功能 2025-07-27 19:42:49 +08:00
YunaiV
e72e2588aa fix:Xss 开启不生效的问题 https://t.zsxq.com/qq02q 2025-07-27 10:12:07 +08:00
YunaiV
89ae320a4b fix:【数据权限】强制需要 PermissionCommonApi 2025-07-26 23:06:06 +08:00
YunaiV
f14dcd4200 fix:【网关】缺少 CaffeineCacheManager 导致告警 2025-07-26 20:42:34 +08:00
YunaiV
2e3e1b12d1 fix:【网关】AccessLogFilter 记录日志发生异常,静默处理,不影响请求返回 2025-07-26 20:27:07 +08:00
YunaiV
321e1f5ba1 feat:添加自适应列宽处理器并替换默认列宽策略 2025-07-26 20:09:05 +08:00
YunaiV
3efadfebe5 Merge branch 'master-jdk17' of https://github.com/huangmingsir/yudao-cloud into master-jdk17
# Conflicts:
#	yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java
2025-07-26 20:03:07 +08:00
YunaiV
c854fda3f1 【同步】BOOT 和 CLOUD 的功能 2025-07-26 19:22:26 +08:00
YunaiV
d6fa049f61 !1362 feat: 使用 fastExcel 替换 easyExcel 2025-07-26 19:12:46 +08:00
YunaiV
aa37b5a2e2 fix:CacheRequestBodyFilter 导致 Spring Boot Admin 无法修改日志级别,https://github.com/YunaiV/ruoyi-vue-pro/issues/795 2025-07-26 16:56:39 +08:00
YunaiV
198fb065d4 fix:CacheRequestBodyFilter 导致 Spring Boot Admin 无法修改日志级别,https://github.com/YunaiV/ruoyi-vue-pro/issues/795 2025-07-26 16:15:38 +08:00
YunaiV
8140e1c274 reactor:默认不引入 spring-boot-admin,更灵活,同时启动速度更快(提升开发效率)!!! 2025-07-26 15:24:00 +08:00
YunaiV
b8b84e09ab reactor:默认不引入 micrometer-registry-prometheus 依赖,减少包大小 2025-07-26 14:26:19 +08:00
YunaiV
205a82f511 reactor:优化日志格式,解决 FILE 里存在 highlight、cyan高亮
reactor:弱化对 skywalking 依赖,可按需引入,更灵活
2025-07-26 12:52:23 +08:00
YunaiV
8a18a010d4 reactor:优化数据连接池的配置 2025-07-25 23:17:23 +08:00
YunaiV
e93198afad reactor:easy-trans 默认禁用,避免影响接口性能 2025-07-23 22:22:45 +08:00
YunaiV
5a2fdf49c6 chore:mybatis from 3.5.10.1 to 3.5.12 2025-07-23 21:41:11 +08:00
YunaiV
51cb2d768d (〃'▽'〃) v2.6.1 发布:Vben5 + antd 管理后台支持 BPM 工作流、CRM 客户管理 2025-07-19 16:09:56 +08:00
YunaiV
814b3c9f3a fix:【CRM 客户管理】未使用 PermissionCommonApi 注入的问题 2025-07-19 15:59:15 +08:00
YunaiV
2535c4a7c6 【同步】BOOT 和 CLOUD 的功能 2025-07-19 15:53:32 +08:00
YunaiV
08c31e889d 【同步】BOOT 和 CLOUD 的功能 2025-07-15 21:54:41 +08:00
YunaiV
031fa11e38 reactor:【Cloud 微服务】tag 路由时,请求无 tag 时优先匹配无 tag 实例 2025-07-15 13:04:09 +08:00
YunaiV
ef874191a6 feat:【AI 大模型】依赖 spring ai 升级到 1.0.0 2025-07-14 23:35:56 +08:00
YunaiV
7a8e089a42 feat:【REPORT 报表】jimureport from 1.9.4 to 2.0.0 2025-07-11 23:49:15 +08:00
YunaiV
8a0307e535 fix:【SYSTEM 系统管理】修复 DefaultDBFieldHandler 在 Async 情况下,无法获取到 getLoginUserId 的问题 2025-07-11 22:09:41 +08:00
YunaiV
e8b42d7b6c fix:【SYSTEM 系统管理】增加 lombok-mapstruct-binding 依赖,解决 IDEA 偶然出现 No property named “xxx" exists 的编译错误 2025-07-11 21:58:20 +08:00
YunaiV
3b585181ee bugfix:maven-surefire-plugin 暂时无法通过 bom 的依赖读取(兼容老版本 IDEA 2024 及以前版本) 2025-06-17 20:11:32 +08:00
YunaiV
6117567219 reactor:移除多余的 spring.boot.version 定义 2025-06-15 10:40:57 +08:00
YunaiV
2aa7e6d32d fix:【PAY 支付】支付渠道配置的解析 2025-05-24 09:30:18 +08:00
YunaiV
e895ab5565 (〃'▽'〃) v2.6.0 发布:优化项目结构,希望你会喜欢 2025-05-23 12:47:44 +08:00
YunaiV
7a0d5bd29a 【同步】BOOT 和 CLOUD 的功能 2025-05-23 10:02:08 +08:00
YunaiV
70c2ddf66d feat:【INFRA 基础设施】代码生成时,支持配置 VO/DO 模式 2025-05-20 08:31:33 +08:00
YunaiV
e9a26050b8 feat:【INFRA 基础设施】代码生成时,支持配置 VO/DO 模式 2025-05-19 19:01:57 +08:00
芋道源码
aeb4136e9f !195 yudao-cloud 微服务项目,将 biz 重命名为 server,定义更清晰
Merge pull request !195 from 芋道源码/develop
2025-05-17 05:55:29 +00:00
YunaiV
95f1410db3 reactor:【INFRA 基础设施】代码生成时,区分 boot 还是 cloud 项目
reactor:【INFRA 基础设施】代码生成时,更严格的区分 master 还是 master-jdk17 分支
2025-05-17 13:12:04 +08:00
YunaiV
fbf76134bc reactor:trade 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-17 11:29:41 +08:00
YunaiV
c43f5ec494 reactor:promotion 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-17 10:55:59 +08:00
YunaiV
7077cff50e reactor:statistics 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-17 10:48:36 +08:00
YunaiV
0421c81376 reactor:product 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-17 10:30:52 +08:00
YunaiV
4333c5d03c reactor:pay 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-17 09:48:50 +08:00
YunaiV
7a20979b6a reactor:ai 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-17 09:08:20 +08:00
YunaiV
857a6c7489 reactor:将 ai starter 融合到 ai-module 的 framework/ai 里 2025-05-17 08:12:31 +08:00
YunaiV
ad41ed2c2f reactor:将 pay starter 融合到 pay-module 的 framework/pay 里 2025-05-16 23:39:08 +08:00
YunaiV
5c432ac134 reactor:mp 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-16 20:35:53 +08:00
YunaiV
56363a3d6e reactor:erp 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-16 13:21:44 +08:00
YunaiV
939f75acc1 reactor:member 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-16 13:10:53 +08:00
YunaiV
4b99c76c58 reactor:crm 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-16 09:45:44 +08:00
YunaiV
d4dc82c42a reactor:bpm 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-16 09:27:03 +08:00
YunaiV
9070f1f08a reactor:report 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-15 19:09:39 +08:00
YunaiV
c251fcf698 reactor:system 和 infra 的 -biz 模块,重构成 -server 模块,意义更明确 2025-05-15 17:12:00 +08:00
YunaiV
9e067715cb reactor:移除 infra 对 system 的依赖 2025-05-15 15:56:57 +08:00
YunaiV
d2de8f60ac fix:【AI 大模型】dictDataApi 未沉底移除干净 2025-05-15 10:34:32 +08:00
YunaiV
1d0aabe341 【同步】BOOT 和 CLOUD 的功能 2025-05-14 23:44:13 +08:00
YunaiV
ddefb342b8 reactor:framework 依赖的 api,交给 yudao-common 包下的 biz 维护 2025-05-14 19:59:11 +08:00
芋道源码
daaa23e86d !192 reactor:framework 依赖的 api,交给 yudao-common 包下的 biz 维护
Merge pull request !192 from 芋道源码/develop
2025-05-14 11:31:40 +00:00
YunaiV
2a0b3945fe reactor:framework 依赖的 api,交给 yudao-common 包下的 biz 维护 2025-05-14 13:27:30 +08:00
YunaiV
ad29b90a43 reactor:framework 依赖的 api,交给 yudao-common 包下的 biz 维护 2025-05-14 13:27:21 +08:00
YunaiV
8aacd619d4 (〃'▽'〃) v2.5.0 发布:又熬过 30 个夜,头发还在 2025-05-13 20:15:22 +08:00
YunaiV
8781387065 【同步】BOOT 和 CLOUD 的功能 2025-05-13 19:24:42 +08:00
YunaiV
2a01d1a970 【同步】BOOT 和 CLOUD 的功能 2025-05-12 23:18:16 +08:00
YunaiV
282be0b4f0 Merge branch 'master-jdk17' of https://github.com/YunaiV/yudao-cloud into master-jdk17 2025-05-12 21:20:52 +08:00
芋道源码
6d1ac32343 Merge pull request #223 from fishSteak/master-jdk17-dev-fixMPJ
feat(mybatis): 增强MPJLambdaWrapperX 类,左连接后可以使用betweenIfPresent等
2025-05-12 21:17:55 +08:00
YunaiV
02a074590e perf:【SYSTEM 全局】优化 TenantApi 的使用 2025-05-12 21:02:53 +08:00
YunaiV
d238b24471 fix:【IoT 物联网】打包缺少 jar 信息 2025-05-12 09:27:33 +08:00
YunaiV
d8fc6259d1 feat:同步最新菜单 sql 2025-05-12 09:11:26 +08:00
YunaiV
5e2138265f 【同步】BOOT 和 CLOUD 的功能(PAY 相关功能) 2025-05-11 18:08:17 +08:00
YunaiV
d9178edd32 【同步】BOOT 和 CLOUD 的功能 2025-05-11 17:13:34 +08:00
YunaiV
5b81612086 【同步】BOOT 和 CLOUD 的功能 2025-05-06 21:05:35 +08:00
YunaiV
fdbda95984 feat:【MALL 商城】增加微信物流的对接(和社区同学,一起测试中。。。) 2025-05-06 20:49:23 +08:00
YunaiV
a27e0ec757 feat:weixin-java from 4.7.2.B => 4.7.4.B
feat:微信支付 v3 从平台证书切换成微信支付公钥
feat:微信支付 v3 增加 header 解析
2025-05-05 22:35:53 +08:00
YunaiV
a079633355 feat:增加租户切换的能力 2025-05-05 17:27:48 +08:00
YunaiV
bd843a64b6 fix:TenantDatabaseInterceptor 针对 TenantBaseDO 忽略不正确 2025-05-05 15:31:51 +08:00
YunaiV
00d92d0f2a reactor:@TenantIgnore 增加 enable 属性,用于是否开启 2025-05-05 11:34:19 +08:00
YunaiV
cbb239117d reactor:@TenantIgnore 添加在 DO 实体类上,该表自动忽略租户 2025-05-05 11:18:15 +08:00
fish steak
2890279e3d Update MPJLambdaWrapperX.java 2025-05-05 10:26:10 +08:00
fish steak
92d3012995 Update MPJLambdaWrapperX.java 2025-05-05 10:25:34 +08:00
YunaiV
f92f9d2e17 reactor:@TenantIgnore 添加在 Controller 时,自动添加到 TenantProperties 中 2025-05-05 10:23:58 +08:00
fish steak
6a5a643b18 Update MPJLambdaWrapperX.java 2025-05-05 10:21:48 +08:00
东宇
c8f6612104 feat(mybatis): 优化 MPJLambdaWrapperX 类
- 移除了未使用的 import 语句- 更新了泛型参数,使代码更加通用和安全
- 添加了新的 betweenIfPresent 方法,支持更灵活的条件判断
-重写了 leftJoin、rightJoin 和 innerJoin 方法,使它们返回当前类型
- 新增了带有扩展参数的 Join 方法,支持更复杂的查询需求
2025-05-05 10:17:55 +08:00
YunaiV
9f7c9eff96 reactor:@TenantIgnore 添加在 Controller 时,自动添加到 TenantProperties 中 2025-05-05 10:14:35 +08:00
YunaiV
18e4b1f33e feat:增加 yudao-server,用于单体启动! 2025-05-04 18:28:01 +08:00
YunaiV
dc36767708 fix:【Gateway 网关】jackson 针对 fail-on-empty-beans 等的处理 2025-05-04 16:01:06 +08:00
YunaiV
1cc38159f2 fix:【Gateway 网关】Exceeded limit on max bytes to buffer : 262144 2025-05-04 15:55:08 +08:00
YunaiV
a7e38d8e34 fix:【Gateway 网关】CorsResponseHeaderFilter 处理不正确的问题 2025-05-04 15:50:07 +08:00
芋道源码
0f7101fef6 !183 bugfix:网关token移除login-user头信息后重新赋值引用
Merge pull request !183 from 司徒俊杰/N/A
2025-05-04 07:44:11 +00:00
YunaiV
fb238738a0 refactor(gateway): 调整灰度负载均衡过滤器的执行顺序 #213 2025-05-04 15:42:13 +08:00
YunaiV
767d503790 fix:【MALL 商城】linux 部署时,express.client 配置项,因为大写无法识别 2025-05-04 10:53:01 +08:00
YunaiV
5511a6e063 chore:mybatis from 3.5.11 -> 3.5.19 2025-05-04 10:11:08 +08:00
YunaiV
ee660465ba chore:guava from 33.4.0-jre => 33.4.8-jre 2025-05-04 09:59:32 +08:00
YunaiV
f02685a11c fix:justauth-spring-boot-starter 引入的 hutool-core 冲突 2025-05-04 09:54:32 +08:00
YunaiV
9b54e313f8 【同步】BOOT 和 CLOUD 的功能(AI) 2025-05-04 09:45:07 +08:00
YunaiV
e16a1e60fe feat:集成积木仪表盘 2025-05-03 10:27:10 +08:00
YunaiV
d1c684428d feat:集成积木仪表盘 2025-05-03 10:26:04 +08:00
YunaiV
01d4c1c749 chore:jimureport 1.8.1 to 1.9.4 2025-05-03 09:11:49 +08:00
YunaiV
6629ca0906 chore:mybatis 相关依赖升级 2025-05-03 08:48:28 +08:00
YunaiV
22436c2703 chore:spring 相关依赖升级 2025-05-03 08:35:45 +08:00
YunaiV
8c7331873e reactor:【INFRA】文件上传 api,增加 directory 参数,去除 path 参数,并支持按照日期分目录、文件名不再使用 sha256 而是时间戳 2025-05-02 20:45:53 +08:00
YunaiV
103685269e 【同步】BOOT 和 CLOUD 的功能 2025-05-02 20:25:24 +08:00
YunaiV
04bd6bff04 fix:网关传递 login-user 可能存在 usertype 不正确的问题 2025-04-30 16:03:50 +08:00
YunaiV
10c520bf00 reactor:使用 aj-captcha 官方 1.4.0 2025-04-30 15:17:36 +08:00
YunaiV
d796af2040 reactor:使用 justauth 官方 1.16.7 2025-04-30 11:11:09 +08:00
YunaiV
fd34572c48 feat:使用 aws s3 2.0 客户端 2025-04-26 10:05:03 +08:00
YunaiV
f3a65a8a54 【功能优化】VBEN5.0 接入的 SQL 同步 2025-04-24 12:27:24 +08:00
YunaiV
ef82f01242 【功能优化】VBEN5.0 接入的 SQL 同步 2025-04-23 23:20:29 +08:00
司徒俊杰
3abfd36569 bugfix:网关token移除login-user头信息后重新赋值引用 2025-04-14 14:01:20 +00:00
YunaiV
3f9de11f11 2.4.2 版本发布 2025-04-12 12:27:19 +08:00
YunaiV
cd9bd7628f 【同步】BOOT 和 CLOUD 的功能 2025-04-12 12:13:46 +08:00
YunaiV
76af487fd0 【同步】BOOT 和 CLOUD 的功能(BPM) 2025-04-12 12:06:10 +08:00
YunaiV
3156c6320e 【同步】BOOT 和 CLOUD 的功能(BPM) 2025-04-12 11:56:13 +08:00
芋道源码
ad4dfeed1d !171 fix(protection): 修复HTTP接口签名 API重复请求问题
Merge pull request !171 from 陈晨成/master-jdk17-dev
2025-04-12 03:26:57 +00:00
YunaiV
b4c0652dfa 【同步】BOOT 和 CLOUD 的功能(BPM) 2025-03-30 11:10:31 +08:00
YunaiV
278f4838d8 初始化 IoT 服务(模块) 2025-03-17 20:15:27 +08:00
YunaiV
36e4995f1b 初始化 IoT 服务(模块) 2025-03-17 19:46:42 +08:00
YunaiV
9841450458 【同步】BOOT 和 CLOUD 的功能(BPM) 2025-03-16 17:22:19 +08:00
YunaiV
ee666cc387 【缺陷修复】BPM:使用 DataPermissionUtils 替代 DataPermission,避免 this 调用无法生效的问题 2025-03-16 15:26:00 +08:00
YunaiV
5534195d2f 【代码优化】移除多余的 ExpressionUrlAuthorizationConfigurer 导入 2025-03-16 11:38:13 +08:00
YunaiV
918bbaf0ec 【依赖升级】weixin-java from 4.6.0 to 4.7.2.B 2025-03-15 20:55:09 +08:00
YunaiV
b9ad9508e3 【缺陷修复】关闭 knife4j 增强,存在兼容性问题,悲伤 2025-03-15 19:03:39 +08:00
YunaiV
638aed7383 【同步】BOOT 和 CLOUD 的功能(BPM) 2025-03-15 14:06:10 +08:00
YunaiV
696396cfab 【同步】BOOT 和 CLOUD 的功能(BPM) 2025-03-15 13:43:08 +08:00
YunaiV
d338b8687d 【依赖管理】全局:tika-core 使用 3.1.0 确认 2025-03-15 07:07:24 +08:00
YunaiV
4949085365 Spring AI 1.0.0 M6 适配:增加知识库、工具调用(function calling)、工作流、豆包/混元/硅基流动等模型的接入 2025-03-15 06:52:32 +08:00
YunaiV
e2e4b000e6 Spring AI 1.0.0 M6 适配:增加知识库、工具调用(function calling)、工作流、豆包/混元/硅基流动等模型的接入 2025-03-14 23:34:20 +08:00
1351515658@qq.com
fe3e20bc22 refactor(yudao-spring-boot-starter-protection): 优化 API 签名验证逻辑
- 引入 BooleanUtil 来处理布尔值判断,提高代码可读性和健壮性
2025-02-26 15:07:36 +08:00
1351515658@qq.com
e9ae4196e6 fix(protection): 修复HTTP接口签名 API重复请求问题
- 在 ApiSignatureAspect 中添加了对重复请求的检查逻辑
- 修改 ApiSignatureRedisDAO 中的 setNonce 方法,使用 setIfAbsent 代替 set
- 优化了日志记录,增加了重复请求的相关信息
2025-02-24 19:33:12 +08:00
YunaiV
c2de5d9c8c V2.4.1 发布~ 2025-02-09 12:35:47 +08:00
YunaiV
d27536ffc1 【同步】BOOT 和 CLOUD 的功能(BPM) 2025-02-09 11:34:58 +08:00
芋道源码
2ec1327214 !168 bugfix(promotion): 修正参数名中文导致作废券接口报错
Merge pull request !168 from Song/pr-master-jdk7
2025-02-08 23:31:42 +00:00
Song
5e537c43c2 bugfix(promotion): 修正参数名中文导致作废券接口报错
将请求参数名从中文修改为英文
2025-02-07 17:20:37 +08:00
YunaiV
204f40cd87 【单测修复】system:AdminAuthServiceImplTest 2025-01-25 10:09:54 +08:00
YunaiV
0d37be9f2e 【同步】BOOT 和 CLOUD 的功能(BPM) 2025-01-25 09:48:53 +08:00
YunaiV
b012b2ce71 【同步】BOOT 和 CLOUD 的功能(所有) 2025-01-24 20:55:43 +08:00
YunaiV
554ee6f02b 【同步】BOOT 和 CLOUD 的功能(所有) 2025-01-24 20:42:23 +08:00
芋道源码
a2d6ebb8b5 !165 【功能修复】访问日志
Merge pull request !165 from ChengKe/master-jdk17
2025-01-23 12:14:33 +00:00
YunaiV
131e14f8e6 Merge remote-tracking branch 'origin/master-jdk17' into master-jdk17 2025-01-19 08:57:32 +08:00
YunaiV
3c2c966fbc 【功能优化】BPM:增加 rpc-api 白名单 2025-01-19 08:57:26 +08:00
芋道源码
3d39f49e9e !167 fix(system): 修复用户账号校验逻辑
Merge pull request !167 from Song/pr-master-jdk7
2025-01-17 12:10:41 +00:00
Song
b674bb072a fix(system): 修复用户账号校验逻辑
- 将 UserSaveReqVO 类中的 username 字段的正则表达式从 "^[a-zA-Z0-9]$" 修改为 "^[a-zA-Z0-9]+$"
- 修复了用户账号仅能输入一个字母或数字的问题
- 现在用户账号可以由多个字母或数字组成,长度为 4-30 个字符
2025-01-17 12:15:20 +08:00
CK
3a9eeb1d43 【功能修复】访问日志:当显式声明@ApiAccessLog注解但未指定operateModule等属性时,系统未能正确获取默认属性值,导致日志记录中部分属性缺失。 2025-01-10 14:20:11 +08:00
芋道源码
e4f0cb7f60 !162 移除用户账号正则检验中长度限制
Merge pull request !162 from tzdxf/review
2025-01-04 00:38:53 +00:00
YunaiV
5d1c26c738 V2.4.0 发布~ 2024-12-31 09:37:38 +08:00
YunaiV
59fa135677 【同步】BOOT 和 CLOUD 的功能(所有) 2024-12-31 09:36:40 +08:00
YunaiV
0082bd2189 【同步】BOOT 和 CLOUD 的功能(所有) 2024-12-31 09:36:14 +08:00
YunaiV
8bfa39a59e 【升级】lombok from 1.18.34 to 1.18.36 2024-12-28 18:00:34 +08:00
YunaiV
94b0bc913e 【升级】spring boot admin from 3.3.3 to 3.4.1 2024-12-28 17:54:37 +08:00
YunaiV
b0574bfb08 【升级】mybatis-plus from 3.5.8 to 3.5.9 2024-12-28 17:33:27 +08:00
YunaiV
60b643502a 【升级】netty from 4.1.113 to 4.1.116
【升级】velocity from 2.4 to 2.4.1
【升级】guava from 33.3.1 to 33.4.0
2024-12-28 13:30:16 +08:00
YunaiV
9a3e9cdd4f 【升级】hutool from 5.8.32 to 5.8.35 2024-12-28 13:17:52 +08:00
YunaiV
c2e92cc9a9 【升级】mapstruct from 1.6.2 to 1.6.3 2024-12-28 13:08:50 +08:00
YunaiV
4d5983bf11 【升级】knife4j from 4.5.0 to 4.6.0(社区版) 2024-12-28 12:44:09 +08:00
YunaiV
547ec2c7c5 【升级】redisson from 3.36.0 to 3.41.0 2024-12-28 11:52:52 +08:00
YunaiV
11939ee7b1 【升级】spring boot from 3.3.4 to 3.4.1 2024-12-28 11:37:38 +08:00
YunaiV
e5c036a60d 【同步】BOOT 和 CLOUD 的功能(所有) 2024-12-27 22:19:09 +08:00
tzdxf
702465a88c 【代码修复】system:移除用户账号正则检验中长度限制 2024-12-25 16:50:29 +08:00
hmb
c10d96d0c7 feat(excel): 添加自适应列宽处理器并替换默认列宽策略
- 新增 ColumnWidthMatchStyleStrategy 类实现自适应列宽功能
- 在 ExcelUtils 类中使用新的列宽处理器替换原有的 LongestMatchColumnWidthStyleStrategy
2024-12-05 09:37:44 +08:00
hmb
5230679525 Merge remote-tracking branch 'upstream/master-jdk17' into master-jdk17 2024-12-05 09:18:11 +08:00
hmb
beb3fde96d Revert "fix(tenant): 修复多租户定时任务执行结果为空时的异常"
This reverts commit 94a18018ae.
2024-12-05 09:16:34 +08:00
YunaiV
c322c53b45 【功能修复】商城:trade 服务,启动失败 2024-12-01 17:41:00 +08:00
YunaiV
ab5c790b3d 【功能修复】Job 组件:修复多租户下,XXL-Job 无法传参的问题 2024-12-01 16:37:21 +08:00
hmb
94a18018ae fix(tenant): 修复多租户定时任务执行结果为空时的异常
- 针对执行结果为 null 的情况增加了日志记录
- 为了避免 ConcurrentHashMap put空指针异常,将 result 设置为空字符串
2024-11-26 18:38:52 +08:00
YunaiV
50e47434bb 【同步】BOOT 和 CLOUD 的功能(支付相关) 2024-11-25 20:26:00 +08:00
YunaiV
90d006b4c9 【同步】BOOT 和 CLOUD 的功能(所有) 2024-11-23 11:12:04 +08:00
YunaiV
10b2d10fcc 【功能新增】bpm:仿钉钉、飞书的设计器 2024-11-23 11:03:12 +08:00
YunaiV
91180bc65b 【缺陷修复】gateway:文档的 ai-server 错误写成 crm-server 2024-11-22 19:45:37 +08:00
YunaiV
fdd0b28d2b 【缺陷修复】gateway:文档的 ai-server 错误写成 crm-server 2024-11-22 19:10:34 +08:00
YunaiV
dfe018b8ce 【代码优化】infra:s3 minio sdk 替换为 aws sdk 2024-11-09 18:34:50 +08:00
YunaiV
d8ae5846cb 【缺陷修复】修复由于多租户定时任务方法返回 void 导致的执行 xxlJob 执行失败的问题。
ConcurrentHashMap value 不支持 null 值
2024-11-09 15:13:19 +08:00
YunaiV
f9fdca0d6d 【缺陷修复】商城:优惠劵在不限制时,无法发送的问题 2024-10-27 20:33:56 +08:00
YunaiV
a887c364f9 146 【功能修复】会员:微信登录注册时,因为 username 为空导致失败的问题 2024-10-27 16:22:58 +08:00
YunaiV
5208f2878e 146 【功能修复】PAY:修复定时任务没有返回值导致的异常 2024-10-27 15:57:05 +08:00
YunaiV
3352eab759 【依赖降级】weixin-java from 4.6.5B to 4.6.0,避免 privateCertPath 报错 2024-10-13 17:03:46 +08:00
芋道源码
7ad63f237a !144 【代码修复】商城订单的支付回调接口添加@PermitAll和部分DO缺少@KeySequence问题
Merge pull request !144 from Lcp/pr
2024-10-12 12:30:34 +00:00
Lcp
a57b2e5f87 【代码优化】商城:部分DO缺少KeySequence配置 2024-10-10 15:20:32 +08:00
Lcp
f59477d0ac 【代码优化】SYSTEM:部分DO缺少KeySequence配置 2024-10-10 15:20:31 +08:00
Lcp
9635aee9d8 【代码优化】BPM:部分DO缺少KeySequence配置 2024-10-10 15:20:30 +08:00
Lcp
06d2af4e35 【代码优化】AI:部分DO缺少KeySequence配置 2024-10-10 15:20:29 +08:00
Lcp
0cd2f3ca4a 【功能修复】商城:订单的支付回调接口添加@PermitAll 2024-10-10 15:18:48 +08:00
YunaiV
ae0b0ef229 V2.3.0 版本发布~ 2024-10-07 16:26:56 +08:00
YunaiV
4676389d31 【同步】BOOT 和 CLOUD 的功能(BPM 工作流) 2024-10-07 16:26:37 +08:00
YunaiV
39ac641497 【功能新增】商城:积分商城 2024-10-04 20:02:08 +08:00
YunaiV
6c325d99e7 【功能新增】工作流:完善仿钉钉、飞书模式 2024-10-04 17:47:28 +08:00
YunaiV
18f7591b38 【功能修复】商城:虚拟成团时,headId 未使用团长编号 2024-10-02 14:57:44 +08:00
YunaiV
2344332b03 【功能优化】SYSTEM:支持通过 refreshToken 认证,解决部分场景不方便刷新访问令牌场景 2024-10-02 14:54:06 +08:00
YunaiV
a4ff54c148 【同步】BOOT 和 CLOUD 的功能(CRM 数据权限) 2024-10-02 14:32:41 +08:00
YunaiV
5858aac8c3 【同步】BOOT 和 CLOUD 的功能(AI 知识库) 2024-10-02 14:27:52 +08:00
YunaiV
5480caa3df 【功能优化】getUserList 查询时,默认禁用数据权限 2024-10-01 17:19:37 +08:00
YunaiV
b196c36dfa 【依赖优化】flattenMode 按需调整成 bom 和 oss 2024-10-01 16:41:37 +08:00
YunaiV
918c9981cf 【依赖优化】snapshot to SNAPSHOT,解决 https://github.com/YunaiV/ruoyi-vue-pro/issues/417 问题 2024-10-01 16:16:38 +08:00
YunaiV
c3ac4384fa 【同步】BOOT 和 CLOUD 的功能 2024-10-01 15:20:25 +08:00
YunaiV
4249528d0f 【同步】BOOT 和 CLOUD 的功能 2024-10-01 14:51:57 +08:00
YunaiV
c422a9f88e 【依赖升级】easyexcel from 3.3.4 to 4.0.3 2024-09-29 21:46:39 +08:00
YunaiV
b950aba8a4 【依赖升级】mybatis-plus from 3.5.7 to 3.5.8 2024-09-29 21:07:39 +08:00
YunaiV
63f8a8940a 【依赖升级】redisson from 3.32.0 to 3.36.0 2024-09-29 20:53:20 +08:00
YunaiV
3aaf4459d2 【依赖升级】easy-trans from 3.0.5 to 3.0.6 2024-09-29 20:49:29 +08:00
YunaiV
10f5fb73e0 【依赖升级】dm8 from 8.1.3.62 to 8.1.3.140
【依赖升级】opengauss from 5.0.2 to 5.1.0
2024-09-29 20:45:04 +08:00
YunaiV
7f0bc3d98d 【移除依赖】weixin-java from 4.6.0 to 4.6.5.B 2024-09-29 20:36:24 +08:00
YunaiV
f1d69e47df 【移除依赖】xercesImpl 2024-09-29 20:32:11 +08:00
YunaiV
514e27c20e 【依赖升级】guava from 33.2.1-jre to 33.3.1-jre 2024-09-29 20:23:36 +08:00
YunaiV
c870eb1f13 【依赖升级】velocity from 2.3 to 2.4 2024-09-29 20:19:20 +08:00
YunaiV
e7dba5afa0 【依赖升级】hutool from 5.8.29 to 5.8.32 2024-09-29 20:13:21 +08:00
YunaiV
fbe53bb8b9 【依赖升级】mapstruct from 1.5.5 to 1.6.2 2024-09-29 13:25:56 +08:00
YunaiV
034dbcae2f 【依赖升级】jedis-mock from 1.1.2 to 1.1.4 2024-09-29 13:15:18 +08:00
YunaiV
3ec48030f1 【依赖升级】rocketmq-spring from 2.3.0 to 2.3.1 2024-09-29 13:10:37 +08:00
YunaiV
1106a2504a 【依赖升级】spring boot from 3.3.1 to 3.3.4
【依赖升级】spring boot admin from 3.3.2 to 3.3.3
2024-09-29 13:01:54 +08:00
YunaiV
34a4959e8a 【功能优化】网关:增加 dev 配置,方便部署~ 2024-09-29 08:08:31 +08:00
YunaiV
1869e1525e 【功能优化】报表:jimureport from 1.7.8 to 1.8.1 2024-09-20 22:01:55 +08:00
YunaiV
f6a1f732f6 【功能优化】INFRA:代码生成时,默认禁用单元测试的生成,更符合大家的习惯 2024-09-19 13:12:15 +08:00
YunaiV
94125441af 【依赖升级】netty from 4.1.111 to 4.1.113 2024-09-17 17:33:00 +08:00
YunaiV
736fc93df5 【功能修复】多租户下定时任务结果处理都为失败问题 2024-09-17 12:04:45 +08:00
芋道源码
a739f7e02b !141 【功能修复】多租户下定时任务结果处理都为失败问题
Merge pull request !141 from Lcp/pr
2024-09-17 03:59:37 +00:00
Lcp
538b5f5d3c 【功能修复】多租户下定时任务结果处理都为失败问题 2024-09-14 22:11:51 +08:00
YunaiV
85020318db 【功能优化】websocket 允许不传递 token 连接 2024-09-12 13:59:49 +08:00
YunaiV
5f7e089bd1 【功能修复】定时任务在多租户下,没有记录执行的日志结果 2024-09-12 13:39:26 +08:00
YunaiV
9a49b84f27 【同步】BOOT 和 CLOUD 的功能 2024-09-09 21:08:44 +08:00
YunaiV
1209a63c18 【功能修复】商城:promotion 服务启动失败的问题 2024-09-09 20:58:22 +08:00
YunaiV
134b8e417b 【功能优化】AI:model-uri、tokenizer 地址调整 2024-09-07 14:58:32 +08:00
YunaiV
ef3d712e42 【功能优化】商城:拼团中时,禁止发起售后 2024-09-07 14:07:16 +08:00
YunaiV
d2f0c00d8f 【同步】BOOT 和 CLOUD 的功能 2024-09-07 12:46:56 +08:00
YunaiV
1dea81fd0c 【同步】BOOT 和 CLOUD 的功能 2024-09-07 08:42:06 +08:00
YunaiV
561edb80ac 【代码优化】框架:简化 api 访问日志、错误日志的记录逻辑 2024-09-06 22:36:22 +08:00
YunaiV
1a5755b03a 【代码优化】框架:简化 api 访问日志、错误日志的记录逻辑 2024-09-06 22:03:08 +08:00
YunaiV
975ed4ce10 【功能修复】框架:操作日志异步记录时,丢失 request 的问题 2024-09-06 21:44:17 +08:00
芋道源码
7889a10846 !139 【修复】CRM查询中审批状态标识问题
Merge pull request !139 from Lcp/pr
2024-09-06 13:41:25 +00:00
Lcp
618eb0c21d 【代码修复】CRM:获取已回款金额查询中审批状态标识问题 2024-09-06 16:24:49 +08:00
YunaiV
0081f07a6b 【代码优化】全局:MySQL JDBC 增加 rewriteBatchedStatements 批量插入 2024-09-04 09:17:47 +08:00
YunaiV
8ba1966181 【代码优化】SYSTEM:user_role_ids 忽略多租户 2024-09-03 16:11:41 +08:00
YunaiV
b35799b593 【功能修复】API 调用时,相关的 checkData 补充 2024-09-03 11:37:47 +08:00
YunaiV
b1f6110406 【代码评审】AI 大模型:知识库的逻辑
【代码优化】AI 大模型:transformer 的 onnx、tokenizer 走 CDN,避免 github
【代码优化】AI 大模型:将 spring-ai 调整成 group.springframework.ai,解决 spring-ai 暂时无法使用阿里云 maven 加速的问题
2024-09-01 09:23:00 +08:00
YunaiV
047252d4fc 【代码修复】SYSTEM:角色标识的提示不正确问题 2024-08-31 13:29:34 +08:00
芋道源码
df5077f499 !135 【工作流】:流程模型分页数量查询不正确
Merge pull request !135 from 今晚打老虎/master-jdk17
2024-08-31 02:20:54 +00:00
芋道源码
67245d98c9 !130 企业级应用pr
Merge pull request !130 from 陈晨成/master-jdk17-dev
2024-08-31 02:19:25 +00:00
YunaiV
d39681e98c 【代码修复】SYSTEM:角色标识的提示不正确问题 2024-08-31 10:15:04 +08:00
芋道源码
e893caf3ad !131 bugfix
Merge pull request !131 from 尹先生/master-jdk17
2024-08-31 01:56:00 +00:00
YunaiV
daef8d3b03 【同步】BOOT 和 CLOUD 的功能 2024-08-31 09:51:21 +08:00
今晚打老虎
f1412c032c 【工作流】:流程模型分页数量查询不正确
Signed-off-by: 今晚打老虎 <fengjiajie11@qq.com>
2024-08-26 07:29:14 +00:00
YunaiV
51a37f885b 【代码优化】增强 JDK17、JDK8 之间的兼容性 2024-08-26 12:38:00 +08:00
yinyilong
532e8333f2 bugfix-去除RoleExportExcelVO 2024-08-26 09:28:17 +08:00
1351515658@qq.com
b63886ad6c revert 操作日志、访问日志、错误日志 2024-08-24 11:48:24 +08:00
YunaiV
87955a9751 【功能修复】系统:OperateLogRespDTO 的字段读取 2024-08-24 11:15:52 +08:00
1351515658@qq.com
00ba2d6da9 add 填充日志的创建人和修改人 代码规范整改 2024-08-18 18:42:50 +08:00
1351515658@qq.com
be38af728b add ApiSignatureTest代码规范整改 2024-08-18 18:25:37 +08:00
1351515658@qq.com
131fe3a69f fallback 容器使用默认的tomcat 2024-08-18 18:24:59 +08:00
1351515658@qq.com
464fd60637 fallback Api接口还是使用默认的接口实现 2024-08-18 18:24:06 +08:00
YunaiV
4ca68ff56a 【功能优化】支付:支付应用,增加 appKey 标识,用于不同接入方的标识
【更多】同步 boot 最新代码到 cloud
2024-08-18 17:18:03 +08:00
YunaiV
720b426f5e 【功能优化】添加商品属性时允许选择已有的属性值 2024-08-14 22:56:15 +08:00
yinyilong
59fc020616 bugfix-增加RoleExportExcelVO,数据范围导出字段从字典表中取值;RoleSaveReqVO中code字段名改为角色标识,保持提示文案一致 2024-08-13 15:35:13 +08:00
yinyilong
35f5ee4677 bugfix-调整GlobalExceptionHandler,增加InvalidFormatException处理对应RequestBody实体中 xx 属性类型为 Integer,结果传递 xx 参数类型为 String 2024-08-12 14:33:01 +08:00
yinyilong
7a86121585 Merge remote-tracking branch 'origin/master-jdk17' into master-jdk17 2024-08-12 14:09:44 +08:00
yinyilong
99a26defa2 bugfix-RoleSaveReqVO备注字段长度限制为500 2024-08-12 14:09:34 +08:00
yinyilong
2c1b6cd16f bugfix-RoleSaveReqVO增加状态字段 2024-08-12 14:08:37 +08:00
YunaiV
a2a6e9ad2e 【功能新增】AI:集成 Azure 的 OpenAI 模型
【功能新增】AI 大模型:支持思维导图的管理
2024-08-10 19:08:37 +08:00
YunaiV
4139769131 【代码优化】SYSTEM:移除阿里云、腾讯云 maven 依赖,直接 HTTP 对接 2024-08-09 22:13:01 +08:00
1351515658@qq.com
bd706ecfd8 optimize oauth2TokenApi\permissionApi尽量用本地实现类,提升执行效率 2024-08-08 15:42:43 +08:00
YunaiV
a042a4c366 【优化】数据脱敏支持 Spring el 表达式,支持根据权限控制脱敏 2024-08-03 19:13:11 +08:00
YunaiV
1285a90c5d V2.2.0 版本发布 2024-08-02 23:26:07 +08:00
YunaiV
45095b524f 【代码优化】SYSTEM:微信小程序的订阅 2024-08-01 23:21:24 +08:00
YunaiV
3ceb4d4685 【功能新增】微信小程序的订阅消息 2024-08-01 13:08:35 +08:00
1351515658@qq.com
99bef36c90 optimize HTTP接口签名功能 防重放攻击从nonce -> appId+nonce维度 2024-07-31 11:35:07 +08:00
1351515658@qq.com
9194e094e6 fix api访问/异常日志和操作日志写入数据表,创建人和修改人的信息为空 2024-07-30 18:01:57 +08:00
1351515658@qq.com
f8a8538b04 optimize 操作日志组件异步写入日志 2024-07-30 18:01:03 +08:00
1351515658@qq.com
0431201141 optimize 框架组件的api尽量用本地实现类,提升执行效率 2024-07-30 11:33:12 +08:00
1351515658@qq.com
77e082c17c add 配置本地缓存SQL解析缓存,提升执行mybatis效率 2024-07-29 17:29:08 +08:00
1351515658@qq.com
e9050b0148 Merge remote-tracking branch 'origin/master-jdk17' into master-jdk17-dev 2024-07-29 16:53:36 +08:00
1351515658@qq.com
0493a61741 升级 运行web容器tomcat->undertow 2024-07-29 16:53:04 +08:00
YunaiV
e5c1ce7640 【同步】BOOT 和 CLOUD 的功能 2024-07-28 23:23:53 +08:00
芋道源码
dff3e8b666 !128 ai模块启动问题修复
Merge pull request !128 from 陈晨成/master-jdk17-dev
2024-07-27 07:42:07 +00:00
YunaiV
c9a64030da 【同步】BOOT 和 CLOUD 的功能 2024-07-27 15:41:35 +08:00
芋道源码
7d79a49beb !127 【修复】AI模块redis配置错误
Merge pull request !127 from OnPeaceOfMind/master-jdk17
2024-07-27 07:33:32 +00:00
芋道源码
e44c21dc75 !123 【修复】工作流:发起用户可能没有部门
Merge pull request !123 from 今晚打老虎/master-jdk17
2024-07-27 07:28:39 +00:00
YunaiV
b9ad4aa243 【功能修复】定时任务:统一所有 xxl-job 走 9090,保持和《定时任务》文档一致 2024-07-27 14:02:36 +08:00
YunaiV
5fc4b5a64b 【功能优化】PAY:微信支付使用 certSerialNo 替代 privateCertContent 2024-07-26 09:23:32 +08:00
YunaiV
41f56969e1 【代码优化】PAY:移除 PayClient 缓存,减少复杂性,性能足够(非高频读取) 2024-07-24 23:06:11 +08:00
YunaiV
f717c0f9c6 【代码优化】PAY:移除 PayClient 缓存,减少复杂性,性能足够(非高频读取) 2024-07-24 23:03:59 +08:00
YunaiV
c0df6eab4e 【同步】BOOT 和 CLOUD 的功能 2024-07-24 19:05:11 +08:00
YunaiV
1c95e12aea 【功能新增】全局:多租户缓存,增加忽略的 Spring Cache 配置 2024-07-23 23:26:09 +08:00
YunaiV
74f66735c6 【代码优化】全局:userId 为空时,直接校验权限不通过 2024-07-23 22:40:42 +08:00
YunaiV
a981ad6e1c 【同步】BOOT 和 CLOUD 的功能 2024-07-22 22:32:00 +08:00
YunaiV
ec62043a65 【代码修复】全局:BaseMapperX 的分页 pageSize 不分页判断不对的问题 2024-07-21 18:03:31 +08:00
YunaiV
468d4cc6f6 【代码代码】PAY:移除对 member 的依赖 2024-07-21 11:52:07 +08:00
YunaiV
2ba141a5c4 【同步】BOOT 和 CLOUD 的功能 2024-07-21 10:04:50 +08:00
YunaiV
a9fe595823 【功能优化】全局:LoginUser 新增过期时间,方便判断 token 过期 2024-07-20 22:36:30 +08:00
YunaiV
c7d5c68b3b 【功能修复】全局:SelectSheetWriteHandler 在没有任何 SelectSheetWriteHandler 的情况下,导致 Excel 导入不解析下拉框的问题 2024-07-20 18:59:07 +08:00
YunaiV
b0c2f75a3f 【功能优化】全局:LoginUser 新增过期时间,方便判断 token 过期 2024-07-20 18:42:26 +08:00
YunaiV
b728e66282 【功能新增】INFRA:增加 ConfigApi,支持参数配置的读取 2024-07-20 17:57:31 +08:00
YunaiV
7fbb96b0f0 【代码优化】全局:去除 application.yaml 相关配置文件的冗余 2024-07-20 16:14:15 +08:00
YunaiV
a034b3d218 【代码优化】全局:去除 application.yaml 相关配置文件的冗余 2024-07-20 16:12:55 +08:00
YunaiV
e18069d45f 【功能优化】全局:支持数据权限在 RPC 调用时,传递忽略数据权限的能力 2024-07-20 13:55:28 +08:00
YunaiV
825be64d6d 【功能优化】全局:简化 GlobalExceptionHandler 对 ServiceException 的打印 2024-07-19 23:37:00 +08:00
YunaiV
f6ff5086be 【功能优化】全局:处理 HttpRequestMethodNotSupportedException 异常 2024-07-19 23:14:54 +08:00
YunaiV
24eaa68269 【功能修复】全局:请求租户不存在时,记录访问日志、操作日志异常的问题 2024-07-19 22:54:25 +08:00
YunaiV
398171a402 【功能修复】CRM:操作日志读取不正确的问题 2024-07-19 19:27:33 +08:00
1351515658@qq.com
76b3f17fdc fix 通义千问日志输出和项目的日志输出冲突 2024-07-19 11:45:49 +08:00
1351515658@qq.com
e6759fc469 add ai-biz打包配置 2024-07-18 18:09:42 +08:00
YunaiV
019d70e437 【依赖】更新 README 中的框架版本号 2024-07-17 19:57:24 +08:00
YunaiV
369e6a009a 【升级】easy-trans from 2.2.11 to 3.0.5 2024-07-16 23:52:27 +08:00
YunaiV
2c97f18410 【升级】spring boot from 3.2.2 to 3.3.1 2024-07-16 23:47:25 +08:00
OnPeaceOfMind
40800bd728 【依赖】spring boot from 3.2.2 to 3.3.1
Signed-off-by: OnPeaceOfMind <onpeaceofmind@qq.com>
2024-07-16 06:14:38 +00:00
OnPeaceOfMind
bb2a10ba4a 【修复】AI模块redis配置错误
Signed-off-by: OnPeaceOfMind <onpeaceofmind@qq.com>
2024-07-16 06:12:01 +00:00
YunaiV
fe6f1c67b3 【依赖】maven-compiler-plugin from 3.11.0 to 3.13.0
【依赖】flatten-maven-plugin from 1.5.0 to 1.6.0
2024-07-16 12:41:00 +08:00
YunaiV
684c249d4b 【依赖】knife4j from 4.3.0 to 4.5.0 2024-07-16 00:44:02 +08:00
YunaiV
4961d26e14 【修复】easy-trans 的 @AutoTrans 存在冲突 2024-07-16 00:16:30 +08:00
YunaiV
8f74181c07 【依赖】rocketmq from 2.2.3 to 2.3.0 2024-07-15 22:58:39 +08:00
YunaiV
1e5dd1fc62 【依赖】redisson from 3.26.0 to 3.32.0 2024-07-15 22:49:33 +08:00
YunaiV
5ab1687841 【功能新增】全局:增加 HTTP 签名 2024-07-15 22:24:35 +08:00
YunaiV
e263468389 【依赖】easy-trans from 2.2.11 to 3.0.5 2024-07-15 13:01:35 +08:00
YunaiV
df9fb5131f 【依赖】jimureport from 1.6.6 to 1.7.8 2024-07-14 21:53:10 +08:00
YunaiV
50b945fba8 【代码优化】PAY:移除 bootstrap.yaml,和 boot 保持一致
【代码优化】REPORT:移除 bootstrap.yaml,和 boot 保持一致
2024-07-14 19:22:56 +08:00
YunaiV
9834d80e92 【代码优化】MALL:移除 bootstrap.yaml,和 boot 保持一致 2024-07-14 19:16:12 +08:00
YunaiV
653dacfa6f 【代码优化】ERP:移除 bootstrap.yaml,和 boot 保持一致
【代码优化】CRM:移除 bootstrap.yaml,和 boot 保持一致
2024-07-14 19:00:15 +08:00
YunaiV
f52ea83b30 【代码优化】AI:移除 bootstrap.yaml,和 boot 保持一致 2024-07-14 18:50:59 +08:00
YunaiV
ee7cde1b03 【代码优化】MP:移除 bootstrap.yaml,和 boot 保持一致 2024-07-14 18:45:25 +08:00
YunaiV
cc6d0c00b7 【代码优化】MEMBER:移除 bootstrap.yaml,和 boot 保持一致 2024-07-14 18:37:06 +08:00
YunaiV
e84b1dd91b 【代码优化】BPM:移除 bootstrap.yaml,和 boot 保持一致 2024-07-14 18:26:50 +08:00
YunaiV
9f2addc964 【代码优化】BPM:移除 bootstrap.yaml,和 boot 保持一致 2024-07-14 18:25:56 +08:00
YunaiV
df4bde2e67 【代码优化】INFRA:移除 bootstrap.yaml,和 boot 保持一致 2024-07-14 18:10:23 +08:00
YunaiV
4ae3ac0f6d 【代码优化】SYSTEM:移除 bootstrap.yaml,和 boot 保持一致 2024-07-14 17:47:44 +08:00
YunaiV
41a16b2651 【依赖】spring cloud alibaba from 2022.0.0.0 to 2023.0.1.2 2024-07-14 16:52:21 +08:00
YunaiV
76e4586e20 【依赖】mybatis-plus from 3.5.5 to 3.5.7
【代码优化】全局:复用 MyBatis Plus 数据权限插件,简化项目的数据权限实现
2024-07-14 00:01:39 +08:00
YunaiV
670a2bfad0 【依赖】工具类升级 2024-07-13 17:41:52 +08:00
YunaiV
9e76582ae6 【依赖】podam from 8.0.1 to 8.0.2 2024-07-13 17:10:57 +08:00
YunaiV
f9d2d3a7e2 【依赖】spring boot admin from 3.2.1 to 3.3.2 2024-07-13 16:58:43 +08:00
YunaiV
7e3c290a2d 【依赖】spring boot from 3.2.2 to 3.3.1 2024-07-13 16:50:05 +08:00
YunaiV
59f6d5cdf7 【依赖】spring boot from 3.2.2 to 3.3.1 2024-07-13 16:29:40 +08:00
YunaiV
b8f1d01733 【同步】Boot 和 Cloud 的功能同步 2024-07-13 12:56:09 +08:00
YunaiV
3b8675dc6a 【同步】Boot 和 Cloud 的功能同步 2024-07-13 12:03:51 +08:00
YunaiV
c6937cf199 【模块新增】AI:支持通义千问、文心一言、讯飞星火、智谱、DeepSeek 等国内外大模型能力 2024-07-13 11:26:17 +08:00
YunaiV
95936e4a0b Merge remote-tracking branch 'origin/master-jdk17' into master-jdk17 2024-07-13 10:17:48 +08:00
YunaiV
b9fbf762bd README:新增关于 AI 大模型的介绍 2024-07-13 10:17:42 +08:00
芋道源码
e45ccc9e8a !124 【修复】分销用户绑定时判断是否为新用户逻辑错误问题
Merge pull request !124 from 孙南北/master-jdk17
2024-07-07 01:45:42 +00:00
孙楠博
2414b00083 【修复】分销用户绑定时判断是否为新用户逻辑错误问题 2024-06-25 13:54:21 +08:00
今晚打老虎
ced838f29f fix(bpm): 发起用户可能没有部门
发起用户可能没有部门,导致查询部门信息时报错

Signed-off-by: 今晚打老虎 <fengjiajie11@qq.com>
2024-06-25 04:42:14 +00:00
芋道源码
7295b6a10d !122 【修复】多租户使用同一个流程标识key时查询报错
Merge pull request !122 from 今晚打老虎/master-jdk17
2024-06-22 06:24:20 +00:00
芋道源码
7722162bf3 !120 修复后台获取商品 SPU 分页列表数据时,数据会出现错乱问题。
Merge pull request !120 from dongdong.xiang/master_jdk17_page_v20240618
2024-06-22 00:43:25 +00:00
fengjiajie
42634c0e3f fix(bpm): 多租户使用同一个流程标识key时查询报错 2024-06-21 14:59:33 +08:00
dongdong.xiang
634ef9b5a8 bug修复 后台获取商品 SPU 分页列表数据时,数据会出现错乱问题 2024-06-18 22:16:53 +08:00
YunaiV
d1e13f4b82 【修复】docker build yudao-module-pay-biz image fail 2024-06-04 21:12:40 +08:00
芋道源码
61f82468c4 Merge pull request #159 from dengyumin/patch-2
fix: Remove duplicate dependencies in pom.xml
2024-06-04 21:10:18 +08:00
YunaiV
873fbf596c 【修复】CRM:CrmBusinessStatusDO 缺少 BaseDO 2024-06-04 19:38:53 +08:00
YunaiV
025857c9f2 【同步】对齐 boot 和 cloud 的逻辑 2024-06-04 19:23:20 +08:00
小民同学
ab642c615e fix: Remove duplicate dependencies in pom.xml 2024-05-31 16:46:59 +08:00
YunaiV
328445f7c0 【发版】全局:2.1.0 发版 2024-05-04 09:47:03 +08:00
YunaiV
1e106844e8 【同步】boot 和 cloud 版本 2024-05-04 09:45:51 +08:00
YunaiV
6fc6fb1bc8 【优化】GlobalExceptionHandler 新增 IGNORE_ERROR_MESSAGES,用于忽略“无效的刷新令牌”等非关键提示 2024-05-03 09:53:00 +08:00
YunaiV
1e23316fb1 【修复】MySQL jdbc 连接 5.7 示例不正确 2024-05-03 09:11:22 +08:00
YunaiV
61d8836c2d 【优化】将 jdk17 的 List.of 替换成 ListUtil.of,提供更好的 jdk8 兼容性 2024-05-01 12:44:48 +08:00
YunaiV
bed86d84d4 【优化】README,将版本说明提前 2024-05-01 12:14:13 +08:00
YunaiV
6d40550bbf 【同步】对齐 boot 和 cloud 的逻辑 2024-05-01 09:30:22 +08:00
YunaiV
78e151d4ee 【优化】降低 JDK 21 最低到 17 版本 2024-05-01 01:44:07 +08:00
YunaiV
ef63cb37b7 【优化】README,将版本说明提前 2024-05-01 01:37:25 +08:00
YunaiV
f7b0618216 【修复】短信模板中关于 type 字段的描述 2024-04-29 20:51:46 +08:00
YunaiV
b500bb7da1 【增强】一键改包:支持 site、org 等包 2024-04-29 12:48:46 +08:00
YunaiV
ed04f0ce5a 【修复】RPC 调用时,不再进行 tenant-id 校验,内部使用,无需校验 2024-04-29 09:46:30 +08:00
YunaiV
e618f833fd 【修复】部分菜单,确实 menu.sql 配置的权限标识 2024-04-24 20:11:19 +08:00
YunaiV
b150605da9 【修复】角色管理页面-查询未按照排序字段排序的问题 2024-04-24 09:38:14 +08:00
YunaiV
ddafd44114 【完善】代码生成对 DM 达梦数据的兼容性
【优化】新增 sslEnable 字段,支持 outlook 邮箱
2024-04-24 09:35:51 +08:00
芋道源码
ca93a858fd !108 Infra模块>代码生成器>适配达梦数据库
Merge pull request !108 from 再见七月/infraBug-by-dm
2024-04-24 01:20:45 +00:00
YunaiV
819ad49b08 【修复】解决视频地址在移动端播放的兼容性问题 2024-04-23 09:44:57 +08:00
YunaiV
9164fa0ffb bugfix:非 json 请求(文件上传)时,token 过期时,错误读取 request body 问题 2024-04-22 23:31:57 +08:00
YunaiV
feb742e084 【同步】与 yudao-boot 版本保持一致! 2024-04-22 21:01:30 +08:00
YunaiV
a5aeca4d49 【优化】将项目的 annotations 统一修改成 annotation 包 2024-04-11 23:42:22 +08:00
YunaiV
bb5966f1b6 【新增】RateLimiter 限流器,支持全局、用户、IP 等级别的限流 2024-04-11 22:53:36 +08:00
YunaiV
9c1c946edc 【新增】新增 UserIdempotentKeyResolver 解析器,支持用户级别的幂等 2024-04-10 20:46:38 +08:00
byeJuly
f89d9f6d99 漏掉一个mysql,提交一下 2024-04-10 19:08:33 +08:00
byeJuly
4e10a0c2ef 修复 Infra 模块:
修复项目迁移达梦8数据库后,代码生成器导入功能报错的原因:
调整策略:删除-> autoIncrement <-字段
2024-04-10 17:51:16 +08:00
YunaiV
e2c1c7d380 【优化】支持登陆用户,直接读取昵称、部门等信息,也支持自定义字段 2024-04-07 19:51:24 +08:00
YunaiV
9de92e730b bugfix:easy-trans 在 FeignClient 无法启动的情况 2024-04-04 18:58:13 +08:00
YunaiV
a6db89c9e3 【新增】system user 和 role 接入新操作日志 2024-04-04 09:58:41 +08:00
YunaiV
911790ad16 【新增】system user 和 role 接入新操作日志 2024-04-04 09:48:29 +08:00
YunaiV
188f98eaa2 【重构】V2 操作日志转正,基于注解的可使用变量、可以自定义函数的通用操作日志组件 2024-04-04 02:13:36 +08:00
YunaiV
e67f16e5bb 【重构】V2 操作日志转正,基于注解的可使用变量、可以自定义函数的通用操作日志组件 2024-04-04 01:21:17 +08:00
YunaiV
f88c07af17 【优化】增强访问日志,支持是否记录、脱敏、操作信息等功能 2024-04-03 19:55:45 +08:00
YunaiV
ec9f983f73 【优化】增强访问日志,支持是否记录、脱敏、操作信息等功能 2024-04-03 19:53:04 +08:00
YunaiV
b93ed8d3b3 SYNC:同步 boot 最新的变动 2024-04-02 20:34:32 +08:00
YunaiV
04ddf91370 全局:增加 VO 数据翻译的支持 2024-04-02 19:37:27 +08:00
YunaiV
6d8c608a59 【移除】Ureport 的实现,因为和 Spring Boot 兼容性较差 2024-03-30 20:51:41 +08:00
YunaiV
4ecc26d08f bugfix:promotion 的 SecurityConfiguration 命名错误,不影响使用 2024-03-30 20:27:05 +08:00
YunaiV
44e03eae83 bugfix:补齐 RPC API 缺少的 RequestBody 和 QueryMap 2024-03-30 20:24:00 +08:00
YunaiV
9258b67097 SYNC:同步 boot 最新的变动 2024-03-30 20:13:03 +08:00
YunaiV
ad0a533afb README:增加功能图,方便理解 2024-03-27 21:07:25 +08:00
YunaiV
ec92874cf4 BPM:同步最新工作流实现,各种增强! 2024-03-27 19:51:35 +08:00
YunaiV
636b9ad8ce 同步 Boot 和 Cloud 代码的差异,保持一致性 2024-03-01 19:57:41 +08:00
YunaiV
1661315cd0 全局:将 dict 组件,融合到 excel 组件里,减少 starter 2024-02-28 21:44:30 +08:00
YunaiV
1329ec99a1 全局:迁移 pay 组件到 pay 模块,迁移 flowable 组件到 bpm 模块 2024-02-28 21:14:08 +08:00
YunaiV
922a9d0f5c 全局:迁移 pay 组件到 pay 模块,迁移 flowable 组件到 bpm 模块 2024-02-28 21:06:28 +08:00
YunaiV
c3eae200db 全局:简化 captcha 组件,融合到 system 模块 2024-02-28 20:38:35 +08:00
YunaiV
161b5e5bfc 全局:简化 file 组件,融合到 infra 模块 2024-02-28 18:59:49 +08:00
YunaiV
5be7965b18 bugfix:async Cache 导致租户不正确的问题 2024-02-27 22:11:42 +08:00
YunaiV
8537964e82 修复 "使用手机 + 验证码登录"功能中存在服务间调用异常被吃掉从而导致无法正常响应异常信息 2024-02-27 21:05:26 +08:00
YunaiV
dcc2881960 增加 CRM 和 ERP Dockerfile 2024-02-27 17:56:01 +08:00
YunaiV
8145586764 进一步同步 boot 和 cloud 代码,移除多余无用的类 2024-02-27 17:11:56 +08:00
YunaiV
36a5859344 同步最新 CRM 代码 2024-02-27 16:50:01 +08:00
YunaiV
2370ad6ff3 同步最新 ERP 代码 2024-02-27 16:33:01 +08:00
YunaiV
e0ac8a28cb 同步最新 SYSTEM、INFRA、MALL 代码 2024-02-27 16:24:59 +08:00
YunaiV
0e55c4da6d 增加 CRM 模块 2024-02-17 23:25:41 +08:00
YunaiV
5f53986d5e 增加 ERP 模块 2024-02-17 22:56:28 +08:00
YunaiV
f71a3b7dc0 2.0.1 版本发布准备 2024-02-17 22:38:38 +08:00
YunaiV
edd2cef835 全局:将 sms 融合到 system 模块里,减少 starter 2024-01-27 11:25:52 +08:00
YunaiV
44699efc8d 全局:将 banner、error-code、desensitize 融合到 web 组件里,减少 starter 2024-01-27 10:25:32 +08:00
YunaiV
b2ec898932 🔥 2.0.0 版本发布准备~ 2024-01-26 20:36:38 +08:00
YunaiV
5693ebeb87 增加 jakartaPackage 标识,统一 Spring Boot 2.X 和 3.X 代码生成的模版 2024-01-20 00:55:43 +08:00
YunaiV
92f8fa8d7c 升级最新依赖 2024-01-19 22:41:05 +08:00
YunaiV
aab2375ff2 MALL-TRADE:同步 jdk21 boot 最新代码 2024-01-19 22:11:26 +08:00
YunaiV
b71180ef47 MALL-PROMOTION:同步 jdk21 boot 最新代码 2024-01-19 21:46:18 +08:00
YunaiV
f612b6ebdd MALL-PRODUCT:同步 jdk21 boot 最新代码 2024-01-19 21:36:50 +08:00
YunaiV
2208eef8cf MEMBER:同步 jdk21 boot 最新代码 2024-01-19 21:19:48 +08:00
YunaiV
8289a22f03 SYSTEM:同步 jdk21 boot 最新代码
 INFRA:同步 jdk21 boot 最新代码
2024-01-19 20:34:59 +08:00
YunaiV
dbf844592a MALL:更新 uni-app + Vue3 实现 2024-01-05 01:32:31 +08:00
YunaiV
40f1045261 🐛 升级 easyexcel 依赖,解决 JDK21 导出报错 2023-12-30 19:25:11 +08:00
YunaiV
c98738d405 🐛 修复 CacheUtils 异步缓存的 ThreadLocal 变量传递 2023-12-30 11:59:16 +08:00
芋道源码
a7fcf268cf Merge pull request #120 from csgear/csgear/dockerfile
Update Dockerfile base image to 21-jre
2023-12-30 11:27:26 +08:00
芋道源码
f742c7b22d Merge pull request #123 from Breadswim/master-jdk21
fix 腾讯云上传bug
2023-12-30 11:21:00 +08:00
YunaiV
ecd7f894c1 🐛 REPORT:支持 SaaS 租户模式 2023-12-30 10:48:52 +08:00
YunaiV
479062e599 🐛 文件路径 url 中文解码问题 2023-12-29 22:23:51 +08:00
YunaiV
882b70dcf1 🐛 导出 Excel:Long 类型 ID 会丢失精度 2023-12-29 21:44:48 +08:00
YunaiV
3434a089a3 🐛 修复修改短信渠道缓存没有更新 2023-12-29 12:58:19 +08:00
芋道源码
87bdc1bba6 !87 fix(websocket): 修复 websocket 失效的问题
Merge pull request !87 from oc/master-jdk21
2023-12-29 04:50:16 +00:00
YunaiV
a7e7631ce8 🐛 Websocket 断开时,未删除会话缓存 bug 2023-12-29 12:43:53 +08:00
YunaiV
4e2630ef14 🐛 PAY:修复支付回调时,查询 PayOrderApi getOrder 需要登录的问题 2023-12-29 12:36:33 +08:00
oc
b1b15185eb fix(websocket): 修复 websocket 失效的问题 2023-12-25 00:51:37 +08:00
Breadswim
8bdddd719d fix 腾讯云上传bug 2023-12-15 10:17:59 +08:00
YunaiV
e007a44315 考虑到大家的接受度,master 还是保持 jdk8 版本(稳定),master-jdk21 使用 jdk21 版本(创新) 2023-12-12 13:30:48 +08:00
Xiaojun Yang
8e97e38050 Update Dockerfile base image to 21-jre 2023-12-09 09:08:04 -05:00
YunaiV
bca3d0c691 ⬆️ JDK21 + Spring Boot 3.2.0 + Spring Cloud 2023 晋升 master 分支,开启 2.0.0 版本 2023-12-09 00:43:37 +08:00
YunaiV
04566131e2 Merge remote-tracking branch 'origin/master' 2023-12-08 09:13:10 +08:00
YunaiV
b3d02c1ed6 🐛 修复积木报表转发不正确的问题 2023-12-08 09:13:03 +08:00
芋道源码
fd42b3e30f !61 修复方法权限注解找不到认证器问题。
Merge pull request !61 from fangyuan/master
2023-12-07 16:09:16 +00:00
YunaiV
f36b333590 🚚 将运维相关的统一到 script 目录下,简化根目录 2023-12-06 22:11:21 +08:00
YunaiV
ba5910cb74 🔥 gitattributes 文件 2023-12-06 22:04:07 +08:00
芋道源码
65dcb16d57 !81 fix:修复spring cache redis 单冒号,而不是双 :: 冒号,避免 Redis Desktop Manager 多余空格
Merge pull request !81 from 晨曦伴读/fix-master-dev
2023-12-06 13:28:20 +00:00
芋道源码
6894a51fef !82 增加 system 和 infra 的代码覆盖率,提升稳定性
Merge pull request !82 from 芋道源码/feature/vo-optimize
2023-12-05 12:07:36 +00:00
YunaiV
6210bde1de 增加 codegen 模块的单测覆盖率 2023-12-05 20:00:20 +08:00
862412451@qq.com
b5391c3ed2 fix: 修复spring cache redis 单冒号,而不是双 :: 冒号,避免 Redis Desktop Manager 多余空格。issues详情地址: https://gitee.com/zhijiantianya/yudao-cloud/issues/I86VY2 2023-12-05 14:40:10 +08:00
YunaiV
e4c62c34b3 增加 infra logger 模块的单测覆盖率 2023-12-04 20:43:32 +08:00
YunaiV
efc9649fa5 增加 sms/tenant/senstiveword 模块的单测覆盖率 2023-12-04 13:14:25 +08:00
YunaiV
49aee82b6a 增加 social 模块的单测覆盖率 2023-12-04 09:54:56 +08:00
YunaiV
af41069b50 增加 permission 模块的单测覆盖率 2023-12-03 21:55:25 +08:00
YunaiV
18785550da 增加 dept 模块的单测覆盖率 2023-12-03 21:26:51 +08:00
YunaiV
f806995de3 增加 dict 模块的单测覆盖率 2023-12-03 21:15:01 +08:00
芋道源码
497d55a640 !74 修复-微信小程序的一键登录 缺少state参数
Merge pull request !74 from Evol郑天/N/A
2023-12-03 11:12:56 +00:00
芋道源码
8610ffe0ba !72 新增 feign-okhttp 依赖
Merge pull request !72 from Henry/fix-feign-compression
2023-12-03 11:10:23 +00:00
芋道源码
5b50be2689 !73 pay-server, mp-server, member-server, trade-server, product-server, promotion-server, statistics-server的pom.xml增加build plugins
Merge pull request !73 from WangSai/master
2023-12-03 11:08:27 +00:00
芋道源码
396ffef68c !79 简化 system 和 infra 大模块模块的 VO
Merge pull request !79 from 芋道源码/feature/vo-optimize
2023-12-03 11:00:32 +00:00
YunaiV
930cdce7a0 🔧 简化 errorLog 和 accessLog 模块的 VO 2023-12-03 18:32:40 +08:00
YunaiV
2a52f61e01 🔧 简化 file 模块的 VO 2023-12-03 10:33:52 +08:00
YunaiV
b512a23465 🔧 简化 dataSourceConfig 模块的 VO 2023-12-03 10:07:00 +08:00
YunaiV
f91d419b7f 🔧 简化 config 模块的 VO 2023-12-03 09:57:41 +08:00
YunaiV
b93ed9efbb 🔧 简化 user 模块的 VO 2023-12-03 01:03:07 +08:00
YunaiV
5cce6a510e 🔧 简化 tenant 模块的 VO 2023-12-02 23:43:04 +08:00
YunaiV
066ba7ece8 🔧 简化 social 模块的 VO 2023-12-02 23:01:20 +08:00
YunaiV
2014af1c0b 🔧 简化 sms 模块的 VO 2023-12-02 22:39:42 +08:00
YunaiV
5c50b5ff13 🔧 简化 sensitiveWord 模块的 VO 2023-12-02 21:59:22 +08:00
YunaiV
df2bcb267d 🔧 简化 permission 模块的 VO 2023-12-02 21:47:07 +08:00
YunaiV
70bd92bcb4 🔧 简化 oauth2 模块的 VO 2023-12-02 20:48:57 +08:00
YunaiV
2ba43bede8 🔧 简化 notify 模块的 VO 2023-12-02 20:25:19 +08:00
YunaiV
27710435b2 🔧 简化 notice 模块的 VO 2023-12-02 20:07:50 +08:00
YunaiV
ce42bf7826 🔧 简化 mail 模块的 VO 2023-12-02 19:55:10 +08:00
YunaiV
80afe88dad 🔧 简化 loginLog 和 operateLog 模块的 VO 2023-12-02 19:25:32 +08:00
YunaiV
417f7cd877 🔧 简化 errorCode 模块的 VO 2023-12-02 18:40:51 +08:00
YunaiV
7b97d1a3e4 🔧 简化 dictType 和 dictData 模块的 VO 2023-12-02 18:21:33 +08:00
YunaiV
2802b77148 🔧 简化 post 和 dept 模块的 VO 2023-12-02 10:19:11 +08:00
Evol郑天
df437cfc38 修复-微信小程序的一键登录 缺少state参数
Signed-off-by: Evol郑天 <jpevol@163.com>
2023-12-02 02:14:26 +00:00
wangsai
4a7e03cc79 pay-server, mp-server, member-server, trade-server, product-server, promotion-server, statistics-server的pom.xml增加build plugins 2023-12-01 21:07:24 +08:00
YunaiV
86e3dba268 1.9.0 版本发布 2023-12-01 07:38:06 +08:00
YunaiV
578348c015 1.9.0 版本发布 2023-11-30 21:26:04 +08:00
YunaiV
f8991ba134 同步 ruoyi-vue-pro 差异代码 2023-11-30 21:23:26 +08:00
Henry
216a5b1343 新增 feign-okhttp 依赖。解决:OpenFeign默认使用jdk自带的HttpURLConnection,没有连接池、性能和效率比较低。且feign开启压缩,会遇到数据量大时,json解析异常 2023-11-29 14:56:04 +08:00
YunaiV
16c303bc28 移除 weixin starter 组件,直接改成 wxjava starter 2023-11-28 07:56:20 +08:00
YunaiV
0df10bcb1e 增加 Spring Boot 3.X 适配分支的说明 2023-11-27 19:50:11 +08:00
YunaiV
4e83cef189 同步最新的达梦适配 2023-11-27 19:48:26 +08:00
YunaiV
a47cd877f8 修复 WxPayOrderNotifyV3Result 的重命名 2023-11-26 19:25:01 +08:00
YunaiV
35bd977e19 移除 weixin starter 组件,直接改成 wxjava starter 2023-11-26 17:08:01 +08:00
YunaiV
11c0c0d52b 使用 justauth 替代现有 yudao-spring-boot-starter-biz-social 依赖,减少 starter 2023-11-26 11:54:55 +08:00
YunaiV
f7a96d5aa0 优化 error-code 加载逻辑,失败不影响启动 2023-11-25 22:58:58 +08:00
芋道源码
6be49dae3a !60 未启动system模块,其他模块 【bpm\report等模块】,因依赖错误码组件无法启动服务
Merge pull request !60 from 陈晨成/master
2023-11-25 14:49:41 +00:00
芋道源码
28d3356467 !68 #I83A66 修复MP配置文件错误
Merge pull request !68 from 胡庆春/master3
2023-11-25 14:39:48 +00:00
YunaiV
5ca97b6d70 #I8I2EW 修复@PermitAll注解失效问题 2023-11-25 22:33:31 +08:00
芋道源码
516de93cd7 !67 #I8I2EW 修复@PermitAll注解失效问题,
Merge pull request !67 from 胡庆春/master2
2023-11-25 14:30:16 +00:00
芋道源码
50817cec45 !69 fix(system): 修复更新账号时岗位为空时发生的空指针异常
Merge pull request !69 from oc/master
2023-11-25 14:23:44 +00:00
YunaiV
fc45d97498 更新 README.md,增加主子表、WebSocket 的说明 2023-11-25 22:19:43 +08:00
YunaiV
2314806d82 简化 yudao-ui 目录 2023-11-25 22:06:08 +08:00
YunaiV
2d9aa7a94a websocket:重新封装 websocket 组件,支持 token 认证,并增加 WebSocketMessageListener 方便处理消息 2023-11-25 20:44:42 +08:00
oc
fb479d7d79 fix(system): 修复更新账号时岗位为空时发生的空指针异常 2023-11-25 18:25:03 +08:00
huqingchun
d047424b98 #I83A66 修复MP配置文件错误
原因:类型别名路径配置错误,导致根据类型别名获取类型失败
解决方案:统一修改类型别名配置路径,均基于当前模块基础包匹配别名包
2023-11-25 12:25:45 +08:00
huqingchun
7fd2ef7e8a #I8I2EW 修复@PermitAll注解失效问题,
原因:@PermitAll注解方法的@RequestMapping未指定method时,PermitAll配置不生效,
解决方案:未指定method时将4个请求方法均加入result 结果
2023-11-25 10:13:02 +08:00
YunaiV
522ab17902 Merge remote-tracking branch 'origin/master' 2023-11-21 23:32:32 +08:00
YunaiV
562f82580e sms:移除 SmsCodeMapping + SmsCommonResult,简化短信的封装 2023-11-21 23:32:26 +08:00
芋道源码
85ffccbdbf !63 启动mp模块时报null key in entry
Merge pull request !63 from Evol郑天/N/A
2023-11-18 17:11:29 +00:00
YunaiV
4118f25d75 同步最新 SQL 脚本 2023-11-19 01:03:27 +08:00
芋道源码
c8c0c8431b !65 新增主子表、树表的代码生成
Merge pull request !65 from 芋道源码/feature/vo-optimize
2023-11-18 09:58:21 +00:00
YunaiV
a6edd13317 同步最新 SQL 脚本 2023-11-18 17:49:07 +08:00
YunaiV
e0bac57c14 代码生成:优化前端模版的 package 路径 2023-11-18 17:42:24 +08:00
YunaiV
ae14ff2f95 代码生成:主子表、树形表的实现 2023-11-17 20:46:02 +08:00
YunaiV
95d5fc4a58 bugfix:解决 Redis MQ 消息队列的类加载初始化问题 2023-11-08 08:30:05 +08:00
YunaiV
91832e2ae3 优化:默认只引入 mysql driver,减少打包大小 2023-11-06 21:26:05 +08:00
YunaiV
0837f9adbc 多租户:登录界面,根据 host 域名获取对应的租户编号 2023-11-06 21:24:45 +08:00
YunaiV
ac0f9a020a Merge remote-tracking branch 'origin/master' 2023-11-05 18:31:17 +08:00
YunaiV
26c9a2597d 完善 README.md,补全新的消息队列 2023-11-05 18:28:22 +08:00
YunaiV
77e98bbb2d 三方登录:支持 saas 多租户配置 2023-11-04 22:10:58 +08:00
芋道源码
81781c7d0e !62 初始化sql脚本修正
Merge pull request !62 from 无尽意/master
2023-11-03 16:08:40 +00:00
芋道源码
7afe119d72 !64 增加 RocketMQ、Kafka、RabbitMQ 消息队列的支持
Merge pull request !64 from 芋道源码/feature/mq-optimize
2023-11-02 12:52:48 +00:00
YunaiV
f353011d96 mq:修复 kafka 租户未传递的问题 2023-11-02 20:07:26 +08:00
YunaiV
1f12d253fd mq:修复 KeyValue 不支持序列化,导致 rabbitmq 发送消息失败的问题 2023-11-02 19:53:35 +08:00
YunaiV
78869a9004 mq:增加 redis、rocketmq、rabbitmq、kafka 配置项 2023-11-02 19:37:53 +08:00
YunaiV
e21b8f977e mq:改造支持 redis、rocketmq、rabbitmq、kafka 作为消息实现 2023-11-02 18:59:46 +08:00
YunaiV
2450d7afdc mq:移除默认的 spring cloud stream 和 bus,使用原生的 spring-rocketmq、spring-kafka、spring-rabbitmq 替代,降低学习成本,提升使用灵活性。 2023-11-02 13:06:05 +08:00
YunaiV
02693836b2 mq:默认使用 event 替代 spring cloud stream 2023-11-02 12:57:25 +08:00
Evol郑天
045c20d0db 启动mp模块时报null key in entry
Signed-off-by: Evol郑天 <jpevol@163.com>
2023-10-31 09:06:42 +00:00
yongqing.zhao
e3e499e00d fix(pay_wallet.sql): 表名称注释去除多余\n 2023-10-27 10:57:38 +08:00
YunaiV
fdb479ef49 1.8.3 版本发布 2023-10-24 21:03:08 +08:00
YunaiV
80edb0e808 统一 boot 和 cloud 代码 2023-10-24 20:45:01 +08:00
YunaiV
e10f325843 统一 boot 和 cloud 代码 2023-10-24 18:48:12 +08:00
YunaiV
e850e39e80 统一 boot 和 cloud 代码 2023-10-24 14:17:50 +08:00
YunaiV
6d5b066ae6 统一 boot 和 cloud 代码 2023-10-24 14:07:50 +08:00
YunaiV
57330054de 统一 boot 和 cloud 代码 2023-10-24 13:59:20 +08:00
YunaiV
51f96686f8 统一 boot 和 cloud 代码 2023-10-24 13:39:31 +08:00
YunaiV
f7d264eff7 mall:完善 cloud 的 api 调用 2023-10-24 12:41:26 +08:00
YunaiV
b133cfa2a8 mall:完善 cloud 的 api 调用 2023-10-24 12:24:02 +08:00
YunaiV
110b3476a8 bpm:跟进最新功能(驳回、加减签) 2023-10-24 08:40:34 +08:00
YunaiV
3f32c4488e pay:修复单元测试的报错 2023-10-24 08:12:38 +08:00
YunaiV
df2b1b45a4 pay:同步最新功能的代码(钱包、转账) 2023-10-24 08:00:01 +08:00
YunaiV
9fc31ac2ae 修复单元测试的报错 2023-10-24 00:02:18 +08:00
YunaiV
5b14810626 1. 保持 boot 和 cloud 的统一
2. 暂时清理 mall 相关的单测,等后续全部适配完,再开启
2023-10-23 23:53:06 +08:00
YunaiV
f826d117f8 statistics:增加网关转发 2023-10-23 19:47:19 +08:00
YunaiV
97103a8846 statistics:初始化 2023-10-23 19:40:29 +08:00
YunaiV
e26b29c5eb trade:增加 gateway 转发 2023-10-23 19:22:47 +08:00
YunaiV
162f34a6c4 trade:启动成功 2023-10-23 18:52:41 +08:00
YunaiV
537d3421a8 trade:初始化 2023-10-23 09:48:38 +08:00
YunaiV
52f014b195 promotion:完成网关的转发 2023-10-22 22:49:40 +08:00
YunaiV
93715790ae promotion:初始化项目 2023-10-22 22:25:26 +08:00
YunaiV
040a321b4e trade:初始化 api 包 2023-10-22 21:56:21 +08:00
YunaiV
ec49751f25 product:完善 rpc api 的注解 2023-10-22 21:43:37 +08:00
YunaiV
df7d49a8b1 product:1)网关转发;2)完善配置类 2023-10-22 17:07:28 +08:00
YunaiV
6653c074fa product:初始化代码 2023-10-22 17:01:10 +08:00
YunaiV
6a51097e1d member:完善 cloud 下的 api 注解问题 2023-10-22 16:35:29 +08:00
YunaiV
08c5248757 cloud:完善 system、infra、bpm 的 api swagger 注解 2023-10-22 14:30:50 +08:00
YunaiV
323d160d61 member:启动成功,基本跑通 2023-10-22 11:53:35 +08:00
YunaiV
625e62ef9d system:同步多租户下,微信小程序、微信公众号,允许每个租户独立配置 2023-10-22 11:33:28 +08:00
YunaiV
747356ff09 Merge remote-tracking branch 'origin/master' 2023-10-22 09:03:24 +08:00
YunaiV
4277ff1c52 member:初始化会员服务 2023-10-22 09:03:14 +08:00
wfy
7a303e5b45 土豆,fix:修复方法权限注解找不到认证器问题。 2023-10-20 13:35:42 +08:00
芋道源码
e4b55590fc !59 bug 修复1.82版本升级导致的短信模板无法修改问题
Merge pull request !59 from Fanjc/N/A
2023-10-19 16:30:58 +00:00
YunaiV
6ec18e8942 同步 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/677/files 2023-10-19 23:57:25 +08:00
YunaiV
0db6a80044 同步 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/665/ 修复 2023-10-19 23:28:57 +08:00
1351515658@qq.com
0bac17d6a6 optimize 错误码组件初始化不阻塞服务启动 2023-10-19 19:02:53 +08:00
Fanjc
9341c1891f bug 修复1.82版本升级导致的短信模板无法修改问题
Signed-off-by: Fanjc <271366833@qq.com>
2023-10-19 03:13:36 +00:00
YunaiV
e8da08a2ea 同步 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/675/files 修复 2023-10-17 23:17:26 +08:00
YunaiV
144cece04d 修复 knife4j 文档解析 post json解析成application/x-www-form-urlencoded表单 2023-10-14 18:06:05 +08:00
YunaiV
aadea6d1ff 同步 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/636/files 2023-10-14 17:54:42 +08:00
YunaiV
9cba937fe7 同步 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/647/files 2023-10-14 17:45:37 +08:00
YunaiV
4801147663 优化 README.md,减少静态资源加载 2023-10-13 18:31:42 +08:00
YunaiV
3cdd624b72 优化 README.md,减少静态资源加载 2023-10-13 09:40:22 +08:00
YunaiV
e5b461f5b8 修复 cloud 版本过高,导致部分依赖不存在的问题 2023-10-06 19:46:07 +08:00
xingyu
4ce1280686 fix: 多次引入 Schema 2023-09-25 18:43:20 +08:00
xingyu
e74135c386 feat: remove swagger use springdoc 2023-09-25 18:42:43 +08:00
YunaiV
0e31114ea0 同步 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/633 2023-09-25 09:47:13 +08:00
YunaiV
594834e66c Merge branch 'master' of https://github.com/YunaiV/yudao-cloud 2023-09-24 23:36:35 +08:00
YunaiV
8eb482024d 1.8.2 发版 2023-09-24 23:35:03 +08:00
芋道源码
cfe86a31d7 Merge pull request #111 from dengyumin/patch-1
typo: Correcting typos
2023-09-24 09:47:51 +08:00
YunaiV
91ab421b65 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/618 2023-09-19 23:19:32 +08:00
YunaiV
6863041251 修复 infra 由于 spring boot admin 报错的问题 2023-09-19 21:00:15 +08:00
YunaiV
e7703c6f48 1. 移除 netty-all,减少依赖
2. 修复 xss 无法禁用的问题
2023-09-17 00:46:11 +08:00
YunaiV
3af88326f9 pay 缓存,使用 guava 替代 job 扫描,目的:提升启动速度,加快缓存失效 2023-09-16 23:46:36 +08:00
YunaiV
0162933ce7 fileConfig 缓存,使用 guava 替代 job 扫描,目的:提升启动速度,加快缓存失效 2023-09-16 23:39:41 +08:00
YunaiV
f0897cb435 sms 缓存,使用 guava 替代 job 扫描,目的:提升启动速度,加快缓存失效 2023-09-16 23:37:08 +08:00
YunaiV
3b9affe056 1. 简化 JsonUtils 初始化方式,去掉 BeanPostProcessor
2. 减少日志打印

目的:优化启动速度
2023-09-16 18:10:18 +08:00
YunaiV
be7ee3e447 1. 减少 mybatis 日志打印
2. 降低 local 环境的初始连接

目的:提升项目的启动速度
2023-09-16 17:05:11 +08:00
YunaiV
4fedb6be0b 默认禁用 spring boot admin 的启动,提升项目的启动速度 2023-09-16 15:43:23 +08:00
YunaiV
a4c2061113 优化多租户 Job 的实现,保持和 boot 版本尽量一致 2023-09-16 14:17:25 +08:00
YunaiV
b80a928fec 优化多租户 Job 的实现,保持和 boot 版本尽量一致 2023-09-16 14:13:53 +08:00
YunaiV
9ec0ce48e2 优化 tenant 组件的注释 2023-09-16 14:06:31 +08:00
YunaiV
54df71b900 默认禁用 spring data redis repositories,一方面没用到,一方面提高启动速度 2023-09-16 13:29:18 +08:00
YunaiV
984bcc8885 默认禁用 resilience4j 依赖,保证启动速度 2023-09-16 13:15:29 +08:00
YunaiV
2769ee3635 默认禁用 resilience4j 依赖,保证启动速度 2023-09-16 12:01:56 +08:00
YunaiV
09c018fa13 更新商城的演示地址 2023-09-11 16:55:48 +08:00
YunaiV
6f3ed48a3b 更新商城的演示地址 2023-09-11 16:46:47 +08:00
芋道源码
904648425f !55 使用下划线分隔ErrorCodeConstants的ErrorCode
Merge pull request !55 from dhb52/master
2023-09-11 08:45:26 +00:00
YunaiV
dbf79e5856 优化 README 说明 2023-09-09 22:54:13 +08:00
dhb52
b073167a9e 使用下划线分隔ErrorCodeConstants的ErrorCode 2023-09-09 19:00:16 +08:00
小民同学
f0dae8f1c6 typo: Correcting typos 2023-09-09 15:04:25 +08:00
YunaiV
1123e6f1e4 修复 knife4j get 参数无法正确展示的问题 2023-09-09 15:04:15 +08:00
YunaiV
4e56907919 引入 mybatis plus join 作为基类 2023-09-09 14:57:30 +08:00
芋道源码
244edf67e2 !53 解决启用多租户时,使用Redis缓存,设置失效时间不生效的问题。
Merge pull request !53 from luodz/master
2023-09-09 02:32:21 +00:00
YunaiV
633c277228 同步 https://github.com/YunaiV/ruoyi-vue-pro/pull/342 2023-09-09 10:15:16 +08:00
YunaiV
38e5804b5b 升级 springdoc、knife4j 版本 2023-09-07 13:08:33 +08:00
YunaiV
f2b7c0483c 修复 revision 在 Maven install、deploy 时,不替换为版本号的问题 2023-09-06 20:42:01 +08:00
luodz
4fe865e94e 为解决多租户时Redis缓存设置失效时间不生效问题,而将TimeoutRedisCacheManager作为TenantRedisCacheManager的父类。这里修改后让租户ID可以被传递。 2023-09-05 10:46:19 +08:00
luodz
f546d33f40 解决启用多租户时,使用Redis缓存,设置失效时间不生效的问题。 2023-09-05 10:41:44 +08:00
YunaiV
8bd2f64024 同步 v1.8.1 SQL 脚本 2023-09-03 19:15:05 +08:00
芋道源码
938f40d02d !51 数据权限bugfix
Merge pull request !51 from sodkwhy/数据权限bugfix
2023-09-03 10:43:00 +00:00
YunaiV
d12843664d 同步 https://github.com/YunaiV/ruoyi-vue-pro/pull/334 2023-09-03 18:40:58 +08:00
YunaiV
d04001a56d 同步 https://github.com/YunaiV/ruoyi-vue-pro/pull/335 2023-09-03 18:37:10 +08:00
YunaiV
247be4ce44 同步 https://github.com/YunaiV/ruoyi-vue-pro/pull/337 2023-09-03 18:33:59 +08:00
YunaiV
866c21a624 同步 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/565/files 2023-09-03 18:01:20 +08:00
YunaiV
c4cbb1db42 同步 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/594/files 2023-09-03 17:58:25 +08:00
YunaiV
b72302e201 商城最新进展同步 2023-09-01 00:52:54 +08:00
YunaiV
f82a323508 同步 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/586/ 2023-08-27 11:19:27 +08:00
YunaiV
bb34cdea2c 同步 https://github.com/YunaiV/ruoyi-vue-pro/pull/326 2023-08-27 10:53:12 +08:00
YunaiV
c0d7235cba 同步 https://github.com/YunaiV/ruoyi-vue-pro/pull/332 2023-08-27 10:50:12 +08:00
yinli
09d4d56304 数据权限bugfix 2023-08-22 17:46:49 +08:00
YunaiV
6dad9456e3 优化 README.md,从 .image 读取图片 2023-08-12 00:48:27 +08:00
YunaiV
f9c0f76ada 修复租户套餐修改时,查询角色报错问题 2023-08-11 22:24:11 +08:00
YunaiV
c28ef89a78 !562 优化 redisCache 2023-08-11 21:46:44 +08:00
YunaiV
2201a3ad0f !557 修改创建菜单时permission为空,缓存KEY 为空的BUG 2023-08-11 19:32:40 +08:00
YunaiV
58d70ace8a !558 支付模块微信App统一下单返回值解析错误 2023-08-11 19:10:48 +08:00
YunaiV
abe05db277 fix: banner 日志打印 2023-08-05 16:35:20 +08:00
YunaiV
f1924a003a fix: 修复MailAccountService 更新/删除缓存未清空 2023-08-05 14:49:28 +08:00
芋道源码
eeeac1a627 !49 修复MailAccountService 更新/删除缓存未清空
Merge pull request !49 from ZJY/fix_redisCache
2023-08-05 06:42:25 +00:00
芋道源码
dbcfab3bd8 !47 对齐ruoyi-vue-pro彩色日志,修复菜单ids为空时select查询菜单列表报错
Merge pull request !47 from babylazsss/master
2023-08-05 06:42:13 +00:00
芋道源码
b4c7c0446c !48 添加docker-compose.yml
Merge pull request !48 from Jhaol/docker-compose
2023-08-05 06:39:56 +00:00
zhangjiayu
2b5bb4e121 fix: 修复MailAccountService 更新/删除缓存未清空 2023-08-03 18:13:59 +08:00
jhaol
591242c76c feat: 添加docker-compose.yml、添加system、infra模块健康检查接口 2023-08-03 11:55:16 +08:00
babylazsss
59450a4656 fix: 修复菜单ids为空时select查询菜单列表报错 2023-08-02 21:44:22 +08:00
babylazsss
2f7c306c9d fix: 统一各模块日志彩色打印 2023-08-02 21:32:41 +08:00
芋道源码
515adcaac3 !46 解决心心念的Dockerfile,那网大佬攒个docker-compose.yml出来
Merge pull request !46 from addstone/new_dockerfile
2023-08-01 10:41:41 +00:00
LuDaShi
af4f8ef0dd 搞了几个Dockerfile文件,希望大佬弄个docker-compose.yml出来 2023-08-01 18:29:49 +08:00
YunaiV
2b9973d374 支付中心:增加模拟支付,方便开发调试 2023-07-29 11:41:27 +08:00
YunaiV
ca886c2791 文件配置的本地缓存,使用 Job 轮询,替代 MQ 广播 2023-07-29 09:10:42 +08:00
YunaiV
91e0af0944 短信渠道的本地缓存,使用 Job 轮询,替代 MQ 广播 2023-07-29 08:59:15 +08:00
YunaiV
e205129943 敏感词的本地缓存,使用 Job 轮询,替代 MQ 广播 2023-07-29 07:32:06 +08:00
YunaiV
0b17298963 彻底移除 RedisKeyDefine 2023-07-29 07:16:16 +08:00
YunaiV
8b704ff483 使用 Redis 缓存,替代本地缓存 2023-07-29 06:37:27 +08:00
YunaiV
3dd4700ce4 修复 mp_account 错误拼成 pay_account 的问题 2023-07-28 19:40:05 +08:00
YunaiV
7f7a3c589b 移除 Dubbo 依赖,Dubbo 在国内使用率太低 2023-07-28 19:20:27 +08:00
YunaiV
3930fd739a 修复记录操作时,会存在调用异常的情况 2023-07-28 13:57:10 +08:00
YunaiV
0ff2f9783d mp 服务可正常启动 2023-07-27 23:11:06 +08:00
YunaiV
9a18483482 2. 增加 mp 服务 2023-07-27 19:55:34 +08:00
YunaiV
c92f1c44a6 增加 pay 支付服务 2023-07-27 19:55:15 +08:00
YunaiV
9ba06ec07e 对齐 boot 与 cloud 的代码 2023-07-27 13:59:20 +08:00
YunaiV
0feb865ef0 对齐 boot 与 cloud 的代码 2023-07-27 13:01:17 +08:00
YunaiV
1475e9a507 1.8.0 版本发布 2023-07-27 07:45:24 +08:00
YunaiV
6236b4a5ab 对齐 boot 与 cloud 的代码 2023-07-27 00:17:37 +08:00
YunaiV
93c123633e 对齐 boot 与 cloud 的代码 2023-07-26 23:57:22 +08:00
YunaiV
c03c32d01b 对齐 boot 与 cloud 的代码 2023-07-26 23:56:06 +08:00
YunaiV
c6595afb01 对齐 boot 与 cloud 的代码 2023-07-26 23:27:18 +08:00
YunaiV
94b4a0f93c 对齐 boot 与 cloud 的代码 2023-07-26 22:37:45 +08:00
YunaiV
9e01afc1da 批量将 required = true 替换成 requiredMode = Schema.RequiredMode.REQUIRED 2023-07-26 20:52:15 +08:00
YunaiV
6331054678 543 适配 postgres 数据库 sql 脚本 2023-07-26 07:55:45 +08:00
芋道源码
f21468c175 !44 去除sql中多余的在jimu_report_data_source表中设置tenant_id字段
Merge pull request !44 from 青衫/master
2023-07-25 23:35:48 +00:00
YunaiV
496a81393b 修复 Spring Cloud Bus RocketMQ 无法广播消费的问题 2023-07-26 07:29:35 +08:00
青衫
9eb17fce00 jimu_report_data_source表中已经包含tenant_id字段无需重复设置字段 2023-07-26 00:16:05 +08:00
YunaiV
3126672fcb 修复 ErrorCodeApi 接收 LocalDateTime 参数不正确的问题 2023-07-25 21:42:04 +08:00
YunaiV
c22cf007d1 优化 LambdaQueryWrapperX 的 inIfPresent 判空逻辑 2023-07-25 20:58:36 +08:00
YunaiV
85d55d1af5 修复 RandomUtils 产生的 LocalDateTime 入库后精度缺失问题 2023-07-25 20:48:20 +08:00
YunaiV
c906a616f8 修复“删除流程模型方法 有注释写错” 2023-07-25 20:33:49 +08:00
YunaiV
e502fe2921 !525 local配置文件,master数据库pg连接串的数据库名由slave引用改为master 2023-07-25 20:14:31 +08:00
YunaiV
2c915af2b4 !533 vue3代码生成器表单Editor属性修正为v-model 2023-07-25 20:09:24 +08:00
YunaiV
52fc41cfa5 !541 api记录日志耗时单位修改为毫秒 2023-07-25 19:59:25 +08:00
YunaiV
bd7fee0a88 #540 修复部分问题,升级依赖 2023-07-25 19:51:44 +08:00
YunaiV
6d334f2438 完善“支付系统”的说明 2023-07-24 08:46:21 +08:00
YunaiV
60d5d942c6 修复单元测试报错 2023-07-24 07:03:19 +08:00
芋道源码
d68fa54e55 !38 修改生成PageReqVO和ExportReqVO实体,时间类型为Date而不是LocalDateTime的错误问题
Merge pull request !38 from jiaohongtao/master
2023-07-02 05:14:46 +00:00
YunaiV
85c483ca9a Merge remote-tracking branch 'origin/master' 2023-06-17 14:47:10 +08:00
YunaiV
0145b5abee 修复头像上传不支持 PUT 类型的方法 2023-06-17 14:47:05 +08:00
芋道源码
3733dca6f1 !36 修复错误日志切面注释
Merge pull request !36 from 外国人/master
2023-06-17 06:27:46 +00:00
芋道源码
0930c1ff73 !35 头像上传,VUE3后端界面中使用的是request.upload,对应的方法是post
Merge pull request !35 from 让无线电飞BG8GLR/N/A
2023-06-17 06:25:08 +00:00
芋道源码
e5b2973403 !37 测试用例编译异常【java: 不兼容的类型: java.util.Date无法转换为java.time.LocalDateTime】
Merge pull request !37 from Vmo/N/A
2023-06-17 06:23:29 +00:00
YunaiV
fb60881aa7 Merge branch 'master' of https://github.com/YunaiV/yudao-cloud 2023-06-17 14:21:29 +08:00
芋道源码
2cac29d7d1 Merge pull request #96 from YunaiV/dependabot/maven/yudao-dependencies/com.google.guava-guava-32.0.0-jre
Bump guava from 31.1-jre to 32.0.0-jre in /yudao-dependencies
2023-06-17 14:19:41 +08:00
芋道源码
26ef7bcabd Merge pull request #98 from chncaption/oscs_fix_ci5b8n8au51qt1nt0j5g
fix(sec): upgrade commons-net:commons-net to
2023-06-17 14:17:36 +08:00
芋道源码
fc8af37bd5 Merge pull request #92 from liuzhuyuehe/master
修复发送时间sendTime字段类型错误
2023-06-17 14:15:39 +08:00
YunaiV
20cb26fb05 !513 优化代码生成498 解决解决 Set access token expire time to 0 报错问题和邮件发送用户编号为空问题 2023-06-17 12:36:05 +08:00
YunaiV
eb44015b74 !513 优化代码生成 2023-06-17 12:22:12 +08:00
jiaohongtao
333eecae77 修改生成PageReqVO和ExportReqVO实体,时间类型为Date而不是LocalDateTime的错误问题
Signed-off-by: jiaohongtao <jiaohongtaovip@163.com>
2023-06-16 09:09:51 +00:00
chncaption
aea35a2021 update commons-net:commons-net 3.8.0 to 3.9.0 2023-06-15 14:49:10 +08:00
dependabot[bot]
ab062f35b1 Bump guava from 31.1-jre to 32.0.0-jre in /yudao-dependencies
Bumps [guava](https://github.com/google/guava) from 31.1-jre to 32.0.0-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-14 22:55:43 +00:00
Vmo
d5f82da73c 测试用例编译异常【java: 不兼容的类型: java.util.Date无法转换为java.time.LocalDateTime】
由于MailLogDO对象字段sendTime类型为LocalDateTime,使用buildTime方法编译异常,所以改为buildLocalDateTime。

Signed-off-by: Vmo <idevmo@foxmail.com>
2023-06-13 01:28:37 +00:00
黄中
23e84c2b59 修复错误日志切面注释 2023-06-06 15:24:27 +08:00
liujianliang
518dd30fb2 修复发送时间sendTime字段类型错误 2023-06-04 23:46:10 +08:00
让无线电飞BG8GLR
0ef82437ca 头像上传,VUE3后端界面中使用的是request.upload,对应的方法是post
头像上传,VUE3后端界面中使用的是request.upload,对应的方法是post

Signed-off-by: 让无线电飞BG8GLR <atuchina@sina.com>
2023-06-01 04:58:32 +00:00
5287 changed files with 327552 additions and 85886 deletions

View File

@@ -1,10 +0,0 @@
root=true
[*.{adoc,bat,groovy,html,java,js,jsp,kt,kts,md,properties,py,rb,sh,sql,svg,txt,xml,xsd}]
charset = utf-8
[*.{groovy,java,kt,kts,xml,xsd}]
indent_style = space
indent_size = 4
continuation_indent_size = 8
end_of_line = lf

4
.gitattributes vendored
View File

@@ -1,4 +0,0 @@
*.css linguist-language=java
*.less linguist-language=java
*.js linguist-language=java
*.html linguist-language=java

2
.gitignore vendored
View File

@@ -4,6 +4,8 @@
target/
!.mvn/wrapper/maven-wrapper.jar
.flattened-pom.xml
### STS ###
.apt_generated
.classpath

BIN
.image/Java监控.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
.image/MySQL.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

BIN
.image/OA请假-列表.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

BIN
.image/OA请假-发起.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
.image/OA请假-详情.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
.image/Redis.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

BIN
.image/admin-uniapp/01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
.image/admin-uniapp/02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
.image/admin-uniapp/03.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
.image/admin-uniapp/04.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
.image/admin-uniapp/05.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
.image/admin-uniapp/06.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
.image/admin-uniapp/07.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
.image/admin-uniapp/08.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
.image/admin-uniapp/09.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
.image/个人中心.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
.image/代码生成.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

BIN
.image/令牌管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

BIN
.image/任务日志.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
.image/商户信息.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
.image/在线用户.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
.image/字典数据.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
.image/字典类型.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

BIN
.image/定时任务.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
.image/岗位管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
.image/应用管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
.image/操作日志.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

BIN
.image/支付订单.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

BIN
.image/敏感词.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
.image/数据库文档.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
.image/文件管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
.image/文件管理2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

BIN
.image/文件配置.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

BIN
.image/日志中心.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

BIN
.image/流程表单.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

BIN
.image/生成效果.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

BIN
.image/用户分组.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
.image/用户管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
.image/登录.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
.image/登录日志.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
.image/短信日志.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
.image/短信模板.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

BIN
.image/短信渠道.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
.image/租户套餐.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
.image/租户管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
.image/系统接口.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
.image/菜单管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

BIN
.image/表单构建.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

BIN
.image/角色管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
.image/访问日志.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
.image/退款订单.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
.image/通知公告.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
.image/部门管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

BIN
.image/配置管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
.image/链路追踪.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
.image/错误日志.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
.image/错误码管理.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

BIN
.image/首页.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

400
README.md
View File

@@ -1,4 +1,11 @@
**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!**
<p align="center">
<img src="https://img.shields.io/badge/Spring%20Cloud-2024-blue.svg" alt="Coverage Status">
<img src="https://img.shields.io/badge/Spring%20Boot-3.4.5-blue.svg" alt="Downloads">
<img src="https://img.shields.io/badge/Vue-3.2-blue.svg" alt="Downloads">
<img src="https://img.shields.io/github/license/YunaiV/yudao-cloud" alt="Downloads" />
</p>
**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!**
**「我喜欢写代码,乐此不疲」**
**「我喜欢做开源,以此为乐」**
@@ -7,6 +14,8 @@
如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。
可参考 [《迁移文档》](https://cloud.iocoder.cn/migrate-module/) ,只需要 5-10 分钟,即可将【完整版】按需迁移到【精简版】
## 🐶 新手必读
* 演示地址【Vue3 + element-plus】<http://dashboard-vue3.yudao.iocoder.cn>
@@ -15,6 +24,18 @@
* 启动文档:<https://cloud.iocoder.cn/quick-start/>
* 视频教程:<https://cloud.iocoder.cn/video/>
## 🐰 版本说明
| 版本 | JDK 8 + Spring Boot 2.7 | JDK 17/21 + Spring Boot 3.2 |
|-----------------------------------------------------------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------------------|
| 【完整版】[yudao-cloud](https://gitee.com/zhijiantianya/yudao-cloud) | [`master`](https://gitee.com/zhijiantianya/yudao-cloud/tree/master/) 分支 | [`master-jdk17`](https://gitee.com/zhijiantianya/yudao-cloud/tree/master-jdk17/) 分支 |
| 【精简版】[yudao-cloud-mini](https://gitee.com/yudaocode/yudao-cloud-mini) | [`master`](https://gitee.com/yudaocode/yudao-cloud-mini/tree/master/) 分支 | [`master-jdk17`](https://gitee.com/yudaocode/yudao-cloud-mini/tree/master-jdk17/) 分支 |
* 【完整版】包括系统功能、基础设施、会员中心、数据报表、工作流程、商城系统、微信公众号、CRM、ERP 等功能
* 【精简版】只包括系统功能、基础设施功能不包括会员中心、数据报表、工作流程、商城系统、微信公众号、CRM、ERP 等功能
可参考 [《迁移文档》](https://cloud.iocoder.cn/migrate-module/) ,只需要 5-10 分钟,即可将【完整版】按需迁移到【精简版】
## 🐯 平台简介
**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。
@@ -23,30 +44,32 @@
>
> 😜 给项目点点 Star 吧,这对我们真的很重要!
![架构图](https://static.iocoder.cn/yudao-cloud-architecture.png?imageView2/2/format/webp)
![架构图](/.image/common/yudao-cloud-architecture.png)
* Java 后端:`master` 分支为 JDK 8 + Spring Boot 2.7`master-jdk17` 分支为 JDK 17/21 + Spring Boot 3.2
* 管理后台的电脑端Vue3 提供 [element-plus](https://gitee.com/yudaocode/yudao-ui-admin-vue3)、[vben(ant-design-vue)](https://gitee.com/yudaocode/yudao-ui-admin-vben) 两个版本Vue2 提供 [element-ui](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin) 版本
* 管理后台的移动端:采用 [uni-app](https://github.com/dcloudio/uni-app) 方案,一份代码多终端适配,同时支持 APP、小程序、H5
* 后端采用 Spring Cloud Alibaba 微服务架构,注册中心 + 配置中心 Nacos消息队列 RocketMQ定时任务 XXL-Job服务保障 Sentinel服务网关 Gateway分布式事务 Seata
* 后端采用 Spring Cloud Alibaba 微服务架构,注册中心 + 配置中心 Nacos定时任务 XXL-Job服务保障 Sentinel服务网关 Gateway分布式事务 Seata
* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等,基于 MyBatis Plus、Redis + Redisson 操作
* 消息队列可使用 Event、Redis、RabbitMQ、Kafka、RocketMQ 等
* 权限认证使用 Spring Security & Token & Redis支持多终端、多种用户的认证系统支持 SSO 单点登录
* 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能
* 支持 SaaS 多租户系统,可自定义每个租户的权限,提供透明化的多租户底层封装
* 支持加载动态权限菜单,按钮级别权限控制,Redis 缓存提升性能
* 支持 SaaS 多租户,可自定义每个租户的权限,提供透明化的多租户底层封装
* 工作流使用 Flowable支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式
* 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验
* 高效率开发,使用代码生成器可以一键生成 Java、Vue 前后端代码、SQL 脚本、接口文档,支持单表、树表、主子表
* 实时通信,采用 Spring WebSocket 实现,内置 Token 身份校验,支持 WebSocket 集群
* 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款
* 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务
* 集成报表设计器、大屏设计器,通过拖拽即可生成酷炫的报表与大屏
## 🐳 项目关系
![架构演进](https://static.iocoder.cn/yudao-roadmap.png?imageView2/2/format/webp)
![架构演进](/.image/common/yudao-roadmap.png)
三个项目的功能对比,可见社区共同整理的 [国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn) 表格。
### 后端项目
| 项目 | Star | 简介 |
|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [![Gitee star](https://gitee.com/zhijiantianya/ruoyi-vue-pro/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/ruoyi-vue-pro) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/ruoyi-vue-pro.svg?style=social&label=Stars)](https://github.com/YunaiV/ruoyi-vue-pro) | 基于 Spring Boot 多模块架构 |
@@ -55,14 +78,14 @@
### 前端项目
| 项目 | Star | 简介 |
|----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|
| [yudao-ui-admin-vue3](https://gitee.com/yudaocode/yudao-ui-admin-vue3) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vue3/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vue3.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 |
| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vben/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vben) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vben.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + vben(ant-design-vue) 实现的管理后台 |
| [yudao-ui-admin](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin) | [![Gitee star](https://gitee.com/zhijiantianya/ruoyi-vue-pro/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/ruoyi-vue-pro.svg?style=social&label=Stars)](https://github.com/YunaiV/ruoyi-vue-pro/tree/master/yudao-ui-admin) | 基于 Vue2 + element-ui 实现的管理后台 |
| [yudao-ui-admin-uniapp](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin-uniapp) | [![Gitee star](https://gitee.com/zhijiantianya/ruoyi-vue-pro/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin-uniapp) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/ruoyi-vue-pro.svg?style=social&label=Stars)](https://github.com/YunaiV/ruoyi-vue-pro/tree/master/yudao-ui-admin-uniapp) | 基于 uni-app + uni-ui 实现的管理后台的小程序 |
| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-go-view/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-go-view) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-go-view.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-go-view) | 基于 Vue3 + naive-ui 实现的大屏报表 |
| [yudao-ui-app](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-app) | [![Gitee star](https://gitee.com/zhijiantianya/ruoyi-vue-pro/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-app) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/ruoyi-vue-pro.svg?style=social&label=Stars)](https://github.com/YunaiV/ruoyi-vue-pro/tree/master/yudao-ui-app) | 基于 uni-app + uview 实现的用户 App |
| 项目 | Star | 简介 |
|----------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
| [yudao-ui-admin-vue3](https://gitee.com/yudaocode/yudao-ui-admin-vue3) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vue3/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vue3.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 |
| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vben/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vben) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vben.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + vben(ant-design-vue) 实现的管理后台 |
| [yudao-mall-uniapp](https://gitee.com/yudaocode/yudao-mall-uniapp) | [![Gitee star](https://gitee.com/yudaocode/yudao-mall-uniapp/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-mall-uniapp) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-mall-uniapp.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-mall-uniapp) | 基于 uni-app 实现的商城小程序 |
| [yudao-ui-admin-vue2](https://gitee.com/yudaocode/yudao-ui-admin-vue2) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vue2/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vue2) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vue2.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vue2) | 基于 Vue2 + element-ui 实现的管理后台 |
| [yudao-ui-admin-uniapp](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-uniapp/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-uniapp.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-uniapp) | 基于 Vue2 + element-ui 实现的管理后台 |
| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-go-view/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-go-view) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-go-view.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-go-view) | 基于 Vue3 + naive-ui 实现的大屏报表 |
## 😎 开源协议
@@ -72,9 +95,9 @@
② 代码全部开源,不会像其他项目一样,只开源部分代码,让你无法了解整个项目的架构设计。[国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn)
![开源项目对比](https://static.iocoder.cn/project-vs.png?imageView2/2/format/webp/w/1280)
![开源项目对比](/.image/common/project-vs.png)
③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,57000 行 Java 代码,22000 行代码注释。
③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,113770 行 Java 代码,42462 行代码注释。
## 🤝 项目外包
@@ -88,16 +111,11 @@
系统内置多种多种业务功能,可以用于快速你的业务系统:
![功能分层](https://static.iocoder.cn/ruoyi-vue-pro-biz.png?imageView2/2/format/webp)
![功能分层](/.image/common/ruoyi-vue-pro-biz.png)
* 系统功能
* 基础设施
* 工作流程
* 支付系统
* 会员中心
* 数据报表
* 商城系统
* 微信公众号
* 通用模块(必选):系统功能、基础设施
* 通用模块(可选):工作流程、支付系统、数据报表、会员中心
* 业务系统按需ERP 系统、CRM 系统、商城系统、微信公众号、AI 大模型
> 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。
>
@@ -130,195 +148,253 @@
| 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 |
| 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 |
![功能图](/.image/common/system-feature.png)
### 工作流程
| | 功能 | 描述 |
|-----|-------|----------------------------------------|
| 🚀 | 流程模型 | 配置工作流的流程模型,支持文件导入与在线设计流程图,提供 7 种任务分配规则 |
| 🚀 | 流程表单 | 拖动表单元素生成相应的工作流表单,覆盖 Element UI 所有的表单组件 |
| 🚀 | 用户分组 | 自定义用户分组,可用于工作流的审批分组 |
| 🚀 | 我的流程 | 查看我发起的工作流程,支持新建、取消流程等操作,高亮流程图、审批时间线 |
| 🚀 | 待办任务 | 查看自己【未】审批的工作任务,支持通过、不通过、转发、委派、退回等操作 |
| 🚀 | 已办任务 | 查看自己【已】审批的工作任务,未来会支持回退操作 |
| 🚀 | OA 请假 | 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批 |
![功能图](/.image/common/bpm-feature.png)
基于 Flowable 构建,可支持信创(国产)数据库,满足中国特色流程操作:
| BPMN 设计器 | 钉钉/飞书设计器 |
|------------------------------|--------------------------------|
| ![](/.image/工作流设计器-bpmn.jpg) | ![](/.image/工作流设计器-simple.jpg) |
> 历经头部企业生产验证,工作流引擎须标配仿钉钉/飞书 + BPMN 双设计器!!!
>
> 前者支持轻量配置简单流程,后者实现复杂场景深度编排
| 功能列表 | 功能描述 | 是否完成 |
|------------|-------------------------------------------------------------------------------------|------|
| SIMPLE 设计器 | 仿钉钉/飞书设计器支持拖拽搭建表单流程10 分钟快速完成审批流程配置 | ✅ |
| BPMN 设计器 | 基于 BPMN 标准开发,适配复杂业务场景,满足多层级审批及流程自动化需求 | ✅ |
| 会签 | 同一个审批节点设置多个人(如 A、B、C 三人,三人会同时收到待办任务),需全部同意之后,审批才可到下一审批节点 | ✅ |
| 或签 | 同一个审批节点设置多个人,任意一个人处理后,就能进入下一个节点 | ✅ |
| 依次审批 | (顺序会签)同一个审批节点设置多个人(如 A、B、C 三人),三人按顺序依次收到待办,即 A 先审批A 提交后 B 才能审批,需全部同意之后,审批才可到下一审批节点 | ✅ |
| 抄送 | 将审批结果通知给抄送人,同一个审批默认排重,不重复抄送给同一人 | ✅ |
| 驳回 | (退回)将审批重置发送给某节点,重新审批。可驳回至发起人、上一节点、任意节点 | ✅ |
| 转办 | A 转给其 B 审批B 审批后,进入下一节点 | ✅ |
| 委派 | A 转给其 B 审批B 审批后,转给 AA 继续审批后进入下一节点 | ✅ |
| 加签 | 允许当前审批人根据需要,自行增加当前节点的审批人,支持向前、向后加签 | ✅ |
| 减签 | (取消加签)在当前审批人操作之前,减少审批人 | ✅ |
| 撤销 | (取消流程)流程发起人,可以对流程进行撤销处理 | ✅ |
| 终止 | 系统管理员,在任意节点终止流程实例 | ✅ |
| 表单权限 | 支持拖拉拽配置表单,每个审批节点可配置只读、编辑、隐藏权限 | ✅ |
| 超时审批 | 配置超时审批时间,超时后自动触发审批通过、不通过、驳回等操作 | ✅ |
| 自动提醒 | 配置提醒时间,到达时间后自动触发短信、邮箱、站内信等通知提醒,支持自定义重复提醒频次 | ✅ |
| 父子流程 | 主流程设置子流程节点,子流程节点会自动触发子流程。子流程结束后,主流程才会执行(继续往下下执行),支持同步子流程、异步子流程 | ✅ |
| 条件分支 | (排它分支)用于在流程中实现决策,即根据条件选择一个分支执行 | ✅ |
| 并行分支 | 允许将流程分成多条分支,不进行条件判断,所有分支都会执行 | ✅ |
| 包容分支 | (条件分支 + 并行分支的结合体)允许基于条件选择多条分支执行,但如果没有任何一个分支满足条件,则可以选择默认分支 | ✅ |
| 路由分支 | 根据条件选择一个分支执行(重定向到指定配置节点),也可以选择默认分支执行(继续往下执行) | ✅ |
| 触发节点 | 执行到该节点,触发 HTTP 请求、HTTP 回调、更新数据、删除数据等 | ✅ |
| 延迟节点 | 执行到该节点,审批等待一段时间再执行,支持固定时长、固定日期等 | ✅ |
| 拓展设置 | 流程前置/后置通知,节点(任务)前置、后置通知,流程报表,自动审批去重,自定流程编号、标题、摘要,流程报表等 | ✅ |
### 支付系统
| | 功能 | 描述 |
|-----|------|---------------------------|
| 🚀 | 商户信息 | 管理商户信息,支持 Saas 场景下的多商户功能 |
| 🚀 | 应用信息 | 配置商户的应用信息,对接支付宝、微信等多个支付渠道 |
| 🚀 | 支付订单 | 查看用户发起的支付宝、微信等的【支付】订单 |
| 🚀 | 退款订单 | 查看用户发起的支付宝、微信等的【退款】订单 |
ps核心功能已经实现正在对接微信小程序中...
| 🚀 | 回调通知 | 查看支付回调业务的【支付】【退款】的通知结果 |
| 🚀 | 接入示例 | 提供接入支付系统的【支付】【退款】的功能实战 |
### 基础设施
| | 功能 | 描述 |
|-----|----------|----------------------------------------------|
| 🚀 | 代码生成 | 前后端代码的生成Java、Vue、SQL、单元测试支持 CRUD 下载 |
| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 |
| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
| 🚀 | 文件服务 | 支持将文件存储到 S3MinIO、阿里云、腾讯云、七牛云、本地、FTP、数据库等 |
| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 |
| | MySQL 监控 | 监视当前系统数据库连接池状态可进行分析SQL找出系统性能瓶颈 |
| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 |
| 🚀 | 消息队列 | 基于 Redis 实现消息队列Stream 提供集群消费Pub/Sub 提供广播消费 |
| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 |
| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 |
| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 |
| 🚀 | 分布式锁 | 基于 Redis 实现分布式锁,满足并发场景 |
| 🚀 | 幂等组件 | 基于 Redis 实现幂等组件,解决重复请求问题 |
| 🚀 | 服务保障 | 基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能 |
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
| | 功能 | 描述 |
|-----|-----------|----------------------------------------------|
| 🚀 | 代码生成 | 前后端代码的生成Java、Vue、SQL、单元测试支持 CRUD 下载 |
| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 |
| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
| 🚀 | 文件服务 | 支持将文件存储到 S3MinIO、阿里云、腾讯云、七牛云、本地、FTP、数据库等 |
| 🚀 | WebSocket | 提供 WebSocket 接入示例,支持一对一、一对多发送方式 |
| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 |
| | MySQL 监控 | 监视当前系统数据库连接池状态可进行分析SQL找出系统性能瓶颈 |
| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 |
| 🚀 | 消息队列 | 基于 Redis 实现消息队列Stream 提供集群消费Pub/Sub 提供广播消费 |
| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 |
| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 |
| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 |
| 🚀 | 服务保障 | 基于 Redis 实现分布式锁、幂等、限流功能,满足高并发场景 |
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
![功能图](/.image/common/infra-feature.png)
### 数据报表
| | 功能 | 描述 |
|-----|----------|----------------------------------------------|
| 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 |
| | 功能 | 描述 |
|-----|-------|--------------------|
| 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 |
| 🚀 | 大屏设计器 | 拖拽生成数据大屏,内置几十种图表组件 |
### 微信公众号
| | 功能 | 描述 |
|-----|--------|-------------------------------|
| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 |
| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 |
| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 |
| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 |
| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 |
| 🚀 | 标签管理 | 对公众号的标签进行创建、查询、修改、删除等操作 |
| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 |
| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 |
| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 |
| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 |
| | 功能 | 描述 |
|----|--------|-------------------------------|
| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 |
| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 |
| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 |
| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 |
| 🚀 | 模版消息 | 配置和发送模版消息,用于向粉丝推送通知类消息 |
| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 |
| 🚀 | 标签管理 | 公众号的标签进行创建、查询、修改、删除等操作 |
| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 |
| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 |
| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 |
| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 |
### 商城系统
建设中...
演示地址:<https://cloud.iocoder.cn/mall-preview/>
![功能图](http://static.iocoder.cn/mall%20%E5%8A%9F%E8%83%BD%E5%9B%BE-min.png)
![功能图](/.image/common/mall-feature.png)
![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-admin-min.gif)
![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-h5-min.gif)
![功能图](/.image/common/mall-preview.png)
### 会员中心
和「商城系统」一起开发
| | 功能 | 描述 |
|-----|------|----------------------------------|
| 🚀 | 会员管理 | 会员是 C 端的消费者,该功能用于会员的搜索与管理 |
| 🚀 | 会员标签 | 对会员的标签进行创建、查询、修改、删除等操作 |
| 🚀 | 会员等级 | 对会员的等级、成长值进行管理,可用于订单折扣等会员权益 |
| 🚀 | 会员分组 | 对会员进行分组,用于用户画像、内容推送等运营手段 |
| 🚀 | 积分签到 | 回馈给签到、消费等行为的积分,会员可订单抵现、积分兑换等途径消耗 |
### ERP 系统
演示地址:<https://cloud.iocoder.cn/erp-preview/>
![功能图](/.image/common/erp-feature.png)
### CRM 系统
演示地址:<https://cloud.iocoder.cn/crm-preview/>
![功能图](/.image/common/crm-feature.png)
### AI 大模型
演示地址:<https://cloud.iocoder.cn/ai-preview/>
![功能图](/.image/common/ai-feature.png)
![功能图](/.image/common/ai-preview.gif)
## 🐨 技术栈
### 微服务
| 项目 | 说明 |
|--------------------------------------------------------------------------|--------------------|
| `yudao-dependencies` | Maven 依赖版本管理 |
| `yudao-framework` | Java 框架拓展 |
| `yudao-server` | 管理后台 + 用户 APP 的服务端 |
| `yudao-module-system` | 系统功能的 Module 模块 |
| `yudao-module-member` | 会员中心的 Module 模块 |
| `yudao-module-infra` | 基础设施的 Module 模块 |
| `yudao-module-bpm` | 工作流程的 Module 模块 |
| `yudao-module-pay` | 支付系统的 Module 模块 |
| `yudao-module-mall` | 商城系统的 Module 模块 |
| `yudao-module-mp` | 微信公众号的 Module 模块 |
| `yudao-module-report` | 大屏报表 Module 模块 |
| 项目 | 说明 |
|-----------------------|--------------------|
| `yudao-dependencies` | Maven 依赖版本管理 |
| `yudao-framework` | Java 框架拓展 |
| `yudao-server` | 管理后台 + 用户 APP 的服务端 |
| `yudao-module-system` | 系统功能的 Module 模块 |
| `yudao-module-member` | 会员中心的 Module 模块 |
| `yudao-module-infra` | 基础设施的 Module 模块 |
| `yudao-module-bpm` | 工作流程的 Module 模块 |
| `yudao-module-pay` | 支付系统的 Module 模块 |
| `yudao-module-mall` | 商城系统的 Module 模块 |
| `yudao-module-erp` | ERP 系统的 Module 模块 |
| `yudao-module-crm` | CRM 系统的 Module 模块 |
| `yudao-module-ai` | AI 大模型的 Module 模块 |
| `yudao-module-mp` | 微信公众号的 Module 模块 |
| `yudao-module-report` | 大屏报表 Module 模块 |
### 框架
| 框架 | 说明 | 版本 | 学习指南 |
|---------------------------------------------------------------------------------------------|------------------|-------------|---------------------------------------------------------------------|
| [Spring Cloud Alibaba](https://github.com/alibaba/spring-cloud-alibaba) | 微服务框架 | 2021.0.4.0 | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
| [Nacos](https://github.com/alibaba/nacos) | 配置中心 & 注册中心 | 2.0.4 | [文档](https://www.iocoder.cn/categories/Nacos/?yudao) |
| [RocketMQ](https://github.com/apache/rocketmq) | 消息队列 | 4.9.4 | [文档](https://www.iocoder.cn/categories/RocketMQ/?yudao) |
| [Sentinel](https://github.com/alibaba/sentinel) | 服务保障 | 1.8.6 | [文档](https://www.iocoder.cn/categories/Sentinel/?yudao) |
| [XXL Job](https://github.com/xuxueli/xxl-job) | 定时任务 | 2.3.1 | [文档](https://www.iocoder.cn/XXL-JOB/good-collection/?yudao) |
| [Spring Cloud Gateway](https://github.com/spring-cloud/spring-cloud-gateway) | 服务网关 | 3.4.1 | [文档](https://www.iocoder.cn/categories/Spring-Cloud-Gateway/?yudao) |
| [Seata](https://github.com/seata/seata) | 分布式事务 | 1.6.1 | [文档](https://www.iocoder.cn/categories/Seata/?yudao) |
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | |
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.16 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.6.0 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | |
| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.18.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.24 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.7.5 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.5 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.7.2 | [文档](https://doc.iocoder.cn/bpm/) |
| [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 4.0.0 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.10 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | |
| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.5.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.26 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - |
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.8.0 | - |
| 框架 | 说明 | 版本 | 学习指南 |
|---------------------------------------------------------------------------------------------|------------------|------------|---------------------------------------------------------------------|
| [Spring Cloud Alibaba](https://github.com/alibaba/spring-cloud-alibaba) | 微服务框架 | 2023.0.1 | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
| [Nacos](https://github.com/alibaba/nacos) | 配置中心 & 注册中心 | 2.3.2 | [文档](https://www.iocoder.cn/categories/Nacos/?yudao) |
| [RocketMQ](https://github.com/apache/rocketmq) | 消息队列 | 5.2.0 | [文档](https://www.iocoder.cn/categories/RocketMQ/?yudao) |
| [Sentinel](https://github.com/alibaba/sentinel) | 服务保障 | 1.8.6 | [文档](https://www.iocoder.cn/categories/Sentinel/?yudao) |
| [XXL Job](https://github.com/xuxueli/xxl-job) | 定时任务 | 2.4.0 | [文档](https://www.iocoder.cn/XXL-JOB/good-collection/?yudao) |
| [Spring Cloud Gateway](https://github.com/spring-cloud/spring-cloud-gateway) | 服务网关 | 4.1.0 | [文档](https://www.iocoder.cn/categories/Spring-Cloud-Gateway/?yudao) |
| [Seata](https://github.com/seata/seata) | 分布式事务 | 1.6.1 | [文档](https://www.iocoder.cn/categories/Seata/?yudao) |
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | |
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.23 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.7 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 4.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | |
| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.32.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 6.1.10 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 6.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 8.0.1 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 7.0.0 | [文档](https://doc.iocoder.cn/bpm/) |
| [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 4.5.0 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 9.0.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.17.1 | |
| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.6.3 | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.34 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.10.1 | - |
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 5.7.0 | - |
## 🐷 演示图
### 系统功能
| 模块 | biu | biu | biu |
|------------|--------------------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------|
| 登录 & 首页 | ![登录](https://static.iocoder.cn/images/ruoyi-vue-pro/登录.jpg?imageView2/2/format/webp/w/1280) | ![首页](https://static.iocoder.cn/images/ruoyi-vue-pro/首页.jpg?imageView2/2/format/webp/w/1280) | ![个人中心](https://static.iocoder.cn/images/ruoyi-vue-pro/个人中心.jpg?imageView2/2/format/webp/w/1280) |
| 用户 & 应用 | ![用户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/用户管理.jpg?imageView2/2/format/webp/w/1280) | ![令牌管理](https://static.iocoder.cn/images/ruoyi-vue-pro/令牌管理.jpg?imageView2/2/format/webp/w/1280) | ![应用管理](https://static.iocoder.cn/images/ruoyi-vue-pro/应用管理.jpg?imageView2/2/format/webp/w/1280) |
| 租户 & 套餐 | ![租户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/租户管理.jpg?imageView2/2/format/webp/w/1280) | ![租户套餐](https://static.iocoder.cn/images/ruoyi-vue-pro/租户套餐.png) | - |
| 部门 & 岗位 | ![部门管理](https://static.iocoder.cn/images/ruoyi-vue-pro/部门管理.jpg?imageView2/2/format/webp/w/1280) | ![岗位管理](https://static.iocoder.cn/images/ruoyi-vue-pro/岗位管理.jpg?imageView2/2/format/webp/w/1280) | - |
| 菜单 & 角色 | ![菜单管理](https://static.iocoder.cn/images/ruoyi-vue-pro/菜单管理.jpg?imageView2/2/format/webp/w/1280) | ![角色管理](https://static.iocoder.cn/images/ruoyi-vue-pro/角色管理.jpg?imageView2/2/format/webp/w/1280) | - |
| 审计日志 | ![操作日志](https://static.iocoder.cn/images/ruoyi-vue-pro/操作日志.jpg?imageView2/2/format/webp/w/1280) | ![登录日志](https://static.iocoder.cn/images/ruoyi-vue-pro/登录日志.jpg?imageView2/2/format/webp/w/1280) | - |
| 短信 | ![短信渠道](https://static.iocoder.cn/images/ruoyi-vue-pro/短信渠道.jpg?imageView2/2/format/webp/w/1280) | ![短信模板](https://static.iocoder.cn/images/ruoyi-vue-pro/短信模板.jpg?imageView2/2/format/webp/w/1280) | ![短信日志](https://static.iocoder.cn/images/ruoyi-vue-pro/短信日志.jpg?imageView2/2/format/webp/w/1280) |
| 字典 & 敏感词 | ![字典类型](https://static.iocoder.cn/images/ruoyi-vue-pro/字典类型.jpg?imageView2/2/format/webp/w/1280) | ![字典数据](https://static.iocoder.cn/images/ruoyi-vue-pro/字典数据.jpg?imageView2/2/format/webp/w/1280) | ![敏感词](https://static.iocoder.cn/images/ruoyi-vue-pro/敏感词.jpg?imageView2/2/format/webp/w/1280) |
| 错误码 & 通知 | ![错误码管理](https://static.iocoder.cn/images/ruoyi-vue-pro/错误码管理.jpg?imageView2/2/format/webp/w/1280) | ![通知公告](https://static.iocoder.cn/images/ruoyi-vue-pro/通知公告.jpg?imageView2/2/format/webp/w/1280) | - |
| 模块 | biu | biu | biu |
|----------|-----------------------------|---------------------------|--------------------------|
| 登录 & 首页 | ![登录](/.image/登录.jpg) | ![首页](/.image/首页.jpg) | ![个人中心](/.image/个人中心.jpg) |
| 用户 & 应用 | ![用户管理](/.image/用户管理.jpg) | ![令牌管理](/.image/令牌管理.jpg) | ![应用管理](/.image/应用管理.jpg) |
| 租户 & 套餐 | ![租户管理](/.image/租户管理.jpg) | ![租户套餐](/.image/租户套餐.png) | - |
| 部门 & 岗位 | ![部门管理](/.image/部门管理.jpg) | ![岗位管理](/.image/岗位管理.jpg) | - |
| 菜单 & 角色 | ![菜单管理](/.image/菜单管理.jpg) | ![角色管理](/.image/角色管理.jpg) | - |
| 审计日志 | ![操作日志](/.image/操作日志.jpg) | ![登录日志](/.image/登录日志.jpg) | - |
| 短信 | ![短信渠道](/.image/短信渠道.jpg) | ![短信模板](/.image/短信模板.jpg) | ![短信日志](/.image/短信日志.jpg) |
| 字典 & 敏感词 | ![字典类型](/.image/字典类型.jpg) | ![字典数据](/.image/字典数据.jpg) | ![敏感词](/.image/敏感词.jpg) |
| 错误码 & 通知 | ![错误码管理](/.image/错误码管理.jpg) | ![通知公告](/.image/通知公告.jpg) | - |
### 工作流程
| 模块 | biu | biu | biu |
|---------|------------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
| 流程模型 | ![流程模型-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-列表.jpg?imageView2/2/format/webp/w/1280) | ![流程模型-设计](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-设计.jpg?imageView2/2/format/webp/w/1280) | ![流程模型-定义](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-定义.jpg?imageView2/2/format/webp/w/1280) |
| 表单 & 分组 | ![流程表单](https://static.iocoder.cn/images/ruoyi-vue-pro/流程表单.jpg?imageView2/2/format/webp/w/1280) | ![用户分组](https://static.iocoder.cn/images/ruoyi-vue-pro/用户分组.jpg?imageView2/2/format/webp/w/1280) | - |
| 我的流程 | ![我的流程-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-列表.jpg?imageView2/2/format/webp/w/1280) | ![我的流程-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-发起.jpg?imageView2/2/format/webp/w/1280) | ![我的流程-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-详情.jpg?imageView2/2/format/webp/w/1280) |
| 待办 & 已办 | ![任务列表-审批](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-审批.jpg?imageView2/2/format/webp/w/1280) | ![任务列表-待办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-待办.jpg?imageView2/2/format/webp/w/1280) | ![任务列表-已办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-已办.jpg?imageView2/2/format/webp/w/1280) |
| OA 请假 | ![OA请假-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-列表.jpg?imageView2/2/format/webp/w/1280) | ![OA请假-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-发起.jpg?imageView2/2/format/webp/w/1280) | ![OA请假-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-详情.jpg?imageView2/2/format/webp/w/1280) |
| 模块 | biu | biu | biu |
|---------|---------------------------------|---------------------------------|---------------------------------|
| 流程模型 | ![流程模型-列表](/.image/流程模型-列表.jpg) | ![流程模型-设计](/.image/流程模型-设计.jpg) | ![流程模型-定义](/.image/流程模型-定义.jpg) |
| 表单 & 分组 | ![流程表单](/.image/流程表单.jpg) | ![用户分组](/.image/用户分组.jpg) | - |
| 我的流程 | ![我的流程-列表](/.image/我的流程-列表.jpg) | ![我的流程-发起](/.image/我的流程-发起.jpg) | ![我的流程-详情](/.image/我的流程-详情.jpg) |
| 待办 & 已办 | ![任务列表-审批](/.image/任务列表-审批.jpg) | ![任务列表-待办](/.image/任务列表-待办.jpg) | ![任务列表-已办](/.image/任务列表-已办.jpg) |
| OA 请假 | ![OA请假-列表](/.image/OA请假-列表.jpg) | ![OA请假-发起](/.image/OA请假-发起.jpg) | ![OA请假-详情](/.image/OA请假-详情.jpg) |
### 基础设施
| 模块 | biu | biu | biu |
|---------------|----------------------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------|
| 代码生成 | ![代码生成](https://static.iocoder.cn/images/ruoyi-vue-pro/代码生成.jpg?imageView2/2/format/webp/w/1280) | ![生成效果](https://static.iocoder.cn/images/ruoyi-vue-pro/生成效果.jpg?imageView2/2/format/webp/w/1280) | - |
| 文档 | ![系统接口](https://static.iocoder.cn/images/ruoyi-vue-pro/系统接口.jpg?imageView2/2/format/webp/w/1280) | ![数据库文档](https://static.iocoder.cn/images/ruoyi-vue-pro/数据库文档.jpg?imageView2/2/format/webp/w/1280) | - |
| 文件 & 配置 | ![文件配置](https://static.iocoder.cn/images/ruoyi-vue-pro/文件配置.jpg?imageView2/2/format/webp/w/1280) | ![文件管理](https://static.iocoder.cn/images/ruoyi-vue-pro/文件管理2.jpg?imageView2/2/format/webp/w/1280) | ![配置管理](https://static.iocoder.cn/images/ruoyi-vue-pro/配置管理.jpg?imageView2/2/format/webp/w/1280) |
| 定时任务 | ![定时任务](https://static.iocoder.cn/images/ruoyi-vue-pro/定时任务.jpg?imageView2/2/format/webp/w/1280) | ![任务日志](https://static.iocoder.cn/images/ruoyi-vue-pro/任务日志.jpg?imageView2/2/format/webp/w/1280) | - |
| API 日志 | ![访问日志](https://static.iocoder.cn/images/ruoyi-vue-pro/访问日志.jpg?imageView2/2/format/webp/w/1280) | ![错误日志](https://static.iocoder.cn/images/ruoyi-vue-pro/错误日志.jpg?imageView2/2/format/webp/w/1280) | - |
| MySQL & Redis | ![MySQL](https://static.iocoder.cn/images/ruoyi-vue-pro/MySQL.jpg?imageView2/2/format/webp/w/1280) | ![Redis](https://static.iocoder.cn/images/ruoyi-vue-pro/Redis.jpg?imageView2/2/format/webp/w/1280) | - |
| 监控平台 | ![Java监控](https://static.iocoder.cn/images/ruoyi-vue-pro/Java监控.jpg?imageView2/2/format/webp/w/1280) | ![链路追踪](https://static.iocoder.cn/images/ruoyi-vue-pro/链路追踪.jpg?imageView2/2/format/webp/w/1280) | ![日志中心](https://static.iocoder.cn/images/ruoyi-vue-pro/日志中心.jpg?imageView2/2/format/webp/w/1280) |
| 模块 | biu | biu | biu |
|---------------|-------------------------------|-----------------------------|---------------------------|
| 代码生成 | ![代码生成](/.image/代码生成.jpg) | ![生成效果](/.image/生成效果.jpg) | - |
| 文档 | ![系统接口](/.image/系统接口.jpg) | ![数据库文档](/.image/数据库文档.jpg) | - |
| 文件 & 配置 | ![文件配置](/.image/文件配置.jpg) | ![文件管理](/.image/文件管理2.jpg) | ![配置管理](/.image/配置管理.jpg) |
| 定时任务 | ![定时任务](/.image/定时任务.jpg) | ![任务日志](/.image/任务日志.jpg) | - |
| API 日志 | ![访问日志](/.image/访问日志.jpg) | ![错误日志](/.image/错误日志.jpg) | - |
| MySQL & Redis | ![MySQL](/.image/MySQL.jpg) | ![Redis](/.image/Redis.jpg) | - |
| 监控平台 | ![Java监控](/.image/Java监控.jpg) | ![链路追踪](/.image/链路追踪.jpg) | ![日志中心](/.image/日志中心.jpg) |
### 支付系统
| 模块 | biu | biu | biu |
|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
| 商家 & 应用 | ![商户信息](https://static.iocoder.cn/images/ruoyi-vue-pro/商户信息.jpg?imageView2/2/format/webp/w/1280) | ![应用信息-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-列表.jpg?imageView2/2/format/webp/w/1280) | ![应用信息-编辑](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-编辑.jpg?imageView2/2/format/webp/w/1280) |
| 支付 & 退款 | ![支付订单](https://static.iocoder.cn/images/ruoyi-vue-pro/支付订单.jpg?imageView2/2/format/webp/w/1280) | ![退款订单](https://static.iocoder.cn/images/ruoyi-vue-pro/退款订单.jpg?imageView2/2/format/webp/w/1280) | --- |
| 模块 | biu | biu | biu |
|---------|---------------------------|---------------------------------|---------------------------------|
| 商家 & 应用 | ![商户信息](/.image/商户信息.jpg) | ![应用信息-列表](/.image/应用信息-列表.jpg) | ![应用信息-编辑](/.image/应用信息-编辑.jpg) |
| 支付 & 退款 | ![支付订单](/.image/支付订单.jpg) | ![退款订单](/.image/退款订单.jpg) | --- |
### 数据报表
| 模块 | biu | biu | biu |
|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
| 报表设计器 | ![数据报表](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-数据报表.jpg?imageView2/2/format/webp/w/1280) | ![图形报表](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-图形报表.jpg?imageView2/2/format/webp/w/1280) | ![报表设计器-打印设计](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-打印设计.jpg?imageView2/2/format/webp/w/1280) |
| 大屏设计器 | ![大屏列表](https://static.iocoder.cn/images/ruoyi-vue-pro/大屏设计器-列表.jpg?imageView2/2/format/webp/w/1280) | ![大屏预览](https://static.iocoder.cn/images/ruoyi-vue-pro/大屏设计器-预览.jpg?imageView2/2/format/webp/w/1280) | ![大屏编辑](https://static.iocoder.cn/images/ruoyi-vue-pro/大屏设计器-编辑.jpg?imageView2/2/format/webp/w/1280) |
| 模块 | biu | biu | biu |
|-------|---------------------------------|---------------------------------|---------------------------------------|
| 报表设计器 | ![数据报表](/.image/报表设计器-数据报表.jpg) | ![图形报表](/.image/报表设计器-图形报表.jpg) | ![报表设计器-打印设计](/.image/报表设计器-打印设计.jpg) |
| 大屏设计器 | ![大屏列表](/.image/大屏设计器-列表.jpg) | ![大屏预览](/.image/大屏设计器-预览.jpg) | ![大屏编辑](/.image/大屏设计器-编辑.jpg) |
### 移动端(管理后台)
| biu | biu | biu |
|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|
| ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/01.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/02.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/03.png?imageView2/2/format/webp) |
| ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/04.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/05.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/06.png?imageView2/2/format/webp) |
| ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/07.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/08.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/09.png?imageView2/2/format/webp) |
| biu | biu | biu |
|----------------------------------|----------------------------------|----------------------------------|
| ![](/.image/admin-uniapp/01.png) | ![](/.image/admin-uniapp/02.png) | ![](/.image/admin-uniapp/03.png) |
| ![](/.image/admin-uniapp/04.png) | ![](/.image/admin-uniapp/05.png) | ![](/.image/admin-uniapp/06.png) |
| ![](/.image/admin-uniapp/07.png) | ![](/.image/admin-uniapp/08.png) | ![](/.image/admin-uniapp/09.png) |
目前已经实现登录、我的、工作台、编辑资料、头像修改、密码修改、常见问题、关于我们等基础功能。

96
pom.xml
View File

@@ -11,13 +11,21 @@
<module>yudao-dependencies</module>
<module>yudao-gateway</module>
<module>yudao-framework</module>
<!-- Server 主项目 -->
<module>yudao-server</module>
<!-- 各种 module 拓展 -->
<!-- <module>yudao-module-member</module>-->
<module>yudao-module-bpm</module>
<module>yudao-module-system</module>
<module>yudao-module-infra</module>
<!-- <module>yudao-module-pay</module>-->
<module>yudao-module-member</module>
<module>yudao-module-bpm</module>
<module>yudao-module-pay</module>
<module>yudao-module-report</module>
<module>yudao-module-mp</module>
<module>yudao-module-mall</module>
<module>yudao-module-crm</module>
<module>yudao-module-erp</module>
<module>yudao-module-ai</module>
<module>yudao-module-iot</module>
</modules>
<name>${project.artifactId}</name>
@@ -25,17 +33,18 @@
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
<properties>
<revision>1.7.3-snapshot</revision>
<revision>2025.10-SNAPSHOT</revision>
<!-- Maven 相关 -->
<java.version>1.8</java.version>
<java.version>17</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<!-- 看看咋放到 bom 里 -->
<lombok.version>1.18.26</lombok.version>
<spring.boot.version>2.7.11</spring.boot.version>
<mapstruct.version>1.5.5.Final</mapstruct.version>
<maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version>
<maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
<flatten-maven-plugin.version>1.7.2</flatten-maven-plugin.version>
<!-- maven-surefire-plugin 暂时无法通过 bom 的依赖读取(兼容老版本 IDEA 2024 及以前版本) -->
<lombok.version>1.18.42</lombok.version>
<spring.boot.version>3.5.4</spring.boot.version>
<mapstruct.version>1.6.3</mapstruct.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
@@ -79,25 +88,88 @@
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<!-- 确保 Lombok 生成的 getter/setter 方法能被 MapStruct 正确识别,
避免出现 No property named “xxx" exists 的编译错误 -->
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
<!-- 编译参数写在 arg 内,解决 Spring Boot 3.2 的 Parameter Name Discovery 问题 -->
<debug>false</debug>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- 统一 revision 版本 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>${flatten-maven-plugin.version}</version>
<configuration>
<flattenMode>oss</flattenMode>
<updatePomFile>true</updatePomFile>
</configuration>
<executions>
<execution>
<goals>
<goal>flatten</goal>
</goals>
<id>flatten</id>
<phase>process-resources</phase>
</execution>
<execution>
<goals>
<goal>clean</goal>
</goals>
<id>flatten.clean</id>
<phase>clean</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- 使用 aliyun 的 Maven 源,提升下载速度 -->
<!-- 使用 huawei / aliyun 的 Maven 源,提升下载速度 -->
<repositories>
<repository>
<id>huaweicloud</id>
<name>huawei</name>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</repository>
<repository>
<id>aliyunmaven</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
</project>

View File

@@ -0,0 +1,162 @@
version: '3'
services:
yudao-gateway:
image: yudao-gateway
container_name: yudao-gateway
environment:
- TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
- JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
- SW_AGENT_NAME=yudao-gateway
- SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
- SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
- SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
- SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
- SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
- SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR] # 注册中心地址
- SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
volumes:
- /docker/yudao-cloud/logs:/root/logs/
- /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
restart: always
network_mode: host # 以主机网络环境运行
yudao-system:
image: yudao-module-system-biz
container_name: yudao-system
environment:
- TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
- JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
- SW_AGENT_NAME=yudao-gateway
- SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
- SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
- SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
- SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
- SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
- SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR] # 注册中心地址
- SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
volumes:
- /docker/yudao-cloud/logs:/root/logs/
- /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
healthcheck:
test: [ "CMD","curl","-f","http://localhost:48081" ]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
restart: always
network_mode: host
yudao-infra:
image: yudao-module-infra-biz
container_name: yudao-infra
environment:
- TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
- JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
- SW_AGENT_NAME=yudao-gateway
- SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
- SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
- SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
- SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
- SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
- SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR] # 注册中心地址
- SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
volumes:
- /docker/yudao-cloud/logs:/root/logs/
- /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
restart: always
network_mode: host
healthcheck:
test: [ "CMD","curl","-f","http://localhost:48082" ]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
depends_on:
yudao-system:
condition: service_healthy
yudao-report:
image: yudao-module-report-biz
container_name: yudao-report
environment:
- TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
- JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
- SW_AGENT_NAME=yudao-gateway
- SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
- SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
- SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
- SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
- SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
- SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR] # 注册中心地址
- SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
volumes:
- /docker/yudao-cloud/logs:/root/logs/
- /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
restart: always
network_mode: host
depends_on:
yudao-infra:
condition: service_healthy
yudao-bpm:
image: yudao-module-bpm-biz
container_name: yudao-bpm
environment:
- TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
- JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
- SW_AGENT_NAME=yudao-gateway
- SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
- SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
- SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
- SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
- SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
- SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR] # 注册中心地址
- SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
volumes:
- /docker/yudao-cloud/logs:/root/logs/
- /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
restart: always
network_mode: host
depends_on:
yudao-infra:
condition: service_healthy
yudao-pay:
image: yudao-module-pay-biz
container_name: yudao-pay
environment:
- TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
- JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
- SW_AGENT_NAME=yudao-gateway
- SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
- SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
- SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
- SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
- SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
- SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR] # 注册中心地址
- SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
volumes:
- /docker/yudao-cloud/logs:/root/logs/
- /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
restart: always
network_mode: host
depends_on:
yudao-infra:
condition: service_healthy
yudao-mp:
image: yudao-module-mp-biz
container_name: yudao-mp
environment:
- TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
- JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
- SW_AGENT_NAME=yudao-gateway
- SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
- SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
- SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
- SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
- SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
- SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR] # 注册中心地址
- SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
volumes:
- /docker/yudao-cloud/logs:/root/logs/
- /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
restart: always
network_mode: host
depends_on:
yudao-infra:
condition: service_healthy

View File

@@ -5,7 +5,7 @@
"infaBaseUrl": "http://127.0.0.1:48082/admin-api",
"token": "test1",
"adminTenentId": "1",
"adminTenantId": "1",
"tag": "${HOSTNAME}",
"appApi": "http://127.0.0.1:48080/app-api",
@@ -18,7 +18,7 @@
"infaBaseUrl": "http://127.0.0.1:48080/admin-api",
"token": "test1",
"adminTenentId": "1",
"adminTenantId": "1",
"tag": "${HOSTNAME}",
"appApi": "http://127.0.0.1:8888/app-api",

View File

@@ -1,3 +0,0 @@
暂未适配国产 DM 数据库,如果你有需要,可以微信联系 wangwenbin-server 一起建设。
你需要把表结构与数据导入到 DM 数据库,我来测试与适配代码。

View File

@@ -0,0 +1,598 @@
package liquibase.database.core;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import liquibase.CatalogAndSchema;
import liquibase.Scope;
import liquibase.database.AbstractJdbcDatabase;
import liquibase.database.DatabaseConnection;
import liquibase.database.OfflineConnection;
import liquibase.database.jvm.JdbcConnection;
import liquibase.exception.DatabaseException;
import liquibase.exception.UnexpectedLiquibaseException;
import liquibase.exception.ValidationErrors;
import liquibase.executor.ExecutorService;
import liquibase.statement.DatabaseFunction;
import liquibase.statement.SequenceCurrentValueFunction;
import liquibase.statement.SequenceNextValueFunction;
import liquibase.statement.core.RawCallStatement;
import liquibase.statement.core.RawSqlStatement;
import liquibase.structure.DatabaseObject;
import liquibase.structure.core.Catalog;
import liquibase.structure.core.Index;
import liquibase.structure.core.PrimaryKey;
import liquibase.structure.core.Schema;
import liquibase.util.JdbcUtils;
import liquibase.util.StringUtil;
public class DmDatabase extends AbstractJdbcDatabase {
private static final String PRODUCT_NAME = "DM DBMS";
@Override
protected String getDefaultDatabaseProductName() {
return PRODUCT_NAME;
}
/**
* Is this AbstractDatabase subclass the correct one to use for the given connection.
*
* @param conn
*/
@Override
public boolean isCorrectDatabaseImplementation(DatabaseConnection conn) throws DatabaseException {
return PRODUCT_NAME.equalsIgnoreCase(conn.getDatabaseProductName());
}
/**
* If this database understands the given url, return the default driver class name. Otherwise return null.
*
* @param url
*/
@Override
public String getDefaultDriver(String url) {
if(url.startsWith("jdbc:dm")) {
return "dm.jdbc.driver.DmDriver";
}
return null;
}
/**
* Returns an all-lower-case short name of the product. Used for end-user selecting of database type
* such as the DBMS precondition.
*/
@Override
public String getShortName() {
return "dm";
}
@Override
public Integer getDefaultPort() {
return 5236;
}
/**
* Returns whether this database support initially deferrable columns.
*/
@Override
public boolean supportsInitiallyDeferrableColumns() {
return true;
}
@Override
public boolean supportsTablespaces() {
return true;
}
@Override
public int getPriority() {
return PRIORITY_DEFAULT;
}
private static final Pattern PROXY_USER = Pattern.compile(".*(?:thin|oci)\\:(.+)/@.*");
protected final int SHORT_IDENTIFIERS_LENGTH = 30;
protected final int LONG_IDENTIFIERS_LEGNTH = 128;
public static final int ORACLE_12C_MAJOR_VERSION = 12;
private Set<String> reservedWords = new HashSet<>();
private Set<String> userDefinedTypes;
private Map<String, String> savedSessionNlsSettings;
private Boolean canAccessDbaRecycleBin;
private Integer databaseMajorVersion;
private Integer databaseMinorVersion;
/**
* Default constructor for an object that represents the Oracle Database DBMS.
*/
public DmDatabase() {
super.unquotedObjectsAreUppercased = true;
//noinspection HardCodedStringLiteral
super.setCurrentDateTimeFunction("SYSTIMESTAMP");
// Setting list of Oracle's native functions
//noinspection HardCodedStringLiteral
dateFunctions.add(new DatabaseFunction("SYSDATE"));
//noinspection HardCodedStringLiteral
dateFunctions.add(new DatabaseFunction("SYSTIMESTAMP"));
//noinspection HardCodedStringLiteral
dateFunctions.add(new DatabaseFunction("CURRENT_TIMESTAMP"));
//noinspection HardCodedStringLiteral
super.sequenceNextValueFunction = "%s.nextval";
//noinspection HardCodedStringLiteral
super.sequenceCurrentValueFunction = "%s.currval";
}
private void tryProxySession(final String url, final Connection con) {
Matcher m = PROXY_USER.matcher(url);
if (m.matches()) {
Properties props = new Properties();
props.put("PROXY_USER_NAME", m.group(1));
try {
Method method = con.getClass().getMethod("openProxySession", int.class, Properties.class);
method.setAccessible(true);
method.invoke(con, 1, props);
} catch (Exception e) {
Scope.getCurrentScope().getLog(getClass()).info("Could not open proxy session on OracleDatabase: " + e.getCause().getMessage());
}
}
}
@Override
public int getDatabaseMajorVersion() throws DatabaseException {
if (databaseMajorVersion == null) {
return super.getDatabaseMajorVersion();
} else {
return databaseMajorVersion;
}
}
@Override
public int getDatabaseMinorVersion() throws DatabaseException {
if (databaseMinorVersion == null) {
return super.getDatabaseMinorVersion();
} else {
return databaseMinorVersion;
}
}
@Override
public String getJdbcCatalogName(CatalogAndSchema schema) {
return null;
}
@Override
public String getJdbcSchemaName(CatalogAndSchema schema) {
return correctObjectName((schema.getCatalogName() == null) ? schema.getSchemaName() : schema.getCatalogName(), Schema.class);
}
@Override
protected String getAutoIncrementClause(final String generationType, final Boolean defaultOnNull) {
if (StringUtil.isEmpty(generationType)) {
return super.getAutoIncrementClause();
}
String autoIncrementClause = "GENERATED %s AS IDENTITY"; // %s -- [ ALWAYS | BY DEFAULT [ ON NULL ] ]
String generationStrategy = generationType;
if (Boolean.TRUE.equals(defaultOnNull) && generationType.toUpperCase().equals("BY DEFAULT")) {
generationStrategy += " ON NULL";
}
return String.format(autoIncrementClause, generationStrategy);
}
@Override
public String generatePrimaryKeyName(String tableName) {
if (tableName.length() > 27) {
//noinspection HardCodedStringLiteral
return "PK_" + tableName.toUpperCase(Locale.US).substring(0, 27);
} else {
//noinspection HardCodedStringLiteral
return "PK_" + tableName.toUpperCase(Locale.US);
}
}
@Override
public boolean isReservedWord(String objectName) {
return reservedWords.contains(objectName.toUpperCase());
}
@Override
public boolean supportsSequences() {
return true;
}
/**
* Oracle supports catalogs in liquibase terms
*
* @return false
*/
@Override
public boolean supportsSchemas() {
return false;
}
@Override
protected String getConnectionCatalogName() throws DatabaseException {
if (getConnection() instanceof OfflineConnection) {
return getConnection().getCatalog();
}
try {
//noinspection HardCodedStringLiteral
return Scope.getCurrentScope().getSingleton(ExecutorService.class).getExecutor("jdbc", this).queryForObject(new RawCallStatement("select sys_context( 'userenv', 'current_schema' ) from dual"), String.class);
} catch (Exception e) {
//noinspection HardCodedStringLiteral
Scope.getCurrentScope().getLog(getClass()).info("Error getting default schema", e);
}
return null;
}
@Override
public String getDefaultCatalogName() {//NOPMD
return (super.getDefaultCatalogName() == null) ? null : super.getDefaultCatalogName().toUpperCase(Locale.US);
}
/**
* <p>Returns an Oracle date literal with the same value as a string formatted using ISO 8601.</p>
*
* <p>Convert an ISO8601 date string to one of the following results:
* to_date('1995-05-23', 'YYYY-MM-DD')
* to_date('1995-05-23 09:23:59', 'YYYY-MM-DD HH24:MI:SS')</p>
* <p>
* Implementation restriction:<br>
* Currently, only the following subsets of ISO8601 are supported:<br>
* <ul>
* <li>YYYY-MM-DD</li>
* <li>YYYY-MM-DDThh:mm:ss</li>
* </ul>
*/
@Override
public String getDateLiteral(String isoDate) {
String normalLiteral = super.getDateLiteral(isoDate);
if (isDateOnly(isoDate)) {
return "TO_DATE(" + normalLiteral + ", 'YYYY-MM-DD')";
} else if (isTimeOnly(isoDate)) {
return "TO_DATE(" + normalLiteral + ", 'HH24:MI:SS')";
} else if (isTimestamp(isoDate)) {
return "TO_TIMESTAMP(" + normalLiteral + ", 'YYYY-MM-DD HH24:MI:SS.FF')";
} else if (isDateTime(isoDate)) {
int seppos = normalLiteral.lastIndexOf('.');
if (seppos != -1) {
normalLiteral = normalLiteral.substring(0, seppos) + "'";
}
return "TO_DATE(" + normalLiteral + ", 'YYYY-MM-DD HH24:MI:SS')";
}
return "UNSUPPORTED:" + isoDate;
}
@Override
public boolean isSystemObject(DatabaseObject example) {
if (example == null) {
return false;
}
if (this.isLiquibaseObject(example)) {
return false;
}
if (example instanceof Schema) {
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral
if ("SYSTEM".equals(example.getName()) || "SYS".equals(example.getName()) || "CTXSYS".equals(example.getName()) || "XDB".equals(example.getName())) {
return true;
}
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral
if ("SYSTEM".equals(example.getSchema().getCatalogName()) || "SYS".equals(example.getSchema().getCatalogName()) || "CTXSYS".equals(example.getSchema().getCatalogName()) || "XDB".equals(example.getSchema().getCatalogName())) {
return true;
}
} else if (isSystemObject(example.getSchema())) {
return true;
}
if (example instanceof Catalog) {
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral
if (("SYSTEM".equals(example.getName()) || "SYS".equals(example.getName()) || "CTXSYS".equals(example.getName()) || "XDB".equals(example.getName()))) {
return true;
}
} else if (example.getName() != null) {
//noinspection HardCodedStringLiteral
if (example.getName().startsWith("BIN$")) { //oracle deleted table
boolean filteredInOriginalQuery = this.canAccessDbaRecycleBin();
if (!filteredInOriginalQuery) {
filteredInOriginalQuery = StringUtil.trimToEmpty(example.getSchema().getName()).equalsIgnoreCase(this.getConnection().getConnectionUserName());
}
if (filteredInOriginalQuery) {
return !((example instanceof PrimaryKey) || (example instanceof Index) || (example instanceof
liquibase.statement.UniqueConstraint));
} else {
return true;
}
} else //noinspection HardCodedStringLiteral
if (example.getName().startsWith("AQ$")) { //oracle AQ tables
return true;
} else //noinspection HardCodedStringLiteral
if (example.getName().startsWith("DR$")) { //oracle index tables
return true;
} else //noinspection HardCodedStringLiteral
if (example.getName().startsWith("SYS_IOT_OVER")) { //oracle system table
return true;
} else //noinspection HardCodedStringLiteral,HardCodedStringLiteral
if ((example.getName().startsWith("MDRT_") || example.getName().startsWith("MDRS_")) && example.getName().endsWith("$")) {
// CORE-1768 - Oracle creates these for spatial indices and will remove them when the index is removed.
return true;
} else //noinspection HardCodedStringLiteral
if (example.getName().startsWith("MLOG$_")) { //Created by materliaized view logs for every table that is part of a materialized view. Not available for DDL operations.
return true;
} else //noinspection HardCodedStringLiteral
if (example.getName().startsWith("RUPD$_")) { //Created by materialized view log tables using primary keys. Not available for DDL operations.
return true;
} else //noinspection HardCodedStringLiteral
if (example.getName().startsWith("WM$_")) { //Workspace Manager backup tables.
return true;
} else //noinspection HardCodedStringLiteral
if ("CREATE$JAVA$LOB$TABLE".equals(example.getName())) { //This table contains the name of the Java object, the date it was loaded, and has a BLOB column to store the Java object.
return true;
} else //noinspection HardCodedStringLiteral
if ("JAVA$CLASS$MD5$TABLE".equals(example.getName())) { //This is a hash table that tracks the loading of Java objects into a schema.
return true;
} else //noinspection HardCodedStringLiteral
if (example.getName().startsWith("ISEQ$$_")) { //System-generated sequence
return true;
} else //noinspection HardCodedStringLiteral
if (example.getName().startsWith("USLOG$")) { //for update materialized view
return true;
} else if (example.getName().startsWith("SYS_FBA")) { //for Flashback tables
return true;
}
}
return super.isSystemObject(example);
}
@Override
public boolean supportsAutoIncrement() {
// Oracle supports Identity beginning with version 12c
boolean isAutoIncrementSupported = false;
try {
if (getDatabaseMajorVersion() >= 12) {
isAutoIncrementSupported = true;
}
// Returning true will generate create table command with 'IDENTITY' clause, example:
// CREATE TABLE AutoIncTest (IDPrimaryKey NUMBER(19) GENERATED BY DEFAULT AS IDENTITY NOT NULL, TypeID NUMBER(3) NOT NULL, Description NVARCHAR2(50), CONSTRAINT PK_AutoIncTest PRIMARY KEY (IDPrimaryKey));
// While returning false will continue to generate create table command without 'IDENTITY' clause, example:
// CREATE TABLE AutoIncTest (IDPrimaryKey NUMBER(19) NOT NULL, TypeID NUMBER(3) NOT NULL, Description NVARCHAR2(50), CONSTRAINT PK_AutoIncTest PRIMARY KEY (IDPrimaryKey));
} catch (DatabaseException ex) {
isAutoIncrementSupported = false;
}
return isAutoIncrementSupported;
}
// public Set<UniqueConstraint> findUniqueConstraints(String schema) throws DatabaseException {
// Set<UniqueConstraint> returnSet = new HashSet<UniqueConstraint>();
//
// List<Map> maps = new Executor(this).queryForList(new RawSqlStatement("SELECT UC.CONSTRAINT_NAME, UCC.TABLE_NAME, UCC.COLUMN_NAME FROM USER_CONSTRAINTS UC, USER_CONS_COLUMNS UCC WHERE UC.CONSTRAINT_NAME=UCC.CONSTRAINT_NAME AND CONSTRAINT_TYPE='U' ORDER BY UC.CONSTRAINT_NAME"));
//
// UniqueConstraint constraint = null;
// for (Map map : maps) {
// if (constraint == null || !constraint.getName().equals(constraint.getName())) {
// returnSet.add(constraint);
// Table table = new Table((String) map.get("TABLE_NAME"));
// constraint = new UniqueConstraint(map.get("CONSTRAINT_NAME").toString(), table);
// }
// }
// if (constraint != null) {
// returnSet.add(constraint);
// }
//
// return returnSet;
// }
@Override
public boolean supportsRestrictForeignKeys() {
return false;
}
@Override
public int getDataTypeMaxParameters(String dataTypeName) {
//noinspection HardCodedStringLiteral
if ("BINARY_FLOAT".equals(dataTypeName.toUpperCase())) {
return 0;
}
//noinspection HardCodedStringLiteral
if ("BINARY_DOUBLE".equals(dataTypeName.toUpperCase())) {
return 0;
}
return super.getDataTypeMaxParameters(dataTypeName);
}
public String getSystemTableWhereClause(String tableNameColumn) {
List<String> clauses = new ArrayList<String>(Arrays.asList("BIN$",
"AQ$",
"DR$",
"SYS_IOT_OVER",
"MLOG$_",
"RUPD$_",
"WM$_",
"ISEQ$$_",
"USLOG$",
"SYS_FBA"));
for (int i = 0;i<clauses.size(); i++) {
clauses.set(i, tableNameColumn+" NOT LIKE '"+clauses.get(i)+"%'");
}
return "("+ StringUtil.join(clauses, " AND ") + ")";
}
@Override
public boolean jdbcCallsCatalogsSchemas() {
return true;
}
public Set<String> getUserDefinedTypes() {
if (userDefinedTypes == null) {
userDefinedTypes = new HashSet<>();
if ((getConnection() != null) && !(getConnection() instanceof OfflineConnection)) {
try {
try {
//noinspection HardCodedStringLiteral
userDefinedTypes.addAll(Scope.getCurrentScope().getSingleton(ExecutorService.class).getExecutor("jdbc", this).queryForList(new RawSqlStatement("SELECT DISTINCT TYPE_NAME FROM ALL_TYPES"), String.class));
} catch (DatabaseException e) { //fall back to USER_TYPES if the user cannot see ALL_TYPES
//noinspection HardCodedStringLiteral
userDefinedTypes.addAll(Scope.getCurrentScope().getSingleton(ExecutorService.class).getExecutor("jdbc", this).queryForList(new RawSqlStatement("SELECT TYPE_NAME FROM USER_TYPES"), String.class));
}
} catch (DatabaseException e) {
//ignore error
}
}
}
return userDefinedTypes;
}
@Override
public String generateDatabaseFunctionValue(DatabaseFunction databaseFunction) {
//noinspection HardCodedStringLiteral
if ((databaseFunction != null) && "current_timestamp".equalsIgnoreCase(databaseFunction.toString())) {
return databaseFunction.toString();
}
if ((databaseFunction instanceof SequenceNextValueFunction) || (databaseFunction instanceof
SequenceCurrentValueFunction)) {
String quotedSeq = super.generateDatabaseFunctionValue(databaseFunction);
// replace "myschema.my_seq".nextval with "myschema"."my_seq".nextval
return quotedSeq.replaceFirst("\"([^\\.\"]+)\\.([^\\.\"]+)\"", "\"$1\".\"$2\"");
}
return super.generateDatabaseFunctionValue(databaseFunction);
}
@Override
public ValidationErrors validate() {
ValidationErrors errors = super.validate();
DatabaseConnection connection = getConnection();
if ((connection == null) || (connection instanceof OfflineConnection)) {
//noinspection HardCodedStringLiteral
Scope.getCurrentScope().getLog(getClass()).info("Cannot validate offline database");
return errors;
}
if (!canAccessDbaRecycleBin()) {
errors.addWarning(getDbaRecycleBinWarning());
}
return errors;
}
public String getDbaRecycleBinWarning() {
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral,
// HardCodedStringLiteral
//noinspection HardCodedStringLiteral,HardCodedStringLiteral,HardCodedStringLiteral
return "Liquibase needs to access the DBA_RECYCLEBIN table so we can automatically handle the case where " +
"constraints are deleted and restored. Since Oracle doesn't properly restore the original table names " +
"referenced in the constraint, we use the information from the DBA_RECYCLEBIN to automatically correct this" +
" issue.\n" +
"\n" +
"The user you used to connect to the database (" + getConnection().getConnectionUserName() +
") needs to have \"SELECT ON SYS.DBA_RECYCLEBIN\" permissions set before we can perform this operation. " +
"Please run the following SQL to set the appropriate permissions, and try running the command again.\n" +
"\n" +
" GRANT SELECT ON SYS.DBA_RECYCLEBIN TO " + getConnection().getConnectionUserName() + ";";
}
public boolean canAccessDbaRecycleBin() {
if (canAccessDbaRecycleBin == null) {
DatabaseConnection connection = getConnection();
if ((connection == null) || (connection instanceof OfflineConnection)) {
return false;
}
Statement statement = null;
try {
statement = ((JdbcConnection) connection).createStatement();
@SuppressWarnings("HardCodedStringLiteral") ResultSet resultSet = statement.executeQuery("select 1 from dba_recyclebin where 0=1");
resultSet.close(); //don't need to do anything with the result set, just make sure statement ran.
this.canAccessDbaRecycleBin = true;
} catch (Exception e) {
//noinspection HardCodedStringLiteral
if ((e instanceof SQLException) && e.getMessage().startsWith("ORA-00942")) { //ORA-00942: table or view does not exist
this.canAccessDbaRecycleBin = false;
} else {
//noinspection HardCodedStringLiteral
Scope.getCurrentScope().getLog(getClass()).warning("Cannot check dba_recyclebin access", e);
this.canAccessDbaRecycleBin = false;
}
} finally {
JdbcUtils.close(null, statement);
}
}
return canAccessDbaRecycleBin;
}
@Override
public boolean supportsNotNullConstraintNames() {
return true;
}
/**
* Tests if the given String would be a valid identifier in Oracle DBMS. In Oracle, a valid identifier has
* the following form (case-insensitive comparison):
* 1st character: A-Z
* 2..n characters: A-Z0-9$_#
* The maximum length of an identifier differs by Oracle version and object type.
*/
public boolean isValidOracleIdentifier(String identifier, Class<? extends DatabaseObject> type) {
if ((identifier == null) || (identifier.length() < 1))
return false;
if (!identifier.matches("^(i?)[A-Z][A-Z0-9\\$\\_\\#]*$"))
return false;
/*
* @todo It seems we currently do not have a class for tablespace identifiers, and all other classes
* we do know seem to be supported as 12cR2 long identifiers, so:
*/
return (identifier.length() <= LONG_IDENTIFIERS_LEGNTH);
}
/**
* Returns the maximum number of bytes (NOT: characters) for an identifier. For Oracle <=12c Release 20, this
* is 30 bytes, and starting from 12cR2, up to 128 (except for tablespaces, PDB names and some other rather rare
* object types).
*
* @return the maximum length of an object identifier, in bytes
*/
public int getIdentifierMaximumLength() {
try {
if (getDatabaseMajorVersion() < ORACLE_12C_MAJOR_VERSION) {
return SHORT_IDENTIFIERS_LENGTH;
} else if ((getDatabaseMajorVersion() == ORACLE_12C_MAJOR_VERSION) && (getDatabaseMinorVersion() <= 1)) {
return SHORT_IDENTIFIERS_LENGTH;
} else {
return LONG_IDENTIFIERS_LEGNTH;
}
} catch (DatabaseException ex) {
throw new UnexpectedLiquibaseException("Cannot determine the Oracle database version number", ex);
}
}
}

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