| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ClientConnectionController = void 0;
- const clientConnection_1 = require("../models/clientConnection");
- const helpers_1 = require("../utils/helpers");
- class ClientConnectionController {
- static async getAllConnections(req, res) {
- try {
- const page = Number(req.query.page) || 1;
- const limit = Number(req.query.limit) || 20;
- const offset = (page - 1) * limit;
- const clientid = (0, helpers_1.toString)(req.query.clientid);
- const event = (0, helpers_1.toString)(req.query.event);
- const startDate = (0, helpers_1.toString)(req.query.startDate);
- const endDate = (0, helpers_1.toString)(req.query.endDate);
- const connections = await clientConnection_1.ClientConnectionModel.getAllWithFilters(limit, offset, { clientid, event, startDate, endDate });
- const total = await clientConnection_1.ClientConnectionModel.getCountWithFilters({ clientid, event, startDate, endDate });
- res.status(200).json({
- success: true,
- data: connections,
- 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 getConnectionsByClientId(req, res) {
- try {
- const { clientid } = req.params;
- const limit = Number(req.query.limit) || 50;
- const clientidStr = (0, helpers_1.toString)(clientid);
- if (!clientidStr) {
- res.status(400).json({
- success: false,
- message: '客户端ID不能为空'
- });
- return;
- }
- const connections = await clientConnection_1.ClientConnectionModel.getByClientId(clientidStr, limit);
- res.status(200).json({
- success: true,
- data: connections
- });
- }
- catch (error) {
- console.error('根据客户端ID获取连接记录失败:', error);
- res.status(500).json({
- success: false,
- message: '根据客户端ID获取连接记录失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getConnectionsByEvent(req, res) {
- try {
- const { event } = req.params;
- const limit = Number(req.query.limit) || 50;
- const eventStr = (0, helpers_1.toString)(event);
- if (!eventStr || !['connected', 'disconnected'].includes(eventStr)) {
- res.status(400).json({
- success: false,
- message: '无效的事件类型'
- });
- return;
- }
- const connections = await clientConnection_1.ClientConnectionModel.getByEvent(eventStr, limit);
- res.status(200).json({
- success: true,
- data: connections
- });
- }
- catch (error) {
- console.error('根据事件类型获取连接记录失败:', error);
- res.status(500).json({
- success: false,
- message: '根据事件类型获取连接记录失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getConnectionsByTimeRange(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 connections = await clientConnection_1.ClientConnectionModel.getByTimeRange(start, end);
- res.status(200).json({
- success: true,
- data: connections
- });
- }
- catch (error) {
- console.error('根据时间范围获取连接记录失败:', error);
- res.status(500).json({
- success: false,
- message: '根据时间范围获取连接记录失败',
- error: error instanceof Error ? error.message : '未知错误'
- });
- }
- }
- static async getConnectionStats(req, res) {
- try {
- const stats = await clientConnection_1.ClientConnectionModel.getEventStats();
- 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 getDailyConnectionStats(req, res) {
- try {
- const days = req.query.days ? parseInt(req.query.days) : 7;
- if (days < 1 || days > 30) {
- res.status(400).json({
- success: false,
- message: '天数必须在1到30之间'
- });
- return;
- }
- const stats = await clientConnection_1.ClientConnectionModel.getDailyStats(days);
- res.status(200).json({
- success: true,
- data: stats,
- message: '获取每日连接统计成功'
- });
- }
- catch (error) {
- console.error('获取每日连接统计失败:', error);
- res.status(500).json({
- success: false,
- message: '获取每日连接统计失败',
- error: error instanceof Error ? error.message : String(error)
- });
- }
- }
- }
- exports.ClientConnectionController = ClientConnectionController;
- //# sourceMappingURL=clientConnectionController.js.map
|