10. Xuất dữ liệu (Exports)#
Mục tiêu#
Quản lý các job xuất dữ liệu bất đồng bộ (CSV/Excel) từ các nguồn khác nhau (Profiles, Campaigns, Analytics...), cho phép Admin tải về file đã hoàn thành.
Luồng nghiệp vụ#
- Từ các trang khác (VD: Profiles, Analytics), Admin click nút Export → mở dialog chọn:
- Định dạng: CSV / Excel
- Các trường dữ liệu cần xuất (metrics)
- Submit → tạo export job → thêm vào hàng đợi.
- Hệ thống hiển thị toast "Job đã được tạo".
- Admin chuyển sang trang Exports để xem danh sách job.
- Trạng thái job: Waiting → Running → Completed / Failed.
- Job hoàn thành:
- Hiển thị nút Download (kích hoạt)
- Click Download → hệ thống sinh URL tải → trình duyệt tải file
- Job thất bại: Hiển thị lý do lỗi, có nút Retry nếu khả dụng.
- Bảng Exports: 20 job/trang, cột: Tên, Loại, Người tạo, Thời gian tạo, Trạng thái, Thao tác.
API đã triển khai#
POST /data-exports— Tạo job export mớiGET /data-exports— Danh sách job (phân trang)GET /data-exports/:id— Chi tiết jobGET /data-exports/:id/download— Lấy URL tải filePOST /data-exports/:id/retry— Thử lại job thất bại
Tiêu chí chấp nhận#
| # | Tiêu chí | Điều kiện đạt |
|---|---|---|
| AC-DB.10.1 | Tạo job export | Click Export từ trang khác → dialog mở → chọn format → submit → job tạo |
| AC-DB.10.2 | Chọn định dạng | Chọn CSV/Excel → job tạo đúng format tương ứng |
| AC-DB.10.3 | Danh sách Exports | Hiển thị đúng trạng thái (Waiting/Running/Completed/Failed) với badge màu |
| AC-DB.10.4 | Tải file hoàn thành | Click Download job Completed → file tải về thành công, đúng định dạng |
| AC-DB.10.5 | Disable Download | Job chưa Completed → nút Download bị disable |
| AC-DB.10.6 | Phân trang | 20 job/trang, chuyển trang đúng |
| AC-DB.10.7 | Job thất bại | Job Failed → hiển thị lý do lỗi, có nút Retry |
| AC-DB.10.8 | Retry job | Click Retry → job chuyển về Waiting, xử lý lại |