# back_end **Repository Path**: cloverplum/back_end ## Basic Information - **Project Name**: back_end - **Description**: 毕业设计后端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-12-15 - **Last Updated**: 2025-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 校园能耗监测与积分管理系统 - 后端 ## 项目简介 本项目是校园能耗监测与积分管理系统的后端部分,采用 Spring Boot 3.5.8 + MyBatis + MySQL 8.0 架构开发。 ## 技术栈 - **框架**: Spring Boot 3.5.8 - **数据库**: MySQL 8.0 - **ORM**: MyBatis 3.0.5 - **安全**: Spring Security - **Java版本**: 21 ## 项目结构 ``` demo/ ├── src/ │ ├── main/ │ │ ├── java/com/example/demo/ │ │ │ ├── common/ # 公共类 │ │ │ │ ├── constants/ # 常量类 │ │ │ │ ├── Result.java # 统一响应结果 │ │ │ │ └── PageResult.java # 分页结果 │ │ │ ├── config/ # 配置类 │ │ │ │ ├── CorsConfig.java # 跨域配置 │ │ │ │ ├── SecurityConfig.java # 安全配置 │ │ │ │ └── GlobalExceptionHandler.java # 全局异常处理 │ │ │ ├── controller/ # 控制器层 │ │ │ │ ├── AuthController.java # 认证控制器 │ │ │ │ ├── UserController.java # 用户管理 │ │ │ │ ├── BuildingController.java # 建筑管理 │ │ │ │ ├── RoomController.java # 房间管理 │ │ │ │ ├── EnergyDataController.java # 能耗数据 │ │ │ │ └── UserPointsController.java # 积分管理 │ │ │ ├── service/ # 服务层 │ │ │ │ └── impl/ # 服务实现类 │ │ │ ├── mapper/ # Mapper接口 │ │ │ ├── entity/ # 实体类 │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ ├── request/ # 请求DTO │ │ │ │ └── response/ # 响应DTO │ │ │ └── DemoApplication.java # 启动类 │ │ └── resources/ │ │ ├── mapper/ # MyBatis XML映射文件 │ │ ├── db/ # 数据库脚本 │ │ │ ├── schema.sql # 建表脚本 │ │ │ └── init_data.sql # 初始化数据 │ │ └── application.properties # 配置文件 │ └── test/ # 测试代码 ``` ## 核心功能模块 ### 1. 用户权限管理 - 用户登录/登出 - 用户信息管理 - 角色权限管理 ### 2. 建筑与房间管理 - 建筑信息管理 - 房间信息管理 - 用户房间关联 ### 3. 能耗监测 - 能耗数据采集 - 能耗数据查询 - 能耗统计 ### 4. 积分管理 - 用户积分查询 - 积分交易记录 - 积分增加/消费 ## 数据库配置 在 `application.properties` 中配置数据库连接: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/energy%20consumption%20management?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8mb4&useUnicode=true&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=root ``` ## 启动步骤 1. **确保数据库已创建并执行了建表脚本** ```sql -- 执行 schema.sql 创建表结构 -- 执行 init_data.sql 初始化数据 ``` 2. **配置数据库连接** - 修改 `application.properties` 中的数据库连接信息 3. **启动应用** ```bash # 使用 Maven mvn spring-boot:run # 或使用 IDE 直接运行 DemoApplication.java ``` 4. **访问测试接口** ``` GET http://localhost:8080/api/test/hello ``` ## API 接口说明 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/userInfo` - 获取当前用户信息 - `POST /api/auth/logout` - 用户登出 ### 用户管理 - `GET /api/user/list` - 分页查询用户列表 - `GET /api/user/{id}` - 查询用户详情 - `POST /api/user` - 新增用户 - `PUT /api/user/{id}` - 更新用户 - `DELETE /api/user/{id}` - 删除用户 ### 建筑管理 - `GET /api/building/list` - 查询所有建筑 - `GET /api/building/{id}` - 查询建筑详情 - `POST /api/building` - 新增建筑 - `PUT /api/building/{id}` - 更新建筑 - `DELETE /api/building/{id}` - 删除建筑 ### 房间管理 - `GET /api/room/list?buildingId={id}` - 查询房间列表 - `GET /api/room/{id}` - 查询房间详情 - `POST /api/room` - 新增房间 - `PUT /api/room/{id}` - 更新房间 - `DELETE /api/room/{id}` - 删除房间 ### 能耗数据 - `POST /api/energy/data` - 添加能耗数据 - `GET /api/energy/data?roomId={id}&startTime={time}&endTime={time}` - 查询能耗数据 - `GET /api/energy/sum?roomId={id}&energyTypeId={id}&startTime={time}&endTime={time}` - 统计能耗 ### 积分管理 - `GET /api/points/{userId}` - 查询用户积分 - `GET /api/points/transactions/{userId}` - 查询积分交易记录 ## 默认账号 - **用户名**: admin - **密码**: admin123 ## 注意事项 1. 数据库名称中包含空格,在 JDBC URL 中需要使用 URL 编码(`%20`) 2. 密码使用 BCrypt 加密存储 3. 开发阶段 Security 配置允许所有请求,生产环境需要配置认证授权 4. 跨域配置已启用,允许前端访问 ## 后续开发建议 1. 实现 JWT Token 认证 2. 完善权限控制 3. 添加数据校验 4. 实现文件上传功能 5. 添加 Redis 缓存 6. 完善异常处理 7. 添加操作日志记录