ai-engineering-init 1.3.4 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/.claude/hooks/skill-forced-eval.js +2 -0
  2. package/.claude/settings.json +3 -3
  3. package/.claude/skills/add-skill/SKILL.md +79 -32
  4. package/.claude/skills/api-development/SKILL.md +83 -377
  5. package/.claude/skills/architecture-design/SKILL.md +138 -632
  6. package/.claude/skills/backend-annotations/SKILL.md +134 -506
  7. package/.claude/skills/banana-image/SKILL.md +10 -3
  8. package/.claude/skills/brainstorm/SKILL.md +103 -535
  9. package/.claude/skills/bug-detective/SKILL.md +147 -1097
  10. package/.claude/skills/bug-detective/references/error-patterns.md +242 -0
  11. package/.claude/skills/code-patterns/SKILL.md +116 -426
  12. package/.claude/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  13. package/.claude/skills/crud-development/SKILL.md +64 -304
  14. package/.claude/skills/data-permission/SKILL.md +105 -412
  15. package/.claude/skills/data-permission/references/custom-data-scope.md +90 -0
  16. package/.claude/skills/file-oss-management/SKILL.md +106 -714
  17. package/.claude/skills/file-oss-management/references/entities.md +105 -0
  18. package/.claude/skills/file-oss-management/references/service-impl.md +104 -0
  19. package/.claude/skills/leniu-api-development/SKILL.md +142 -626
  20. package/.claude/skills/leniu-api-development/references/real-examples.md +273 -0
  21. package/.claude/skills/leniu-architecture-design/SKILL.md +176 -391
  22. package/.claude/skills/leniu-backend-annotations/SKILL.md +132 -519
  23. package/.claude/skills/leniu-brainstorm/SKILL.md +132 -541
  24. package/.claude/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  25. package/.claude/skills/leniu-crud-development/SKILL.md +232 -938
  26. package/.claude/skills/leniu-crud-development/references/templates.md +597 -0
  27. package/.claude/skills/leniu-customization-location/SKILL.md +410 -0
  28. package/.claude/skills/leniu-data-permission/SKILL.md +70 -0
  29. package/.claude/skills/leniu-java-entity/SKILL.md +76 -590
  30. package/.claude/skills/leniu-java-entity/references/templates.md +237 -0
  31. package/.claude/skills/leniu-java-export/SKILL.md +94 -379
  32. package/.claude/skills/leniu-java-logging/SKILL.md +106 -709
  33. package/.claude/skills/leniu-java-logging/references/data-mask.md +46 -0
  34. package/.claude/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  35. package/.claude/skills/leniu-java-mybatis/SKILL.md +73 -446
  36. package/.claude/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  37. package/.claude/skills/leniu-report-customization/SKILL.md +111 -365
  38. package/.claude/skills/leniu-report-customization/references/table-fields.md +93 -0
  39. package/.claude/skills/leniu-report-standard-customization/SKILL.md +111 -334
  40. package/.claude/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  41. package/.claude/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  42. package/.claude/skills/leniu-security-guard/SKILL.md +133 -347
  43. package/.claude/skills/mysql-debug/SKILL.md +364 -0
  44. package/.claude/skills/openspec-apply-change/SKILL.md +10 -1
  45. package/.claude/skills/openspec-archive-change/SKILL.md +9 -1
  46. package/.claude/skills/openspec-bulk-archive-change/SKILL.md +9 -1
  47. package/.claude/skills/openspec-continue-change/SKILL.md +9 -1
  48. package/.claude/skills/openspec-explore/SKILL.md +10 -1
  49. package/.claude/skills/openspec-ff-change/SKILL.md +9 -1
  50. package/.claude/skills/openspec-new-change/SKILL.md +9 -1
  51. package/.claude/skills/openspec-onboard/SKILL.md +15 -130
  52. package/.claude/skills/openspec-sync-specs/SKILL.md +9 -1
  53. package/.claude/skills/openspec-verify-change/SKILL.md +9 -1
  54. package/.claude/skills/performance-doctor/SKILL.md +110 -434
  55. package/.claude/skills/redis-cache/SKILL.md +89 -595
  56. package/.claude/skills/redis-cache/references/listeners.md +23 -0
  57. package/.claude/skills/scheduled-jobs/SKILL.md +88 -407
  58. package/.claude/skills/security-guard/SKILL.md +137 -532
  59. package/.claude/skills/security-guard/references/encrypt-config.md +103 -0
  60. package/.claude/skills/security-guard/references/sensitive-strategies.md +42 -0
  61. package/.claude/skills/sms-mail/SKILL.md +116 -574
  62. package/.claude/skills/sms-mail/references/mail-config.md +88 -0
  63. package/.claude/skills/sms-mail/references/sms-config.md +74 -0
  64. package/.claude/skills/social-login/SKILL.md +112 -514
  65. package/.claude/skills/social-login/references/provider-configs.md +118 -0
  66. package/.claude/skills/tenant-management/SKILL.md +129 -444
  67. package/.claude/skills/tenant-management/references/tenant-scenarios.md +91 -0
  68. package/.claude/skills/test-development/SKILL.md +86 -540
  69. package/.claude/skills/test-development/references/parameterized-examples.md +119 -0
  70. package/.claude/skills/utils-toolkit/SKILL.md +52 -305
  71. package/.claude/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  72. package/.claude/skills/websocket-sse/SKILL.md +105 -550
  73. package/.claude/skills/workflow-engine/SKILL.md +147 -502
  74. package/.codex/skills/add-skill/SKILL.md +79 -32
  75. package/.codex/skills/api-development/SKILL.md +172 -599
  76. package/.codex/skills/architecture-design/SKILL.md +138 -504
  77. package/.codex/skills/backend-annotations/SKILL.md +134 -496
  78. package/.codex/skills/banana-image/SKILL.md +10 -3
  79. package/.codex/skills/brainstorm/SKILL.md +103 -535
  80. package/.codex/skills/bug-detective/SKILL.md +147 -1097
  81. package/.codex/skills/bug-detective/references/error-patterns.md +242 -0
  82. package/.codex/skills/code-patterns/SKILL.md +120 -282
  83. package/.codex/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  84. package/.codex/skills/crud-development/SKILL.md +64 -292
  85. package/.codex/skills/data-permission/SKILL.md +108 -407
  86. package/.codex/skills/data-permission/references/custom-data-scope.md +90 -0
  87. package/.codex/skills/database-ops/SKILL.md +8 -154
  88. package/.codex/skills/error-handler/SKILL.md +10 -0
  89. package/.codex/skills/file-oss-management/SKILL.md +106 -714
  90. package/.codex/skills/file-oss-management/references/entities.md +105 -0
  91. package/.codex/skills/file-oss-management/references/service-impl.md +104 -0
  92. package/.codex/skills/git-workflow/SKILL.md +27 -5
  93. package/.codex/skills/leniu-api-development/SKILL.md +142 -626
  94. package/.codex/skills/leniu-api-development/references/real-examples.md +273 -0
  95. package/.codex/skills/leniu-architecture-design/SKILL.md +176 -391
  96. package/.codex/skills/leniu-backend-annotations/SKILL.md +132 -519
  97. package/.codex/skills/leniu-brainstorm/SKILL.md +132 -541
  98. package/.codex/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  99. package/.codex/skills/leniu-crud-development/SKILL.md +232 -938
  100. package/.codex/skills/leniu-crud-development/references/templates.md +597 -0
  101. package/.codex/skills/leniu-customization-location/SKILL.md +410 -0
  102. package/.codex/skills/leniu-data-permission/SKILL.md +70 -0
  103. package/.codex/skills/leniu-java-code-style/SKILL.md +510 -0
  104. package/.codex/skills/leniu-java-entity/SKILL.md +76 -590
  105. package/.codex/skills/leniu-java-entity/references/templates.md +237 -0
  106. package/.codex/skills/leniu-java-export/SKILL.md +94 -379
  107. package/.codex/skills/leniu-java-logging/SKILL.md +106 -709
  108. package/.codex/skills/leniu-java-logging/references/data-mask.md +46 -0
  109. package/.codex/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  110. package/.codex/skills/leniu-java-mybatis/SKILL.md +73 -446
  111. package/.codex/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  112. package/.codex/skills/leniu-report-customization/SKILL.md +111 -365
  113. package/.codex/skills/leniu-report-customization/references/table-fields.md +93 -0
  114. package/.codex/skills/leniu-report-standard-customization/SKILL.md +111 -334
  115. package/.codex/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  116. package/.codex/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  117. package/.codex/skills/leniu-security-guard/SKILL.md +133 -347
  118. package/.codex/skills/mysql-debug/SKILL.md +364 -0
  119. package/.codex/skills/openspec-apply-change/SKILL.md +10 -1
  120. package/.codex/skills/openspec-archive-change/SKILL.md +9 -1
  121. package/.codex/skills/openspec-bulk-archive-change/SKILL.md +9 -1
  122. package/.codex/skills/openspec-continue-change/SKILL.md +9 -1
  123. package/.codex/skills/openspec-explore/SKILL.md +10 -1
  124. package/.codex/skills/openspec-ff-change/SKILL.md +9 -1
  125. package/.codex/skills/openspec-new-change/SKILL.md +9 -1
  126. package/.codex/skills/openspec-onboard/SKILL.md +15 -130
  127. package/.codex/skills/openspec-sync-specs/SKILL.md +9 -1
  128. package/.codex/skills/openspec-verify-change/SKILL.md +9 -1
  129. package/.codex/skills/performance-doctor/SKILL.md +110 -434
  130. package/.codex/skills/project-navigator/SKILL.md +20 -1
  131. package/.codex/skills/redis-cache/SKILL.md +93 -589
  132. package/.codex/skills/redis-cache/references/listeners.md +23 -0
  133. package/.codex/skills/scheduled-jobs/SKILL.md +88 -407
  134. package/.codex/skills/security-guard/SKILL.md +141 -527
  135. package/.codex/skills/security-guard/references/encrypt-config.md +103 -0
  136. package/.codex/skills/security-guard/references/sensitive-strategies.md +42 -0
  137. package/.codex/skills/sms-mail/SKILL.md +116 -574
  138. package/.codex/skills/sms-mail/references/mail-config.md +88 -0
  139. package/.codex/skills/sms-mail/references/sms-config.md +74 -0
  140. package/.codex/skills/social-login/SKILL.md +112 -514
  141. package/.codex/skills/social-login/references/provider-configs.md +118 -0
  142. package/.codex/skills/store-pc/SKILL.md +258 -383
  143. package/.codex/skills/tenant-management/SKILL.md +129 -444
  144. package/.codex/skills/tenant-management/references/tenant-scenarios.md +91 -0
  145. package/.codex/skills/test-development/SKILL.md +86 -540
  146. package/.codex/skills/test-development/references/parameterized-examples.md +119 -0
  147. package/.codex/skills/ui-pc/SKILL.md +350 -387
  148. package/.codex/skills/utils-toolkit/SKILL.md +52 -283
  149. package/.codex/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  150. package/.codex/skills/websocket-sse/SKILL.md +105 -550
  151. package/.codex/skills/workflow-engine/SKILL.md +147 -502
  152. package/.cursor/hooks.json +3 -3
  153. package/.cursor/skills/add-skill/SKILL.md +79 -32
  154. package/.cursor/skills/api-development/SKILL.md +83 -377
  155. package/.cursor/skills/architecture-design/SKILL.md +138 -632
  156. package/.cursor/skills/backend-annotations/SKILL.md +134 -506
  157. package/.cursor/skills/banana-image/SKILL.md +10 -3
  158. package/.cursor/skills/brainstorm/SKILL.md +103 -535
  159. package/.cursor/skills/bug-detective/SKILL.md +147 -1097
  160. package/.cursor/skills/bug-detective/references/error-patterns.md +242 -0
  161. package/.cursor/skills/code-patterns/SKILL.md +116 -426
  162. package/.cursor/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  163. package/.cursor/skills/crud-development/SKILL.md +64 -304
  164. package/.cursor/skills/data-permission/SKILL.md +105 -412
  165. package/.cursor/skills/data-permission/references/custom-data-scope.md +90 -0
  166. package/.cursor/skills/file-oss-management/SKILL.md +106 -714
  167. package/.cursor/skills/file-oss-management/references/entities.md +105 -0
  168. package/.cursor/skills/file-oss-management/references/service-impl.md +104 -0
  169. package/.cursor/skills/git-workflow/SKILL.md +27 -5
  170. package/.cursor/skills/leniu-api-development/SKILL.md +142 -626
  171. package/.cursor/skills/leniu-api-development/references/real-examples.md +273 -0
  172. package/.cursor/skills/leniu-architecture-design/SKILL.md +176 -391
  173. package/.cursor/skills/leniu-backend-annotations/SKILL.md +132 -519
  174. package/.cursor/skills/leniu-brainstorm/SKILL.md +132 -541
  175. package/.cursor/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  176. package/.cursor/skills/leniu-crud-development/SKILL.md +232 -938
  177. package/.cursor/skills/leniu-crud-development/references/templates.md +597 -0
  178. package/.cursor/skills/leniu-customization-location/SKILL.md +410 -0
  179. package/.cursor/skills/leniu-data-permission/SKILL.md +70 -0
  180. package/.cursor/skills/leniu-java-code-style/SKILL.md +510 -0
  181. package/.cursor/skills/leniu-java-entity/SKILL.md +76 -590
  182. package/.cursor/skills/leniu-java-entity/references/templates.md +237 -0
  183. package/.cursor/skills/leniu-java-export/SKILL.md +94 -379
  184. package/.cursor/skills/leniu-java-logging/SKILL.md +106 -709
  185. package/.cursor/skills/leniu-java-logging/references/data-mask.md +46 -0
  186. package/.cursor/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  187. package/.cursor/skills/leniu-java-mybatis/SKILL.md +73 -446
  188. package/.cursor/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  189. package/.cursor/skills/leniu-report-customization/SKILL.md +111 -365
  190. package/.cursor/skills/leniu-report-customization/references/table-fields.md +93 -0
  191. package/.cursor/skills/leniu-report-standard-customization/SKILL.md +111 -334
  192. package/.cursor/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  193. package/.cursor/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  194. package/.cursor/skills/leniu-security-guard/SKILL.md +133 -347
  195. package/.cursor/skills/mysql-debug/SKILL.md +364 -0
  196. package/.cursor/skills/openspec-apply-change/SKILL.md +10 -1
  197. package/.cursor/skills/openspec-archive-change/SKILL.md +9 -1
  198. package/.cursor/skills/openspec-bulk-archive-change/SKILL.md +9 -1
  199. package/.cursor/skills/openspec-continue-change/SKILL.md +9 -1
  200. package/.cursor/skills/openspec-explore/SKILL.md +10 -1
  201. package/.cursor/skills/openspec-ff-change/SKILL.md +9 -1
  202. package/.cursor/skills/openspec-new-change/SKILL.md +9 -1
  203. package/.cursor/skills/openspec-onboard/SKILL.md +15 -130
  204. package/.cursor/skills/openspec-sync-specs/SKILL.md +9 -1
  205. package/.cursor/skills/openspec-verify-change/SKILL.md +9 -1
  206. package/.cursor/skills/performance-doctor/SKILL.md +110 -434
  207. package/.cursor/skills/redis-cache/SKILL.md +89 -595
  208. package/.cursor/skills/redis-cache/references/listeners.md +23 -0
  209. package/.cursor/skills/scheduled-jobs/SKILL.md +88 -407
  210. package/.cursor/skills/security-guard/SKILL.md +137 -532
  211. package/.cursor/skills/security-guard/references/encrypt-config.md +103 -0
  212. package/.cursor/skills/security-guard/references/sensitive-strategies.md +42 -0
  213. package/.cursor/skills/sms-mail/SKILL.md +116 -574
  214. package/.cursor/skills/sms-mail/references/mail-config.md +88 -0
  215. package/.cursor/skills/sms-mail/references/sms-config.md +74 -0
  216. package/.cursor/skills/social-login/SKILL.md +112 -514
  217. package/.cursor/skills/social-login/references/provider-configs.md +118 -0
  218. package/.cursor/skills/tenant-management/SKILL.md +129 -444
  219. package/.cursor/skills/tenant-management/references/tenant-scenarios.md +91 -0
  220. package/.cursor/skills/test-development/SKILL.md +86 -540
  221. package/.cursor/skills/test-development/references/parameterized-examples.md +119 -0
  222. package/.cursor/skills/utils-toolkit/SKILL.md +52 -305
  223. package/.cursor/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  224. package/.cursor/skills/websocket-sse/SKILL.md +105 -550
  225. package/.cursor/skills/workflow-engine/SKILL.md +147 -502
  226. package/package.json +1 -1
@@ -5,50 +5,46 @@ description: |
5
5
 
6
6
  触发场景:
7
7
  - 不知道怎么设计
8
- - 需要多种方案
9
- - 创意探索
10
- - 架构讨论
11
- - 功能规划
12
- - 业务扩展
8
+ - 需要多种方案对比
9
+ - 架构讨论与功能规划
10
+ - 业务扩展方向探索
11
+ - 模块划分决策
13
12
 
14
13
  触发词:头脑风暴、方案、怎么设计、有什么办法、创意、讨论、探索、想法、建议、怎么做、如何实现、有哪些方式、能不能做、可以实现吗
15
14
  ---
16
15
 
17
16
  # 头脑风暴框架
18
17
 
19
- ## 本项目技术约束(头脑风暴边界)
18
+ ## 本项目技术约束(方案边界)
20
19
 
21
- > **重要**:所有方案必须在以下技术栈约束内思考
20
+ ### 已集成技术
22
21
 
23
- ### 后端技术边界(已集成)
24
-
25
- | 层面 | 已集成技术 | 说明 |
26
- |------|----------|------|
22
+ | 层面 | 技术 | 说明 |
23
+ |------|------|------|
27
24
  | **框架** | Spring Boot 3.5.9 | 核心框架 |
28
25
  | **ORM** | MyBatis-Plus 3.5.16 | 数据持久层 |
29
- | **缓存** | Redis + Redisson | 分布式缓存(Caffeine 本地缓存)|
26
+ | **缓存** | Redis + Redisson(Caffeine 本地缓存)| 分布式+本地缓存 |
30
27
  | **消息** | Redis Streams | 轻量消息队列 |
31
28
  | **定时** | SnailJob + @Scheduled | 分布式定时任务 |
32
29
  | **认证** | Sa-Token 1.44.0 | 权限与认证 |
33
- | **实时通信** | WebSocket + SSE | 实时推送(已集成) |
34
- | **文件存储** | AWS S3 SDK | 对象存储(MinIO 兼容) |
35
- | **数据加密** | AES/RSA | 字段级加密 |
30
+ | **实时** | WebSocket + SSE | 实时推送 |
31
+ | **存储** | AWS S3 SDK | MinIO 兼容 |
32
+ | **加密** | AES/RSA | 字段级加密 |
36
33
  | **短信** | SMS4j | 多平台短信 |
37
34
  | **邮件** | Spring Mail | 邮件发送 |
38
- | **第三方登录** | JustAuth | OAuth2(30+ 平台) |
35
+ | **登录** | JustAuth | OAuth2(30+ 平台) |
39
36
  | **Excel** | FastExcel | 导入导出 |
40
37
 
41
- ### 自行扩展的技术(框架未集成)
38
+ ### 需自行扩展的技术
42
39
 
43
- | 技术 | 使用场景 | 集成指南 |
44
- |------|---------|---------|
45
- | **RocketMQ** | 高吞吐消息队列、分布式事务 | 复杂业务场景自行引入 |
46
- | **MQTT** | 物联网设备通信 | IoT 场景使用 mica-mqtt |
47
- | **PostgreSQL/Oracle/SQL Server** | 多数据库支持 | SQL 脚本适配四个数据库版本 |
48
- | **LangChain4j** | AI 大模型集成 | 需自行引入依赖 |
49
- | **支付模块** | 微信/支付宝支付 | 需自行开发或引入第三方 |
40
+ | 技术 | 场景 |
41
+ |------|------|
42
+ | **RocketMQ** | 高吞吐消息队列、分布式事务 |
43
+ | **MQTT** | IoT 设备通信(mica-mqtt |
44
+ | **LangChain4j** | AI 大模型集成 |
45
+ | **支付模块** | 微信/支付宝(IJPay 等) |
50
46
 
51
- ### 可扩展的 Common 模块(24个)
47
+ ### 可复用 Common 模块(24个)
52
48
 
53
49
  ```
54
50
  核心: core, web, security, log, doc, bom
@@ -60,589 +56,161 @@ description: |
60
56
 
61
57
  ---
62
58
 
63
- ## 思维模式
64
-
65
- ### 发散思维 - 尽可能多的方案
66
-
67
- 1. **不评判**: 先不考虑可行性,尽可能多地列出想法
68
- 2. **联想**: 从一个想法延伸到相关想法
69
- 3. **模块复用**: 能否用现有 24 个 common 模块解决?
70
- 4. **跨界借鉴**: 其他系统怎么做的?
71
- 5. **反向思考**: 如果要让问题更糟,会怎么做?反过来就是解决方案
72
-
73
- ### 收敛思维 - 筛选最优方案
74
-
75
- 1. **复用优先**: 能否复用现有模块/代码?
76
- 2. **可行性**: 在现有技术栈内能否实现?
77
- 3. **多端一致**: 是否需要 PC 端和移动端同时支持?
78
- 4. **多租户兼容**: 是否支持多租户数据隔离?
79
- 5. **多数据库**: 是否需要兼容 MySQL/Oracle/PostgreSQL/SQL Server?
80
- 6. **成本**: 开发时间和复杂度如何?
81
- 7. **风险**: 有什么潜在问题?
82
-
83
- ---
84
-
85
- ## 本项目专属决策维度
86
-
87
- ### 必须考虑的 5 个维度
59
+ ## 决策维度(必须考虑)
88
60
 
89
- | 维度 | 问题 | 实现要点 |
90
- |------|------|---------|
91
- | **三层架构** | 如何分层设计? | Controller Service Mapper(无 DAO 层,Service 直接调用 Mapper) |
92
- | **模块划分** | 属于哪个模块? | sys/demo/wf(标准)或 b/m/iot/crm(业务)|
93
- | **多租户** | 数据需要租户隔离吗? | Entity 继承 TenantEntity,自动 SQL 过滤 |
94
- | **多端支持** | PC 端、移动端都需要吗? | 同一套 API,按需扩展前端 |
95
- | **多数据库** | 需要兼容多个数据库吗? | SQL 脚本同步 4 个数据库文件 |
61
+ | 维度 | 关键问题 | 实现要点 |
62
+ |------|---------|---------|
63
+ | **三层架构** | 如何分层? | Controller -> Service -> Mapper(无 DAO 层) |
64
+ | **模块归属** | 属于哪个模块? | sys/demo/wf(标准)或 b/m/iot/crm(业务) |
65
+ | **多租户** | 需要隔离? | Entity 继承 TenantEntity,自动 SQL 过滤 |
66
+ | **多端** | 哪些端需要? | 同一套 API,按需扩展前端 |
67
+ | **多数据库** | 要兼容多库? | SQL 脚本同步 MySQL/Oracle/PG/SQLServer |
96
68
 
97
- ### 方案评估矩阵(本项目版)
69
+ ### 方案评估矩阵
98
70
 
99
71
  ```markdown
100
72
  | 方案 | 复用度(25%) | 多端(20%) | 多租户(20%) | 多数据库(15%) | 开发量(20%) | 总分 |
101
73
  |------|-------------|-----------|-------------|---------------|-------------|------|
102
- | 方案A | 9 | 8 | 10 | 10 | 7 | 8.65 |
103
- | 方案B | 6 | 10 | 10 | 8 | 8 | 8.30 |
104
- | 方案C | 10 | 6 | 8 | 6 | 9 | 8.00 |
74
+ | 方案A | ? | ? | ? | ? | ? | ? |
75
+ | 方案B | ? | ? | ? | ? | ? | ? |
105
76
 
106
77
  评分说明:1-10分,分数越高越好
107
- - 复用度:能复用多少现有代码/模块
108
- - 多端:PC端和移动端支持程度
109
- - 多租户:租户隔离支持程度
110
- - 多数据库:跨数据库兼容性
111
- - 开发量:开发工作量(分数越高=工作量越少)
78
+ - 开发量:分数越高=工作量越少
112
79
  ```
113
80
 
114
81
  ---
115
82
 
116
83
  ## 方案探索模板
117
84
 
118
- ### 1. 问题定义(本项目版)
85
+ ### 问题定义
119
86
 
120
87
  ```markdown
121
- ## 问题描述
122
-
123
- ### 基本信息
124
- - **是什么**: [具体描述要实现的功能]
125
- - **为什么重要**: [业务价值]
126
- - **当前状态**: [现有系统如何处理/有无类似功能]
127
- - **期望结果**: [希望达到的效果]
128
-
129
- ### 本项目约束
88
+ - **是什么**: [功能描述]
130
89
  - **模块归属**: base / mall / crm / iot / 新模块
131
- - **端支持**: PC端 / 移动端 / 两者都需要
132
- - **租户**: 需要租户隔离 / 不需要(系统级)
133
- - **数据库**: 只支持 MySQL / 需要多数据库兼容
90
+ - **端支持**: PC端 / 移动端 / 两者
91
+ - **租户**: 需要隔离 / 系统级
92
+ - **数据库**: MySQL only / 多库兼容
134
93
  ```
135
94
 
136
- ### 2. 可复用资源盘点
95
+ ### 可复用资源盘点
137
96
 
138
97
  ```markdown
139
- ## 现有资源
140
-
141
- ### 可复用的 Common 模块
142
- | 模块 | 是否可用 | 用途 |
143
- |------|---------|------|
144
- | ruoyi-common-redis | ✅ | 缓存、分布式锁 |
145
- | ruoyi-common-websocket | ❓ | 实时推送 |
146
- | ruoyi-common-encrypt | ❓ | 密钥加密存储 |
147
- | ... | | |
148
-
149
- ### 可参考的现有功能
150
- | 功能 | 位置 | 可复用部分 |
151
- |------|------|-----------|
152
- | 广告管理 | base/Ad | 完整 CRUD 模板 |
153
- | 平台配置 | base/Platform | 配置管理模式 |
154
- | 订阅消息 | api/app/Subscribe | 微信消息模板 |
155
- | ... | | |
156
-
157
- ### 需要新开发的部分
158
- - [ ] [需要开发的内容]
98
+ | 资源 | 类型 | 复用程度 |
99
+ |------|------|---------|
100
+ | ruoyi-common-xxx | 模块 | 完全/部分/参考 |
101
+ | 现有 Xxx 功能 | 代码 | 参考模式 |
159
102
  ```
160
103
 
161
- ### 3. 方案列举
104
+ ### 方案对比(至少2个)
162
105
 
163
106
  ```markdown
164
- ## 可能方案
165
-
166
- ### 方案 A: 最大复用(推荐优先考虑)
167
- - **描述**: 基于现有模块组合实现
168
- - **复用**: [列出复用的模块/代码]
169
- - **新开发**: [列出必须新写的部分]
170
- - **优点**: 开发快、稳定性高
171
- - **缺点**: [可能的限制]
107
+ ### 方案 A: 最大复用(优先考虑)
108
+ - **复用**: [列出模块/代码]
109
+ - **新开发**: [列出新写部分]
110
+ - **优缺点**: [简述]
172
111
 
173
112
  ### 方案 B: 适度扩展
174
- - **描述**: 在现有基础上扩展新功能
175
- - **复用**: [列出复用的模块/代码]
176
- - **新开发**: [列出必须新写的部分]
177
- - **优点**: 平衡复用与定制
178
- - **缺点**: [可能的限制]
179
-
180
- ### 方案 C: 全新开发
181
- - **描述**: 从零开始实现
182
- - **复用**: 仅复用基础框架
183
- - **新开发**: 全部业务逻辑
184
- - **优点**: 完全定制、无历史包袱
185
- - **缺点**: 开发量大、风险高
113
+ - **复用**: [列出模块/代码]
114
+ - **新开发**: [列出新写部分]
115
+ - **优缺点**: [简述]
186
116
  ```
187
117
 
188
- ### 4. 推荐方案
118
+ ### 推荐方案
189
119
 
190
120
  ```markdown
191
- ## 推荐方案
192
-
193
121
  **推荐**: 方案 [X]
194
-
195
- **理由**:
196
- 1. 复用了 [xxx] 模块,减少 [xx%] 开发量
197
- 2. 完全支持多租户/多端/多数据库
198
- 3. [其他理由]
199
-
122
+ **理由**: [1-3条]
200
123
  **实施步骤**:
201
- 1. [ ] 数据库设计 使用 `/crud` 或 `database-ops` Skill
202
- 2. [ ] 后端开发 使用 `crud-development` Skill
203
- 3. [ ] PC 前端 → 使用 `ui-pc` Skill
204
- 4. [ ] 测试验证
205
-
206
- **风险点**:
207
- - [风险1] → 应对策略
208
- - [风险2] → 应对策略
124
+ 1. [ ] 数据库设计 -> database-ops
125
+ 2. [ ] 后端开发 -> crud-development
126
+ 3. [ ] 测试验证
127
+ **风险点**: [风险] -> [应对策略]
209
128
  ```
210
129
 
211
130
  ---
212
131
 
213
- ## 本项目典型业务场景
132
+ ## 典型场景速查
214
133
 
215
- ### 场景 1:新增业务管理模块
134
+ ### 新增业务管理模块
216
135
 
217
136
  ```
218
- 需求:新增"优惠券管理"功能
219
-
220
- 头脑风暴:
221
- ├── 模块归属
222
- │ ├── mall(商城相关)✅ 推荐
223
- │ ├── base(基础业务)
224
- │ └── 新建 coupon 子模块
225
-
226
- ├── 功能拆解
227
- │ ├── 优惠券模板管理(后台配置)
228
- │ ├── 优惠券发放(手动/自动/领取)
229
- │ ├── 优惠券使用(订单抵扣)
230
- │ └── 优惠券统计(使用率/核销率)
231
-
232
- ├── 可复用
233
- │ ├── Ad 模块 → 完整 CRUD 模板
234
- │ ├── ruoyi-common-redis → 库存扣减分布式锁
235
- │ ├── SnailJob → 过期自动作废任务
236
- │ └── 字典管理 → 券类型/状态字典
237
-
238
- └── 技术方案
239
- ├── 三层架构:Controller → Service → Mapper
240
- ├── 表设计:m_coupon_template, m_coupon_record
241
- ├── Service 层:buildQueryWrapper() 查询构建
242
- └── PC 端:管理员配置和审核页面
243
- ```
244
-
245
- ### 场景 2:接入第三方服务
137
+ 需求示例:优惠券管理
246
138
 
247
- ```
248
- 需求:接入物流查询功能
249
-
250
- 头脑风暴:
251
- ├── 方案选择
252
- │ ├── 方案 A:使用快递100 API
253
- │ ├── 方案 B:使用快递鸟 API
254
- │ └── 方案 C:自建物流爬虫(不推荐)
255
-
256
- ├── 可复用
257
- │ ├── ruoyi-common-encrypt → 密钥加密存储
258
- │ ├── ruoyi-common-redis → 结果缓存(5分钟)
259
- │ ├── Spring RestTemplate → HTTP 客户端调用
260
- │ └── Platform 模块 → 配置存储模式
261
-
262
- ├── 实现方式
263
- │ ├── 新建 LogisticsService 接口
264
- │ ├── 实现 Kuaidi100LogisticsImpl
265
- │ ├── 支持后续扩展其他供应商(策略模式)
266
- │ └── 配置项存入 sys_config 表或独立配置表
267
-
268
- └── 注意事项
269
- ├── API 密钥加密存储(ruoyi-common-encrypt)
270
- ├── 调用频率限制(@RateLimiter 注解)
271
- ├── 查询结果缓存(Redis)
272
- └── 失败降级处理(重试 + 异常日志)
139
+ 模块归属 -> mall(商城相关)
140
+ 功能拆解 -> 模板管理 / 发放 / 使用 / 统计
141
+ 可复用 -> Ad模块(CRUD模板) + redis(分布式锁) + SnailJob(过期作废) + 字典(类型/状态)
142
+ 表设计 -> m_coupon_template, m_coupon_record
273
143
  ```
274
144
 
275
- ### 场景 3:实时通信需求
145
+ ### 接入第三方服务
276
146
 
277
147
  ```
278
- 需求:实现消息实时推送
279
-
280
- 头脑风暴:
281
- ├── 技术选型
282
- │ ├── WebSocket(ruoyi-common-websocket,已集成)✅ 首选
283
- │ │ └── 适用:聊天、通知、状态同步、双向通信
284
- │ ├── SSE(ruoyi-common-sse,已集成)
285
- │ │ └── 适用:服务端单向推送、简单场景
286
- │ └── 轮询(不推荐)
287
- │ └── 原因:浪费资源、延迟高
288
-
289
- ├── 消息分类
290
- │ ├── 系统通知 → 广播(发送所有连接)
291
- │ ├── 个人消息 → 点对点(发送特定用户)
292
- │ ├── 群组消息 → 组播(发送特定群组)
293
- │ └── 订单状态 → 主题订阅(发布-订阅模式)
294
-
295
- └── 可复用
296
- ├── ruoyi-common-websocket → 完整的 WebSocket 支持
297
- ├── ruoyi-common-redis → 在线状态/消息队列(多实例同步)
298
- └── 现有 WebSocket 示例代码 → 参考实现
148
+ 可复用 -> encrypt(密钥存储) + redis(结果缓存) + Platform(配置存储)
149
+ 实现 -> 接口+实现类(策略模式支持扩展)
150
+ 注意 -> 密钥加密 + @RateLimiter频率限制 + 失败降级
299
151
  ```
300
152
 
301
- ### 场景 4:支付功能扩展
153
+ ### 实时通信
302
154
 
303
155
  ```
304
- 需求:增加支付方式
305
-
306
- 头脑风暴:
307
- ├── 支付模块现状(框架未内置,需自行开发)
308
- │ ├── 方案 A:使用 IJPay(开源支付 SDK)自行集成
309
- │ ├── 方案 B:使用 YunGouOS 等聚合支付平台
310
- │ └── 方案 C:直接对接微信/支付宝官方 SDK
311
-
312
- ├── 需要自行开发的功能
313
- │ ├── 支付配置管理(各租户独立密钥)
314
- │ ├── 支付订单表设计(支付流水、对账)
315
- │ ├── 回调通知处理(幂等 + 签名验证)
316
- │ └── 退款与对账(定时任务自动对账)
317
-
318
- ├── 可复用的框架能力
319
- │ ├── ruoyi-common-encrypt → API 密钥加密存储
320
- │ ├── ruoyi-common-redis → 支付幂等(分布式锁)
321
- │ ├── SnailJob → 定时对账任务
322
- │ └── ruoyi-common-idempotent → 防重复支付
323
-
324
- └── 注意事项
325
- ├── 多租户支付配置隔离(各租户独立密钥)
326
- ├── 支付安全(签名验证、HTTPS)
327
- ├── 回调可靠性(幂等 + 重试机制)
328
- └── 资金安全(事务一致性 + 对账)
156
+ WebSocket(双向,已集成) ✅ 首选 | SSE(单向推送,已集成) | 轮询(不推荐)
157
+ 消息类型 -> 广播(全连接) / 点对点(特定用户) / 组播(群组) / 主题订阅
158
+ 可复用 -> websocket模块 + redis(在线状态/多实例同步)
329
159
  ```
330
160
 
331
- ### 场景 5:数据统计需求
161
+ ### 数据统计报表
332
162
 
333
163
  ```
334
- 需求:业务数据统计报表
335
-
336
- 头脑风暴:
337
- ├── 统计维度
338
- │ ├── 时间维度:日/周/月/年/自定义范围
339
- │ ├── 租户维度:单租户/全平台
340
- │ ├── 业务维度:订单/用户/商品/支付等
341
- │ └── 对比维度:同比/环比/增长率
342
-
343
- ├── 实现方案(按优先级)
344
- │ ├── 方案 A:实时查询(小数据量 < 100万)
345
- │ ├── 方案 B:预计算 + 缓存(中数据量,推荐)✅
346
- │ └── 方案 C:分析引擎(大数据量,可选)
347
-
348
- ├── 可复用
349
- │ ├── StatisticsController → 统计 API 模板(参考实现)
350
- │ ├── FastExcel(已集成)→ Excel 导出功能
351
- │ ├── SnailJob(已集成)→ 定时预计算任务
352
- │ └── ruoyi-common-redis(已集成)→ 统计结果缓存
353
-
354
- └── 数据库优化
355
- ├── 统计表设计(星型模型或雪花模型)
356
- ├── 索引优化(时间、租户、业务字段)
357
- ├── 分区表设计(按时间分区)
358
- └── 副本/只读从库(大查询避免业务库)
164
+ 方案选择 -> 小数据(<100万):实时查询 | 中数据:预计算+缓存(推荐) | 大数据:分析引擎
165
+ 可复用 -> FastExcel(导出) + SnailJob(预计算) + redis(结果缓存)
359
166
  ```
360
167
 
361
- ### 场景 6:AI 功能集成
168
+ ### AI 功能集成
362
169
 
363
170
  ```
364
- 需求:增加 AI 辅助功能
365
-
366
- 头脑风暴:
367
- ├── 需要自行集成(框架未内置)
368
- │ ├── LangChain4j → 需自行引入 Maven 依赖
369
- │ ├── SSE(已集成)→ 流式响应支持
370
- │ └── Redis 缓存 → 会话上下文存储
371
-
372
- ├── 应用方向(选 2-3 个)
373
- │ ├── 智能客服(多轮对话、FAQ)
374
- │ ├── 内容生成(文案、总结、翻译)
375
- │ ├── 数据分析(自然语言 SQL 查询)
376
- │ ├── 代码生成(API 文档生成)
377
- │ └── 知识库问答(RAG 系统)
378
-
379
- ├── 模型选择
380
- │ ├── ChatGPT(OpenAI,国际)
381
- │ ├── DeepSeek(国产,便宜)✅ 推荐
382
- │ ├── 通义千问(阿里云)
383
- │ ├── 文心一言(百度)
384
- │ └── Claude API(性能最好)
385
-
386
- ├── 需要自行开发的模块
387
- │ ├── ChatSessionEntity → 会话表
388
- │ ├── ChatMessageEntity → 消息表
389
- │ ├── AiService → AI 调用服务
390
- │ └── AiModelConfig → 模型配置管理
391
-
392
- └── 实现要点
393
- ├── 流式响应(使用 SSE,已集成)
394
- ├── 上下文管理(Redis 存储)
395
- ├── Token 计费与统计
396
- ├── 敏感词/内容过滤
397
- ├── 多模型支持(策略模式)
398
- └── 错误重试与降级
171
+ 需自行引入 LangChain4j Maven 依赖
172
+ 可复用 -> SSE(流式响应) + redis(会话上下文)
173
+ 模型推荐 -> DeepSeek(国产便宜) / ChatGPT / Claude
174
+ 需开发 -> ChatSession表 + ChatMessage表 + AiService + 模型配置
399
175
  ```
400
176
 
401
177
  ---
402
178
 
403
- ## 创意激发技巧(本项目版)
404
-
405
- ### 1. 模块组合法
406
-
407
- ```
408
- 问题:如何实现活动抽奖功能?
409
-
410
- 模块组合:
411
- ├── ruoyi-common-redis → 库存/次数控制
412
- ├── ruoyi-common-ratelimiter → 防刷
413
- ├── ruoyi-common-idempotent → 防重复
414
- ├── ruoyi-common-websocket → 实时开奖
415
- ├── ruoyi-common-job → 定时开奖
416
- └── 现有订单流程 → 奖品发放
417
-
418
- 组合方案:
419
- 1. 活动配置(参考 Ad 模块)
420
- 2. 抽奖服务(Redis Lua 脚本原子操作)
421
- 3. 中奖记录(标准 CRUD)
422
- 4. 奖品发放(复用订单流程)
423
- ```
424
-
425
- ### 2. 现有功能类比法
426
-
427
- ```
428
- 问题:如何实现预约功能?
429
-
430
- 类比分析:
431
- ├── 类似订单 → 创建、状态流转、取消
432
- ├── 类似活动 → 时间段、名额限制
433
- └── 类似秒杀 → 库存控制、并发处理
434
-
435
- 复用点:
436
- ├── 订单状态机 → 预约状态流转
437
- ├── 库存扣减逻辑 → 名额控制
438
- ├── 支付流程 → 预约押金
439
- └── 消息通知 → 预约提醒
440
- ```
441
-
442
- ### 3. 端优先思考法
443
-
444
- ```
445
- 问题:功能应该在哪个端实现?
446
-
447
- 决策树:
448
- ├── 管理操作(配置、审核)→ PC 端
449
- ├── 用户操作(下单、查看)→ 移动端
450
- ├── 实时展示(监控、大屏)→ PC 端
451
- └── 高频操作(签到、扫码)→ 移动端
452
-
453
- 多端同步考虑:
454
- ├── 数据实时性 → WebSocket
455
- ├── 操作幂等性 → Redis 分布式锁
456
- └── 状态一致性 → 事件驱动
457
- ```
458
-
459
- ### 4. 多租户思考法
460
-
461
- ```
462
- 问题:功能是否需要租户隔离?
463
-
464
- 判断标准:
465
- ├── 租户私有数据 → 必须隔离
466
- │ └── 用户、订单、商品、配置
467
- ├── 平台公共数据 → 不需要隔离
468
- │ └── 字典、地区、系统配置
469
- └── 混合数据 → 条件隔离
470
- └── 模板(平台模板 + 租户模板)
471
-
472
- 实现方式:
473
- ├── Entity 继承 TenantEntity
474
- ├── 自动 SQL 过滤
475
- └── 租户配置表设计
476
- ```
477
-
478
- ---
479
-
480
- ## 讨论引导问题(本项目版)
481
-
482
- ### 功能规划时
483
-
484
- 1. **复用视角**
485
- - 有没有类似的现有功能?
486
- - 能复用哪些 common 模块?
487
- - 需要新开发多少代码?
488
-
489
- 2. **多端视角**
490
- - PC 端需要什么?
491
- - 移动端需要什么?
492
- - 两端数据如何同步?
493
-
494
- 3. **多租户视角**
495
- - 数据需要租户隔离吗?
496
- - 配置是租户级还是系统级?
497
- - 不同租户能定制吗?
498
-
499
- 4. **技术视角**
500
- - 现有技术栈能实现吗?
501
- - 需要引入新技术吗?
502
- - 有没有性能瓶颈?
503
-
504
- ### 方案选择时
505
-
506
- 1. **短期 vs 长期**
507
- - 快速上线重要还是可扩展重要?
508
- - 以后可能怎么扩展?
509
-
510
- 2. **简单 vs 完整**
511
- - MVP 版本包含什么?
512
- - 完整版本还需要什么?
179
+ ## 常见问题快速决策
513
180
 
514
- 3. **风险评估**
515
- - 最大的技术风险是什么?
516
- - 最大的业务风险是什么?
517
- - 如何降低风险?
181
+ | 问题 | 推荐 | 原因 |
182
+ |------|------|------|
183
+ | 新功能放哪个模块? | 看业务相关性 | base=基础、mall=商城、crm=客户、iot=设备 |
184
+ | WebSocket vs SSE? | WebSocket | 双向通信、已有封装 |
185
+ | RocketMQ vs Redis? | Redis 优先 | Streams 简单场景够用 |
186
+ | 要支持多数据库? | 是 | 项目标准,SQL 脚本同步 4 库 |
187
+ | 要支持多租户? | 业务数据要 | TenantEntity 自动隔离 |
188
+ | 定时任务用什么? | 简单->@Scheduled,复杂->SnailJob | 按复杂度选 |
189
+ | 文件上传? | AWS S3 SDK | 已集成、MinIO 兼容 |
190
+ | 敏感数据? | @EncryptField | ruoyi-common-encrypt |
191
+ | 防重复提交? | @RepeatSubmit | ruoyi-common-idempotent |
192
+ | 接口限流? | @RateLimiter | ruoyi-common-ratelimiter |
193
+ | 分布式锁? | Redisson | 已集成 |
518
194
 
519
195
  ---
520
196
 
521
- ## 与其他 Skill 联动
522
-
523
- > **注意**:本项目是纯后端项目。前端开发(PC 端)在分离的项目中进行:
524
- > - **PC 端前端**:`plus-ui` 项目(Vue 3 + Element Plus)
525
-
526
- ### 后端开发的 Skill 联动路径
197
+ ## Skill 联动路径
527
198
 
528
199
  ```
529
200
  brainstorm(本 Skill)
530
- 确定方案后
531
-
532
- ├── 需要建表 database-ops
533
- │ └── 设计数据库结构、建立多库支持
534
-
535
- ├── 需要后端开发 crud-development
536
- │ ├── 生成 CRUD 代码
537
- │ ├── 实现 Service 与 DAO
538
- │ └── 需要高级注解 → security-guard/data-permission/error-handler
539
-
540
- ├── 需要定时任务 → 使用 SnailJob(已集成)或 @Scheduled
541
- │ └── 参考:SnailJob 管理后台配置
542
-
543
- ├── 需要 WebSocket/SSE → 使用已集成的 ruoyi-common-websocket
544
- │ └── 参考:WebSocket 消息推送示例
545
-
546
- ├── 需要支付接入 → 自行开发(框架未内置支付模块)
547
- │ └── 推荐使用 IJPay 等开源 SDK,参考场景 4 的方案
548
-
549
- ├── 需要微信功能 → social-login(第三方登录部分)
550
- │ └── JustAuth 已集成微信登录;小程序/公众号功能需自行开发
551
-
552
- ├── 需要 AI 功能 → 需自行集成 LangChain4j(框架未内置)
553
- │ └── 参考场景 6:引入 Maven 依赖,配合 SSE 实现流式响应
554
-
555
- └── 需要技术方案对比 → tech-decision
556
- └── 缓存、消息队列、实时通信等技术选型
201
+ |-- 需要建表 -> database-ops
202
+ |-- 需要后端开发 -> crud-development
203
+ |-- 需要定时任务 -> scheduled-jobs
204
+ |-- 需要安全认证 -> security-guard
205
+ |-- 需要数据权限 -> data-permission
206
+ |-- 需要异常处理 -> error-handler
207
+ |-- 需要技术对比 -> tech-decision
208
+ |-- 需要代码规范 -> code-patterns
557
209
  ```
558
210
 
559
- ### 快速触发其他后端 Skill
560
-
561
211
  | 头脑风暴结论 | 下一步 Skill | 触发方式 |
562
212
  |-------------|-------------|---------|
563
213
  | 需要新建业务模块 | crud-development | "帮我开发 xxx 模块" |
564
214
  | 需要数据库设计 | database-ops | "帮我设计 xxx 表" |
565
215
  | 需要安全认证 | security-guard | "怎么控制权限访问" |
566
- | 需要数据权限 | data-permission | "怎么按部门/租户隔离数据" |
567
- | 需要异常处理 | error-handler | "怎么规范异常处理" |
568
- | 需要接入支付 | 自行开发(参考场景 4) | "帮我接入 xxx 支付" |
569
216
  | 需要技术对比 | tech-decision | "Redis 还是本地缓存好" |
570
- | 需要代码规范 | code-patterns | "怎么写代码规范" |
571
-
572
- ### 前端开发联系
573
-
574
- 当完成后端 API 开发后,前端团队可以:
575
- - **PC 端开发**:参考对应 `plus-ui` 项目的 Skill 指南
576
-
577
- 前端调用后端 API,确保数据一致性。
578
-
579
- ---
580
-
581
- ## 头脑风暴输出模板
582
-
583
- ### 完整输出格式
584
-
585
- ```markdown
586
- # [功能名称] 方案设计
587
-
588
- ## 1. 问题定义
589
- - 需求描述:[xxx]
590
- - 业务价值:[xxx]
591
- - 模块归属:[base/mall/crm/iot]
592
- - 端支持:[PC/移动端/两者]
593
-
594
- ## 2. 可复用资源
595
- | 资源 | 类型 | 复用程度 |
596
- |------|------|---------|
597
- | ruoyi-common-xxx | 模块 | 完全复用 |
598
- | Xxx 功能 | 代码 | 参考模式 |
599
-
600
- ## 3. 方案对比
601
- | 维度 | 方案 A | 方案 B |
602
- |------|-------|-------|
603
- | 复用度 | 高 | 中 |
604
- | 开发量 | 小 | 中 |
605
- | 扩展性 | 中 | 高 |
606
-
607
- ## 4. 推荐方案
608
- **方案 A** - [理由]
609
-
610
- ## 5. 实施步骤
611
- 1. [ ] xxx
612
- 2. [ ] xxx
613
- 3. [ ] xxx
614
-
615
- ## 6. 风险与应对
616
- | 风险 | 应对策略 |
617
- |------|---------|
618
- | xxx | xxx |
619
- ```
620
-
621
- ---
622
-
623
- ## 常见问题快速决策
624
-
625
- | 问题 | 推荐方案 | 原因 |
626
- |------|---------|------|
627
- | 新功能放哪个模块? | 看业务相关性 | base=基础、mall=商城、crm=客户、iot=设备、sys=系统 |
628
- | 需要新建 common 模块吗? | 通常不需要 | 20+ 个模块覆盖大部分场景 |
629
- | 用 WebSocket 还是 SSE? | WebSocket | 双向通信、已有封装、推荐优先 |
630
- | 用 RocketMQ 还是 Redis? | Redis 优先 | Redis Streams 简单场景够用,复杂再用 MQ |
631
- | 要不要支持多数据库? | 是 | 项目标准要求、SQL 脚本需同步 4 个库 |
632
- | 要不要支持多租户? | 业务数据要 | 继承 TenantEntity 自动隔离 |
633
- | PC 和移动端用同一个 API? | 是 | 统一后端,按需扩展(分离项目维护) |
634
- | 定时任务用什么? | 看复杂度 | 简单→@Scheduled,复杂/分布式→SnailJob |
635
- | 文件上传用什么存储? | AWS S3 SDK | 已集成、支持 MinIO 自建 |
636
- | 需要权限控制吗? | 是 | Sa-Token 框架标准、@SaCheckPermission |
637
- | 怎么处理敏感数据? | 字段级加密 | ruoyi-common-encrypt、@EncryptField |
638
- | 需要操作日志吗? | 是 | @Log 注解、ruoyi-common-log |
639
- | 接口频率限制怎么做? | @RateLimiter | ruoyi-common-ratelimiter |
640
- | 防重复提交怎么处理? | @RepeatSubmit | ruoyi-common-idempotent、Redis 分布式锁 |
641
- | 短信通知怎么发? | SMS4j | 已集成、支持多平台(阿里云/腾讯/华为) |
642
- | 邮件通知怎么发? | Spring Mail | 已集成、支持 SMTP |
643
- | 第三方登录用什么? | JustAuth | 已集成、支持 30+ 平台 |
644
- | 数据导出用什么? | FastExcel | 已集成、性能优于 EasyExcel |
645
- | 需要 AI 功能吗? | LangChain4j | 需自行引入依赖、支持多模型 |
646
- | 国际化翻译怎么做? | ruoyi-common-translation | 已集成、i18n 消息 |
647
- | 分布式锁怎么选? | Redisson | 基于 Redis、已集成 |
648
- | 缓存布隆过滤器? | Redisson BloomFilter | 防缓存穿透 |