| | |
| | | } |
| | | |
| | | /** |
| | | * 软删除旧的非成功/处理中的分账记录,为退款后重新计算分账做准备。 |
| | | * 物理删除旧的非成功/处理中的分账记录,为退款后重新计算分账做准备。 |
| | | * 仅删除 onlineShareStatus 不是 SUCCESS 或 PROCESSING 的记录, |
| | | * 已成功线上分账的记录不可删除,避免重复分账。 |
| | | * <p> |
| | | * 注意:采用物理删除而非软删除,因为表唯一键 uk_order_channel (charging_order_code, pay_channel) |
| | | * 不包含 del_flag 字段,软删除后的记录仍占据唯一键,导致退款后无法插入同订单同渠道的新分账记录。 |
| | | */ |
| | | private void softDeleteStaleChargingOrderShareRecords(TChargingOrder chargingOrder) { |
| | | if (chargingOrder == null || !StringUtils.hasLength(chargingOrder.getCode())) { |
| | | return; |
| | | } |
| | | LambdaUpdateWrapper<TChargingOrderShareRecord> wrapper = new LambdaUpdateWrapper<>(); |
| | | LambdaQueryWrapper<TChargingOrderShareRecord> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(TChargingOrderShareRecord::getChargingOrderCode, chargingOrder.getCode()) |
| | | .eq(TChargingOrderShareRecord::getDelFlag, false) |
| | | .notIn(TChargingOrderShareRecord::getOnlineShareStatus, "SUCCESS", "PROCESSING") |
| | | .set(TChargingOrderShareRecord::getDelFlag, true); |
| | | int count = chargingOrderShareRecordMapper.update(null, wrapper); |
| | | .notIn(TChargingOrderShareRecord::getOnlineShareStatus, "SUCCESS", "PROCESSING"); |
| | | int count = chargingOrderShareRecordMapper.delete(wrapper); |
| | | if (count > 0) { |
| | | log.info("软删除充电订单旧分账记录,订单号:{},删除数量:{}", chargingOrder.getCode(), count); |
| | | log.info("物理删除充电订单旧分账记录,订单号:{},删除数量:{}", chargingOrder.getCode(), count); |
| | | } |
| | | } |
| | | |