Guoqs 6904eae179 统一保险订单资金口径:payAmount=充电金额,明细=完整实付(充电+保险)
规则:order_basic_info.pay_amount 只记充电金额(不含保险);order_pay_record
汇总为用户完整实付(充电+保险);凭证校验以 payAmount+保险==明细 为准。

- 在线支付(OrderService.adapayCallback):payAmount 存 amount-保险(充电金额),
  回退 f11b781c2 的"完整金额"写入;下发桩额度直接用 payAmount,避免结算多退保险。
- 余额支付(Not/DelayMerchantProgramLogic.balancePayOrderV2):与在线一致,从钱包
  扣 充电+保险,order_pay_record 记完整实付,payAmount 仍只记充电金额;余额不足
  (<充电+保险)直接拒绝。会员交易流水记完整实付。
- 凭证校验(OrderBasicInfoServiceImpl.inspectOrderPayment):余额/非余额支路统一
  改为容错对比 payAmount==明细 或 payAmount+保险==明细;补偿回写只写充电金额,
  修复余额支路仍按 payAmount==明细 会误判新余额保险单的问题。
- 新增 docs/sql/fix_online_insurance_pay_amount_20260725.sql:矫正 f11b781c2 期间
  在线保险单被写成完整金额的 payAmount(dry-run/备份/回滚齐全)。
- 新增单测:calculateBalanceRefund 6 例 + inspectOrderPayment 5 例(计算层,不连库)。
2026-07-25 20:51:42 +08:00
2025-03-11 08:53:34 +08:00
2026-05-08 12:14:29 +08:00
2026-02-03 14:20:30 +08:00
2026-02-03 14:20:30 +08:00
2026-02-03 14:20:30 +08:00
2026-07-01 10:36:40 +08:00
2026-05-28 14:25:17 +08:00
2026-06-02 09:14:30 +08:00
2026-02-03 14:20:30 +08:00
2026-01-20 16:53:47 +08:00
2026-05-13 11:01:45 +08:00

jsowell-charger-web

万车充运营管理平台,包含一套 Java 8 + Spring Boot 的多模块后端,以及一个 Vue 2 的管理端前端工程。

项目主要面向充电桩运营场景,覆盖设备管理、订单支付、会员能力、第三方平台对接、设备通信与定时任务等业务。

项目组成

  • 后端Maven 多模块工程,根目录 pom.xml
  • 前端:jsowell-charge-ui/,基于 Vue 2 + Vue CLI
  • 基础设施示例:docker/docker-compose.yml,包含 RabbitMQNacos
  • 补充资料:docs/

技术栈

后端

  • Java 8
  • Spring Boot 2.5.14
  • MyBatis / PageHelper
  • Dubbo 3.3.0
  • Nacos 2.0.3
  • Netty 4.1.75.Final
  • Redis / RabbitMQ / MySQL

前端

  • Vue 2.6
  • Vue CLI 4
  • Element UI
  • Axios

目录结构

.
├── jsowell-admin/         后端启动模块Web 服务入口
├── jsowell-framework/     核心框架层
├── jsowell-system/        系统管理模块
├── jsowell-common/        通用工具与基础能力
├── jsowell-pile/          充电桩核心业务
├── jsowell-netty/         设备通信与协议处理
├── jsowell-thirdparty/    第三方平台与支付对接
├── jsowell-quartz/        定时任务
├── jsowell-generator/     代码生成器
├── jsowell-settlement/    结算相关模块
├── jsowell-charge-ui/     Vue 2 管理端
├── docker/                Docker Compose 与部署说明
└── docs/                  业务文档、接口文档、SQL 与方案记录

模块说明

模块 说明
jsowell-admin Spring Boot 启动入口,包含控制器、配置、测试等
jsowell-framework 登录鉴权、拦截器、基础框架能力
jsowell-system 用户、角色、菜单、字典等系统管理能力
jsowell-common 常量、工具类、注解、异常定义
jsowell-pile 订单、会员、计费、支付、运营核心业务
jsowell-netty 充电桩 TCP/MQTT 通信与协议适配
jsowell-thirdparty 微信、支付宝、地图、外部平台接口
jsowell-quartz 定时任务调度
jsowell-generator 代码生成模板与生成器
jsowell-settlement 分账、清算与结算扩展能力

环境要求

本地开发建议

  • JDK 1.8
  • Maven 3.6+
  • Node.js 14.x 或兼容的 LTS 版本
  • npm 6+
  • MySQL 5.7+
  • Redis
  • RabbitMQ
  • Nacos

快速开始

1. 克隆并编译后端

git clone <your-repo-url>
cd jsowell-charger-web
mvn clean compile

2. 启动基础依赖

仓库中提供了 RabbitMQNacos 的容器示例:

cd docker
docker-compose up -d

更多说明见 docker/说明.md

说明:

  • docker-compose.yml 当前只包含 RabbitMQNacos
  • MySQLRedis 需要自行准备
  • 首次启动前请确认宿主机挂载目录和权限配置正确

3. 配置后端环境

后端配置文件位于:

重点检查这些配置:

  • spring.datasource
  • spring.redis
  • spring.rabbitmq
  • dubbo.registry
  • mybatis

默认服务端口:

  • 应用:8080
  • Prometheus / Actuator8091

建议:

  • 本地开发优先使用 dev 环境
  • 不要把本地密钥、生产连接串或私有凭证提交回仓库

4. 启动后端

在仓库根目录执行:

mvn -pl jsowell-admin spring-boot:run -Dspring-boot.run.profiles=dev

或先打包再运行:

mvn clean package -DskipTests
java -jar jsowell-admin/target/jsowell-admin.jar --spring.profiles.active=dev

后端启动类:

5. 启动前端

cd jsowell-charge-ui
npm install
npm run dev

前端默认开发端口为 8081,并通过代理转发到本地后端 http://localhost:8080

前端常用环境文件:

常用命令

后端

# 编译全部模块
mvn clean compile

# 打包
mvn clean package -DskipTests

# 运行全部测试
mvn test

# 仅运行 admin 模块测试
mvn -pl jsowell-admin test

前端

# 本地开发
npm run dev

# 预发构建
npm run build:pre

# 测试环境构建
npm run build:sit

# 生产构建
npm run build:prd

# 代码检查
npm run lint

开发约定

后端

  • 使用 4 空格缩进
  • 类名使用 PascalCase
  • 方法与变量使用 camelCase
  • 常量使用 UPPER_SNAKE_CASE
  • 尽量将改动收敛在单个业务模块内

前端

  • 遵循 jsowell-charge-ui/.editorconfig
  • ESLint 配置见 jsowell-charge-ui/.eslintrc.js
  • 默认风格为 2 空格、单引号、无分号

测试

后端测试主要位于:

建议在提交前至少执行:

mvn -pl jsowell-admin test
cd jsowell-charge-ui && npm run lint

文档与资料

  • CLAUDE.md:仓库架构补充说明
  • docs/:接口文档、需求说明、实现记录
  • docs/sql/SQL 脚本
  • docker/:容器与部署辅助文件

提交建议

  • 提交信息建议使用简短前缀,如:add ...update ...bugfix ...
  • 涉及数据库或接口变更时,请补充变更说明与示例
  • 前端页面改动建议附带截图

注意事项

  • 当前仓库包含多环境配置文件,启动前请先确认本地依赖地址是否可用
  • 第三方平台、支付、短信等配置较多,建议优先使用本地或测试环境参数联调
  • 若仅进行管理端页面开发,通常只需保证本地后端接口和前端代理可用
Description
No description provided
Readme 128 MiB
Languages
Java 99.9%
Shell 0.1%