# fancied **Repository Path**: FlyCard/fancied ## Basic Information - **Project Name**: fancied - **Description**: 孰对孰错已无从考量,似是而非已无从辨别 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-04 - **Last Updated**: 2025-08-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CsMarketBackEnd 这是一个基于Spring Boot的后端项目,主要提供市场相关的服务。该项目使用了WebSocket、JWT鉴权、定时任务等技术,并且实现了用户登录、注册、消息通信以及基础皮肤数据同步功能。 ## 主要功能 - **用户登录与注册**:通过`/login`和`/register`接口进行用户登录与注册,并返回相应的JWT token。 - **WebSocket通信**:通过`/message`端点实现WebSocket通信,支持消息接收、连接打开与关闭、错误处理以及向用户或所有连接广播消息。 - **JWT鉴权**:使用`JwtUtils`工具类生成和解析JWT token,用于用户身份验证。 - **皮肤数据同步**:通过`/api/test/sync-skins`接口定时从外部API同步皮肤数据并保存到数据库。 - **在线用户管理**:支持获取当前在线用户列表和数量。 ## 项目结构 以下是项目的主要组件: - **启动类** - `CsMarketBackEndApplication.java`:Spring Boot应用的启动类。 - **控制器** - `AuthController.java`:处理用户登录与注册请求。 - `MessageController.java`:提供获取在线用户信息的接口。 - `SkinsController.java`:提供获取武器类型、分类和皮肤信息的接口。 - `TestApiController.java`:提供测试皮肤数据同步的接口。 - **拦截器** - `JwtInterceptor.java`:拦截请求并进行JWT鉴权。 - **WebSocket** - `WebSocketEndPoint.java`:WebSocket端点类,处理连接、消息接收、发送等功能。 - `WebSocketConfig.java`:配置WebSocket支持。 - `WebSocketConfigurator.java`:配置WebSocket握手时的自定义逻辑。 - **服务** - `UserService.java`:处理用户登录与注册的业务逻辑。 - `BasicSkinsDataSyncService.java`:定时从外部API同步皮肤数据并处理保存到数据库。 - **数据访问** - `UserMapper.java`:用户数据访问接口。 - `BasicSkinsMapper.java`:皮肤数据的数据库操作接口。 - `WeaponCategoryMapper.java`:武器分类数据的数据库操作接口。 - **实体类** - `Users.java`:用户实体类。 - `BasicSkins.java`:皮肤数据实体类。 - `WeaponCategory.java`:武器分类实体类。 - `SkinsDTO.java`:皮肤数据传输对象。 - **请求/响应模型** - `LoginRequestDTO.java`:登录请求的数据模型。 - `RegisterRequestDTO.java`:注册请求的数据模型。 - **工具类** - `JwtUtils.java`:JWT生成与解析工具类。 - `Result.java`:统一的API响应格式封装类。 - **配置类** - `WebConfig.java`:注册JWT拦截器。 - `RestTemplateConfig.java`:配置RestTemplate用于外部API调用。 - `WebSocketConfig.java`:配置WebSocket支持。 - **资源文件** - `weapon.properties`:武器相关配置文件,用于皮肤数据同步。 ## 如何运行 1. 确保已经安装了Java环境(JDK 1.8或更高版本)和Maven。 2. 克隆项目到本地。 3. 进入项目目录,执行以下命令启动应用: ```bash mvn spring-boot:run ``` 4. 应用启动后,可以通过访问`/login`接口进行用户登录,登录成功后将返回一个JWT token。 5. 使用WebSocket客户端连接`/message`端点,发送消息时携带token进行身份验证。 ## 配置 - JWT配置:在`JwtUtils.java`中,可以配置token的有效期和密钥。默认情况下,token的有效期为24小时,密钥为`secret`。 - 数据库配置:在`application.yml`或`application.properties`中配置数据库连接信息。 - 外部API配置:在`application.yml`中配置外部API的URL和密钥。 ## 测试 项目包含基本的单元测试,确保应用能够正常启动并加载所有Bean。可以使用以下命令运行测试: ```bash mvn test ``` ## 贡献 欢迎贡献代码和提出建议。请先阅读项目的贡献指南,然后提交Pull Request。 ## 许可证 本项目采用MIT许可证。详情请查看[LICENCE](LICENCE)文件。