mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
调试订单临时接口
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
002212025032708364310751130756002181120
|
||||
002212025032713064610751198717709881344
|
||||
002212025032717513610751270398786842624
|
||||
002212025032721312510751325715477811200
|
||||
002212024102416494410695447094223949824
|
||||
002212024102419522510695493069857738752
|
||||
002212024102423461110695551898497138688
|
||||
002212024102508132610695679550910730240
|
||||
002212024102508310310695683984625319936
|
||||
002212024102508502610695688864317952000
|
||||
002212024102513440210695762749414916096
|
||||
|
||||
Reference in New Issue
Block a user