feat: 后端架构重构 — Endpoint→Service→Repository分层 + AI确认机制 + 异步任务持久化
- 核心业务拆分为 Endpoint → Application Service → Repository 三层 - AI写入操作必须用户确认后才写库(确认卡片机制) - 报告/饮食/用药分析改为持久化任务队列(原子领取/重试/重启恢复) - 运动计划修复: 连续真实日期替代周模板 - 用药提醒去重 + 通知Outbox预留 - 认证收拢到AuthService, 管理员收拢到AdminService - AI会话加用户归属校验防串号 - 提示词调整为患者视角 - 开发假数据已关闭 - 21/21测试通过, 0警告0错误
This commit is contained in:
@@ -118,8 +118,8 @@ class _DeviceScanPageState extends ConsumerState<DeviceScanPage>
|
||||
try {
|
||||
final ble = ref.read(omronBleServiceProvider);
|
||||
await ble.connect(r.device);
|
||||
final name = r.advertisementData.localName.isNotEmpty
|
||||
? r.advertisementData.localName
|
||||
final name = r.advertisementData.advName.isNotEmpty
|
||||
? r.advertisementData.advName
|
||||
: (r.device.platformName.isNotEmpty ? r.device.platformName : '血压计');
|
||||
|
||||
await ref
|
||||
@@ -414,7 +414,7 @@ class _DeviceScanPageState extends ConsumerState<DeviceScanPage>
|
||||
const SizedBox(height: 32),
|
||||
AnimatedBuilder(
|
||||
animation: _pulseAnim,
|
||||
builder: (_, __) => Container(
|
||||
builder: (_, _) => Container(
|
||||
width: 48,
|
||||
height: 48,
|
||||
decoration: BoxDecoration(
|
||||
@@ -448,8 +448,8 @@ class _DeviceScanPageState extends ConsumerState<DeviceScanPage>
|
||||
// ── 设备列表项 ──
|
||||
Widget _buildTile(ScanResult r) {
|
||||
final isConnecting = _connectingId == r.device.remoteId.toString();
|
||||
final name = r.advertisementData.localName.isNotEmpty
|
||||
? r.advertisementData.localName
|
||||
final name = r.advertisementData.advName.isNotEmpty
|
||||
? r.advertisementData.advName
|
||||
: (r.device.platformName.isNotEmpty ? r.device.platformName : '未知设备');
|
||||
|
||||
return Container(
|
||||
|
||||
Reference in New Issue
Block a user