订单导出
需求
参考:数据导出需求
类图
架构
- OrderExportManager调用AdminTaskManager创建导出任务数据
- OrderExportManager调用异步任务执行器TaskExecutor执行异步订单导出任务,任务相关架构见任务架构
- TaskExecutor异步调用OrderManagerExportTask执行异步导出任务
- OrderManagerExportTask执行任务后更新任务执行结果
伪代码
public TaskResult export(OrderQueryParam param) {
Admin admin = AdminUserContext.getAdmin();
//创建任务
AdminTask task = new AdminTask();
task.setStatus(TaskStatusEnum.processing.name());
task.setTaskName("订单平台导出");
task.setModuleType(ModuleTypeEnum.ManagerOrderExport.name());
task.setTaskResult("导出中");
task.setUserId(admin.getUid());
task.setUsername(admin.getUsername());
task.setOperateType(OperateTypeEnum.EXPORT.name());
String paramStr = ParamUtil.resolveToStr(param);
task.setParam(paramStr);
adminTaskManager.create(task);
TaskResult taskResult = new TaskResult();
taskResult.setStatus(TaskStatusEnum.success);
taskResult.setTaskId(task.getTaskId());
//创建任务执行器
ExportTask exportTask = new OrderManagerExportTask(task.getTaskId(),param);
//执行异步导出任务
taskExecutor.execTask(exportTask);
return taskResult;
}