1. Mục tiêu nghiệp vụ#
Hệ thống Admin Banner được xây dựng để hỗ trợ người dùng nội bộ quản trị tập trung các cấu hình liên quan đến:banner / zone / template / image
theme / plugin / site script
Mục tiêu chính của hệ thống là:chuẩn hóa dữ liệu cấu hình cho từng domain
cho phép quản trị và publish banner nhanh chóng
hỗ trợ phân quyền người dùng theo vai trò
hỗ trợ vận hành nhiều domain/project trên một giao diện admin thống nhất
ghi nhận log, tracking và gửi notification cho các luồng quan trọng
2. Tác nhân chính#
2.1. Admin/User nội bộ#
Là người thao tác trực tiếp trên giao diện admin để:quản lý whitelist, license, user, role
theo dõi trạng thái publish và kết quả vận hành
2.2. Frontend Admin#
Là lớp giao diện người dùng, có nhiệm vụ:hiển thị dữ liệu từ backend
validate cơ bản ở phía client
điều hướng theo route/module
quản lý session và trạng thái UI
2.3. Backend API#
Là lớp xử lý trung tâm, có nhiệm vụ:validate dữ liệu nghiệp vụ
trigger queue job / event / listener
tích hợp storage ngoài, email, telegram, API ngoài
2.4. Hệ thống ngoài#
Bao gồm các thành phần hỗ trợ vận hành:DB API / traffic API / sport API / live sites service
3. Luồng tổng thể của hệ thống#
3.1. Luồng đăng nhập và truy cập hệ thống#
Diễn giải#
Người dùng truy cập giao diện admin và thực hiện đăng nhập.
Frontend gửi request đăng nhập lên backend.
tài khoản tồn tại hay không
trạng thái user có được phép truy cập hay không
Nếu hợp lệ, backend trả về thông tin user, token và quyền truy cập.
Frontend lưu trạng thái đăng nhập và dựng menu/module theo quyền tương ứng.
3.2. Luồng quản lý domain / project#
Diễn giải#
Người dùng vào màn hình danh sách project/domain để xem toàn bộ domain đang được quản lý.
Backend trả về danh sách domain cùng các thông tin như:cấu hình ads/index/plugin site
Khi tạo mới hoặc cập nhật, backend sẽ kiểm tra dữ liệu trước khi lưu.
Domain là đối tượng trung tâm, được dùng tiếp cho:
3.3. Luồng quản lý banner#
Diễn giải#
Module banner cho phép cấu hình banner theo domain hoặc template.
cấu hình vị trí hiển thị / zone / layout
Backend tiếp nhận và lưu dữ liệu vào các bảng liên quan như: Đây là luồng nghiệp vụ quan trọng nhất của hệ thống.
3.4. Luồng publish banner#
Diễn giải#
Khi người dùng thực hiện publish banner, backend kiểm tra:banner có đủ dữ liệu không
storage/banner path có đúng không
trạng thái domain có cho phép publish không
có thể đẩy qua job bất đồng bộ đối với tác vụ nặng
Kết quả publish được lưu lại để phục vụ:gửi cảnh báo/notification
3.5. Luồng upload file / banner asset#
Diễn giải#
Hệ thống hỗ trợ upload file phục vụ banner hoặc nội dung liên quan.
File sau khi upload có thể được: Sau khi upload thành công, backend lưu metadata để frontend có thể dùng lại trong cấu hình banner/template.
3.6. Luồng cấu hình SEO content#
Diễn giải#
Người dùng chọn domain và page template để cấu hình nội dung SEO.
Hệ thống hỗ trợ dữ liệu đa ngôn ngữ, bao gồm: Backend lưu dữ liệu theo cấu trúc:danh sách bản ghi ngôn ngữ đi kèm
3.7. Luồng whitelist domain#
Diễn giải#
Module whitelist phục vụ quản lý các domain cần kiểm tra hoặc cấp quyền đặc biệt.
Sau khi tạo yêu cầu whitelist, hệ thống có thể:kiểm tra domain bất đồng bộ
cập nhật trạng thái xử lý
gửi thông báo cho người phụ trách
3.8. Luồng license key#
Diễn giải#
Hệ thống hỗ trợ quản lý license key và domain liên kết.
Khi có hành động duy ệt hoặc từ chối:listener tương ứng gửi email hoặc telegram
Cơ chế này giúp tách nghiệp vụ chính khỏi luồng notification.
3.9. Luồng phân quyền người dùng#
Diễn giải#
Hệ thống phân quyền theo: Việc kiểm tra quyền diễn ra ở cả:frontend: ẩn/hiện menu, route
backend: chặn thao tác trái quyền
4. Quan hệ logic giữa các module#
4.1. Domain là trung tâm cấu hình#
Phần lớn nghiệp vụ của hệ thống xoay quanh domain/project. Một domain có thể liên kết với:Do đó, khi thay đổi domain, có thể ảnh hưởng đến nhiều module khác.
4.2. Banner là nghiệp vụ vận hành chính#
Banner được cấu hình dựa trên:Luồng banner thường kéo theo các nghiệp vụ hỗ trợ:
4.3. User/Role là lớp kiểm soát hệ thống#
Toàn bộ màn hình và API đều phụ thuộc vào quyền truy cập của user. Logic này đảm bảo:người dùng chỉ thấy module được cấp quyền
chỉ user đúng vai trò mới được tạo/sửa/xóa/publish
tránh thao tác sai giữa các team vận hành
4.4. Queue/Event giúp tách xử lý nặng khỏi request trực tiếp#
được tách khỏi request trực tiếp để:
5. Logic xử lý chuẩn của một thao tác CRUD#
Hầu hết các module trong hệ thống tuân theo logic chung sau:Diễn giải#
Controller: điểm vào của API
Request: validate dữ liệu đầu vào
Service: xử lý logic nghiệp vụ
Repository/Model: thao tác dữ liệu
Response/Resource: chuẩn hóa dữ liệu trả ra frontend
Đây là logic nền tảng của backend và giúp hệ thống dễ bảo trì hơn.
6. Luồng tổng hợp end-to-end điển hình#
Một kịch bản nghiệp vụ phổ biến của hệ thống:2.
Vào module Project/Domain để tạo hoặc chọn domain cần cấu hình
3.
Cấu hình banner/template/image cho domain
5.
Cấu hình SEO content cho domain
6.
Kiểm tra các điều kiện liên quan như whitelist, license, setting
8.
Hệ thống ghi log, xử lý job, gửi notification
9.
Admin theo dõi kết quả publish, traffic hoặc tracking liên quan
Đây là chuỗi logic phản ánh đúng vai trò vận hành trung tâm của Admin Banner.
7. Kết luận#
Logic tổng thể của hệ thống được tổ chức theo mô hình:frontend quản lý giao diện và tương tác người dùng
backend xử lý nghiệp vụ trung tâm
database lưu dữ liệu cấu hình
queue/event hỗ trợ xử lý bất đồng bộ
notification/storage/external API hỗ trợ vận hành
Kiến trúc logic này phù hợp với hệ thống admin nhiều module, có nhiều domain/project và yêu cầu vận hành linh hoạt theo từng môi trường.Modified at 2026-03-30 07:53:34