mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-14 12:20:04 +08:00
调试订单临时接口
This commit is contained in:
@@ -1064,18 +1064,92 @@ public class TempService {
|
|||||||
* @param dto
|
* @param dto
|
||||||
*/
|
*/
|
||||||
public void debugOrder(DebugOrderDTO dto) {
|
public void debugOrder(DebugOrderDTO dto) {
|
||||||
if (dto == null) {
|
if (dto == null || StringUtils.isBlank(dto.getOrderCode())) {
|
||||||
|
logger.info("debugOrder, 参数为空直接放回");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 根据订单号查询订单信息
|
||||||
|
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode());
|
||||||
|
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(dto.getOrderCode());
|
||||||
|
|
||||||
// 是否重新计算
|
// 是否重新计算
|
||||||
if (StringUtils.equals(dto.getReCalculateFlag(), "1")) {
|
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")) {
|
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")) {
|
if (StringUtils.equals(dto.getReSplitFlag(), "1")) {
|
||||||
|
try {
|
||||||
|
orderBasicInfoService.splittingMethod(afterSettleOrderDTO);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("debugOrder-订单:{}, 订单结算金额,汇付分账异常", afterSettleOrderDTO.getOrderCode(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
002212025032708364310751130756002181120
|
002212024102416494410695447094223949824
|
||||||
002212025032713064610751198717709881344
|
002212024102419522510695493069857738752
|
||||||
002212025032717513610751270398786842624
|
002212024102423461110695551898497138688
|
||||||
002212025032721312510751325715477811200
|
002212024102508132610695679550910730240
|
||||||
|
002212024102508310310695683984625319936
|
||||||
|
002212024102508502610695688864317952000
|
||||||
|
002212024102513440210695762749414916096
|
||||||
|
|||||||
@@ -227,6 +227,8 @@ public interface OrderBasicInfoService{
|
|||||||
|
|
||||||
// List<DivMember> calculationOfSplitAmount(List<StationSplitConfig> stationSplitConfigList, AfterSettleOrderDTO afterSettleOrderDTO, List<PaymentInfo> paymentInfos);
|
// List<DivMember> calculationOfSplitAmount(List<StationSplitConfig> stationSplitConfigList, AfterSettleOrderDTO afterSettleOrderDTO, List<PaymentInfo> paymentInfos);
|
||||||
|
|
||||||
|
void refundMethod(AfterSettleOrderDTO afterSettleOrderDTO);
|
||||||
|
|
||||||
OrderSplitResult verifyOrderConfirmAmount(List<String> paymentIds, String orderCode, BigDecimal settleAmount, String wechatAppId) throws BaseAdaPayException;
|
OrderSplitResult verifyOrderConfirmAmount(List<String> paymentIds, String orderCode, BigDecimal settleAmount, String wechatAppId) throws BaseAdaPayException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2232,7 +2232,8 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
/**
|
/**
|
||||||
* 执行订单退款/新退款方法
|
* 执行订单退款/新退款方法
|
||||||
*/
|
*/
|
||||||
private void refundMethod(AfterSettleOrderDTO afterSettleOrderDTO) {
|
@Override
|
||||||
|
public void refundMethod(AfterSettleOrderDTO afterSettleOrderDTO) {
|
||||||
logger.info("执行订单退款/新退款方法, orderCode:{}, 退款金额:{}",
|
logger.info("执行订单退款/新退款方法, orderCode:{}, 退款金额:{}",
|
||||||
afterSettleOrderDTO.getOrderCode(), afterSettleOrderDTO.getOrderRefundAmount());
|
afterSettleOrderDTO.getOrderCode(), afterSettleOrderDTO.getOrderRefundAmount());
|
||||||
// 如果是PRE环境, 直接返回
|
// 如果是PRE环境, 直接返回
|
||||||
|
|||||||
Reference in New Issue
Block a user