chore: 全面规范化代码,遵循 CLAUDE.md 编码规范

- C# 文件命名改为 snake_case(28 个文件重命名)
- C# 类转换为主构造函数(8 个类)
- 空 catch 添加异常类型(2 处)
- 新建 GlobalUsings.cs(Health.Infrastructure、Health.WebApi)
- Flutter 移除 go_router,改用 Riverpod 路由栈
- Flutter 移除 flutter_secure_storage,改用 sqflite 持久化
- 修复 Flutter 构建路径(Flutter SDK 迁至 D 盘)
- 后端端口改为 0.0.0.0:5000,支持局域网访问
This commit is contained in:
MingNian
2026-06-02 12:41:06 +08:00
parent 14d7c30d3d
commit 6e69f1085e
47 changed files with 342 additions and 428 deletions

View File

@@ -1,16 +1,16 @@
import 'package:dio/dio.dart';
import 'secure_storage.dart';
import 'local_database.dart';
/// API 基础地址
const String baseUrl = 'http://10.4.172.93:5000';
const String baseUrl = 'http://10.4.185.103:5000';
/// Dio HTTP 客户端封装——带 token 注入、401 自动刷新
class ApiClient {
final Dio _dio;
final SecureStorage _storage;
final LocalDatabase _db;
ApiClient({required SecureStorage storage})
: _storage = storage,
ApiClient({required LocalDatabase db})
: _db = db,
_dio = Dio(BaseOptions(
baseUrl: baseUrl,
connectTimeout: const Duration(seconds: 15),
@@ -23,16 +23,16 @@ class ApiClient {
Dio get dio => _dio;
Future<String?> get accessToken => _storage.readAccessToken();
Future<String?> get refreshToken => _storage.readRefreshToken();
Future<String?> get accessToken => _db.read('access_token');
Future<String?> get refreshToken => _db.read('refresh_token');
Future<void> saveTokens(String access, String refresh) async {
await _storage.writeAccessToken(access);
await _storage.writeRefreshToken(refresh);
await _db.write('access_token', access);
await _db.write('refresh_token', refresh);
}
Future<void> clearTokens() async {
await _storage.deleteAll();
await _db.deleteAll();
}
/// 带 token 的 GET 请求