# 100Charge基于若依的开源充电运营平台
**Repository Path**: nzwm/100charge
## Basic Information
- **Project Name**: 100Charge基于若依的开源充电运营平台
- **Description**: 开源充电运营平台,充电桩管理系统,开源充电桩平台,充电桩管理平台,全面兼容多个主流充电桩品牌,服务于园区、车企、物流、桩企及政务等多种场景。
产品基于轻量级设计理念,易使用功能强大,满足中小规模企业的需求。架构设计采用高可扩展架构,可轻松支撑城市级规模充电网络的运营管理。
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: develop1.0
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 346
- **Created**: 2026-09-03
- **Last Updated**: 2026-09-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

100Charge基于若依的开源充电运营平台
基于SpringBoot和若依框架开发
# 一 项目背景
我们团队在新能源充电领域深耕多年,深刻理解中小型充电场站在运营中面临的核心需求与实际痛点。为此,团队决定将多年积累的行业经验与技术成果开源,通过共享力量,帮助广大充电站站长降本增效,轻松应对日常运营挑战。同时也为准备进入该领域的创业者,提供一套经过实际验证过的解决方案,助力业务快速落地与商业验证。
## 1.项目价值
针对中小充电站场站主 “数字化门槛高、落地周期长、技术门槛高” 的痛点,开源系统提供两大关键支撑:
* **快速接入充电桩**:无需技术开发即可轻松接入主流品牌充电桩,还可以实现设备数据轻松上传云端,降低场站数字化改造难度以及实施成本;
* **业务直达用户**:支持微信小程序端,让充电业务快速触达终端用户,用户可通过小程序完成找桩、预约、充电、支付全流程,助力场站主快速搭建线上服务渠道,提升用户体验与运营效率。
## 2.功能介绍
**100Charge**充电运营系统以 “快速落地、轻松上云、轻量运营”为核心目标。系统具有四大核心功能模块,具体如下:
* **充电桩管理**:实现对充电桩设备的集中化管控,支持设备状态实时监控、远程参数配置,确保设备稳定运行,轻松管理。
* **场站管理**:覆盖场站基础信息维护、运营状态可视化展示,帮助场站主高效管理线下场地资源,提升场地利用效率。
* **计费策略**:提供灵活可配置的计费规则设置功能,支持按峰谷时段等多维度自定义计费方案,满足不同场景下的定价需求。
* **订单管理**:自动记录充电订单详情(如充电时长、电量、费用等),支持订单查询、统计与导出,实现充电业务流水的清晰化管理
##
## 2.小程序截图
## 3.运营系统截图
### 3.1 社区版
### 3.2 标准版
# 二 版本对比
我们提供两种版本,以满足不同阶段和规模的用户选择:
## 1.社区版
如果您想快速推进业务落地,社区版是适合的选择,它包含的四项核心功能足以满足您的需求。社区版包含了稳定可靠的充电桩管理,计费策略,订单管理。助力您快速低成本开启充电场站运营。
## 2.标准版
如果你要想要更精细化的运营与管理,标准版将是您的最佳选择。在**社区版**的基础上,额外提供了企业级的高阶运营功能,比如多维度的数据分析,营销工具等。并且提供官方技术保障与支持,满足复杂的商业场景。
## 3.功能对比
# 三 演示系统
| | 地址 | 用户名与密码 |
| --- | ------------------------------------------------------------------------------------------- | ------------------- |
| 小程序 | TODO | TODO |
| 社区版 | https://demo-admin.100charge.cn/ | 手机号
验证码 |
| 标准版 | TODO | TODO |
# 四 开发环境
## 1 项目结构
```
100charge/
├─ charging-api/ # 后端 API 服务(Spring Boot + RuoYi,多模块 Maven 工程)
│ ├─ pom.xml # Maven 父 POM,统一依赖和模块管理
│ ├─ Dockerfile # 后端镜像构建文件
│ ├─ .docker.env # Docker 部署环境变量示例
│ ├─ start.bat / start.sh # 后端服务启动脚本
│ ├─ bin/ # 运行脚本与辅助脚本
│ ├─ sql/
│ │ └─ postgresql/ # PostgreSQL 初始化脚本
│ │ ├─ db1.sql # 表结构和初始化数据
│ │ └─ db2.sql # 初始化后序列修正脚本
│ ├─ xingchuan-admin/ # 启动入口与 Controller 层
│ ├─ xingchuan-framework/ # 框架核心配置、安全、过滤器、AOP 等
│ ├─ xingchuan-system/ # 系统与充电业务 Service、Mapper、Entity
│ ├─ xingchuan-common/ # 通用工具、注解、常量、异常、基础类
│ ├─ xingchuan-quartz/ # 定时任务模块
│ └─ xingchuan-generator/ # 代码生成模块
│
├─ charging-web/ # 管理后台前端(Vue 3 + Vite + Element Plus)
│ ├─ package.json # 前端依赖与 npm 脚本
│ ├─ package-lock.json # npm 依赖锁定文件
│ ├─ vite.config.js # Vite 构建与代理配置
│ ├─ Dockerfile / nginx.conf # 前端镜像与 Nginx 配置
│ ├─ .env.development # 开发环境变量
│ ├─ .env.staging # 预发布环境变量
│ ├─ .env.production # 生产环境变量
│ ├─ public/ # 公共静态资源
│ ├─ html/ # HTML 模板片段
│ ├─ vite/ # Vite 插件和构建辅助配置
│ └─ src/
│ ├─ main.js # 前端入口
│ ├─ App.vue # 根组件
│ ├─ permission.js # 路由权限守卫
│ ├─ settings.js # 后台布局配置
│ ├─ systemConfig.js # 系统名称等项目配置
│ ├─ api/ # 接口封装
│ ├─ assets/ # 样式、图片、图标等资源
│ ├─ components/ # 通用组件
│ ├─ directive/ # 自定义指令
│ ├─ layout/ # 后台布局组件
│ ├─ plugins/ # 插件注册
│ ├─ router/ # 路由配置
│ ├─ store/ # Pinia 状态管理
│ ├─ utils/ # 请求、鉴权、缓存等工具
│ └─ views/ # 业务页面
│
├─ charging-mini/ # 微信小程序用户端(uni-app + Vue 2)
│ ├─ package.json # 小程序端依赖
│ ├─ manifest.json # uni-app 应用配置
│ ├─ pages.json # 页面路由、分包、tabBar 配置
│ ├─ project.config.json # 微信开发者工具项目配置
│ ├─ App.vue / main.js # 应用入口
│ ├─ common.scss / uni.scss # 全局样式与主题变量
│ ├─ components/ # 小程序复用组件
│ ├─ config/ # API 地址、请求封装、签名工具
│ ├─ pages/ # 页面与分包页面
│ ├─ static/ # 静态资源
│ ├─ utils/ # 全局 mixin 与通用方法
│ └─ wxcomponents/ # 微信原生组件
│
├─ images/ # README 和文档使用的图片资源
├─ agents.md # AI / Developer Guide
├─ LICENSE # 开源协议文件
├─ Readme.md # 项目说明文档
└─ Readme.zh-CN.md # 中文项目说明文档
```
## 2. 依赖组件
```mermaid
flowchart TB
WEB[Web 云平台
Vue3 + Vite]
MINI[微信小程序
uni-app]
WEB --> APP[充电桩管理系统
Spring Boot 应用]
MINI --> APP
APP --> PG[(PostgreSQL 14+
业务数据存储)]
APP --> REDIS[(Redis 6.2+
缓存/会话)]
APP --> MQ[(RocketMQ 4.9.4
消息队列)]
APP --> WECHAT[微信支付 API
外部服务]
PG -.-> PGDATA[业务数据
用户订单
场站桩枪]
REDIS -.-> RCACHE[会话缓存
Token
验证码]
MQ -.-> MQMSG[消息队列
充电指令
订单通知]
WECHAT -.-> PAY[支付退款
余额充值]
style WEB fill:#409EFF,stroke:#1976D2,stroke-width:3px,color:#fff
style MINI fill:#07C160,stroke:#059748,stroke-width:3px,color:#fff
style APP fill:#4CAF50,stroke:#2E7D32,stroke-width:3px,color:#fff
style PG fill:#336791,stroke:#1a4d6d,stroke-width:2px,color:#fff
style REDIS fill:#DC382D,stroke:#a72822,stroke-width:2px,color:#fff
style MQ fill:#D77310,stroke:#a85a0a,stroke-width:2px,color:#fff
style WECHAT fill:#07C160,stroke:#059748,stroke-width:2px,color:#fff
style PGDATA fill:#E3F2FD,stroke:#1976D2,stroke-width:1px
style RCACHE fill:#FFE0B2,stroke:#F57C00,stroke-width:1px
style MQMSG fill:#FFF9C4,stroke:#F9A825,stroke-width:1px
style PAY fill:#C8E6C9,stroke:#388E3C,stroke-width:1px
```
# 六 快速部署
项目提供简易部署命令,可供您快速部署,学习并使用。**请勿该部署方式应用于生产环境**,请按照以下顺序进行执行部署
## 1. 数据库
```bash
# 拉取镜像
docker pull docker.1ms.run/library/postgres:14-alpine
docker tag docker.1ms.run/library/postgres:14-alpine postgres:14-alpine
# 启动容器
docker run -d \
--name postgres \
--restart always \
-p 5432:5432 \
-v /var/lib/postgresql/data:/var/lib/postgresql/data \
-e POSTGRES_DB=charge \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e TZ=Asia/Shanghai \
postgres:14-alpine
```
## 2. Redis
```bash
# 拉取镜像
docker pull docker.1ms.run/library/redis:6.2.21
docker tag docker.1ms.run/library/redis:6.2.21 redis:6.2.21
# 启动容器
docker run -d \
--name redis \
--restart always \
-p 6379:6379 \
redis:6.2.21 \
redis-server --appendonly yes
```
## 3. RocketMQ
```bash
# 拉取镜像
docker pull docker.1ms.run/xuchengen/rocketmq
docker tag docker.1ms.run/xuchengen/rocketmq xuchengen/rocketmq:latest
# 启动容器
docker run -itd \
--name=rocketmq \
--restart=always \
-p 9876:9876 \
-p 10909:10909 \
-p 10911:10911 \
-p 10912:10912 \
-v /etc/localtime:/etc/localtime \
-v /var/run/docker.sock:/var/run/docker.sock \
xuchengen/rocketmq:latest
```
## 4. 数据库初始化
执行SQL脚本,请按照顺序依次执行。
- `charging-api/sql/postgresql/db1.sql` - 表结构以及初始化数据
- `charging-api/sql/postgresql/db2.sql` - 重置主键序列
## 5. API服务
拉取官方镜像
```shell
docker pull docker.1ms.run/100charge/charging-api:latest
docker tag docker.1ms.run/100charge/charging-api:latest 100charge/charging-api:latest
```
部署镜像
### 1.微信支付
如果您不需要微信支付,请忽略该步骤,请注意**chmod 777**为最宽松权限,请根据您的实际需求进行调整
```shell
mkdir /wechat_pay
chmod 777 /wechat_pay/
# 将所有微信支付的相关文件放到这个目录
```
### 2.拉起镜像
请注意:微信支付的回调URL需要配置SSL
```shell
docker run -d \
--name charging-api \
-p 8080:9080 \
-e TZ=Asia/Shanghai \
-e JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -XX:MaxGCPauseMillis=200" \
-e DB_HOST=数据库所在IP \
-e DB_PORT=数据库端口 \
-e DB_NAME=数据库名称 \
-e DB_USER=数据库账号 \
-e DB_PASSWORD=数据库密码 \
\
-e REDIS_HOST=Redis所在IP \
-e REDIS_PORT=Redis端口 \
-e REDIS_DATABASE=0 \
-e REDIS_PASSWORD= \
\
-e ROCKETMQ_NAME_SERVER=RocketMQ所在IP:端口 \
\
-e DRUID_USERNAME=admin \
-e DRUID_PASSWORD=123456 \
\
-e WX_APPID=微信小程序appId \
-e WX_SECRET=微信小程序秘钥 \
\
-e PAY_WECHAT_MERCHANT_ID=这里是微信支付商户ID \
-e PAY_WECHAT_APPID=微信小程序appId \
-e PAY_WECHAT_SECRET= \
-e PAY_WECHAT_API_V3_KEY=这里是微信支付API_V3_KEY \
-e PAY_WECHAT_PRIVATE_KEY_PATH=/wechat_pay/apiclient_key.pem \
-e PAY_WECHAT_PUBLIC_KEY_PATH=/wechat_pay/pub_key.pem \
-e PAY_WECHAT_PUBLIC_KEY_ID=这里是微信支付PUBLIC_KEY_ID \
-e PAY_WECHAT_SERIAL_NUMBER=这里是微信支付SERIAL_NUMBER \
-e PAY_WECHAT_PLATFORM_CERT_MODE=false \
-e PAY_WECHAT_RECHARGE_NOTIFY_URL=http://web端的IP:端口/prod-api/payNotify/recharge/wechat \
-e PAY_WECHAT_REFUND_NOTIFY_URL=http://web端的IP:端口/prod-api/payNotify/refund/wechat \
\
-e ALIYUN_SMS_ENABLE=false \
-e ALIYUN_SMS_ACCESS_KEY_ID=XX \
-e ALIYUN_SMS_ACCESS_KEY_SECRET=XX \
-e ALIYUN_SMS_ENDPOINT=dysmsapi.aliyuncs.com \
-e ALIYUN_SMS_SIGN_NAME=短信签名 \
-e ALIYUN_SMS_TEMPLATE_CODE=短信模块Code \
-e ALIYUN_SMS_TIME_MINUTES=40 \
-e ALIYUN_SMS_MAX_COUNT=100 \
\
-v /adminLogs:/app/adminLogs \
-v /uploadPath:/app/uploadPath \
-v /wechat_pay:/wechat_pay \
--restart=always \
100charge/charging-api:latest
```
## 6. Web运营平台
拉取官网镜像
```shell
docker pull docker.1ms.run/100charge/charging-web:latest
docker tag docker.1ms.run/100charge/charging-web:latest 100charge/charging-web:latest
```
部署镜像
```shell
docker run -d \
--name charging-web \
-p 80:80 \
-e API_BASE_URL=/prod-api \
-e BACKEND_URL=http://API服务IP:端口/prod-api \
-e APP_TITLE=充电桩管理系统 \
-e APP_ENV=production \
-e APP_SYSTEM=山东行川新能源科技有限公司 \
--restart=always \
100charge/charging-web:latest
```
访问Web运营平台IP和端口,使用测试账号:
```
账号:admin
密码:admin123
```

# 七 版权须知
本软件项目(包括但不限于源代码、文档、图片、配置等所有构成项目的材料)的原始版权和知识产权归 **[山东行川新能源科技有限公司]** 所有。我们保留对本项目名称、品牌、Logo、专利以及商业许可的所有权利。未经明确授权,任何个人或组织不得使用与本项目相关的名称、标识进行商业性宣传或推广。
# 八 贡献代码
## 1. 如何提交代码
良好的团队协作的前提是,有一个清晰的代码规范,便于其他人理解。在您提交代码前,请您熟悉[《阿里巴巴Java开发手册》](https://developer.aliyun.com/ebook/386)的代码规范
## 2. 如何提交缺陷反馈
* 您已搜索过现有Issues,确保没有重复问题
* 您已确认这不是我本地环境导致的问题
* 您已提供足够的信息供开发人员复现问题
* 提交时,您已正确选择标签:bug
## 3. 如何提交需求
* 您已搜索过现有需求,确保没有重复需求
* 我已详细描述需求的背景,如我作为一个运营人员,我想要看到每日订单高峰时间段,并在该时间设置合适的价格。
* 我理解开源团队资源有限,会耐心等待评估
* 提交时,您已正确选择标签:feature
# 九 开源协议
**100Charge**是基于 [AGPL](https://www.gnu.org/licenses/agpl-3.0.en.html) 和 [XCPL](./LICENSE) 双协议的开源软件。您在使用、修改、复制、分发本项目时,仔细阅读并理解以下该协议条款。
**如果您属于以下情况,请遵循[AGPL](https://www.gnu.org/licenses/agpl-3.0.en.html)协议**
* 您是**个人开发者、研究机构或教育机构**,希望技术学习、研究或非商业性地使用本项目。
* 您希望基于本项目进行**修改或扩展,并愿意将您的修改成果同样开源**给社区。
如果您是学生或者教师,用于技术学习或教学目的,可联系我们,我们将免费提供培训与指导(远程)
**如果您属于以下情况,需要获得[XCPL](./LICENSE)协议许可**
* 您基于本项目的修改版本**用于商业目的,但不希望公开您的项目代码**。
* 您在一个**内部使用的系统**中集成了本项目,只对组织内部使用,**不**打算将其对外提供服务。
* 您计划将本项目**打包成SaaS产品或云服务进行销售**。
* 您需要在**专有/闭源产品中集成、修改或链接**本项目的代码。
* 您需要自行部署系统并运营,对外部用户提供收费服务。
**如何获得[XCPL](./LICENSE)协议许可?**
您需要通过官方渠道,包括不限于:微信、QQ群等与我们取得联系,这样确保您秉持开源精神同时,获得商业许可的自由,并能得到我们官方的技术支持
# 十 联系我们
**QQ群**,如果您只是技术学习与咨询等,请加入我们的**QQ群**:766266573,入群请填写:100+姓名
**微信扫码**,如果您要想咨询我们的商业授权,以及培训等事宜,请优先加微信,请备注:100+姓名
更多信息,请访问我们的WiKi:[Wiki - Gitee.com](https://gitee.com/ustcyc/100charge/wikis)
想投资一个充电站?不知道什么时候回本?关注我们的公众号,试一试我们的投资分析计算器
