Hệ thống IoT

Nền tảng IoT FastBee là một giải pháp IoT giàu chức năng, được thiết kế dành riêng cho doanh nghiệp vừa và nhỏ cùng người dùng cá nhân. Nền tảng cung cấp một loạt công cụ và chức năng dễ sử dụng, giúp người dùng quản lý và điều khiển hiệu quả nhiều loại thiết bị thông minh. Dưới đây là phần giới thiệu chi tiết về nền tảng IoT FastBee:
Tổng quan trang
So sánh phiên bản
FastBee cung cấp ba phiên bản: mã nguồn mở, thương mại và cluster, khác biệt cốt lõi như sau; chính sách giấy phép đầy đủ và danh sách chức năng chi tiết xem tại Giấy phép thương mại.
| Khía cạnh | Bản mã nguồn mở | Bản thương mại | Bản cluster |
|---|---|---|---|
| Giấy phép | AGPL v3, miễn phí, giới hạn mục đích phi thương mại | Giấy phép thương mại vĩnh viễn (chứng chỉ cài đặt) | Giấy phép thương mại vĩnh viễn (chứng chỉ cài đặt) |
| Mã nguồn & cập nhật | Mã nguồn công khai, cập nhật qua Gitee/GitHub | Sau khi được cấp phép, cập nhật qua Git server riêng, tặng một năm cập nhật mã nguồn | Giống bản thương mại |
| Hình thức triển khai | Docker Compose một máy triển khai một chạm | Triển khai một máy (hỗ trợ cài đặt nhanh Docker Compose) | Cluster dịch vụ FMQ + cluster Web, phối hợp Kafka và cân bằng tải đạt độ sẵn sàng cao |
| Giao thức kết nối | MQTT, GB/T 28181 (chỉ phát trực tiếp) | Bổ sung các giao thức TCP, UDP, CoAP, HTTP, Modbus, JT808... | Giống bản thương mại |
| Phạm vi chức năng | Các năng lực cốt lõi: sản phẩm/thiết bị/Thing Model, Rule Script, quản lý quyền... | Bổ sung màn hình lớn trực quan, trung tâm cảnh báo, đa tenant, nâng cấp firmware OTA, cầu nối dữ liệu, quản lý phiếu công việc, quản lý thẻ SIM IoT... (Web SCADA, loa thông minh là mô-đun tùy chọn) | Chức năng giống bản thương mại, khác ở quy mô thiết bị hỗ trợ |
| Kịch bản áp dụng | Học tập cá nhân và sử dụng phi thương mại | Dự án thương mại của doanh nghiệp vừa và nhỏ | Dự án thương mại có quy mô kết nối thiết bị lớn, yêu cầu độ sẵn sàng cao |
1. Giới thiệu nền tảng
- Bối cảnh dự án: tên gốc là Wumei Smart (wumei-smart), sau đổi tên thành FastBee (蜂信物联). Thay đổi này không chỉ phản ánh việc cập nhật thương hiệu, mà còn đánh dấu sự phát triển trong lĩnh vực IoT và mở rộng phạm vi dịch vụ.
- Hỗ trợ chính: backend nền tảng dùng framework Spring Boot, frontend dùng công nghệ Vue... việc lựa chọn các công nghệ này đảm bảo tính dễ dùng của nền tảng và trải nghiệm người dùng tốt.
2. Chức năng hệ thống
- Quản lý sản phẩm: hỗ trợ chi tiết sản phẩm, Thing Model, phân loại và ủy quyền thiết bị..., giúp doanh nghiệp tổ chức và quản lý sản phẩm thông minh tốt hơn.
- Quản lý thiết bị: cung cấp các chức năng quản lý như chi tiết thiết bị, phân nhóm, ghi nhật ký, giám sát trạng thái thời gian thực, đảm bảo thiết bị vận hành hiệu quả và an toàn.
- Quản lý Thing Model: cho phép định nghĩa thuộc tính, chức năng và sự kiện của thiết bị, hiện thực tương tác hiệu quả giữa thiết bị và đám mây.
- Rule Engine: hỗ trợ viết quy tắc dựa trên Groovy (cú pháp giống Java), giúp hệ thống tự động xử lý logic nghiệp vụ phức tạp.
- Scene Linkage: hỗ trợ cấu hình kịch bản tự động hóa trực tiếp hoặc trực quan, hiện thực hợp tác liền mạch giữa các thiết bị thông minh.
- Trung tâm cảnh báo: có thể tích hợp nhiều kênh liên lạc như thoại, SMS và WeChat Work, kịp thời thông báo bất thường hoặc sự cố thiết bị, đảm bảo phản ứng nhanh.
- Hệ thống đa tenant: hỗ trợ cách ly dữ liệu và cấu hình độc lập, phù hợp môi trường đa tenant, tăng tính linh hoạt và bảo mật của hệ thống.
- Kết nối giám sát video: hỗ trợ thiết bị giám sát giao thức GB/T28181, cung cấp phát trực tiếp, phát lại bản ghi và điều khiển PTZ, phù hợp nhu cầu giám sát an ninh.
- Quản lý kịch bản: hỗ trợ tổng hợp hiển thị nhiều thiết bị, đồng thời có thể mở rộng biến nhập và biến tính toán, hỗ trợ tính toán dữ liệu phức tạp.
- Cầu nối dữ liệu: đóng vai trò cầu nối với hệ thống dữ liệu bên ngoài, hỗ trợ nhập xuất dữ liệu...
- Trung tâm dữ liệu: hỗ trợ sinh báo cáo dữ liệu, xem dữ liệu lịch sử, phân tích dữ liệu thiết bị.
- Giao thức truyền thông: hỗ trợ phong phú các giao thức truyền thông thiết bị, bao gồm: MQTT, Modbus, TCP, GB28182, HTTP, CoAP...
- Thẻ SIM IoT: quản lý SIM kết nối thiết bị, hỗ trợ tích hợp các nền tảng đại lý khác nhau, có thể xem trạng thái thẻ, lưu lượng, hỗ trợ cảnh báo lưu lượng.
- Quản lý phiếu công việc: hỗ trợ quản lý tự động hóa, thông minh hóa và toàn quy trình các tác vụ bảo trì, sửa chữa, kiểm tra... đối với thiết bị hoặc tài sản.
3. Stack công nghệ
- Công nghệ backend: bao gồm Spring Boot, MyBatis, Spring Security, Jwt, Redis, TDengine..., đảm bảo tính ổn định và hiệu quả của dịch vụ backend.
- Công nghệ frontend: dùng các công nghệ frontend hiện đại như ES6, ES7, Vue, Vuex, uView, H5..., nâng cao tính tương tác và trải nghiệm thị giác của giao diện người dùng.
- Hỗ trợ di động: hỗ trợ nhiều nền tảng di động như WeChat Mini Program, Android và iOS, hiện thực phát triển ứng dụng đa nền tảng qua UniApp, thuận tiện cho người dùng thao tác và quản lý trên các thiết bị khác nhau.
4. Kịch bản ứng dụng
FastBee phù hợp với nhiều kịch bản như nhà thông minh, văn phòng thông minh, cộng đồng thông minh, giám sát nông nghiệp, giám sát thủy lợi và điều khiển công nghiệp. Các kịch bản ứng dụng này bao phủ nhu cầu rộng rãi từ gia đình đến cấp độ công nghiệp, thể hiện tiềm năng ứng dụng rộng lớn của FastBee trong lĩnh vực IoT.

5. Kiến trúc hệ thống
┌──────────────────────────────────────────────────────────────────┐
│ Trình duyệt / Di động │
│ Vue2 Web(PC) + Vant(H5 / Mini Program) │
└───────────────────────────────┬──────────────────────────────────┘
│ HTTP REST / WebSocket(MQTT)
▼
┌──────────────────────────────────────────────────────────────────┐
│ Nginx(Reverse Proxy) │
│ / → tài nguyên frontend tĩnh /prod-api/ → backend │
└───────────────────────────────┬──────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ Dịch vụ Spring Boot(8080) │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ fastbee-open-api(tầng Controller) │ │
│ │ device / product / ruleEngine / media / system / ... │ │
│ └────────────────────────┬───────────────────────────────────┘ │
│ ┌─────────────────────────▼──────────────────────────────────┐ │
│ │ fastbee-service(tầng Service) │ │
│ │ IotService / SceneService / NotifyService / ... │ │
│ └────────────────────────┬───────────────────────────────────┘ │
│ ┌─────────────────────────▼──────────────────────────────────┐ │
│ │ fastbee-server(kết nối giao thức) │ │
│ │ MQTT Broker(1883) / HTTP(8081) / CoAP(5683) / TCP(8888) │ │
│ └────────────────────────────────────────────────────────────┘ │
└───────────┬──────────────────┬────────────────────┬──────────────┘
│ │ │
MySQL Redis TDengine
(metadata/cấu hình) (cache/giá trị (dữ liệu lịch sử
thời gian thực) chuỗi thời gian)6. Cấu trúc mã nguồn
fastbee/
├── vue/ ← Dự án frontend Vue2
│ ├── src/
│ │ ├── api/ ← Hàm gọi API của từng mô-đun
│ │ ├── assets/ ← Tài nguyên tĩnh (ảnh/icon/style)
│ │ ├── components/ ← Component dùng chung toàn cục (28 cái)
│ │ ├── directive/ ← Directive tùy biến toàn cục
│ │ ├── lang/ ← Gói ngôn ngữ quốc tế hóa
│ │ ├── layout/ ← Layout khung chính
│ │ ├── plugins/ ← Đăng ký plugin Vue
│ │ ├── router/ ← Cấu hình router
│ │ ├── store/ ← Quản lý trạng thái Vuex
│ │ ├── utils/ ← Hàm tiện ích (request/mqttTool...)
│ │ └── views/ ← View trang nghiệp vụ
│ ├── package.json
│ └── vue.config.js
│
├── springboot/ ← Dự án đa mô-đun backend Spring Boot
│ ├── fastbee-admin/ ← Controller quản trị + cấu hình
│ ├── fastbee-open-api/ ← Tầng Open API (Controller nghiệp vụ IoT)
│ ├── fastbee-service/ ← Tầng dịch vụ nghiệp vụ (iot-service / system-service)
│ ├── fastbee-server/ ← Dịch vụ kết nối giao thức
│ │ ├── iot-server-core/ ← Logic dịch vụ IoT cốt lõi
│ │ ├── mqtt-broker/ ← Netty MQTT Broker tích hợp sẵn
│ │ ├── http-server/ ← Kết nối thiết bị HTTP
│ │ ├── coap-server/ ← Kết nối thiết bị CoAP
│ │ ├── sip-server/ ← Kết nối video SIP
│ │ └── boot-strap/ ← Điểm khởi động
│ ├── fastbee-protocol/ ← Phân tích giao thức (Modbus/tùy biến)
│ ├── fastbee-mq/ ← Tích hợp message queue
│ ├── fastbee-notify/ ← Dịch vụ thông báo (SMS/email/WeChat...)
│ ├── fastbee-plugs/ ← Plugin (OSS/OAuth/Quartz/sinh mã)
│ ├── fastbee-iot-data/ ← Xử lý dữ liệu IoT
│ ├── fastbee-record/ ← Dịch vụ ghi hình
│ ├── fastbee-common-extend/ ← Mở rộng tiện ích dùng chung
│ └── sql/ ← Script khởi tạo/nâng cấp cơ sở dữ liệu
│
├── docker/ ← File triển khai Docker Compose
└── sdk/ ← SDK phía thiết bị7. Mô tả các mô-đun chức năng
Quản lý thiết bị
| Chức năng | Mô tả |
|---|---|
| Đăng ký/import thiết bị | Thêm thiết bị thủ công hoặc import hàng loạt bằng Excel |
| Phân bổ/thu hồi thiết bị | Phân bổ thiết bị theo tổ chức/người dùng, hỗ trợ thu hồi |
| Làm mới trạng thái thời gian thực | Cập nhật trạng thái online/offline thời gian thực qua subscribe MQTT /+/{sn}/status/post |
| Mã QR thiết bị | Sinh mã QR gắn kết, hỗ trợ in |
| Nâng cấp firmware OTA | Quản lý phiên bản + gửi tác vụ nâng cấp |
| Gửi lệnh xuống | Gửi thuộc tính Thing Model / gọi chức năng |
| Chế độ shadow | Khi thiết bị offline, cache giá trị mới nhất qua shadow |
Route trang: /iot/device/list → views/iot/device/index.vue
Quản lý sản phẩm
| Chức năng | Mô tả |
|---|---|
| Mẫu sản phẩm | Định nghĩa loại thiết bị và Thing Model |
| Thing Model | Ba yếu tố: thuộc tính (Property) / chức năng (Function) / sự kiện (Event) |
| Cấu hình giao thức | MQTT / HTTP / CoAP / TCP / Modbus / JT808 |
| Phát hành sản phẩm | Sau khi phát hành, thiết bị không thể sửa Thing Model nữa |
| Trình soạn thảo kéo thả | Cấu hình trực quan bảng trạng thái chạy của thiết bị |
Rule Engine
| Chức năng | Mô tả |
|---|---|
| Scene Linkage | Dàn xếp trực quan trigger → điều kiện → hành động (điều khiển bởi LiteFlow) |
| Cảnh báo thiết bị | Kích hoạt theo ngưỡng/khoảng/boolean, hỗ trợ thời gian im lặng |
| Rule Script | Script Groovy/JavaScript xử lý dữ liệu thô |
| Kích hoạt một chạm | Kích hoạt thủ công Scene Linkage |
Trung tâm dữ liệu
| Chức năng | Mô tả |
|---|---|
| Dữ liệu thời gian thực | Giá trị Thing Model mới nhất thiết bị báo lên (cache Redis) |
| Dữ liệu lịch sử | Truy vấn theo khoảng thời gian (cơ sở dữ liệu chuỗi thời gian TDengine) |
| Báo cáo dữ liệu | Sinh Excel định kỳ, hỗ trợ thông báo email |
| Xuất dữ liệu | Tải dữ liệu lịch sử |
Giám sát video
| Chức năng | Mô tả |
|---|---|
| Kết nối thiết bị | Hỗ trợ giao thức GB28181 (SIP) |
| Phát thời gian thực | RTMP / RTSP / FLV / HLS / WebRTC |
| Phát lại bản ghi | Truy vấn bản ghi lịch sử theo khoảng thời gian (ZLMediaKit) |
| Điều khiển PTZ | Gửi lệnh PTZ |
| Đàm thoại thoại | Cách chủ động SIP TCP |
Dịch vụ thông báo
Kênh hỗ trợ: SMS (Alibaba Cloud/Tencent), email, WeChat Official Account, WeChat Work, DingTalk, HTTP push, MQTT push.
Quản lý hệ thống
Người dùng / vai trò / tổ chức (đa tenant) / menu / từ điển / nhật ký / giám sát hệ thống / sinh mã.
8. Tài liệu API
Tài liệu API đầy đủ có thể truy cập qua Swagger:
http://localhost:8080/swagger-ui/index.html(môi trường phát triển)
Tất cả API dùng định dạng response thống nhất:
{
"code": 200,
"msg": "Thao tác thành công",
"data": { ... }
}Định dạng response danh sách phân trang:
{
"code": 200,
"msg": "Thao tác thành công",
"rows": [ ... ],
"total": 100
}API xác thực
| Phương thức | Đường dẫn | Mô tả |
|---|---|---|
| POST | /login | Đăng nhập tài khoản mật khẩu |
| POST | /register | Đăng ký người dùng |
| POST | /logout | Đăng xuất |
| GET | /getInfo | Lấy thông tin người dùng hiện tại |
| GET | /captchaImage | Lấy captcha hình ảnh |
| POST | /auth/sms/login | Đăng nhập mã xác thực SMS |
| GET | /auth/login/{loginId} | Đăng nhập mạng xã hội bên thứ ba |
| POST | /auth/ssoLogin | Đăng nhập một lần SSO |
Ví dụ đăng nhập:
POST /login
Content-Type: application/json
{
"username": "admin",
"password": "admin123",
"code": "1234",
"uuid": "xxx-xxx-xxx",
"sourceType": 1
}{
"code": 200,
"msg": "Thao tác thành công",
"data": {
"token": "eyJhbGciOiJIUzI1NiIs..."
}
}Các request tiếp theo cần mang header: Authorization: Bearer {token}
API thiết bị (/iot/device)
| Phương thức | Đường dẫn | Quyền | Mô tả |
|---|---|---|---|
| GET | /iot/device/list | iot:device:list | Danh sách thiết bị phân trang |
| GET | /iot/device/shortList | iot:device:list | Danh sách thiết bị rút gọn (trang chủ) |
| GET | /iot/device/all | iot:device:list | Danh sách rút gọn tất cả thiết bị |
| GET | /iot/device/{deviceId} | iot:device:query | Chi tiết thiết bị |
| GET | /iot/device/getDeviceBySerialNumber/{sn} | iot:device:query | Truy vấn theo serial number |
| POST | /iot/device | iot:device:add | Thêm thiết bị |
| PUT | /iot/device | iot:device:edit | Sửa thiết bị |
| DELETE | /iot/device/{deviceId} | iot:device:remove | Xóa thiết bị |
| POST | /iot/device/export | iot:device:export | Xuất Excel |
| POST | /iot/device/assignment | iot:device:assignment | Phân bổ thiết bị cho tổ chức |
| POST | /iot/device/user/assignment | iot:device:assignment | Phân bổ thiết bị cho người dùng |
| POST | /iot/device/recovery | iot:device:recovery | Thu hồi thiết bị |
| GET | /iot/device/runningStatus | iot:device:query | Trạng thái chạy |
| GET | /iot/device/thingsModelValue/{deviceId} | iot:device:query | Giá trị thời gian thực Thing Model |
| GET | /iot/device/statistic | - | Thống kê dữ liệu giám sát |
API sản phẩm (/iot/product)
| Phương thức | Đường dẫn | Mô tả |
|---|---|---|
| GET | /iot/product/list | Danh sách sản phẩm phân trang |
| GET | /iot/product/shortList | Danh sách sản phẩm rút gọn |
| GET | /iot/product/{productId} | Chi tiết sản phẩm |
| POST | /iot/product | Thêm sản phẩm |
| PUT | /iot/product | Sửa sản phẩm |
| DELETE | /iot/product/{productId} | Xóa sản phẩm |
| PUT | /iot/product/status | Phát hành/ngừng phát hành sản phẩm |
| POST | /iot/product/copy?productId= | Sao chép sản phẩm |
API Thing Model (/iot/thingsModel)
| Phương thức | Đường dẫn | Mô tả |
|---|---|---|
| GET | /iot/thingsModel/list | Danh sách Thing Model |
| POST | /iot/thingsModel | Thêm Thing Model |
| PUT | /iot/thingsModel | Sửa Thing Model |
| DELETE | /iot/thingsModel/{modelId} | Xóa Thing Model |
| POST | /iot/thingsModel/sync | Đồng bộ tới thiết bị |
API Rule Engine (/iot/scene)
| Phương thức | Đường dẫn | Mô tả |
|---|---|---|
| GET | /iot/scene/list | Danh sách Scene Linkage |
| POST | /iot/scene | Thêm kịch bản |
| PUT | /iot/scene | Sửa kịch bản |
| DELETE | /iot/scene/{sceneId} | Xóa kịch bản |
| POST | /iot/scene/trigger/{sceneId} | Kích hoạt thủ công |
API trung tâm dữ liệu (/iot/datacenter)
| Phương thức | Đường dẫn | Mô tả |
|---|---|---|
| GET | /iot/datacenter/latestData | Dữ liệu mới nhất |
| GET | /iot/datacenter/historyData | Dữ liệu lịch sử |
9. Quy tắc phát triển
Quy tắc đặt tên frontend
| Loại | Quy tắc | Ví dụ |
|---|---|---|
| File/thư mục | kebab-case | device-edit.vue |
| Tên component | PascalCase | DeviceCard |
| Biến/phương thức | camelCase | deviceList, handleQuery() |
| Hằng số | UPPER_CASE | MAX_PAGE_SIZE |
| File API | camelCase | device.js, product.js |
| Tên class CSS | kebab-case | .device-item |
Quy tắc đặt tên backend
| Loại | Quy tắc | Ví dụ |
|---|---|---|
| Tên package | Toàn chữ thường, phân tách dấu chấm | com.fastbee.iot.service |
| Tên class | PascalCase | DeviceServiceImpl |
| Tên interface | I + PascalCase | IDeviceService |
| Tên phương thức | camelCase | listDeviceByGroup() |
| Hằng số | UPPER_SNAKE | MAX_RETRY_COUNT |
| Bảng cơ sở dữ liệu | Chữ thường gạch dưới | iot_device |
| Trường cơ sở dữ liệu | Chữ thường gạch dưới | serial_number |
Quy tắc thiết kế API
- Phong cách RESTful, tên tài nguyên dùng danh từ số nhiều
- Tiền tố route thống nhất:
/iot/(mô-đun IoT),/system/(mô-đun hệ thống) - Controller kế thừa
BaseController, dùng@PreAuthorizeđể kiểm tra quyền - Dùng annotation
@Logđể ghi nhật ký thao tác - Trả về thống nhất bằng
AjaxResult.success()/getDataTable()
@PreAuthorize("@ss.hasPermi('iot:device:add')")
@Log(title = "Thiết bị", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("Thêm thiết bị")
public AjaxResult add(@Validated @RequestBody Device device) {
return toAjax(deviceService.insertDevice(device));
}10. Giải đáp câu hỏi thường gặp
Frontend
Hỏi: Sau npm install, khởi động báo lỗi liên quan patch-package?
Nguyên nhân: node_modules chưa cài đầy đủ hoặc vấn đề cache.
# Xóa cache và cài lại
rm -rf node_modules package-lock.json
npm cache clean --force
npm installHỏi: Môi trường phát triển API báo 404?
Kiểm tra VUE_APP_SERVER_API_URL trong .env.development có trỏ đúng tới backend không, và xác nhận backend đã khởi động.
Hỏi: Hộp thoại Element UI (MessageBox) không bật lên được?
Xác nhận component đã đăng ký toàn cục, dự án hoàn tất đăng ký qua Vue.use(Element) trong main.js, không cần import riêng.
Hỏi: Kết nối MQTT thất bại?
- Xác nhận
VUE_APP_MQTT_SERVER_URLcấu hình đúng (môi trường phát triểnws://localhost:8083/mqtt) - Xác nhận Broker tích hợp sẵn đã khởi động (
server.broker.enabled: true+server.broker.websocket-port: 8083) - Kiểm tra Token có hiệu lực không (mqttTool dùng Token làm mật khẩu MQTT)
Hỏi: vue-treeselect xung đột phiên bản?
Dự án thống nhất dùng @riophae/vue-treeselect@0.4.0, không trộn lẫn phiên bản khác.
Hỏi: Import component vue-qr báo lỗi?
// ✅ Cách đúng (default import)
import vueQr from 'vue-qr';
// ❌ Cách sai (named import sẽ thất bại)
import { VueQr } from 'vue-qr';Backend
Hỏi: Khởi động báo lỗi liên quan license?
Cấu hình đúng đường dẫn chứng chỉ trong application-dev.yml:
license:
subject: common
licensePath: classpath:license.licXin file chứng chỉ (license.lic) từ đội ngũ chính thức và đặt vào thư mục resources.
Hỏi: TDengine báo timeout kết nối?
- Xác nhận TDengine đã khởi động (cổng mặc định 6041)
- Kiểm tra cấu hình nguồn dữ liệu
taostrongapplication-dev.yml - Nếu không cần cơ sở dữ liệu chuỗi thời gian, có thể đặt
taos.enabled: falseđể bỏ qua
Hỏi: Rule Engine không kích hoạt?
- Xác nhận trạng thái Scene Linkage là "Đã bật"
- Kiểm tra điều kiện trigger (khoảng giá trị, toán tử so sánh)
- Xem chuỗi thực thi LiteFlow trong log
Hỏi: Thiết bị online nhưng backend không thấy trạng thái online?
- Kiểm tra xác thực MQTT (cấu hình EMQX Webhook)
- Xác nhận
serialNumbercủa thiết bị khớp với dữ liệu nhập trong hệ thống - Xem log backend có bản ghi xử lý trạng thái thiết bị không
Hỏi: Chuyển đổi giữa EMQX và Broker tích hợp sẵn như thế nào?
# application.yml
server:
broker:
enabled: true # true = Netty Broker tích hợp sẵn
# false = dùng EMQX bên ngoài (cần cấu hình spring.mqtt.host-url)Hỏi: Cách ly dữ liệu đa tenant hiện thực như thế nào?
Nền tảng cách ly dữ liệu qua trường tenant_id (ID tổ chức). Tầng Controller lấy thông tin tổ chức của người dùng đăng nhập hiện tại từ SecurityUtils.getLoginUser(), tầng Service tự động lọc khi truy vấn.
Hỏi: Truy cập trang giám sát Druid như thế nào?
Trình duyệt truy cập http://localhost:8080/druid/index.html, tài khoản và mật khẩu mặc định đều là fastbee (có thể sửa trong application.yml).


