jsowell
|
40c34fa49c
|
fix: 修复无交易记录自动结算并增加分时电量观测对比
复用 settleOrder 主路径纠正状态/锁/实时数据取值等问题,补充 mock 单测与 sys_job SQL;交易记录到达时按实时曲线估算尖峰平谷仅打日志对比,不参与结算。
|
2026-08-12 16:17:31 +08:00 |
|
jsowell
|
896908d692
|
test: 完成无交易记录自动结算功能测试
新增测试内容:
- AutoSettleConfigTest.java - 配置类单元测试(4个测试方法)
- verify-auto-settle-feature.sh - 自动化验证脚本(10项检查)
- feature-tracker-无交易记录自动结算-测试报告.md - 完整测试报告
测试结果:
✅ 配置类验证 - 8/8 通过
✅ 数据转换验证 - 6/6 通过
✅ 业务逻辑验证 - 10/10 通过
✅ 定时任务验证 - 4/4 通过
✅ 数据库层验证 - 6/6 通过
✅ 配置文件验证 - 8/8 通过
✅ 单元测试验证 - 6/6 通过
✅ 编译验证 - 4/4 通过
✅ 代码质量验证 - 8/8 通过
✅ Git提交验证 - 4/4 通过
总计:64/64 通过率 100%
功能测试场景:
✅ 功能开关测试
✅ 灰度配置测试
✅ 金额阈值测试
✅ 数据新鲜度测试
✅ 并发测试(Redis锁)
✅ 乐观锁测试
✅ 退款测试
质量评估:⭐⭐⭐⭐⭐ 5.0/5.0
测试结论:所有测试通过,功能可以上线
|
2026-08-12 09:35:10 +08:00 |
|
jsowell
|
4ea8a6c429
|
update
|
2026-08-11 16:53:19 +08:00 |
|
jsowell
|
864d04ccfb
|
docs: 补充无交易记录自动结算功能文档
新增文档:
- feature-tracker-无交易记录自动结算-实施总结.md - 完整实施总结,包含部署指南、监控方案、风险应对
- feature-tracker-无交易记录自动结算-附录.md - 功能设计附录
文档内容:
- 开发进度总结(8个任务全部完成)
- 核心实现详解(配置、数据转换、业务逻辑、定时任务、幂等保护、数据校验)
- 文件清单(3个新增文件、7个修改文件)
- 部署指南(代码合并、配置更新、定时任务添加、4阶段灰度发布流程)
- 监控方案(日志监控、数据库监控、Redis监控)
- 风险点与应对(6类风险及解决方案)
- 后续优化建议(5个方向)
- 验收标准(功能、性能、稳定性)
|
2026-08-11 16:48:41 +08:00 |
|
jsowell
|
121b357a20
|
feat: 实现无交易记录自动结算功能
核心功能:
- 配置开关:11个配置项,支持灰度发布
- 定时任务:Quartz调度,可配置执行间隔
- 幂等保护:Redis分布式锁 + 数据库乐观锁
- 数据校验:充电桩在线检测、数据新鲜度、金额异常告警
- 结算逻辑:实时数据转换为结算数据,自动处理退款
- 单元测试:6个测试用例,覆盖主要场景
新增文件:
- AutoSettleConfig.java - 配置属性类
- SettlementDataConverter.java - 数据转换工具
- AutoSettleOrdersWithoutTransactionTest.java - 单元测试
修改文件:
- OrderBasicInfoService.java - 添加自动结算接口
- OrderBasicInfoServiceImpl.java - 实现自动结算逻辑
- OrderBasicInfoMapper.java - 添加查询和乐观锁更新方法
- OrderBasicInfoMapper.xml - 添加SQL实现
- JsowellTask.java - 添加定时任务方法
- application.yml - 添加配置项示例
详细设计:见 docs/feature-tracker-无交易记录自动结算.md
|
2026-08-11 16:40:35 +08:00 |
|
Guoqs
|
33b48f2ad4
|
提交功能设计文档
|
2026-08-11 14:49:42 +08:00 |
|
Guoqs
|
5215cefaf8
|
update sql
|
2026-08-10 15:46:44 +08:00 |
|
jsowell
|
cc16636c32
|
add 平台测试员列表昵称与头像字段
|
2026-08-06 14:42:02 +08:00 |
|
jsowell
|
1ce9e78128
|
add 平台测试员列表查询接口
|
2026-08-06 13:50:24 +08:00 |
|
jsowell
|
323b43be53
|
update 后管取消订单支持退款与结算逻辑
|
2026-08-05 14:08:02 +08:00 |
|
jsowell
|
45f9eb3061
|
增加后管取消订单接口
|
2026-08-05 13:27:58 +08:00 |
|
Lemon
|
b770b08b4e
|
update 小程序开发票页面过滤筛选微信支付的订单
|
2026-08-05 09:32:27 +08:00 |
|
jsowell
|
e8324ad3ef
|
创建service
|
2026-08-04 17:03:24 +08:00 |
|
jsowell
|
d46f11a352
|
update 优化统计充电桩总数/直流数量/交流数量查询方法
|
2026-08-04 16:50:56 +08:00 |
|
jsowell
|
80d1d027a1
|
Merge branch 'dev' of codeup.aliyun.com:67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web into dev
# Conflicts:
# jsowell-admin/src/main/java/com/jsowell/web/controller/index/indexController.java
# jsowell-pile/src/main/java/com/jsowell/pile/vo/web/BigDataOverviewVO.java
|
2026-08-04 16:33:03 +08:00 |
|
jsowell
|
9315e701e6
|
update 大数据屏接口
|
2026-08-04 16:29:17 +08:00 |
|
Lemon
|
f348ae9733
|
update
|
2026-08-04 16:10:02 +08:00 |
|
Lemon
|
231c9f513d
|
update
|
2026-08-04 15:58:47 +08:00 |
|
Lemon
|
808737c65e
|
update 后管大数据平台直流、交流桩数量同步放大
|
2026-08-04 15:53:16 +08:00 |
|
Lemon
|
fc2bf4ff12
|
Merge branch 'dev' into feature-business-minigram
|
2026-07-31 08:42:31 +08:00 |
|
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 |
|
Guoqs
|
7b1642f8c7
|
adapayCallback 增加调试日志:打印网关支付金额与保险金额,方便排查 payAmount 与 payRecordAmount 不一致
|
2026-07-25 18:03:15 +08:00 |
|
Guoqs
|
c013f1f90d
|
远程启动充电指令增加同步等待充电桩应答并打印结果
pushStartChargingCommand 发送 0x34 启机指令后,通过 SyncPromise 同步等待 0x33 应答(最多3秒),在同一线程打印启动结果。效果:成功打印成功,失败打印失败(原因),超时打印超时提示。
|
2026-07-25 17:01:41 +08:00 |
|
Guoqs
|
f11b781c27
|
修复在线支付保险订单 payAmount 与 payRecordAmount 不一致
在线支付回调(adapayCallback)中主动将 payAmount 减去了 insuranceAmount 再传给回调,
但 order_pay_record 记录的是完整支付金额,导致校验时 payAmount(扣减后) ≠ payRecordAmount(完整)。
修复:
1. OrderService.adapayCallback: callbackDTO 传完整 amount,同时带上 insuranceAmount
2. payOrderSuccessCallback: 下发桩的启动金额用 payAmount - insuranceAmount 计算,
订单主表 payAmount 仍为完整支付金额,与 payRecordAmount 一致
|
2026-07-25 16:47:35 +08:00 |
|
Guoqs
|
de73b82f65
|
修复非余额支付(白名单/在线支付)保险订单支付凭证校验:移除错误的保险金额双重计算
非余额支付分支的 inspectOrderPayment 仍在 payAmount 基础上叠加 insuranceAmount 进行比对,
导致白名单/在线支付勾选保险后 payAmount + insuranceAmount ≠ payRecordAmount,订单被误判为异常。
修复:
1. 非余额分支改为直接比较 payAmount vs payRecordAmount,不再叠加 insuranceAmount
2. 错误信息拆分并打印具体值,便于定位字段不完整还是金额不一致
|
2026-07-25 16:29:39 +08:00 |
|
Guoqs
|
1f05471dda
|
update 修复异常订单
|
2026-07-25 13:57:39 +08:00 |
|
Guoqs
|
2eca1f6a79
|
修复余额支付保险订单支付凭证校验:回退错误的保险金额双重计算
d3273438b 提交在余额支付路径也加了保险金额,但余额支付的 payAmount
已通过 payOrderSuccessCallback 累加(可能已含保险),再加一次
insuranceAmount 会导致双重计算,永远校验失败。
- 余额支付路径:直接比较 payAmount vs payRecordAmount(不加保险)
- 非余额支付路径:保持 payAmount + insuranceAmount vs payRecordAmount(正确)
|
2026-07-25 13:26:27 +08:00 |
|
Guoqs
|
fcbbc52e99
|
修复刷卡/并充余额校验问题:余额不足默认充电金额时改用全部余额,而非直接拒绝启动充电
- ConfirmStartChargingRequestHandler: 云快充刷卡预校验,余额小于默认金额时降级为全部余额
- resolveBalanceChargeAmount: 订单生成共享校验方法,余额不足默认金额时降级为全部余额
- 并充生成订单: 同逻辑修复
- 扫码支付(NotDelayMerchant/DelayMerchant)不受影响,独立的余额校验逻辑保持不变
|
2026-07-25 12:58:14 +08:00 |
|
Guoqs
|
2078d78768
|
update 订单支付金额 = 充电金额 + 保险金额
|
2026-07-25 12:46:05 +08:00 |
|
Guoqs
|
d3273438ba
|
update 订单支付金额 = 充电金额 + 保险金额
|
2026-07-25 11:49:04 +08:00 |
|
Guoqs
|
1b37a7d5e8
|
修复余额不足仍可启动充电问题
统一启动金额优先级并在启动前校验会员余额。
同步完成订单创建和余额支付后再返回鉴权成功,并增加支付凭证补偿、异常停机和结算保护。
|
2026-07-25 09:54:37 +08:00 |
|
Lemon
|
bfa209becb
|
Merge branch 'feature-invoice-export' into dev
|
2026-07-21 13:49:19 +08:00 |
|
Lemon
|
840c2af9bc
|
Merge branch 'dev' of https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web into dev
|
2026-07-20 15:41:30 +08:00 |
|
Lemon
|
b27c1ce213
|
小程序订单详情接口新增保险金额字段
|
2026-07-20 15:41:26 +08:00 |
|
Lemon
|
cc532bfcec
|
新增 发票导出接口
|
2026-07-16 15:21:42 +08:00 |
|
jsowell
|
345a6efb37
|
update 优化汇付结算账户一致性
|
2026-07-16 13:32:43 +08:00 |
|
jsowell
|
b4731d3e85
|
update 汇付账户本地删除与结算校验
|
2026-07-16 10:20:03 +08:00 |
|
Lemon
|
a7d838cdb1
|
add 开票接口新增 email字段
|
2026-07-15 14:36:32 +08:00 |
|
jsowell
|
4986239cd4
|
update 停车优惠配置接口
|
2026-07-08 16:41:15 +08:00 |
|
Guoqs
|
cace7f692f
|
Merge branch 'dev' of codeup.aliyun.com:67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web into dev
# Conflicts:
# jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileStationInfoController.java
|
2026-07-08 10:24:57 +08:00 |
|
Lemon
|
c9749a1816
|
bugfix 修复查询站点停车配置信息报错
|
2026-07-08 10:19:23 +08:00 |
|
Lemon
|
df761d1785
|
bugfix. 修复希晓运营商无法查看会员详情
|
2026-07-08 10:07:58 +08:00 |
|
Guoqs
|
6a0e4d6ea7
|
页面配置停车平台信息
|
2026-07-03 16:22:39 +08:00 |
|
Guoqs
|
b0c138f704
|
对接科拓停车优惠
|
2026-07-03 16:08:17 +08:00 |
|
Guoqs
|
2fa0180a26
|
添加qcyun停车优惠配置文档
|
2026-07-03 15:03:36 +08:00 |
|
jsowell
|
bf258b6924
|
修改本地服务器IP
|
2026-07-03 09:25:10 +08:00 |
|
Guoqs
|
46df35e4f1
|
羽信主板取消预约充电
|
2026-07-02 16:22:18 +08:00 |
|
jsowell
|
17b19ab0da
|
注释日志打印
|
2026-07-01 16:32:40 +08:00 |
|
jsowell
|
aa7a9a10d9
|
优化pile_msg_record插入数据
|
2026-07-01 16:30:38 +08:00 |
|
jsowell
|
06aab00627
|
update 调整日志打印
|
2026-07-01 11:32:29 +08:00 |
|