系统概述
随着全球能源结构的转型,新能源汽车的普及已成为交通领域的重要发展方向。充电基础设施作为推广的关键支撑,其智能化管理需求日益凸显。传统充电桩管理系统在数据处理、用户体验和扩展性方面往往存在不足,难以满足企业级高效运营的需求。
为解决这一问题,我们设计并实现了一套基于 SpringBoot + Vue + MyBatis 架构的企业级新能源充电系统。该系统通过整合物联网技术、云计算和大数据分析,实现对充电桩的远程监控、动态调度和用户行为分析,为运营商提供高效、稳定的管理工具。
核心架构设计
本系统采用前后端分离架构,确保高内聚低耦合。
- 后端:基于 SpringBoot 框架实现高效稳定的业务逻辑处理,结合 Spring Security 进行安全控制。
- 前端:使用 Vue.js 构建动态交互界面,配合 Element Plus 组件库提升开发效率。
- 数据库:采用 MySQL 存储系统核心数据,MyBatis 负责数据持久化层映射。
- 缓存与消息:引入 Redis 缓存提升系统响应速度,利用 RabbitMQ 处理异步任务与消息通知。
系统功能涵盖充电桩管理、用户管理、订单管理、数据统计及权限控制模块,支持多角色用户(如管理员、运营商、普通用户)的差异化操作。同时集成第三方支付接口和地图 API,实现充电桩定位、在线支付及实时状态更新。
数据库设计
充电桩信息表 (charge_pole_info)
该表记录系统中所有充电桩的基本属性及状态信息,主键为充电桩唯一标识 ID。创建时间通过函数自动获取。
| 字段名 | 数据类型 | 说明 |
|---|---|---|
| pole_id | BIGINT | 主键,充电桩唯一标识 |
| pole_code | VARCHAR(64) | 充电桩编码,用于快速识别 |
| pole_location | VARCHAR(128) | 充电桩地理位置描述 |
| pole_status | TINYINT | 状态(0-空闲,1-占用,2-故障) |
| pole_power | DECIMAL(10,2) | 充电功率(单位:kW) |
| pole_manufacturer | VARCHAR(64) | 生产厂商信息 |
| create_time | DATETIME | 记录创建时间 |
| update_time | DATETIME | 最后更新时间 |
用户订单表 (user_order_record)
存储充电交易记录,主键为订单 ID,关联用户和充电桩信息。
| 字段名 | 数据类型 | 说明 |
|---|---|---|
| order_id | BIGINT | 主键,订单唯一标识 |
| user_id | BIGINT | 关联用户 ID |
| pole_id | BIGINT | 关联充电桩 ID |
| order_amount | DECIMAL(10,2) | 订单金额(元) |
| order_start_time | DATETIME | 充电开始时间 |
| order_end_time | DATETIME | 充电结束时间 |
| order_status | TINYINT | 状态(0-进行中,1-已完成) |
| payment_method | VARCHAR(32) | 支付方式(如支付宝、微信) |
运营管理员表 (admin_operator)
存储系统管理员的权限及登录信息。
| 字段名 | 数据类型 | 说明 |
|---|---|---|
| admin_id | BIGINT | 主键,管理员唯一标识 |
| admin_account | VARCHAR(32) | 登录账号 |
| admin_password | VARCHAR(64) | 加密后的密码 |
| admin_role | TINYINT | 角色(0-超级管理员,1-普通) |
| admin_mobile | VARCHAR(16) | 联系电话 |
| last_login_time | DATETIME | 最后登录时间 |
| is_active | BOOLEAN | 账号是否启用 |
技术选型与实现
后端技术栈
- 框架:SpringBoot 2.7.x + Spring Security
- 持久层:MyBatis(替代 JPA 以增强对复杂 SQL 的控制)
- 缓存:Redis 6.x
- 消息队列:RabbitMQ 3.9
前端技术栈
- 核心:Vue 3.x + Element Plus
- 可视化:ECharts 5.0 数据可视化
- HTTP 客户端:Axios
关键优化策略
性能优化
在实际运行中,高频查询是主要瓶颈。我们采用了以下策略:
- 缓存设计:使用 Redis 缓存频繁访问的组织架构数据和充电桩实时状态,减少数据库压力。对任务列表查询结果进行分页缓存。
- 数据库优化:建立复合索引,例如
CREATE INDEX idx_task_status_deadline ON sys_task(status, deadline)。针对大文本字段考虑垂直分表,必要时采用读写分离架构。
安全控制
安全是企业级系统的底线。我们实施了多层防护:
- 认证机制:采用 JWT 令牌认证,无状态且易于扩展。
- 权限控制:基于注解的权限控制,如
@PreAuthorize("hasRole('ADMIN')")。 - 数据安全:敏感数据加密存储,防止 CSRF 攻击的 Token 验证。
- 审计日志:记录关键任务操作日志,便于追溯。
系统集成与运维
- 外部对接:支持 LDAP/AD 域账号同步,集成企业微信/钉钉消息通知,文件存储对接 OSS/MinIO。
- 监控体系:使用 Spring Boot Admin 服务器监控,Prometheus + Grafana 进行性能监控,ELK 日志分析系统辅助排查问题。
- 部署方案:推荐 Docker 容器化部署,配合 Kubernetes 集群编排,配置 CI/CD 流水线,支持蓝绿部署以降低上线风险。


