# aika_server **Repository Path**: microservice-personal/aika_server ## Basic Information - **Project Name**: aika_server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-09 - **Last Updated**: 2025-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AIKA儿童智能音箱后端服务系统 ## 项目简介 AIKA是一款专为儿童设计的智能音箱Karaoke机,集K歌、学习、互动娱乐于一体。本项目为AIKA系统的后端服务,基于Spring Boot 2.5.15构建,采用多模块架构设计,提供PC后台管理和设备端API服务。 ## 项目背景 - **产品定位**: 儿童版智能音箱Karaoke机 - **核心功能**: K歌、学习、互动娱乐 - **服务对象**: 儿童用户及其家长、设备端应用 - **技术架构**: 前后端分离,后端提供RESTful API服务 ## 技术栈 - **后端框架**: Spring Boot 2.5.15 - **安全框架**: Spring Security 5.7.12 - **数据库**: MySQL + MyBatis - **缓存**: Redis - **文档**: Swagger3 + Knife4j - **构建工具**: Maven - **JDK版本**: 1.8 ## 项目架构 ### 模块结构 ``` aika_server/ ├── proj-admin-api/ # PC后台管理API接口模块 ├── proj-device-api/ # 设备端API接口模块 ├── proj-device-service/ # 设备端业务逻辑模块 ├── proj-device-framework/ # 设备端框架模块 ├── proj-framework/ # 核心框架模块 ├── proj-system/ # 系统业务模块 └── proj-common/ # 通用工具模块 ``` ### 模块依赖关系 #### 后台管理系统依赖链 ``` proj-admin-api → proj-framework → proj-system → proj-common ``` - **proj-admin-api**: PC后台管理入口,依赖proj-framework - **proj-framework**: 核心框架,提供安全认证、权限控制等基础设施,依赖proj-system - **proj-system**: 系统业务模块,实现用户、角色、菜单等核心业务,依赖proj-common - **proj-common**: 通用工具模块,提供基础工具类和组件 #### 设备端系统依赖链 ``` proj-device-api → proj-device-framework → proj-device-service → proj-common ``` - **proj-device-api**: 设备端API入口,依赖proj-device-framework - **proj-device-framework**: 设备端框架,提供设备端特定的基础设施,依赖proj-device-service - **proj-device-service**: 设备端业务逻辑,实现设备管理、内容管理等业务,依赖proj-common - **proj-common**: 通用工具模块,提供基础工具类和组件 ### 模块说明 #### 1. proj-admin-api (PC后台管理API模块) - **功能**: 提供PC后台管理系统的HTTP接口服务 - **主要组件**: - Controller层:处理PC后台管理请求 - 配置类:Swagger配置、Knife4j配置 - 启动类:PC后台管理应用入口 - **API分类**: - `/system/*` - 系统管理接口 - `/monitor/*` - 系统监控接口 - `/common/*` - 公共接口 - `/tool/*` - 工具接口 #### 2. proj-device-api (设备端API模块) - **功能**: 提供设备端应用的HTTP接口服务 - **主要组件**: - Controller层:处理设备端请求 - 配置类:设备端API配置 - 启动类:设备端API应用入口 - **API分类**: - `/device/*` - 设备管理接口 - `/karaoke/*` - K歌相关接口 - `/content/*` - 内容管理接口 - `/user/*` - 用户相关接口 #### 3. proj-device-service (设备端业务模块) - **功能**: 实现设备端核心业务逻辑 - **主要组件**: - Service层:设备端业务服务 - 设备管理:设备注册、状态监控 - 内容管理:歌曲、视频、学习内容 - 用户管理:儿童用户信息管理 - 互动功能:游戏、学习记录 #### 4. proj-framework (核心框架模块) - **功能**: 提供系统核心功能和基础设施 - **主要组件**: - 安全认证:JWT Token认证 - 权限控制:基于注解的权限验证 - 数据源配置:多数据源支持 - 异常处理:全局异常处理机制 - 拦截器:请求拦截和处理 - 缓存管理:Redis缓存配置 #### 5. proj-system (系统业务模块) - **功能**: 实现系统核心业务逻辑 - **主要实体**: - 用户管理 (SysUser) - 角色管理 (SysRole) - 菜单管理 (SysMenu) - 部门管理 (SysDept) - 岗位管理 (SysPost) - 字典管理 (SysDictData) - 系统配置 (SysConfig) - 操作日志 (SysOperLog) - 登录日志 (SysLogininfor) #### 6. proj-common (通用工具模块) - **功能**: 提供通用工具类和基础组件 - **主要组件**: - 基础实体类和返回结果封装 - 工具类:日期、字符串、文件处理等 - 注解:Excel导出、日志记录、权限验证 - 异常类:自定义异常体系 - 常量定义:系统常量配置 ## 核心功能 ### PC后台管理功能 - 用户管理:用户账号的增删改查、角色分配 - 权限管理:基于RBAC的权限模型 - 系统监控:服务器性能监控、在线用户管理 - 系统配置:参数配置管理、字典数据管理 - 设备管理:设备状态监控、设备配置管理 ### 设备端功能 - 设备注册:设备初始化、设备信息管理 - 内容管理:歌曲库、视频库、学习内容管理 - 用户管理:儿童用户信息、家长账户管理 - K歌功能:歌曲播放、录音、评分 - 学习功能:学习内容推送、学习记录 - 互动功能:游戏、语音交互 ## 安全机制 ### 认证方式 - JWT Token认证 - Redis存储用户会话 - 密码加密存储 - 验证码防机器人 ### 权限控制 - 基于注解的方法级权限控制 - 数据权限过滤 - 接口访问频率限制 - XSS攻击防护 ## 配置说明 ### 数据库配置 - 数据库类型:MySQL - 连接池:Druid - ORM框架:MyBatis - 分页插件:PageHelper ### 缓存配置 - 缓存类型:Redis - 连接池:Lettuce - 缓存策略:LRU - 过期策略:TTL ### 文件上传 - 上传路径:可配置 - 文件大小限制:10MB - 支持格式:图片、文档、音频、视频 ## 部署说明 ### 环境要求 - JDK 1.8 - MySQL 8+ - Redis 3.0+ - Maven 3.6+ ### 启动步骤 1. 配置数据库连接信息 2. 配置Redis连接信息 3. 执行数据库初始化脚本 4. 运行 `mvn clean install` 5. 启动PC后台管理:`ProjApplication.java` 6. 启动设备端API:`DeviceApiApplication.java` ### 访问地址 - PC后台管理:http://localhost:8080 - 设备端API:http://localhost:8081 - API文档:http://localhost:8080/swagger-ui/ - Knife4j文档:http://localhost:8080/doc.html ## API接口规范 ### 请求格式 - 请求方式:RESTful风格 - 数据格式:JSON - 认证方式:Bearer Token ### 响应格式 ```json { "code": 200, "msg": "操作成功", "data": {} } ``` ### 状态码说明 - 200:操作成功 - 401:未授权 - 403:权限不足 - 500:系统错误 ## 开发规范 ### 代码规范 - 遵循阿里巴巴Java开发手册 - 使用统一的代码格式化配置 - 必须添加类和方法注释 - 异常处理要完整 ### 数据库规范 - 表名使用下划线命名 - 字段名称要有业务含义 - 必须有创建时间和更新时间 - 软删除使用标记位 ### 接口规范 - RESTful风格API设计 - 统一返回结果格式 - 完整的参数校验 - 详细的接口文档