76 lines
1.9 KiB
Dart
76 lines
1.9 KiB
Dart
|
|
/// 定时任务模型。
|
|||
|
|
///
|
|||
|
|
/// 对应后端 /sys/schedule/* 接口的定时任务实体。
|
|||
|
|
/// status 取值:0=正常 1=暂停。
|
|||
|
|
class Schedule {
|
|||
|
|
const Schedule({
|
|||
|
|
required this.jobId,
|
|||
|
|
required this.beanName,
|
|||
|
|
required this.methodName,
|
|||
|
|
required this.params,
|
|||
|
|
required this.cronExpression,
|
|||
|
|
required this.status,
|
|||
|
|
required this.remark,
|
|||
|
|
required this.createTime,
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
/// 任务 ID。
|
|||
|
|
final String jobId;
|
|||
|
|
|
|||
|
|
/// Spring Bean 名称。
|
|||
|
|
final String beanName;
|
|||
|
|
|
|||
|
|
/// 方法名称。
|
|||
|
|
final String methodName;
|
|||
|
|
|
|||
|
|
/// 方法参数。
|
|||
|
|
final String params;
|
|||
|
|
|
|||
|
|
/// Cron 表达式。
|
|||
|
|
final String cronExpression;
|
|||
|
|
|
|||
|
|
/// 状态(0=正常 1=暂停)。
|
|||
|
|
final int status;
|
|||
|
|
|
|||
|
|
/// 备注。
|
|||
|
|
final String remark;
|
|||
|
|
|
|||
|
|
/// 创建时间。
|
|||
|
|
final DateTime? createTime;
|
|||
|
|
|
|||
|
|
factory Schedule.fromJson(Map<String, dynamic> json) {
|
|||
|
|
return Schedule(
|
|||
|
|
jobId: (json['jobId'] ?? json['id'])?.toString() ?? '',
|
|||
|
|
beanName: json['beanName']?.toString() ?? '',
|
|||
|
|
methodName: json['methodName']?.toString() ?? '',
|
|||
|
|
params: json['params']?.toString() ?? '',
|
|||
|
|
cronExpression: json['cronExpression']?.toString() ?? '',
|
|||
|
|
status: int.tryParse(json['status']?.toString() ?? '0') ?? 0,
|
|||
|
|
remark: json['remark']?.toString() ?? '',
|
|||
|
|
createTime: _parseDateTime(json['createTime']),
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 兼容 `yyyy-MM-dd HH:mm:ss` 与 ISO 8601 两种时间格式。
|
|||
|
|
static DateTime? _parseDateTime(dynamic value) {
|
|||
|
|
if (value == null) return null;
|
|||
|
|
final text = value.toString().trim();
|
|||
|
|
if (text.isEmpty) return null;
|
|||
|
|
return DateTime.tryParse(text) ??
|
|||
|
|
DateTime.tryParse(text.replaceFirst(' ', 'T'));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Map<String, dynamic> toJson() {
|
|||
|
|
return {
|
|||
|
|
'jobId': jobId,
|
|||
|
|
'beanName': beanName,
|
|||
|
|
'methodName': methodName,
|
|||
|
|
'params': params,
|
|||
|
|
'cronExpression': cronExpression,
|
|||
|
|
'status': status,
|
|||
|
|
'remark': remark,
|
|||
|
|
'createTime': createTime?.toIso8601String(),
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
}
|