feat: 初始化居家上门服务系统完整项目代码
- Spring Boot 后端服务 (hss-home-service) - delivery-miniapp 配送小程序 - website 官网 (Nuxt) - docs 架构设计文档 - Docker 容器化部署配置 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
1694
docs/ architecture/居家上门服务闭环流程文档_V2.1_行业经验增强版.md
Normal file
1694
docs/ architecture/居家上门服务闭环流程文档_V2.1_行业经验增强版.md
Normal file
File diff suppressed because it is too large
Load Diff
1779
docs/ architecture/居家上门服务闭环流程文档_V2.2_边界限制增强版.md
Normal file
1779
docs/ architecture/居家上门服务闭环流程文档_V2.2_边界限制增强版.md
Normal file
File diff suppressed because it is too large
Load Diff
1298
docs/ architecture/居家上门服务闭环流程文档_V2工程落地增强版.md
Normal file
1298
docs/ architecture/居家上门服务闭环流程文档_V2工程落地增强版.md
Normal file
File diff suppressed because it is too large
Load Diff
52
docs/ architecture/边界约束文档.md
Normal file
52
docs/ architecture/边界约束文档.md
Normal file
@@ -0,0 +1,52 @@
|
||||
可以,现在进入 **第四步:边界限制**。这一阶段的作用是把“哪些可以自由设计、哪些不能动”先锁死。你的 V2.1 文档已经明确了状态机、数据模型、delivery 端、通知、结算、审计等方向,其中状态流转要求“前端只传动作,不传目标状态”,并且相同请求需要幂等处理;数据模型也已经拆出了申请、评估、方案、计划、工单、执行、异常、监管、验收、结算、通知、审计、合规等数据域。 delivery 端也已经被定义为服务人员移动作业端,而不是普通配送端,需要覆盖工作台、工单详情、签到、执行、异常、补录等页面。
|
||||
|
||||
我已经把这一节补进文档,生成新版:
|
||||
|
||||
[下载 V2.2 边界限制增强版](sandbox:/mnt/data/居家上门服务闭环流程文档_V2.2_边界限制增强版.md)
|
||||
|
||||
## 第四步结论:本次实现硬约束
|
||||
|
||||
| 边界项 | 硬约束结论 |
|
||||
| ------ | ------------------------------------------------ |
|
||||
| 后端技术栈 | **Spring Boot / Java 17+**,一期采用模块化单体,不先拆微服务 |
|
||||
| 数据库 | **PostgreSQL 优先**;如果现有平台已统一 MySQL,则允许 MySQL 8 替代 |
|
||||
| Redis | 只做缓存、短期幂等、分布式锁、热点字典,不作为最终业务状态来源 |
|
||||
| MQTT | 只做 delivery 端实时通知,不作为业务成功依据 |
|
||||
| 文件存储 | 照片、音频、视频、签署文件、归档文件进入对象存储,不进数据库大字段 |
|
||||
| 接口风格 | 外部接口 RESTful;状态动作使用 action-style REST |
|
||||
| API 契约 | 必须输出 OpenAPI 3.1 文档 |
|
||||
| DDL 设计 | 允许自由设计新表,统一使用 `hss_` 前缀 |
|
||||
| 向后兼容 | 居家子系统从零设计,不兼容商城订单/普通配送模型,但兼容现有账号、角色、机构、文件能力 |
|
||||
| 前端范围 | delivery 端小程序属于本次实现范围 |
|
||||
| 性能 SLA | 一期按中小规模设计,但接口、索引、分页、异步、幂等必须按生产方式实现 |
|
||||
| 合规安全 | 敏感数据必须授权、脱敏、审计、控制留存 |
|
||||
|
||||
Spring Boot 官方当前系统要求显示,Spring Boot 4.x 至少需要 Java 17,这也支持我们把 Java 17+ 作为后端硬约束。([Home][1]) OpenAPI 官方规范说明,OpenAPI 是一种标准、语言无关的 HTTP API 描述方式,可让人和机器在不访问源码的情况下理解服务能力,因此适合作为前后端契约。([Swagger][2]) PostgreSQL 对 `jsonb` 支持索引,适合保存扩展配置、快照、算法解释等半结构化数据,但核心状态和金额仍然必须关系化建模。([PostgreSQL][3]) Redis 官方文档也明确分布式锁是用于多个进程互斥访问共享资源的原语,所以它适合锁、缓存、幂等,不适合当最终业务账本。([Redis][4])
|
||||
|
||||
## 本阶段最重要的 12 条硬约束
|
||||
|
||||
1. 后端以 **Spring Boot / Java** 为主,不在核心链路引入多语言服务。
|
||||
2. 新增 `hss_` 业务表,允许自由设计 DDL。
|
||||
3. **方案、服务计划、工单必须分离建模**。
|
||||
4. 工单必须有项目级执行明细。
|
||||
5. 所有状态流转必须经过后端状态机。
|
||||
6. 前端只发动作,不传目标状态。
|
||||
7. 所有写接口必须幂等。
|
||||
8. 所有通知必须经过 Outbox。
|
||||
9. MQTT 不是业务状态依据。
|
||||
10. 结算金额以后端基于方案快照和执行记录计算为准。
|
||||
11. delivery 端小程序属于本次实现范围。
|
||||
12. 敏感数据必须授权、脱敏、审计、控制留存。
|
||||
|
||||
## 下一步
|
||||
|
||||
第五步应该进入 **系统模块拆分与工程目录设计**,直接输出:
|
||||
|
||||
后端模块包结构、delivery 端页面目录、数据库 migration 目录、OpenAPI 契约目录、状态机代码目录、调度算法代码目录、通知 Outbox 目录、测试用例目录。
|
||||
|
||||
[1]: https://docs.spring.io/spring-boot/system-requirements.html?utm_source=chatgpt.com "System Requirements :: Spring Boot"
|
||||
[2]: https://swagger.io/specification/ "
|
||||
OpenAPI Specification - Version 3.1.0 | Swagger
|
||||
"
|
||||
[3]: https://www.postgresql.org/docs/current/datatype-json.html "PostgreSQL: Documentation: 18: 8.14. JSON Types"
|
||||
[4]: https://redis.io/docs/latest/develop/clients/patterns/distributed-locks/ "Distributed Locks with Redis | Docs"
|
||||
Reference in New Issue
Block a user