| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.MqttMessageController = void 0;
- const mqttMessage_1 = require("../models/mqttMessage");
- const helpers_1 = require("../utils/helpers");
- class MqttMessageController {
- static async getAllMessages(req, res) {
- try {
- const page = Number(req.query.page) || 1;
- const limit = Number(req.query.limit) || 20;
- const offset = (page - 1) * limit;
- const messages = await mqttMessage_1.MqttMessageModel.getAll(limit, offset);
- const total = await mqttMessage_1.MqttMessageModel.getCount();
- res.status(200).json({
- success: true,
- data: messages,
- pagination: {
- page,
- limit,
- total,
- pages: Math.ceil(total / limit)
- }
- });
- }
- catch (error) {
- console.error('获取消息列表失败:', error);
- res.status(500).json({
- success: false,
- message: '获取消息列表失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getMessagesByClientId(req, res) {
- try {
- const clientid = (0, helpers_1.toString)(req.params.clientid);
- const limit = Number(req.query.limit) || 50;
- if (!clientid) {
- res.status(400).json({
- success: false,
- message: '客户端ID不能为空'
- });
- return;
- }
- const messages = await mqttMessage_1.MqttMessageModel.getByClientId(clientid, limit);
- res.status(200).json({
- success: true,
- data: messages
- });
- }
- catch (error) {
- console.error('根据客户端ID获取消息失败:', error);
- res.status(500).json({
- success: false,
- message: '根据客户端ID获取消息失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getMessagesByTopic(req, res) {
- try {
- const topic = (0, helpers_1.toString)(req.params.topic);
- const limit = Number(req.query.limit) || 50;
- if (!topic) {
- res.status(400).json({
- success: false,
- message: '主题不能为空'
- });
- return;
- }
- const messages = await mqttMessage_1.MqttMessageModel.getByTopic(topic, limit);
- res.status(200).json({
- success: true,
- data: messages
- });
- }
- catch (error) {
- console.error('根据主题获取消息失败:', error);
- res.status(500).json({
- success: false,
- message: '根据主题获取消息失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getMessagesByType(req, res) {
- try {
- const type = (0, helpers_1.toString)(req.params.type);
- const limit = Number(req.query.limit) || 50;
- if (!type || !['publish', 'subscribe', 'unsubscribe'].includes(type)) {
- res.status(400).json({
- success: false,
- message: '无效的消息类型'
- });
- return;
- }
- const messages = await mqttMessage_1.MqttMessageModel.getByType(type, limit);
- res.status(200).json({
- success: true,
- data: messages
- });
- }
- catch (error) {
- console.error('根据消息类型获取消息失败:', error);
- res.status(500).json({
- success: false,
- message: '根据消息类型获取消息失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getMessagesByTimeRange(req, res) {
- try {
- const { startTime, endTime } = req.query;
- if (!startTime || !endTime) {
- res.status(400).json({
- success: false,
- message: '开始时间和结束时间不能为空'
- });
- return;
- }
- const start = new Date(startTime);
- const end = new Date(endTime);
- if (isNaN(start.getTime()) || isNaN(end.getTime())) {
- res.status(400).json({
- success: false,
- message: '无效的时间格式'
- });
- return;
- }
- const messages = await mqttMessage_1.MqttMessageModel.getByTimeRange(start, end);
- res.status(200).json({
- success: true,
- data: messages
- });
- }
- catch (error) {
- console.error('根据时间范围获取消息失败:', error);
- res.status(500).json({
- success: false,
- message: '根据时间范围获取消息失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getMessageTypeStats(req, res) {
- try {
- const stats = await mqttMessage_1.MqttMessageModel.getTypeStats();
- res.status(200).json({
- success: true,
- data: stats,
- message: '获取消息类型统计成功'
- });
- }
- catch (error) {
- res.status(500).json({
- success: false,
- message: '获取消息类型统计失败',
- error: error instanceof Error ? error.message : String(error)
- });
- }
- }
- static async getMessageQosStats(req, res) {
- try {
- const stats = await mqttMessage_1.MqttMessageModel.getQosStats();
- res.status(200).json({
- success: true,
- data: stats
- });
- }
- catch (error) {
- console.error('获取QoS等级统计失败:', error);
- res.status(500).json({
- success: false,
- message: '获取QoS等级统计失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getMessageSizeStats(req, res) {
- try {
- const stats = await mqttMessage_1.MqttMessageModel.getSizeStats();
- res.status(200).json({
- success: true,
- data: stats,
- message: '获取消息大小统计成功'
- });
- }
- catch (error) {
- res.status(500).json({
- success: false,
- message: '获取消息大小统计失败',
- error: error instanceof Error ? error.message : String(error)
- });
- }
- }
- static async getHourlyStats(req, res) {
- try {
- const hours = req.query.hours ? parseInt(req.query.hours) : 24;
- const stats = await mqttMessage_1.MqttMessageModel.getHourlyStats(hours);
- res.status(200).json({
- success: true,
- data: stats,
- message: '获取每小时消息统计成功'
- });
- }
- catch (error) {
- res.status(500).json({
- success: false,
- message: '获取每小时消息统计失败',
- error: error instanceof Error ? error.message : String(error)
- });
- }
- }
- static async getQosStats(req, res) {
- try {
- const stats = await mqttMessage_1.MqttMessageModel.getQosStats();
- res.status(200).json({
- success: true,
- data: stats
- });
- }
- catch (error) {
- console.error('获取QoS等级统计失败:', error);
- res.status(500).json({
- success: false,
- message: '获取QoS等级统计失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getHourlyMessageStats(req, res) {
- try {
- const hours = Number(req.query.hours) || 24;
- if (hours < 1 || hours > 168) {
- res.status(400).json({
- success: false,
- message: '小时数必须在1到168之间'
- });
- return;
- }
- const stats = await mqttMessage_1.MqttMessageModel.getHourlyStats(hours);
- res.status(200).json({
- success: true,
- data: stats
- });
- }
- catch (error) {
- console.error('获取每小时消息统计失败:', error);
- res.status(500).json({
- success: false,
- message: '获取每小时消息统计失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getPopularTopics(req, res) {
- try {
- const limit = Number(req.query.limit) || 10;
- if (limit < 1 || limit > 50) {
- res.status(400).json({
- success: false,
- message: '限制数量必须在1到50之间'
- });
- return;
- }
- const topics = await mqttMessage_1.MqttMessageModel.getPopularTopics(limit);
- res.status(200).json({
- success: true,
- data: topics
- });
- }
- catch (error) {
- console.error('获取热门主题失败:', error);
- res.status(500).json({
- success: false,
- message: '获取热门主题失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getActiveClients(req, res) {
- try {
- const limit = Number(req.query.limit) || 10;
- if (limit < 1 || limit > 50) {
- res.status(400).json({
- success: false,
- message: '限制数量必须在1到50之间'
- });
- return;
- }
- const clients = await mqttMessage_1.MqttMessageModel.getActiveClients(limit);
- res.status(200).json({
- success: true,
- data: clients
- });
- }
- catch (error) {
- console.error('获取活跃客户端失败:', error);
- res.status(500).json({
- success: false,
- message: '获取活跃客户端失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getMessageHeatmapData(req, res) {
- try {
- const days = Number(req.query.days) || 7;
- if (days < 1 || days > 30) {
- res.status(400).json({
- success: false,
- message: '天数必须在1到30之间'
- });
- return;
- }
- const heatmapData = await mqttMessage_1.MqttMessageModel.getHeatmapData(days);
- res.status(200).json({
- success: true,
- data: heatmapData
- });
- }
- catch (error) {
- console.error('获取消息热力图数据失败:', error);
- res.status(500).json({
- success: false,
- message: '获取消息热力图数据失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- }
- exports.MqttMessageController = MqttMessageController;
- //# sourceMappingURL=mqttMessageController.js.map
|