Files
2026-10-08 10:16:43 +08:00

35 lines
2.9 KiB
Markdown

# Evergreen Health Backend
常青树健康管理系统后台接口,基于 .NET 8、Admin.NET、SqlSugar 和 MySQL。
## 本地启动
1. 修改 `Evergreen.Health.Application/Configuration/Database.json` 中的 MySQL 连接字符串。
2. 执行 `dotnet restore Evergreen.Health.sln`。
3. 执行 `dotnet run --project Evergreen.Health.Api/Evergreen.Health.Api.csproj`。
## MiAirX 助眠音乐
音箱播放和停止通过 MiAirX 完成,音箱睡眠模式仍由 Home Assistant 控制。初次部署时,将根目录的 `MiAirX.example.json` 复制为 `Evergreen.Health.Application/Configuration/MiAirX.json`,再填写服务地址、音箱 DID 和手动测试音频 URL。本机 `MiAirX.json` 已加入 `.gitignore`,不会随普通 `git add` 提交。
当前 MiAirX 管理页已开启密码保护,在启动后端的环境中设置 `MiAirX__WebPassword` 环境变量(Visual Studio 可在本机启动配置中设置)。不要把管理密码写入 JSON 或提交到仓库。若以后关闭了 MiAirX 的密码保护,可将 `RequireWebPassword` 改为 `false`。后端需要能访问 MiAirX 服务地址;首次联调建议先在设备页手动测试“播放音乐”和“停止播放”,再测试一键启动/关闭。MiAirX 返回成功表示指令已送达,不代表已经确认音箱实际发声。
九体质演示曲目在 `Evergreen.Health.Application/Configuration/TcmMusic.json` 中按体质代码排列,当前 9 首的 OSS URL 已配置。每个体质的列表可按顺序增加多首;一键开启从 50% 音量开始,每 5 秒降低 1%,单曲结束自动播下一首并继承当前音量,末曲结束后从头循环(只有一首时重播该曲),直到音量为 0 时停止。页面显示的是 MiAirX 已成功下发的音量,不依赖 Home Assistant 中可能延迟的音量状态。当前按配置的曲目时长切换,MiAirX 并未提供此播放方式的可靠结束事件。手动播放按钮仍使用 `MiAirX.json` 的测试 URL;手动调整音量会停止自动渐弱,但不会停止当前音乐。
## 健康业务接口
- `POST /api/health/auth/register` 用户注册
- `POST /api/health/auth/login` 用户登录
- `GET /api/health/dashboard` 健康首页
- `PUT /api/health/profile` 更新个人健康档案
- `PUT /api/health/modules` 选择健康板块
- `POST /api/health/plans/generate` 生成个性化健康参数
接口文档以应用启动后生成的 OpenAPI/Scalar 页面为准。
## 后台基础模块范围
当前版本保留 Admin.NET 的通用后台底座:用户、角色、菜单与权限、组织、职位、租户、字典、系统配置、日志、文件、通知和在线用户等。
为保持演示版精简,已移除支付宝、微信/微信支付、LDAP、代码生成、任务调度、动态插件、打印模板等可选扩展模块。数据库迁移脚本位于 `Database/Migrations/20260921_RemoveUnusedExtensionTables.sql`,后续确有业务需要时再按模块重新接入。