feat:实现位置广播系统

- 添加位置广播核心控制器和服务
- 实现健康检查和位置同步功能
- 添加WebSocket实时位置更新支持
- 完善位置广播的测试覆盖
This commit is contained in:
moyin
2026-01-08 23:05:52 +08:00
parent 6924416bbd
commit c31cbe559d
27 changed files with 12212 additions and 0 deletions

View File

@@ -0,0 +1,123 @@
/**
* 位置广播业务模块
*
* 功能描述:
* - 整合位置广播系统的所有业务组件
* - 配置模块依赖关系和服务注入
* - 提供统一的模块导出接口
* - 支持模块化的系统架构
*
* 职责分离:
* - 模块配置:定义模块的提供者、控制器和导出
* - 依赖管理:管理模块间的依赖关系
* - 服务注入:配置依赖注入和服务绑定
* - 接口暴露:向外部模块提供服务接口
*
* 技术实现:
* - NestJS模块使用@Module装饰器定义模块
* - 依赖注入:配置服务的依赖注入关系
* - 模块导入:导入所需的核心模块和外部模块
* - 接口导出:导出供其他模块使用的服务
*
* 最近修改:
* - 2026-01-08: 功能新增 - 创建位置广播业务模块
*
* @author moyin
* @version 1.0.0
* @since 2026-01-08
* @lastModified 2026-01-08
*/
import { Module } from '@nestjs/common';
// 导入核心模块
import { LocationBroadcastCoreModule } from '../../core/location_broadcast_core/location_broadcast_core.module';
import { UserProfilesModule } from '../../core/db/user_profiles/user_profiles.module';
import { LoginCoreModule } from '../../core/login_core/login_core.module';
// 导入业务服务
import {
LocationBroadcastService,
LocationSessionService,
LocationPositionService,
} from './services';
import { CleanupService } from './services/cleanup.service';
// 导入控制器
import { LocationBroadcastController } from './controllers/location_broadcast.controller';
import { HealthController } from './controllers/health.controller';
// 导入WebSocket网关
import { LocationBroadcastGateway } from './location_broadcast.gateway';
// 导入守卫
import { WebSocketAuthGuard } from './websocket_auth.guard';
// 导入中间件
import { RateLimitMiddleware } from './rate_limit.middleware';
import { PerformanceMonitorMiddleware } from './performance_monitor.middleware';
/**
* 位置广播业务模块
*
* 模块职责:
* - 提供完整的位置广播业务功能
* - 集成WebSocket实时通信和HTTP API
* - 管理会话、位置和用户相关的业务逻辑
* - 提供统一的认证和权限验证
*
* 模块结构:
* - 服务层:业务逻辑处理和数据协调
* - 控制器层HTTP API端点和请求处理
* - 网关层WebSocket实时通信处理
* - 守卫层:认证和权限验证
*/
@Module({
imports: [
// 导入核心模块
LocationBroadcastCoreModule,
UserProfilesModule,
LoginCoreModule,
],
providers: [
// 业务服务
LocationBroadcastService,
LocationSessionService,
LocationPositionService,
CleanupService,
// 中间件
RateLimitMiddleware,
PerformanceMonitorMiddleware,
// WebSocket网关
LocationBroadcastGateway,
// 守卫
WebSocketAuthGuard,
],
controllers: [
// HTTP API控制器
LocationBroadcastController,
HealthController,
],
exports: [
// 导出业务服务供其他模块使用
LocationBroadcastService,
LocationSessionService,
LocationPositionService,
CleanupService,
// 导出中间件
RateLimitMiddleware,
PerformanceMonitorMiddleware,
// 导出WebSocket网关
LocationBroadcastGateway,
],
})
export class LocationBroadcastModule {
constructor() {
console.log('位置广播业务模块已初始化');
}
}