查询数据
This commit is contained in:
@@ -4,6 +4,7 @@ class BaseModel<T> {
|
||||
final int code; // 状态码,0正常,其他异常
|
||||
final bool status; // 状态布尔值,true正常,false异常
|
||||
final String message; // 消息,例如 "success"
|
||||
final String msg; // 消息,例如 "success"
|
||||
final T? data; // 核心数据,使用泛型 T,可以是任何类型
|
||||
final int time; // 时间戳
|
||||
final dynamic error; // 错误信息,可以是任何类型或 null
|
||||
@@ -12,6 +13,7 @@ class BaseModel<T> {
|
||||
required this.code,
|
||||
required this.status,
|
||||
required this.message,
|
||||
required this.msg,
|
||||
this.data, // data 可以为 null
|
||||
required this.time,
|
||||
this.error, // error 可以为 null
|
||||
@@ -19,9 +21,9 @@ class BaseModel<T> {
|
||||
|
||||
/// fromJson 工厂构造函数(重构后)
|
||||
factory BaseModel.fromJson(
|
||||
Map<String, dynamic> json, {
|
||||
T? Function(dynamic dataJson)? dataBuilder,
|
||||
}) {
|
||||
Map<String, dynamic> json, {
|
||||
T? Function(dynamic dataJson)? dataBuilder,
|
||||
}) {
|
||||
// 使用一个辅助函数来安全地转换类型,防止因类型不匹配(如 "0" vs 0)而崩溃
|
||||
int _parseInt(dynamic value) {
|
||||
if (value is int) return value;
|
||||
@@ -42,7 +44,7 @@ class BaseModel<T> {
|
||||
if (T != dynamic) {
|
||||
try {
|
||||
finalData = json['data'] as T?;
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
// 如果直接转换失败,保持为 null,避免崩溃
|
||||
finalData = null;
|
||||
}
|
||||
@@ -56,7 +58,8 @@ class BaseModel<T> {
|
||||
return BaseModel<T>(
|
||||
code: _parseInt(json['code']),
|
||||
status: json['status'] as bool? ?? false,
|
||||
message: json['message']?.toString() ?? 'No message',
|
||||
message: json['message'] ?? '暂不可用,请稍后',
|
||||
msg: json['msg'] ?? '暂不可用,请稍后',
|
||||
time: _parseInt(json['time']),
|
||||
data: finalData,
|
||||
error: json['error'],
|
||||
@@ -68,6 +71,7 @@ class BaseModel<T> {
|
||||
'code': code,
|
||||
'status': status,
|
||||
'message': message,
|
||||
'msg': msg,
|
||||
'time': time,
|
||||
'data': data,
|
||||
'error': error,
|
||||
|
||||
Reference in New Issue
Block a user