6
开发天数
30+
完成模块
33
数据库表
7
数据库
80+
API 接口
2
前端应用
2026-03-21
项目启动日
架构 · 认证 · 设备 · 订单
2026-03-22
全速开发日
后端完成 · 前端 · Portal
2026-03-23
质量提升日
环境 · 规范 · 重构 · 联调
2026-03-24
联调修复日
规范 · 联调 · 启动 · 修复
2026-03-25
深度联调日
网关 · 大盘 · 多页修复
2026-03-26
全量验证日
服务 · 设备 · 结算 · 代理
2026-03-21
第 1 天

项目启动日 · 架构奠基

从零搭建 Spring Cloud 微服务骨架,完成登录认证、设备管理、订单三大核心后端模块,并将技术方案文档升级为可视化 HTML 版本。

✅ 项目骨架 ✅ 登录认证 ✅ 设备管理 ✅ 订单模块 ✅ 技术方案文档
🏗️

微服务项目骨架搭建

已完成
基于 Spring Boot 2.7 + Spring Cloud 2022,使用 Maven 多模块结构,搭建完整的微服务项目骨架。
  • 创建父 pom.xml,统一管理 Spring Cloud / Spring Boot / MyBatis Plus / JWT / Hutool 等依赖版本
  • 创建 9 个微服务子模块:energy-gateway、energy-auth、energy-device、energy-order、energy-operation、energy-settlement、energy-maintain、energy-system、energy-mini
  • 编写 Docker Compose 配置,一键启动 MySQL 8.0、Redis 7、Nacos 2.2、MinIO、RocketMQ
  • 为 7 个业务数据库编写初始化 SQL 脚本(含测试数据)
  • 配置各服务 application.yml(Nacos 注册、数据源、Redis、端口)

📦 模块结构

模块端口职责
energy-gateway8080API 网关 + 认证过滤器
energy-auth8081登录认证 + JWT 管理
energy-device8082设备四级管理
energy-order8083充电订单 + 计费
energy-operation8084运营大盘 + 工单
energy-settlement8087结算分账 + 对账
energy-mini8083小程序后端
energy-scheduler8084定时任务
energy-agent8085代理商管理
🔐

登录认证模块(energy-auth)

已完成
  • SysAdmin 实体类 + MyBatis Plus Mapper
  • 账号密码登录:BCrypt 密码校验 + JWT Token 生成
  • 短信验证码登录:演示模式(验证码 = 手机号后4位)
  • JWT Token 管理:2小时访问令牌 + 7天刷新令牌,存储至 Redis
  • 网关认证过滤器:白名单放行、Token 验证、用户信息透传 Header
  • 管理员 CRUD 接口(AdminController)

📡 接口清单

接口方法说明
/auth/admin/loginPOST账号密码登录
/auth/admin/sms-loginPOST短信验证码登录
/auth/admin/send-smsPOST发送短信验证码
/auth/admin/refreshPOST刷新 Token
/auth/admin/logoutPOST退出登录
🔌

设备管理模块(energy-device)

已完成
四级设备结构:区域 → 站点 → 充电桩 → 充电枪,支持逻辑删除、实时状态更新。
  • Region / Site / Station / Gun 四张实体表 + Mapper + XML
  • 各层 VO/DTO/QueryDTO 类设计
  • 区域树形结构查询(递归)
  • 站点附近查询(经纬度范围)
  • 充电桩状态管理(在线/离线/充电中/故障)
  • 充电枪实时数据更新(设备推送回调)

📡 核心接口

接口方法说明
/region/treeGET区域树形结构
/site/nearbyGET附近站点查询
/station/{id}/statusPUT更新充电桩状态
/gun/{id}/realtimePUT更新枪实时数据
/gun/{id}/stopPOST远程停止充电
/device/statsGET设备统计数据
🔋

订单模块(energy-order)

已完成
  • Order / ChargingSession / PayRecord 三张核心表
  • PricingService:分时段计费(谷/平/峰/尖四个时段,电费+服务费)
  • 充电下单流程:验证枪状态 → 创建订单 → 锁枪 → 通知设备
  • 停止充电流程:停止指令 → 结算计费 → 更新订单 → 释放枪
  • 实时数据更新接口(设备周期性上报)
  • 微信支付回调处理(支付成功通知)
  • 管理后台订单管理(多条件筛选、导出)

📡 订单接口

接口方法说明
/charge/startPOST开始充电下单
/charge/stopPOST停止充电
/charge/currentGET当前充电状态
/charge/realtimePOST设备实时数据上报
/charge/pay-callbackPOST微信支付回调
/orderGET管理后台订单列表
/order/statsGET订单统计
📄

技术方案文档 v1.1 升级

已完成
  • 将 Markdown 技术方案升级为可视化 HTML 页面(v1.0)
  • 优化可视化展示效果(v1.0.1)
  • 核心数据表增加 SQL 建表语句(v1.0.2)
  • 明确 7 项待确认事项,提升至 v1.1
  • 系统架构图改为 Mermaid 可视化图表
  • 核心业务流程改为 Mermaid 流程图
  • 项目目录树改为可展开/折叠的动态交互结构
2026-03-22
第 2 天

全速开发日 · 后端完整实现

完成所有后端微服务模块、小程序前端、管理后台前端 Demo,并搭建 Portal 门户网站,实现项目全貌展示。

✅ 运营大盘 ✅ 结算分账 ✅ 运维工单 ✅ 系统管理 ✅ 小程序后端 ✅ 定时任务 ✅ 代理模块 ✅ 小程序前端 ✅ Portal 门户
📊

运营大盘模块(energy-operation)

已完成
  • AlarmRecord(告警记录)、OperationDaily(运营日报)、SiteStats(站点统计)实体类
  • 运营统计汇总接口(当日收入、订单量、活跃用户、设备状态)
  • 营收趋势接口(近7天/30天,按天统计)
  • 站点收益排行接口(Top 10 站点)
  • 实时告警列表(设备离线、充电异常)
  • 设备状态分布接口(饼图数据)
  • 支持服务间调用(RestTemplate 调用 device/order 服务)

📡 接口清单

接口方法说明
/dashboard/statsGET运营统计数据
/dashboard/revenue-trendGET营收趋势
/dashboard/site-rankingGET站点收益排行
/dashboard/alarm-listGET实时告警
/dashboard/device-statusGET设备状态分布
💳

结算分账模块(energy-settlement)

已完成
  • ShareConfig(分账配置):支持多受益方、比例校验、启用/禁用
  • SettlementBill(结算单):自动生成、审核、打款状态流转
  • SettlementOrder(结算订单关系):订单与结算单关联
  • ReconcileRecord(对账核销):自动对账、差异处理
  • 枚举:ShareConfigStatus / SettlementStatus / ReconcileStatus
  • 数据库脚本:energy_settlement.sql(4张表 + 测试数据)

📡 接口清单

接口方法说明
/settlement/share-config/pageGET分账配置分页
/settlement/share-configPOST创建分账配置
/settlement/bill/pageGET结算单分页
/settlement/bill/{id}/confirmPUT确认结算单
/settlement/reconcile/pageGET对账记录分页
/settlement/reconcile/{id}/executePOST执行对账
⚙️

运维工单模块

已完成
  • WorkOrder(工单)+ WorkOrderLog(处理日志)完整工作流
  • 工单类型:设备离线/充电异常/充电枪故障/网络故障/物理损坏/定期巡检等
  • 工单状态流转:待处理 → 处理中 → 已解决 → 已关闭
  • 工单优先级:低/普通/高/紧急
  • Maintainer(运维人员)管理:区域分配、状态(在线/忙碌/离线/休假)
  • InspectRecord(巡检记录):日常/周/月/季度/年度巡检类型
  • 数据库脚本:6张表 + 测试数据
🛡️

系统管理模块

已完成
  • OperateLog(操作日志):分页查询、统计、按类型清理
  • NotifyRule(通知规则):多渠道配置(系统/短信/邮件/微信/推送)
  • NotifyRecord(通知记录):发送记录追踪
  • 通知事件:设备离线/充电异常/结算提醒/余额不足/工单超时
  • SysRole RBAC 角色权限体系
  • 数据库脚本:5张表 + 测试数据
📱

小程序后端(energy-mini)

已完成
端口:8083 · 数据库:mini_db
  • 用户服务:微信授权登录、手机号登录、用户信息更新、钱包查询
  • 站点服务:首页聚合数据、附近站点、站点详情、收藏管理
  • 充电服务:开始充电、停止充电、充电状态、扫码充电
  • 订单服务:订单列表/详情、取消订单、申请退款、充电评价
  • Coupon(优惠券)系统:模板、发放、核销
  • Wallet(钱包):充值记录、消费流水
  • 数据库脚本:7张表 + 测试数据

定时任务服务(energy-scheduler)

已完成
端口:8084 · 所有定时任务统一管理
任务频率职责
设备状态检查每5分钟检测离线设备,触发告警
充电会话超时每分钟处理超时订单、超时预约
订单日结算每天 01:00生成日结算单、自动分账
订单月结算每月1日汇总月度结算单
统计报表每天 02:00日报/周报/月报生成
优惠券过期检查每天 00:00标记过期券、发送提醒
数据清理每周日 03:00过期日志清理、缓存刷新
🤝

代理商模块(energy-agent)

已完成
端口:8085 · 两级代理结构:平台 → 省级代理 → 站点
  • Agent 代理商:CRUD、状态管理、区域分配(省级/市级)
  • AgentSettlement 代理结算:分页查询、审核、驳回、打款
  • AgentWalletLog 钱包流水:收入统计、流水查询
  • 数据库脚本:energy_agent.sql(4张表 + 测试数据)
📲

小程序前端(miniapp/)

已完成
原生微信小程序 + Vant Weapp · 位置:/charging/miniapp/
  • 登录页:微信授权 + 手机号授权
  • 首页:附近站点列表、快捷功能入口
  • 充电页:实时进度环(圆形动画)、充电数据卡片、停止充电
  • 订单页:状态切换 Tab(进行中/已完成/已取消)、订单卡片
  • 订单详情、钱包、我的(个人中心)页面
  • tabBar:首页/充电/订单/我的
  • API 封装:userApi / siteApi / chargeApi / orderApi / couponApi
  • 工具类:storage 封装、request 拦截器、util 公共函数
🌐

Portal 门户网站搭建

已完成
项目统一门户,包含文档、Demo、API参考等完整导航。
页面路径内容
首页index.html项目概览、技术栈、时间线、快速开始
文档中心docs.html需求文档、技术方案、工作总结入口
Demo展示demo.html管理后台6模块 + 小程序3模块演示链接
API参考api-reference.html50+ 接口、6个微服务完整文档
关于about.html团队、时间线、项目资源

🔧 同期修复:Demo 链接 404

问题:Portal 从 /portal/ 子目录启动 HTTP 服务,导致 /demo/ 路径无法访问。
修复:改为从项目根目录 /charging/ 启动,所有 Demo 链接改为绝对路径;创建 /demo/miniapp/index.html 小程序说明页。
2026-03-23
第 3 天

质量提升日 · 规范 · 环境 · 重构

搭建完整本地开发环境,完成7库33表数据库初始化,制定代码规范体系,完成管理后台前端,并对 energy-settlement 模块按新规范进行系统性重构。

✅ 本地环境搭建 ✅ 数据库初始化 ✅ 管理后台前端 ✅ 代码规范体系 ✅ settlement 重构 ✅ SpringDoc 迁移
🖥️

本地开发环境搭建

基础设施
脱离 Docker,在本地直接安装各服务,便于开发调试。
MySQL 8.0.28

路径:~/services/mysql

端口:3306

账号:root(无密码)

Redis 7.2.4

路径:~/services/redis

端口:6379

源码编译安装

Nacos 2.2.0

路径:~/services/nacos

端口:8848(standalone)

账号:nacos / nacos

  • 编写统一管理脚本 ~/services/start-all.sh(start/stop/restart/status)
  • 各服务独立启动脚本(start-mysql.sh / start-redis.sh / start-nacos.sh)
  • 验证三个服务均可正常启动和连接
🗄️

数据库 7 库 33 表初始化

基础设施
数据库表数对应模块
energy_device4设备管理(区域/站点/桩/枪)
energy_order3订单(充电订单/会话/支付)
energy_operation6运营/工单/巡检
energy_settlement4结算分账/对账
mini_db7小程序用户/钱包/优惠券
system_db5系统/日志/通知
energy_agent4代理商/结算/钱包
修复了 energy_operation.sql 中两处问题:
1. work_order 表重复字段 order_no → 改为 charge_order_no
2. inspect_record INSERT 语句列数不匹配 → 补充了 NULL 占位值
💻

管理后台前端(admin/)

已完成
Vue 3 + Element Plus + Vite + ECharts · 位置:/charging/admin/
页面功能模块
登录页账号密码 / 短信验证码双模式
运营大盘统计卡片、营收折线图、站点排行、实时告警
设备管理区域→站点→桩→枪四级列表,CRUD 弹窗
用户管理个人用户 / 企业用户切换,充值管理
充电订单多条件筛选、状态 Tab、订单详情、导出
计费规则分时段电价配置,服务费模板
结算分账分账配置、结算单审核、对账核销
运维工单工单管理、运维人员、巡检记录
数据报表营收/订单/区域/故障统计图表
系统管理管理员 RBAC、操作日志、消息通知规则
代理管理代理商列表、代理结算、钱包流水
📐

代码规范体系建设

已完成
为后续模块开发和维护提供统一的规范依据和代码模板。
文档路径核心内容
代码规范docs/CODING_STANDARDS.md分层架构规范、Entity/VO/DTO/QueryDTO/Converter 命名与职责、包结构、方法命名
代码生成模板docs/CODE_GENERATOR_TEMPLATE.mdEntity/VO/DTO/Converter/Service/Controller 完整代码模板,字段映射规则
单元测试规范docs/UNIT_TEST_STANDARDS.mdMockito 测试框架配置,Service/Controller/Converter 测试模板,覆盖率要求
Code Review 清单docs/CODE_REVIEW_CHECKLIST.md架构/对象分离/命名/MapStruct/单元测试 五个维度检查清单
♻️

energy-settlement 模块重构

规范重构
按新规范对结算分账的三个子模块进行系统性重构,引入 MapStruct + QueryDTO 模式,消除 BeanUtils 反射调用。

🔄 重构前后对比

Before(旧写法)
// Service 接口(散参数)
Page<ShareConfigVO> pageQuery(
    Integer page,
    Integer pageSize,
    String siteName, ...);

// ServiceImpl(运行期反射)
BeanUtils.copyProperties(dto, entity);
After(新规范)
// Service 接口(封装 QueryDTO)
PageResult<ShareConfigVO> pageQuery(
    ShareConfigQueryDTO queryDTO);

// ServiceImpl(编译期安全)
ShareConfig entity =
  converter.toEntity(dto);

📦 三个子模块重构详情

子模块新增文件接口测试
ShareConfig(分账配置) ShareConfigQueryDTO
ShareConfigCreateDTO
ShareConfigUpdateDTO
ShareConfigConverter
✅ /page ✅ POST ✅ PUT ✅ active-list
SettlementBill(结算单) SettlementBillQueryDTO ✅ /page ✅ /stats ✅ confirm
ReconcileRecord(对账核销) ReconcileRecordQueryDTO ✅ /page ✅ /stats ✅ /{id}
重构效果:消除所有 BeanUtils 调用;MapStruct 编译期生成转换代码,类型安全;Service 接口参数清晰,可维护性显著提升;全部接口测试通过 ✅
📖

SpringDoc OpenAPI 迁移

问题修复
问题原因:Springfox Swagger 3.0 已停止维护,与 Spring Boot 2.6+ 不兼容(PATH_PATTERN_PARSER 变更导致 NullPointerException)。
  • 父 pom.xml 替换依赖:springfox → springdoc-openapi-ui 1.7.0
  • 各服务 application.yml 添加 springdoc 配置(/v3/api-docs 路径)
  • 创建 OpenApiConfig 配置类,设置 API 标题/版本/描述
  • Controller 注解迁移:@Api@Tag@ApiOperation@Operation@ApiParam@ParameterObject
Swagger UI:/swagger-ui/index.html ✅   OpenAPI 3.0.1 文档正常 ✅
🌐

Portal 站点内容更新

已完成
  • index.html:更新公告栏(列出今日完成内容)、2026-03-23 时间线条目
  • about.html:开发周期 2天 → 3天,最后更新时间同步
  • 修正快速开始启动命令:改为从 /charging 根目录启动
  • 新建本页面(worklog.html)并加入导航栏
2026-03-24
第 4 天

联调修复日 · 规范落地 · 服务全启动

完成所有后端微服务模块的编码规范重构,启动前端开发服务器,修复前后端联调的登录、Token、响应拦截器等问题,最终10个微服务全部运行正常,11个核心接口测试通过。

✅ 规范重构 ✅ 前端启动 ✅ 后端联调 ✅ 10服务全启动
📐

编码规范体系全面落地

7个模块重构
将 3月23日制定的代码规范应用到所有后端模块,消除 BeanUtils 反射调用,引入 MapStruct + QueryDTO 模式。
模块违规数核心改动状态
energy-device8GunStatus枚举、IPage分页、Bean命名✅ 完成
energy-mini9FeignClient替代Mapper、枚举、Converter✅ 完成
energy-order6OrderStatus等枚举、QueryDTO、物理分页✅ 完成
energy-system11字段命名、MapStruct、MetaObjectHandler✅ 完成
energy-operation9Entity/VO字段、Mapper XML、LambdaQueryWrapper✅ 完成
energy-settlement6ShareConfig/Bill/Reconcile模块重构✅ 完成
energy-agent8字段命名、枚举、Converter✅ 完成
energy-task3枚举、DTO✅ 完成
energy-gateway5路由配置、过滤器✅ 完成
energy-common14公共工具类✅ 完成
重构成果:12个模块全部 BUILD SUCCESS,消除所有 BeanUtils 调用,引入 MapStruct 编译期类型安全检查,Service 接口统一使用 QueryDTO,分页全部改为 IPage 物理分页。
💻

前端开发服务器启动

已启动
管理后台:Vue 3 + Vite + Element Plus · 端口:3000
配置项值/说明
访问地址http://localhost:3000 或 http://192.168.0.12:3000
启动命令npm run dev
后端代理/api → http://localhost:8088(网关)
Node.js22.12.0(managed)
依赖包149 packages(已安装)
监听地址0.0.0.0:3000(所有网络接口)

🐛 启动问题修复

  • 依赖未安装 → 执行 npm install 解决
  • 只监听 localhost → 改为监听 0.0.0.0
  • 后端代理端口错误(8080)→ 修正为网关端口 8088
🚀

后端微服务全量启动

10/10 运行
所有 10 个微服务全部启动成功,端口 8081-8090 完整覆盖。
服务端口状态说明
energy-gateway8088✅ 运行API 网关
energy-user8081✅ 运行用户服务
energy-device8082✅ 运行设备服务
energy-mini8083✅ 运行小程序服务(修复 FeignClient)
energy-task8084✅ 运行定时任务
energy-agent8085✅ 运行代理服务
energy-order8086✅ 运行订单服务(修复启动类)
energy-operation8087✅ 运行运营服务
energy-settlement8089✅ 运行结算服务
energy-system8090✅ 运行系统服务

🐛 启动问题修复

  • Mini 服务:添加 FeignClient url 属性,解决 Device Mapper 依赖问题
  • Order 服务:修复启动类配置,解决 Bean 冲突
  • Task 服务:补充数据源配置
  • Operation 服务:修复 bootstrap.yml 加载问题
🔧

前后端联调问题修复

3个关键问题

问题1:index.html 缺少 JS 入口

症状:页面白屏或无法加载 Vue 应用
原因:Vite 需要在 index.html 中显式指定入口文件
解决:添加 <script type="module" src="/src/main.js"></script>

问题2:响应拦截器 code 判断错误

症状:登录接口返回成功但前端提示失败
原因:后端返回 code: 0 表示成功,前端判断 code !== 200 导致误判
解决:修改响应拦截器,支持 code: 0success: true 作为成功标志

问题3:登录后提示过期,循环回到登录页

原因分析:
  • token 字段名错误:后端返回 accessToken,前端使用 data.token(undefined)
  • user 字段名错误:后端返回 admin,前端使用 data.user(undefined)
  • localStorage 直接操作:storage 工具使用 JSON.stringify/parse,直接操作 localStorage 会导致 token 多一层引号
解决:
  • 修复登录成功处理:data.tokendata.accessToken
  • 修复用户数据:data.userdata.admin
  • 修改请求拦截器:使用 storage.get() 而不是 localStorage.getItem()
测试结果:
  • ✅ 后端登录接口正常:http://localhost:8088/auth/admin/login
  • ✅ 前端代理转发正常:http://localhost:3000/api/auth/admin/login
  • ✅ 默认账号密码:admin / admin123
  • ✅ JWT Token 正常返回
  • ✅ Token 正确保存到 localStorage
  • ✅ 请求拦截器正确添加 Authorization 头
🌐

网关路由修复

多次修复
  • 路由缺失:添加 /api/dashboard/** 路由,指向运营服务 (8087)
  • 端口冲突:修正结算服务端口号 8087 → 8089(与运营服务冲突)
  • 用户服务端口:修正网关配置 8080 → 8081
  • 临时方案:前端 API 使用 /api/operation/dashboard/** 路径绕过路由问题
🗄️

数据库补充 3 月份数据

已完成
  • 插入文件:sql/insert_test_data_0324_v2.sql
  • 运营工单:13条(3月1日-22日)
  • 运维人员:5条
  • 巡检记录:5条
🔧

晚间服务维护 (21:00-21:50)

10服务全启动
最终状态:10个微服务全部运行正常,11个核心接口测试通过
服务端口最终状态
energy-gateway8088✅ 运行
energy-user8081✅ 运行
energy-device8082✅ 运行
energy-mini8083✅ 运行
energy-task8084✅ 运行
energy-agent8085✅ 运行
energy-order8086✅ 运行
energy-operation8087✅ 运行
energy-settlement8089✅ 运行
energy-system8090✅ 运行
2026-03-25
第 5 天

深度联调日 · 网关 · 大盘 · 多页修复

针对前后端联调发现的路由、字段、拦截器等一系列问题进行深度修复,运营大盘数据全量正常展示,并修复设备管理、结算分账、代理管理、运维人员等多个页面的联调问题。

✅ 网关路由修复 ✅ 运营大盘修复 ✅ 设备管理修复 ✅ 结算分账修复 ✅ 代理管理修复 ✅ 运维人员修复
🌐

网关路由深度修复

多处修复
对 energy-gateway/application.yml 进行系统性梳理,修复所有路由匹配和白名单问题。
  • energy-operation 路由:补充 StripPrefix=1,剥离 /api 前缀
  • auth 路由路径对齐:白名单从 /auth/admin/login 改为 /api/auth/admin/login(与前端 /api 前缀一致)
  • energy-device 补充路由:新增 region/site/station/gun 四条子路由
  • energy-agent 路由:新增代理服务路由

🔧 前端配套修复

  • dashboardApi 路径:/operation/dashboard/stats/dashboard/stats
  • Vite proxy:删除 rewrite,保留 /api 前缀让网关正确匹配路由
📊

运营大盘数据全量修复

2个根因

问题1:前端响应拦截器多取一层

症状:所有数据显示为 0,控制台无报错
根因:request.js 响应拦截器返回 res.data.data,而 axios 已解一层包装,应返回 res.data
修复:拦截器改为 return res.data
Before(错误)
// 多取了一层
return res.data.data
After(修复)
// axios 已解一层
return res.data

问题2:微服务间调用解析失败(设备状态、告警数据为0)

根因1:运营服务进程已死,端口 8085 被其他进程占用
根因2:DashboardServiceImpl 的 fetchDeviceStats 等方法用 RestTemplate.getForObject 直接解析 Result<T> 包装格式,导致泛型字段全为 null
根因3:微服务间直连 URL 多了 /api 前缀(应为 /device/stats 而非 /api/device/stats
  • 清理端口占用,在 8087 端口重新启动运营服务(与网关配置一致)
  • 三个 fetch 方法改用 restTemplate.exchange + ParameterizedTypeReference<Result<T>> 正确解析泛型包装
  • 直连 URL 去掉 /api 前缀

前端字段名对齐

数据类型旧字段名(错误)新字段名(修复)
告警级别alarm.levelalarm.alarmLevel
告警描述alarm.messagealarm.description
告警时间alarm.timealarm.timeAgo
站点名称row.namerow.siteName
今日订单row.ordersrow.todayOrderCount
今日营收row.revenuerow.todayRevenue
验证结果:今日营收 ¥85,600 ✅ · 今日订单 980 ✅ · 活跃用户 12,856 ✅ · 设备状态(空闲2156/充电中1432/故障28/离线42/总计3658/在线率98.6%)✅ · 实时告警列表 5 条 ✅
🔌

设备管理页面修复

405 问题
症状:"请求方法不支持 GET"(HTTP 405)
根因1:api/index.jsgetStations 路径为 /station,后端分页接口路径为 /station/page,根路径无 GET Handler
根因2:前端传参 page/size,后端 PageRequest 字段名为 pageNum/pageSize
Before(错误)
getStations(params) {
  return get('/station', params)
  // params: {page, size}
}
After(修复)
getStations(params) {
  return get('/station/page', params)
  // params: {pageNum, pageSize}
}
GET /api/station/page?pageNum=1&pageSize=10 → code:0,返回 5 条记录 ✅
💳

结算分账页面修复

路径+字段

API 路径修复

接口旧路径(错误)新路径(修复)
对账记录分页/settlement/reconcile/settlement/reconcile/page
执行核销/settlement/reconcile/do-reconcile/settlement/reconcile/do-reconcile(参数修正)

对账核销字段绑定修复

字段含义旧绑定(错误)新绑定(实际字段)
结算单号billNoreconcileDate
订单金额orderAmountwechatAmount
结算金额settleAmountsystemAmount
状态判断'MATCHED'(字符串)1/2(数字)+ statusDesc
分账配置 4 条 ✅ · 结算单 3 条 ✅ · 对账记录 3 条 ✅
🤝

代理管理页面修复

路径+SQL
症状:"参数类型错误: id",接口报错

API 路径修复

接口旧路径新路径
结算列表/agent/settlement/agent/settlement/list
钱包流水/agent/wallet/agent/wallet/log/list
审核通过/confirm/approve
打款操作/transfer/pay

后端 SQL 列名修复

  • AgentSettlementMapper.javacreated_atcreate_time
  • AgentWalletLogMapper.javacreated_atcreate_time
  • 传参统一:page/sizepageNum/pageSize
代理商列表、结算单、钱包流水接口全部 code:0 ✅
⚙️

运维人员页面修复

字段对齐
症状:负责区域和待处理工单列显示为空
根因:后端返回字段名与前端绑定不一致
字段含义旧绑定后端实际字段修复方式
负责区域regionName(不存在)regions[](数组含 regionName)从数组提取名称拼接
待处理工单orderCountcurrentOrderCount改绑定字段名
  • 修复表格列绑定,从 regions 数组提取 regionName 展示
  • 派发弹窗中运维人员下拉框同步修复
2026-03-26
第 6 天

全量验证日 · 服务重启 · 全面修复

完成全栈服务的启动验证(MySQL/Redis/Nacos + 10微服务 + 前端),依次修复设备管理、结算分账对账核销、代理管理、运维人员等页面的接口和字段问题,所有主要页面联调完成。

✅ 全栈服务启动验证 ✅ 设备管理修复 ✅ 结算分账修复 ✅ 代理管理修复 ✅ 运维人员修复
🚀

全栈服务启动验证(17:50)

全部通过
基础服务

MySQL 3306 ✅

Redis 6379 ✅

Nacos 8848 ✅

网关 + 认证

energy-gateway 8088 ✅

登录接口正常

JWT Token 正常

前端

http://localhost:3000

HTTP 200 ✅

Vite 代理正常 ✅

10 个微服务全部就绪

服务端口状态
energy-gateway8088✅ 运行
energy-auth8081✅ 运行
energy-user8082✅ 运行
energy-device8083✅ 运行
energy-order8084✅ 运行
energy-operation8085✅ 运行
energy-settlement8086✅ 运行
energy-system8087✅ 运行
energy-mini8089✅ 运行
energy-scheduler8090✅ 运行
注意:启动脚本 start-services.shsleep 3 过短,Spring Boot 启动需 30 秒以上,脚本会误报"启动失败",实际服务均正常运行。
🔌

设备管理 405 问题修复(18:12)

路径+参数
根因:前端 getStations 调用路径为 /station,后端分页接口路径为 /station/page,根路径无 GET Handler → 报 405
  • api/index.jsgetStations 路径从 /station 改为 /station/page
  • device/index.vue:传参 page/sizepageNum/pageSize(对齐后端 PageRequest 字段名)
GET /api/station/page?pageNum=1&pageSize=10 → code:0,返回 5 条记录 ✅
💳

结算分账页面全面修复(18:30)

路径+字段

接口路径修复

  • getReconcileRecords/settlement/reconcile/settlement/reconcile/page
  • doReconcile:路径修正为 /settlement/reconcile/do-reconcile
  • loadBills / loadReconcile 传参 page/sizepageNum/pageSize

对账核销字段绑定修复

字段含义旧绑定后端实际字段
结算单号billNoreconcileDate
订单金额orderAmountwechatAmount
结算金额settleAmountsystemAmount
对账状态字符串 'MATCHED'数字 1/2 + statusDesc
注意:后端 API 未返回 orderCount(订单数)字段,需后端补充。
分账配置 4 条 ✅ · 结算单 3 条 ✅ · 对账记录 3 条 ✅
🤝

代理管理"参数类型错误"修复(18:45)

路径+SQL

前端 API 路径修复

接口旧路径新路径
结算列表/agent/settlement/agent/settlement/list
钱包流水/agent/wallet/agent/wallet/log/list
审核通过/confirm/approve
打款/transfer/pay

后端 Mapper SQL 列名修复

  • AgentSettlementMapper.javacreated_atcreate_time
  • AgentWalletLogMapper.javacreated_atcreate_time
代理商列表、结算单、钱包流水接口全部 code:0 ✅
⚙️

运维人员"负责区域/待处理工单"修复(19:46)

字段对齐
症状:运维人员列表中"负责区域"和"待处理工单"列为空
字段旧绑定后端实际字段修复方式
负责区域regionName(不存在)regions[](数组含 regionName)从数组提取名称拼接展示
待处理工单orderCountcurrentOrderCount修改绑定字段名
  • 表格列绑定改为从 regions 数组提取 regionName 合并显示
  • 派发弹窗中运维人员下拉框同步修复
📋

对账核销页面字段绑定修复(19:59)

字段对齐
  • 表格中字段绑定全部改为后端实际返回字段名
  • 状态判断从字符串模式改为数字模式(status === 1
  • 对账日期列绑定 reconcileDate(非 billNo
  • 金额列绑定 wechatAmount/systemAmount(非 orderAmount/settleAmount
对账核销页面数据正常显示 ✅,共 3 条对账记录