本项目是一套面向 电动自行车/单车充电场景 的 SaaS 运营平台,覆盖设备接入、用户充电、支付结算、分润提现到运营管理的完整链路,适用于社区、园区、商圈、学校、物业等场景。
设备协议不统一 → 多协议适配层(TCP + MQTT),按产品类型策略路由
充电数据高频上报 → RocketMQ 异步结算,解耦设备消息与订单写库
支付场景多样 → 微信支付、支付分、支付宝、余额预存统一接入
加盟分润复杂 → 订单结算自动分润,支持提现审核与冻结
订单量增长 → ShardingSphere 按年分表,支撑历史订单扩展
.1 充电业务
扫码充电:扫描端口二维码,选择时长/模式(计时、充满自停等)启动
订单管理:充电中、待缴、已完成、已退款等全生命周期管理
多种充电方式:
临时充电(微信直接支付)
余额/预存充电
微信支付分(先充后付)
押金充电(充完退余)
实体卡刷卡充电
守护充电:可选增值保障服务
VIP 免费充电:按网点配置 VIP 用户,指定时段免费
功率曲线:记录充电过程功率变化,支持后台查看与导出
支付与财务
模块 功能
微信支付
JSAPI 下单、充值、充电支付、退款回调
微信支付分
授权、创建服务订单、完结、取消、退款
支付宝
账号绑定、提现到支付宝
钱包/预存
充值、消费、充值赠送活动
退款
订单退款、余额退款、押金退还、异步 MQ 退款
分润结算
运营商/合作方/平台按比例分润
提现
收益账户提现、审核、支付宝/微信出款
冻结资金
异常订单资金冻结与解冻
本项目采用前后端分离、微服务化的整体架构。后端以 Spring Boot 为基础,结合 Spring Cloud 与 Spring Cloud Alibaba 构建分布式系统;前端分为 Vue 管理后台和 uni-app 微信小程序两部分,分别服务运营人员与终端用户。
系统对外统一通过 Spring Cloud Gateway 接入。所有外部请求先进入网关,再按路径转发到对应业务服务:管理后台接口走 admin 服务,小程序与用户端接口走 api 服务,设备相关旧接口则转发到独立的设备通信服务。服务注册与配置统一由 Nacos 管理,数据库、Redis、消息队列、支付参数等配置从配置中心读取,便于多环境部署与运维。
后端在工程上按职责分层。最底层是 service-bean,存放实体、DTO、VO 等数据结构;service-core 提供公共工具、业务枚举、JWT、日志切面、防重复提交等通用能力;service-dao 承担数据访问与核心业务逻辑,包括订单、支付、退款、结算、设备、用户账户等;service-platform 将 Redis、RocketMQ、微信支付、支付宝、阿里云 OSS、WebSocket 等外部能力封装成独立模块,供上层复用。可独立部署的业务服务主要有四个:service-admin 负责管理后台 API,service-api 负责小程序与 C 端接口,service-settle 负责消息消费与异步结算,service-gateway 负责统一入口与路由。
数据层使用 MySQL 作为主库,通过 Druid 连接池管理连接,ORM 采用 MyBatis-Plus,分页使用 PageHelper。随着订单数据增长,项目引入 ShardingSphere 做按年分表,减轻单表压力。Redis 用于缓存设备状态、充电中订单、接口防重复提交等高频读写场景;RocketMQ 用于解耦设备上报与业务处理,是整套系统异步化的关键。
充电业务的实现路径大致如下:用户在小程序扫码后创建订单并完成支付,后端根据设备类型选择对应充电服务,向设备侧下发启充指令;设备通过 TCP 或 MQTT 与平台保持长连接,持续上报心跳、充电数据和结束事件;这些消息进入 RocketMQ 后,由 service-settle 中的多个消费者异步处理,包括订单结算、状态更新、分润计算、报表统计等。这样设计的原因是设备上报频率高、并发大,如果同步写库,容易拖慢接口并影响稳定性,因此采用“设备通信层接收消息、消息队列缓冲、结算服务异步消费”的模式。
设备通信是本项目的重要实现部分,单独放在 idc-piles-java-parent 工程中。该工程支持多种硬件协议:传统 TCP 长连接服务负责解析友电、帝能等桩厂协议;new_dn_service 面向新帝能底层设备;tz-mqtt-client 与 mqttx 组成 MQTT 接入方案,前者作为客户端网关订阅设备主题并解析二进制协议,后者提供 MQTT Broker 能力。不同协议在业务层通过产品类型进行策略路由,分别匹配不同的充电服务与结算消费者,从而在一套平台内兼容多品牌设备。
支付与财务模块集中在 service-dao 中实现。微信支付通过 platform-wx-pay 封装,支持 JSAPI 支付、充值、退款及支付分;支付宝通过 platform-zfb 实现绑定与提现;余额、预存、充值赠送、退款、分润、提现审核、资金冻结等逻辑都在财务相关服务中完成。退款既支持订单原路退回,也支持余额退款和押金退还,部分退款任务通过 MQ 异步执行,避免阻塞主流程。
管理后台基于若依 RuoYi-Vue 二次开发,使用 Vue 2 和 Element UI,面向平台运营人员,提供设备、网点、订单、财务、报表、用户、权限等管理能力。小程序使用 uni-app 开发,一套代码覆盖 C 端用户、合作商户和运营商三类角色,分别提供扫码充电、网点经营、收益提现、设备管理等功能。
安全方面,管理端与小程序端均采用 JWT 鉴权,配合 Spring Security 做接口权限控制;管理后台沿用若依的 RBAC 模型,支持部门、角色、菜单和数据权限。日志采用 Log4j2,并预留 SkyWalking 接入能力;接口文档使用 Knife4j 生成,便于联调与维护。
部署上,各微服务打包为 Spring Boot 可执行 jar,通过 Docker 容器化发布,网关统一对外暴露服务,支付证书等敏感文件通过挂载方式注入容器。设备通信服务可单独扩容,业务服务可按 admin、api、settle 分别伸缩,整体具备较好的横向扩展能力。
从实现特点看,这套系统的核心在于三点:一是设备层与业务层分离,兼容 TCP 和 MQTT 多种接入方式;二是通过 RocketMQ 把设备高频上报与订单、财务等重业务处理解耦;三是支付、结算、分润、提现形成完整闭环,并通过管理后台和小程序覆盖运营与用户全场景。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论