跳到主要内容

订单导出

需求

参考:数据导出需求

类图

image-20221027113322112

架构

image-20221012201027769

  1. OrderExportManager调用AdminTaskManager创建导出任务数据
  2. OrderExportManager调用异步任务执行器TaskExecutor执行异步订单导出任务,任务相关架构见任务架构
  3. TaskExecutor异步调用OrderManagerExportTask执行异步导出任务
  4. 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;

}