初始化

This commit is contained in:
zhu
2026-03-10 13:36:40 +08:00
commit b03e64957c
111 changed files with 4536 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
import 'package:app/core/network/request.dart';
import '../models/common/qiu_token_dto.dart';
import '../models/common/version_dto.dart';
///获取七牛token
/// - [fileKey]: 文件key
/// - [isPrivate]: 是否私有
Future<QiuTokenDto> getQiuTokenApi(String fileKey, {bool isPrivate = false}) async {
var response = await Request().get("/file/get_qiniu_upload_token", {
"file_key": fileKey,
"is_public_bucket": isPrivate ? 2 : 1,
});
return QiuTokenDto.fromJson(response);
}
///获取APP最新版本
/// - [isIos] 是否获取ios最新版本默认安卓
Future<VersionDto> getAppVersionApi({bool isIos = false}) async {
var response = await Request().get("/get_latest_version", {"platform": isIos ? 2 : 1});
return VersionDto.fromJson(response);
}

View File

@@ -0,0 +1,20 @@
class ApiDto<T> {
final int code;
final String message;
final T data;
ApiDto({
required this.code,
required this.message,
required this.data
});
factory ApiDto.fromJson(Map<String, dynamic> json) {
return ApiDto<T>(
code: json['code'],
message: json['message'],
data: json['data'],
);
}
}

View File

@@ -0,0 +1,24 @@
class QiuTokenDto {
String? uploadUrl;
String? upToken;
String? fileKey;
String? domain;
QiuTokenDto({this.uploadUrl, this.upToken, this.fileKey, this.domain});
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map["upload_url"] = uploadUrl;
map["up_token"] = upToken;
map["file_key"] = fileKey;
map["domain"] = domain;
return map;
}
QiuTokenDto.fromJson(dynamic json){
uploadUrl = json["upload_url"] ?? "";
upToken = json["up_token"] ?? "";
fileKey = json["file_key"] ?? "";
domain = json["domain"] ?? "";
}
}

View File

@@ -0,0 +1,43 @@
class VersionDto {
VersionDto({
required this.latestVersion,
required this.updatedAt,
required this.downloadUrl,
required this.updateContent,
required this.createdAt,
required this.lowVersion,
required this.id,
required this.downloadSize,
});
String latestVersion;
DateTime updatedAt;
String downloadUrl;
List<String> updateContent;
DateTime createdAt;
String lowVersion;
int id;
String downloadSize;
factory VersionDto.fromJson(Map<dynamic, dynamic> json) => VersionDto(
latestVersion: json["latest_version"],
updatedAt: DateTime.parse(json["updated_at"]),
downloadUrl: json["download_url"],
updateContent: List<String>.from(json["update_content"].map((x) => x)),
createdAt: DateTime.parse(json["created_at"]),
lowVersion: json["low_version"],
id: json["id"],
downloadSize: json["download_size"],
);
Map<dynamic, dynamic> toJson() => {
"latest_version": latestVersion,
"updated_at": updatedAt.toIso8601String(),
"download_url": downloadUrl,
"update_content": List<dynamic>.from(updateContent.map((x) => x)),
"created_at": createdAt.toIso8601String(),
"low_version": lowVersion,
"id": id,
"download_size": downloadSize,
};
}

View File

@@ -0,0 +1,33 @@
import 'package:app/core/utils/storage.dart';
/// 登录数据仓库
class AuthRepo {
static final String _key = "login_info";
///登录储存信息
static Future<void> saveLogin(dynamic loginDto) async {
await Storage.set(_key, loginDto.toJson());
}
///获取登录信息
static Future<dynamic> getLoginInfo() async {
// final loginInfo = await Storage.get<dynamic?>(
// _key,
// decoder: (json) => dynamic.fromJson(json),
// );
// return loginInfo;
return null;
}
///获取token
static Future<String?> getToken() async {
final loginInfo = await getLoginInfo();
return loginInfo?.token;
}
///清除登录信息
static Future<void> clearLogin() async {
await Storage.remove(_key);
}
}

View File

@@ -0,0 +1,14 @@
import 'package:flutter_riverpod/legacy.dart';
final userProvider = StateNotifierProvider<UserNotifier, UserState>((ref) => UserNotifier());
class UserNotifier extends StateNotifier<UserState> {
UserNotifier() : super(UserState());
}
/// 用户数据
class UserState {
String token;
UserState({this.token = ""});
}