调试订单临时接口

This commit is contained in:
Guoqs
2025-04-29 11:14:24 +08:00
parent 02baf5f2f6
commit fda771f88e
4 changed files with 86 additions and 6 deletions

View File

@@ -1064,18 +1064,92 @@ public class TempService {
* @param dto
*/
public void debugOrder(DebugOrderDTO dto) {
if (dto == null) {
if (dto == null || StringUtils.isBlank(dto.getOrderCode())) {
logger.info("debugOrder, 参数为空直接放回");
return;
}
// 根据订单号查询订单信息
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode());
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(dto.getOrderCode());
// 是否重新计算
if (StringUtils.equals(dto.getReCalculateFlag(), "1")) {
LocalDateTime localDateTime = DateUtils.date2LocalDateTime(orderBasicInfo.getSettlementTime());
// 开始时间为localDateTime减30秒
LocalDateTime startTime = localDateTime.minusSeconds(30);
// 结束时间为localDateTime加30秒
LocalDateTime endTime = localDateTime.plusSeconds(30);
// 查询这笔订单的交易记录原始数据
List<PileMsgRecord> pileFeedListV2 = pileMsgRecordService.getPileFeedListV2(orderBasicInfo.getPileSn(), "0x3B", startTime, endTime);
if (CollectionUtils.isEmpty(pileFeedListV2)) {
// 如果没有交易记录原始数据,则使用停止充电时间作为开始时间和结束时间再查一次
localDateTime = DateUtils.date2LocalDateTime(orderBasicInfo.getChargeEndTime());
startTime = localDateTime.minusSeconds(30);
endTime = localDateTime.plusSeconds(30);
pileFeedListV2 = pileMsgRecordService.getPileFeedListV2(orderBasicInfo.getPileSn(), "0x3B", startTime, endTime);
}
TransactionRecordsData data = null;
for (PileMsgRecord pileMsgRecord : pileFeedListV2) {
TransactionRecordsData parse = JSONObject.parseObject(pileMsgRecord.getJsonMsg(), TransactionRecordsData.class);
if (StringUtils.equals(parse.getTransactionCode(), orderBasicInfo.getTransactionCode())) {
data = parse;
data.setVinCode("");
}
}
if (data != null) {
AbstractProgramLogic programLogic = ProgramLogicFactory.getProgramLogic(MerchantDelayModeEnum.DELAY.getValue());
// 更新订单主表和订单详情中的各种金额
programLogic.updateOrderBasicInfoAndOrderDetail(data, orderBasicInfo, orderDetail);
// 计算订单折扣
programLogic.calculateOrderDiscountsV2(orderBasicInfo, orderDetail);
logger.info("debugOrder重新计算订单, orderCode:{}, 支付金额:{}, 消费金额:{}, 折扣金额:{}, 退款金额:{}, 结算金额:{}",
orderBasicInfo.getOrderCode(), orderBasicInfo.getPayAmount(), orderBasicInfo.getOrderAmount(),
orderBasicInfo.getDiscountAmount(), orderBasicInfo.getRefundAmount(), orderBasicInfo.getSettleAmount());
// 更新数据库
OrderTransactionDTO orderTransactionDTO = new OrderTransactionDTO();
orderTransactionDTO.setOrderBasicInfo(orderBasicInfo);
orderTransactionDTO.setOrderDetail(orderDetail);
transactionService.doUpdateOrder(orderTransactionDTO);
}
}
// 组装after参数
AfterSettleOrderDTO afterSettleOrderDTO = AfterSettleOrderDTO.builder()
.orderCode(orderBasicInfo.getOrderCode())
.merchantId(orderBasicInfo.getMerchantId())
.stationId(orderBasicInfo.getStationId())
.orderPayAmount(orderBasicInfo.getPayAmount()) // 支付金额
.orderConsumeAmount(orderBasicInfo.getOrderAmount()) // 消费金额
.orderSettleAmount(orderBasicInfo.getSettleAmount()) // 结算金额
.orderElectricityAmount(orderDetail.getTotalElectricityAmount()) // 电费金额
.orderElectricityDiscountAmount(orderDetail.getDiscountElectricityAmount()) // 电费折扣金额
.orderServiceAmount(orderDetail.getTotalServiceAmount()) // 服务费金额
.orderServiceDiscountAmount(orderDetail.getDiscountServiceAmount()) // 服务费折扣金额
.orderRefundAmount(orderBasicInfo.getRefundAmount()) // 退款金额
.build();
// 是否重新退款
if (StringUtils.equals(dto.getReRefundFlag(), "1")) {
// 订单退款,汇付退款
try {
orderBasicInfoService.refundMethod(afterSettleOrderDTO);
} catch (Exception e) {
logger.error("debugOrder-订单:{}, 订单退款,汇付退款异常", afterSettleOrderDTO.getOrderCode(), e);
}
}
// 是否重新分账
if (StringUtils.equals(dto.getReSplitFlag(), "1")) {
try {
orderBasicInfoService.splittingMethod(afterSettleOrderDTO);
} catch (Exception e) {
logger.error("debugOrder-订单:{}, 订单结算金额,汇付分账异常", afterSettleOrderDTO.getOrderCode(), e);
}
}
}
}

View File

@@ -1,4 +1,7 @@
002212025032708364310751130756002181120
002212025032713064610751198717709881344
002212025032717513610751270398786842624
002212025032721312510751325715477811200
002212024102416494410695447094223949824
002212024102419522510695493069857738752
002212024102423461110695551898497138688
002212024102508132610695679550910730240
002212024102508310310695683984625319936
002212024102508502610695688864317952000
002212024102513440210695762749414916096