OmniMention cho Perfex CRM thiết lập nền tảng cộng tác và gắn thẻ dữ liệu tập trung, giúp toàn bộ đội ngũ làm việc ăn khớp và nắm bắt thông tin nhanh chóng. Bằng cách nâng cấp toàn diện phương thức tương tác giữa các thành viên và dữ liệu liên quan, OmniMention xóa bỏ tình trạng thất lạc thông tin và đẩy nhanh tốc độ hoàn thành dự án.
Tổng Quan Kiến Trúc Kỹ Thuật
OmniMention được thiết kế dưới dạng mô-đun độc lập, không phụ thuộc thư viện ngoài phức tạp, tích hợp hoàn hảo vào khung ứng dụng CodeIgniter nguyên bản của Perfex CRM. Mô-đun gắn móc (hook) sạch sẽ vào giao diện quản trị và cổng khách hàng, tự động tải các đoạn mã điều khiển giao diện nhẹ nhàng nhưng vẫn đảm bảo sự phân tách dữ liệu an toàn tuyệt đối.
flowchart TD
subgraph UI["Tầng Tương Tác Người Dùng"]
A["Trình Soạn Thảo TinyMCE"]
B["Ô Nhập Textarea & Biểu Mẫu"]
C["Danh Sách Đầu Việc & Ghi Chú"]
D["Nút Trợ Giúp '?' Tiện Lợi"]
end
subgraph SEC["Tầng Bảo Mật & Phân Quyền"]
S1["Xác Thực Quyền Nhân Sự"]
S2["Phạm Vi Quyền Cổng Khách Hàng"]
S3["Chế Độ Decorator Khách Công Khai"]
end
subgraph FE["Bộ Dựng Giao Diện OmniMention"]
K1["Bắt Sự Kiện Phím (@, $, #)"]
K2["Bảng Gợi Ý Tự Động Autocomplete"]
K3["Chèn Token & Huy Hiệu Badge HTML"]
end
subgraph BE["Bộ Xử Lý Backend & Model"]
M1["Api::get_users() Kèm Avatar"]
M2["Api::get_entities() 8 Mô-đun"]
M3["Omnimention_model Phân Tích & Làm Sạch"]
end
subgraph DISPATCH["Bộ Phân Phối Thông Báo"]
N1["Thông Báo Chuông Nội Bộ"]
N2["Gửi Email HTML Tự Động"]
N3["Cấu Hình Ma Trận Thông Báo"]
end
subgraph DB["Cơ Sở Dữ Liệu Chỉ Mục Phức Hợp"]
D1[("tblomnimention_mentions")]
D2[("tblomnimention_entity_tags")]
D3[("tblomnimention_settings")]
end
UI --> K1
SEC -.-> FE
K1 --> K2
K2 --> M1
K2 --> M2
K2 --> K3
K3 --> M3
M3 --> N1
M3 --> N2
M3 --> D1
M3 --> D2
DISPATCH -.-> D3
Các Trụ Cột Kỹ Thuật Trọng Tâm
- Bắt Sự Kiện Phím Thông Minh: Lắng nghe thao tác gõ phím tại cả khung iframe TinyMCE và các nút DOM textarea thông thường, tính toán tọa độ con trỏ chính xác để mở hộp thoại gợi ý mà không bị lệch khung nhìn.
- Chuyển Đổi Token Bền Vững: Các lượt tag tạo trong ô văn bản thuần túy được chuyển thành token Markdown, đảm bảo dữ liệu lưu trong cơ sở dữ liệu luôn chuẩn xác và tự động dựng thành huy hiệu đẹp mắt khi tải trang.
- Hiệu Năng Truy Vấn Dưới Một Mili-giây: Hệ thống chỉ mục phức hợp composite trên các bảng InnoDB giúp các truy vấn dòng thời gian phức tạp được đọc trực tiếp từ bộ nhớ đệm RAM mà không phải sắp xếp filesort trên đĩa.
sequenceDiagram
actor User as Nhân Viên
participant Editor as TinyMCE / Textarea
participant Engine as Bộ Máy JS OmniMention
participant API as Điểm Cuối API Backend
participant DB as CSDL MySQL InnoDB
participant Notif as Bộ Phát Thông Báo
actor Target as Đồng Nghiệp Được Tag
User->>Editor: Gõ '@' hoặc '$'
Editor->>Engine: Kích Hoạt Sự Kiện Gợi Ý
Engine->>API: GET /omnimention/api/users hoặc entities
API->>DB: Truy Vấn Chỉ Mục Phức Hợp Tốc Độ Cao
DB-->>API: Trả Về Kết Quả (Avatar, Huy Hiệu)
API-->>Engine: Phản Hồi JSON
Engine->>User: Hiển Thị Bảng Gợi Ý Tìm Kiếm
User->>Engine: Chọn Đồng Nghiệp Hoặc Bản Ghi CRM
Engine->>Editor: Chèn Huy Hiệu / Token Markdown
User->>Editor: Lưu Bình Luận / Ghi Chú
Editor->>API: Gửi Dữ Liệu Nội Dung
API->>DB: Lưu Bản Ghi & Phân Tích Lượt Tag Mới
API->>Notif: Kích Hoạt Ma Trận Thông Báo
Notif->>Target: Báo Chuông Trong App + Email Chi Tiết
Bảo Mật & Phân Quyền Độc Lập
OmniMention áp dụng kiểm tra quyền hạn chặt chẽ ở mọi bước xử lý. Khách truy cập bên ngoài khi mở đường dẫn hợp đồng hoặc đề xuất công khai sẽ bị chặn hoàn toàn các truy vấn gợi ý và không thể xem danh bạ nhân sự, đảm bảo an toàn tuyệt đối cho dữ liệu doanh nghiệp của bạn.