ai-engineering-init 1.4.2 → 1.5.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 (132) hide show
  1. package/.claude/skills/leniu-java-export/SKILL.md +389 -95
  2. package/.codex/skills/leniu-java-export/SKILL.md +389 -95
  3. package/.cursor/skills/bug-detective/SKILL.md +19 -19
  4. package/.cursor/skills/leniu-java-export/SKILL.md +389 -95
  5. package/.cursor/skills/project-navigator/SKILL.md +164 -258
  6. package/package.json +7 -1
  7. package/scripts/build-skills.js +180 -0
  8. package/src/platform-map.json +56 -0
  9. package/src/skills/add-skill/SKILL.md +488 -0
  10. package/src/skills/add-todo/SKILL.md +269 -0
  11. package/src/skills/api-development/SKILL.md +266 -0
  12. package/src/skills/architecture-design/SKILL.md +262 -0
  13. package/src/skills/backend-annotations/SKILL.md +302 -0
  14. package/src/skills/banana-image/CHANGELOG.md +37 -0
  15. package/src/skills/banana-image/README.md +146 -0
  16. package/src/skills/banana-image/SKILL.md +171 -0
  17. package/src/skills/banana-image/assets/logo.png +0 -0
  18. package/src/skills/banana-image/references/advanced-usage.md +189 -0
  19. package/src/skills/banana-image/scripts/apply_template.py +125 -0
  20. package/src/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  21. package/src/skills/banana-image/scripts/batch_prep.py +82 -0
  22. package/src/skills/banana-image/scripts/package-lock.json +1437 -0
  23. package/src/skills/banana-image/scripts/package.json +18 -0
  24. package/src/skills/banana-image/scripts/requirements.txt +10 -0
  25. package/src/skills/banana-image/templates/poster.json +22 -0
  26. package/src/skills/banana-image/templates/product.json +17 -0
  27. package/src/skills/banana-image/templates/social.json +22 -0
  28. package/src/skills/banana-image/templates/thumbnail.json +17 -0
  29. package/src/skills/brainstorm/SKILL.md +216 -0
  30. package/src/skills/bug-detective/SKILL.md +256 -0
  31. package/src/skills/bug-detective/references/error-patterns.md +242 -0
  32. package/src/skills/check/SKILL.md +367 -0
  33. package/src/skills/code-patterns/SKILL.md +280 -0
  34. package/src/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  35. package/src/skills/codex-code-review/SKILL.md +135 -0
  36. package/src/skills/collaborating-with-codex/SKILL.md +174 -0
  37. package/src/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  38. package/src/skills/collaborating-with-gemini/SKILL.md +194 -0
  39. package/src/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  40. package/src/skills/crud/SKILL.md +265 -0
  41. package/src/skills/crud-development/SKILL.md +409 -0
  42. package/src/skills/data-permission/SKILL.md +292 -0
  43. package/src/skills/data-permission/references/custom-data-scope.md +90 -0
  44. package/src/skills/database-ops/SKILL.md +407 -0
  45. package/src/skills/dev/SKILL.md +187 -0
  46. package/src/skills/error-handler/SKILL.md +371 -0
  47. package/src/skills/file-oss-management/SKILL.md +255 -0
  48. package/src/skills/file-oss-management/references/entities.md +105 -0
  49. package/src/skills/file-oss-management/references/service-impl.md +104 -0
  50. package/src/skills/git-workflow/SKILL.md +397 -0
  51. package/src/skills/init-docs/SKILL.md +194 -0
  52. package/src/skills/json-serialization/SKILL.md +357 -0
  53. package/src/skills/leniu-api-development/SKILL.md +319 -0
  54. package/src/skills/leniu-api-development/references/real-examples.md +273 -0
  55. package/src/skills/leniu-architecture-design/SKILL.md +383 -0
  56. package/src/skills/leniu-backend-annotations/SKILL.md +277 -0
  57. package/src/skills/leniu-brainstorm/SKILL.md +242 -0
  58. package/src/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  59. package/src/skills/leniu-code-patterns/SKILL.md +411 -0
  60. package/src/skills/leniu-crud-development/SKILL.md +404 -0
  61. package/src/skills/leniu-crud-development/references/templates.md +597 -0
  62. package/src/skills/leniu-customization-location/SKILL.md +410 -0
  63. package/src/skills/leniu-data-permission/SKILL.md +341 -0
  64. package/src/skills/leniu-database-ops/SKILL.md +426 -0
  65. package/src/skills/leniu-error-handler/SKILL.md +462 -0
  66. package/src/skills/leniu-java-amount-handling/SKILL.md +461 -0
  67. package/src/skills/leniu-java-code-style/SKILL.md +510 -0
  68. package/src/skills/leniu-java-concurrent/SKILL.md +400 -0
  69. package/src/skills/leniu-java-entity/SKILL.md +237 -0
  70. package/src/skills/leniu-java-entity/references/templates.md +237 -0
  71. package/src/skills/leniu-java-export/SKILL.md +570 -0
  72. package/src/skills/leniu-java-logging/SKILL.md +229 -0
  73. package/src/skills/leniu-java-logging/references/data-mask.md +46 -0
  74. package/src/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  75. package/src/skills/leniu-java-mq/SKILL.md +338 -0
  76. package/src/skills/leniu-java-mybatis/SKILL.md +267 -0
  77. package/src/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  78. package/src/skills/leniu-java-report-query-param/SKILL.md +291 -0
  79. package/src/skills/leniu-java-task/SKILL.md +367 -0
  80. package/src/skills/leniu-java-total-line/SKILL.md +196 -0
  81. package/src/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  82. package/src/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  83. package/src/skills/leniu-mealtime/SKILL.md +215 -0
  84. package/src/skills/leniu-redis-cache/SKILL.md +331 -0
  85. package/src/skills/leniu-report-customization/SKILL.md +335 -0
  86. package/src/skills/leniu-report-customization/references/table-fields.md +93 -0
  87. package/src/skills/leniu-report-standard-customization/SKILL.md +328 -0
  88. package/src/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  89. package/src/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  90. package/src/skills/leniu-security-guard/SKILL.md +306 -0
  91. package/src/skills/leniu-utils-toolkit/SKILL.md +380 -0
  92. package/src/skills/mysql-debug/SKILL.md +364 -0
  93. package/src/skills/next/SKILL.md +137 -0
  94. package/src/skills/openspec-apply-change/SKILL.md +165 -0
  95. package/src/skills/openspec-archive-change/SKILL.md +122 -0
  96. package/src/skills/openspec-bulk-archive-change/SKILL.md +254 -0
  97. package/src/skills/openspec-continue-change/SKILL.md +126 -0
  98. package/src/skills/openspec-explore/SKILL.md +299 -0
  99. package/src/skills/openspec-ff-change/SKILL.md +109 -0
  100. package/src/skills/openspec-new-change/SKILL.md +82 -0
  101. package/src/skills/openspec-onboard/SKILL.md +414 -0
  102. package/src/skills/openspec-sync-specs/SKILL.md +146 -0
  103. package/src/skills/openspec-verify-change/SKILL.md +176 -0
  104. package/src/skills/performance-doctor/SKILL.md +303 -0
  105. package/src/skills/progress/SKILL.md +193 -0
  106. package/src/skills/project-navigator/SKILL.md +211 -0
  107. package/src/skills/redis-cache/SKILL.md +333 -0
  108. package/src/skills/redis-cache/references/listeners.md +23 -0
  109. package/src/skills/scheduled-jobs/SKILL.md +314 -0
  110. package/src/skills/security-guard/SKILL.md +353 -0
  111. package/src/skills/security-guard/references/encrypt-config.md +103 -0
  112. package/src/skills/security-guard/references/sensitive-strategies.md +42 -0
  113. package/src/skills/sms-mail/SKILL.md +308 -0
  114. package/src/skills/sms-mail/references/mail-config.md +88 -0
  115. package/src/skills/sms-mail/references/sms-config.md +74 -0
  116. package/src/skills/social-login/SKILL.md +266 -0
  117. package/src/skills/social-login/references/provider-configs.md +118 -0
  118. package/src/skills/start/SKILL.md +154 -0
  119. package/src/skills/store-pc/SKILL.md +366 -0
  120. package/src/skills/sync/SKILL.md +149 -0
  121. package/src/skills/task-tracker/SKILL.md +307 -0
  122. package/src/skills/tech-decision/SKILL.md +393 -0
  123. package/src/skills/tenant-management/SKILL.md +288 -0
  124. package/src/skills/tenant-management/references/tenant-scenarios.md +91 -0
  125. package/src/skills/test-development/SKILL.md +301 -0
  126. package/src/skills/test-development/references/parameterized-examples.md +119 -0
  127. package/src/skills/ui-pc/SKILL.md +438 -0
  128. package/src/skills/update-status/SKILL.md +159 -0
  129. package/src/skills/utils-toolkit/SKILL.md +362 -0
  130. package/src/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  131. package/src/skills/websocket-sse/SKILL.md +271 -0
  132. package/src/skills/workflow-engine/SKILL.md +321 -0
@@ -0,0 +1,242 @@
1
+ ---
2
+ name: leniu-brainstorm
3
+ description: |
4
+ leniu-yunshitang-core 云食堂项目头脑风暴与方案探索指南。基于双库架构、四层架构、多业务模块的方案设计框架。
5
+
6
+ 触发场景:
7
+ - 云食堂项目新功能方案设计
8
+ - 新业务模块的可行性分析
9
+ - 跨模块功能整合方案讨论
10
+ - 双库架构下的数据存储方案选择
11
+ - 食堂/后场/供应链业务扩展规划
12
+
13
+ 适用项目:leniu-tengyun-core(云食堂项目)
14
+
15
+ 触发词:头脑风暴、方案设计、怎么设计、功能规划、可行性分析、模块选择、架构方案
16
+ ---
17
+
18
+ # leniu 头脑风暴框架
19
+
20
+ ## 已有业务模块(可复用)
21
+
22
+ | 模块 | 路径 | 核心业务 |
23
+ |------|------|---------|
24
+ | **食堂** | `sys-canteen/` | 订单、菜单、支付、营销、设备、评价、营养、报表、超市、餐具 |
25
+ | **后场** | `sys-kitchen/` | 后场厨房、排班考勤 |
26
+ | **供应链** | `sys-drp/` | ERP、供应链管理 |
27
+ | **公共** | `sys-common/` | 适配器、认证、商户管理 |
28
+ | **管理** | `sys-admin/` | 系统管理 |
29
+ | **物流** | `sys-logistics/` | 物流配送 |
30
+ | **开放接口** | `sys-open/` | 第三方开放 API |
31
+
32
+ ### sys-canteen 子模块(18个)
33
+
34
+ ```
35
+ account(账户) allocation(分配) cost(成本) customer(客户)
36
+ device(设备) evaluate(评价) marketing(营销) menu(菜单)
37
+ menuai(AI菜单) menuintel(智能菜单) notice(通知) nutrition(营养)
38
+ order(订单) pay(支付) report(报表) supermarket(超市)
39
+ tableware(餐具) tablewarev2(餐具V2)
40
+ ```
41
+
42
+ ### 已集成基础能力
43
+
44
+ | 能力 | 实现 |
45
+ |------|------|
46
+ | 缓存 | Redis + `RedisUtil` |
47
+ | 消息队列 | `MqUtil` + `@MqConsumer` |
48
+ | 定时任务 | `@XxlJob` + `TenantLoader` |
49
+ | 文件存储 | OSS 云存储 |
50
+ | Excel导出 | `exportApi.startExcel()`(异步) |
51
+ | 认证 | `@RequiresAuthentication` |
52
+
53
+ ---
54
+
55
+ ## 6 维决策框架
56
+
57
+ **每个方案必须回答以下 6 个问题:**
58
+
59
+ | 维度 | 核心问题 | 决策要点 |
60
+ |------|---------|---------|
61
+ | **模块归属** | 放哪个模块? | canteen/kitchen/drp/common/新模块 |
62
+ | **双库归属** | 数据放哪个库? | 商户库=默认,系统库=`Executors.doInSystem()` |
63
+ | **四层架构** | 如何分层? | 跨 Service → 必须 Business 编排 |
64
+ | **多端路由** | 哪些端需要? | web/mobile/android/open |
65
+ | **复用度** | 能复用什么? | 现有子模块、代码模式、工具类 |
66
+ | **审计与删除** | 标准字段? | crby/crtime/upby/uptime + del_flag(1=删,2=正常) |
67
+
68
+ ### 快速决策表
69
+
70
+ | 问题 | 推荐方案 | 原因 |
71
+ |------|---------|------|
72
+ | 新功能放哪个模块? | 看业务关联度 | canteen=食堂、kitchen=后场、drp=供应链 |
73
+ | 需要新建子模块吗? | 优先扩展现有模块 | sys-canteen 已有 18 个子模块 |
74
+ | 数据放哪个库? | 商户库(默认) | 除非全局配置/平台级数据才用系统库 |
75
+ | 需要 Business 层吗? | 涉及多 Service 就需要 | 单表→Service,跨表→Business |
76
+ | 哪些端需要接口? | Web + Mobile 为主 | Android/Open 按需 |
77
+ | 用 MQ 还是同步? | 实时性要求不高用 MQ | 通知、统计、日志异步处理 |
78
+ | 定时任务? | @XxlJob + TenantLoader | 多租户定时任务标准模式 |
79
+ | 报表? | ReportBaseParam + 合计行 | 参考 leniu-java-report-query-param |
80
+ | 导出? | exportApi.startExcel() | 异步导出标准模式 |
81
+
82
+ ### 双库判断标准
83
+
84
+ ```
85
+ 商户库(默认)
86
+ ├── 租户私有数据:订单、菜品、客户、账户
87
+ ├── 租户配置:食堂设置、餐次配置、设备绑定
88
+ └── 租户业务:营销活动、报表数据
89
+
90
+ 系统库(Executors.doInSystem)
91
+ ├── 全局配置:商户管理、系统参数
92
+ ├── 公共数据:字典、行政区划
93
+ └── 平台级功能:平台统计、运营数据
94
+
95
+ 两个库都涉及
96
+ ├── 商户信息:系统库存基本信息,商户库存扩展配置
97
+ └── 公共模板:系统库存模板,商户库存实例化数据
98
+ ```
99
+
100
+ ### 端优先决策树
101
+
102
+ ```
103
+ 管理操作(配置、审核、报表)→ Web 端 /api/v2/web/
104
+ 就餐操作(点餐、充值、查询)→ 移动端 /api/v2/mobile/
105
+ 设备操作(取餐、人脸识别) → 设备端 /api/v2/android/
106
+ 第三方对接(供应商、支付) → 开放接口 /api/v2/open/
107
+
108
+ 注意:同一功能不同端有不同 Controller,共享 Business/Service
109
+ ```
110
+
111
+ ---
112
+
113
+ ## 方案评估矩阵
114
+
115
+ ```markdown
116
+ | 方案 | 复用度(25%) | 双库适配(20%) | 多端(15%) | 架构合理(20%) | 开发量(20%) | 总分 |
117
+ |------|-------------|---------------|-----------|---------------|-------------|------|
118
+ | 方案A | ? | ? | ? | ? | ? | ? |
119
+ | 方案B | ? | ? | ? | ? | ? | ? |
120
+
121
+ 评分:1-10分,越高越好
122
+ - 复用度:能复用多少现有模块代码
123
+ - 双库适配:数据归属是否清晰
124
+ - 多端:Web/Mobile/Android 支持程度
125
+ - 架构合理:四层分层是否合理
126
+ - 开发量:分数越高=工作量越少
127
+ ```
128
+
129
+ ---
130
+
131
+ ## 方案探索模板
132
+
133
+ ### 问题定义
134
+
135
+ ```markdown
136
+ - **是什么**: [具体功能描述]
137
+ - **为什么重要**: [业务价值]
138
+ - **当前状态**: [现有系统有无类似功能]
139
+ - **模块归属**: sys-canteen / sys-kitchen / sys-drp / sys-common / 新模块
140
+ - **数据库归属**: 商户库 / 系统库 / 两者都需要
141
+ - **端支持**: Web / Mobile / Android / Open
142
+ - **是否跨模块**: 是否涉及多个子模块(需 Business 编排)
143
+ ```
144
+
145
+ ### 方案列举
146
+
147
+ ```markdown
148
+ ### 方案 A: 最大复用(优先考虑)
149
+ - 基于现有模块组合实现
150
+ - 复用:[哪些模块/代码],新开发:[必须新写的部分]
151
+ - 数据库:[归属],架构:[分层设计]
152
+
153
+ ### 方案 B: 适度扩展
154
+ - 在现有模块基础上新增子模块
155
+ - 复用:[部分],新开发:[部分]
156
+
157
+ ### 方案 C: 独立新模块
158
+ - 新建业务模块,完整四层架构
159
+ - 仅复用基础架构和工具类
160
+ ```
161
+
162
+ ### 推荐方案输出
163
+
164
+ ```markdown
165
+ **推荐**: 方案 [X]
166
+ **理由**: 1. 复用了 [xxx] 2. 数据归属清晰 3. 架构合理
167
+
168
+ **实施步骤**:
169
+ 1. [ ] 数据库设计 → leniu-database-ops
170
+ 2. [ ] Entity/VO/DTO → leniu-java-entity
171
+ 3. [ ] 后端 CRUD → leniu-crud-development
172
+ 4. [ ] API 接口 → leniu-api-development
173
+ 5. [ ] 测试验证
174
+
175
+ **风险**:
176
+ | 风险 | 应对策略 |
177
+ |------|---------|
178
+ | [风险1] | [策略] |
179
+ ```
180
+
181
+ ---
182
+
183
+ ## 讨论引导问题
184
+
185
+ ### 功能规划时
186
+
187
+ 1. 属于哪个已有模块?能复用哪些子模块?
188
+ 2. 数据是租户级还是系统级?是否需要 `Executors.doInSystem()`?
189
+ 3. 涉及多个 Service 吗(需要 Business 层)?Controller 按哪些端划分?
190
+ 4. 是否需要 MQ 异步、定时任务、报表统计?
191
+ 5. 是否需要合计行(totalLine)或餐次筛选(mealtimeTypes)?
192
+
193
+ ### 方案选择时
194
+
195
+ 1. 快速上线 vs 可扩展?在已有模块扩展是否够用?
196
+ 2. MVP 包含哪些端的接口?完整版还需什么?
197
+ 3. 对现有订单/支付流程有影响吗?性能瓶颈在哪?
198
+
199
+ ---
200
+
201
+ ## 典型业务场景示例
202
+
203
+ 详见 `references/business-scenarios.md`,包含:
204
+ - 食堂业务扩展(预订餐功能)
205
+ - 跨模块数据整合(食堂+后场联动报表)
206
+ - 设备端新功能(智能取餐柜)
207
+ - 营销活动扩展
208
+ - 供应链集成
209
+
210
+ ---
211
+
212
+ ## Skill 联动路径
213
+
214
+ ```
215
+ leniu-brainstorm(本 Skill)→ 确定方案后:
216
+ ├── 数据库设计 → leniu-database-ops
217
+ ├── Entity/VO/DTO → leniu-java-entity
218
+ ├── 后端 CRUD → leniu-crud-development
219
+ ├── API 接口 → leniu-api-development
220
+ ├── 报表功能 → leniu-java-report-query-param + leniu-java-total-line
221
+ ├── 营销规则 → leniu-marketing-price-rule-customizer
222
+ ├── 导出功能 → leniu-java-export
223
+ ├── 定时任务 → leniu-java-task
224
+ ├── MQ 消息 → leniu-java-mq
225
+ └── 工具类 → leniu-utils-toolkit
226
+ ```
227
+
228
+ | 头脑风暴结论 | 下一步 Skill | 触发方式 |
229
+ |-------------|-------------|---------|
230
+ | 需要建表 | leniu-database-ops | "帮我设计 leniu xxx 表" |
231
+ | 需要 CRUD | leniu-crud-development | "帮我开发 leniu xxx 模块" |
232
+ | 需要 API | leniu-api-development | "帮我设计 leniu xxx 接口" |
233
+ | 需要报表 | leniu-java-report-query-param | "帮我做 leniu xxx 报表" |
234
+ | 需要导出 | leniu-java-export | "帮我实现 leniu xxx 导出" |
235
+
236
+ ---
237
+
238
+ ## 注意
239
+
240
+ - 具体架构设计(双库、分层、模块划分)→ 使用 `leniu-architecture-design`
241
+ - 通用头脑风暴(非 leniu 项目)→ 使用 `brainstorm`
242
+ - 技术选型对比 → 使用 `tech-decision`
@@ -0,0 +1,162 @@
1
+ # leniu 典型业务场景头脑风暴示例
2
+
3
+ ## 场景 1:食堂业务扩展(预订餐功能)
4
+
5
+ ```
6
+ 需求:新增"预订餐"功能
7
+
8
+ ├── 模块归属
9
+ │ ├── sys-canteen/order 扩展(与订单强关联)✅ 推荐
10
+ │ ├── sys-canteen 新建 reservation 子模块
11
+ │ └── 独立模块(不推荐,过度设计)
12
+
13
+ ├── 功能拆解
14
+ │ ├── 预订配置(管理端:餐次、提前时间、名额)
15
+ │ ├── 预订下单(移动端:选餐、提交预订)
16
+ │ ├── 预订取消(自动/手动取消)
17
+ │ └── 预订统计(报表:预订率、取消率)
18
+
19
+ ├── 数据库归属
20
+ │ ├── 预订配置表 → 商户库(各食堂独立配置)
21
+ │ ├── 预订记录表 → 商户库(租户业务数据)
22
+ │ └── 无需系统库数据
23
+
24
+ ├── 可复用
25
+ │ ├── order 模块 → 订单状态机、支付流程
26
+ │ ├── menu 模块 → 菜品数据
27
+ │ ├── account 模块 → 余额扣减
28
+ │ ├── MqUtil → 预订到期提醒
29
+ │ └── @XxlJob → 自动取消过期预订
30
+
31
+ └── 四层架构
32
+ ├── Controller: ReservationWebController / ReservationMobileController
33
+ ├── Business: ReservationWebBusiness(编排预订+订单+支付)
34
+ ├── Service: ReservationInfoService(单表 CRUD)
35
+ └── Mapper: ReservationInfoMapper + XML
36
+ ```
37
+
38
+ ---
39
+
40
+ ## 场景 2:跨模块数据整合(食堂+后场联动报表)
41
+
42
+ ```
43
+ 需求:食堂+后场联动报表
44
+
45
+ ├── 数据来源
46
+ │ ├── sys-canteen/order → 订单数据
47
+ │ ├── sys-canteen/menu → 菜品数据
48
+ │ ├── sys-kitchen/kitchen → 后厨出餐数据
49
+ │ └── sys-canteen/cost → 成本数据
50
+
51
+ ├── 方案选择
52
+ │ ├── 方案 A:报表 Service 跨模块查询 ✅
53
+ │ │ └── Business 层编排多个 Service
54
+ │ ├── 方案 B:ETL 预计算汇总表
55
+ │ │ └── @XxlJob 定时聚合
56
+ │ └── 方案 C:视图或存储过程
57
+ │ └── 不推荐(不符合项目规范)
58
+
59
+ ├── 架构设计
60
+ │ ├── Controller: ReportWebController(/api/v2/web/report/xxx)
61
+ │ ├── Business: ReportCrossModuleBusiness(编排跨模块查询)
62
+ │ ├── Service: 各模块现有 Service
63
+ │ └── Param: ReportBaseParam(分页+时间范围+餐次)
64
+
65
+ └── 注意事项
66
+ ├── 跨模块查询全部在 Business 层编排
67
+ ├── 使用 Executors.doInTenant() 确保租户隔离
68
+ ├── 报表入参继承 ReportBaseParam
69
+ └── 合计行使用 ReportBaseTotalVO 模式
70
+ ```
71
+
72
+ ---
73
+
74
+ ## 场景 3:设备端新功能(智能取餐柜)
75
+
76
+ ```
77
+ 需求:智能取餐柜集成
78
+
79
+ ├── 模块归属
80
+ │ ├── sys-canteen/device 扩展 ✅ 推荐
81
+ │ └── 新建 sys-canteen/cabinet 子模块
82
+
83
+ ├── 多端接口
84
+ │ ├── Web 管理端:柜子配置、状态监控
85
+ │ │ └── /api/v2/web/cabinet/...
86
+ │ ├── 设备端:开柜、存取餐
87
+ │ │ └── /api/v2/android/cabinet/...
88
+ │ └── 移动端:取餐码、取餐通知
89
+ │ └── /api/v2/mobile/cabinet/...
90
+
91
+ ├── 数据库
92
+ │ ├── cabinet_info(柜子信息)→ 商户库
93
+ │ ├── cabinet_cell(格口信息)→ 商户库
94
+ │ ├── cabinet_record(存取记录)→ 商户库
95
+ │ └── cabinet_config(全局配置)→ 系统库(Executors.doInSystem)
96
+
97
+ └── 可复用
98
+ ├── device 模块 → 设备注册/心跳模式
99
+ ├── order 模块 → 订单关联
100
+ ├── MqUtil → 存餐/取餐事件通知
101
+ └── notice 模块 → 取餐提醒推送
102
+ ```
103
+
104
+ ---
105
+
106
+ ## 场景 4:营销活动扩展
107
+
108
+ ```
109
+ 需求:新增优惠活动类型
110
+
111
+ ├── 模块归属
112
+ │ └── sys-canteen/marketing ✅(已有营销模块)
113
+
114
+ ├── 已有营销能力
115
+ │ ├── 计费规则(price)→ 折扣、满减、限额、补贴
116
+ │ ├── 充值规则(recharge)→ 满赠、按次赠送、限额
117
+ │ └── 规则定制器 → leniu-marketing-price-rule-customizer
118
+
119
+ ├── 扩展方式
120
+ │ ├── 方案 A:复用规则定制器,新增规则类型 ✅ 推荐
121
+ │ ├── 方案 B:新建活动子类型(marketing 模块下新增 activity 包)
122
+ │ └── 方案 C:独立营销引擎(过度设计,不推荐)
123
+
124
+ └── 注意
125
+ └── 营销规则定制参考:
126
+ - leniu-marketing-price-rule-customizer
127
+ - leniu-marketing-recharge-rule-customizer
128
+ ```
129
+
130
+ ---
131
+
132
+ ## 场景 5:供应链集成
133
+
134
+ ```
135
+ 需求:供应商对接与采购管理
136
+
137
+ ├── 模块归属
138
+ │ └── sys-drp/erp ✅(已有供应链模块)
139
+
140
+ ├── 功能拆解
141
+ │ ├── 供应商管理(基本信息、资质)
142
+ │ ├── 采购计划(基于菜单自动生成)
143
+ │ ├── 采购订单(下单、收货、退货)
144
+ │ └── 库存管理(入库、出库、盘点)
145
+
146
+ ├── 跨模块联动
147
+ │ ├── menu 模块 → 菜品原料需求
148
+ │ ├── cost 模块 → 采购成本核算
149
+ │ ├── kitchen 模块 → 后厨领料
150
+ │ └── report 模块 → 采购报表
151
+
152
+ ├── 数据库
153
+ │ ├── 供应商数据 → 商户库(各食堂独立供应商)
154
+ │ ├── 采购数据 → 商户库
155
+ │ └── 供应商公共目录 → 系统库(可选,平台级共享)
156
+
157
+ └── 四层架构
158
+ ├── Controller: 按端分 web/mobile
159
+ ├── Business: PurchaseBusiness(编排采购+库存+成本)
160
+ ├── Service: SupplierService / PurchaseOrderService / InventoryService
161
+ └── Mapper: 各自 Mapper + XML(同目录!)
162
+ ```