From eb7dee0f8a19f540bc9369fc0c72ea72887ec98a Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 15 十月 2024 09:42:12 +0800
Subject: [PATCH] 修改bug
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 59 +++++++++++++++--------------
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 2
2 files changed, 31 insertions(+), 30 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 3636697..15d8184 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -585,7 +585,7 @@
*/
@PostMapping("/endChargeBillingCharge")
public void endChargeBillingCharge(@RequestBody TransactionRecordMessageVO vo){
- log.error("-------------------停止充电返回账单后计算费用-------------------:" + vo);
+ log.error("-------------------停止充电返回账单后计算费用及修改业务状态-------------------:" + vo);
chargingOrderService.endChargeBillingCharge(vo);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index be2102b..780c63f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1028,12 +1028,11 @@
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
- continue;
}else{
log.error(code1 + ":-------------------远程停止充电请求成功-------------------");
stop_status = true;
+ break;
}
- break;
}
if(stop_status){
chargingOrder.setStatus(5);
@@ -1211,17 +1210,8 @@
}
log.error(code1 + ":停机失败:订单号:{},失败原因:{}", order.getCode(), failure_cause);
}else{
- order.setEndTime(LocalDateTime.now());
- order.setStatus(5);
order.setEndMode(1);
this.updateById(order);
- //计算用户标签
- editUserTag(order);
- //用户推荐奖励
- referralReward(order);
- // 将枪状态重置为空闲
- chargingGun.setStatus(2);
- chargingGunClient.updateChargingGunById(chargingGun);
}
}
@@ -1744,13 +1734,21 @@
if(chargingOrderAccountingStrategy.getAccountingStrategyDetailId().equals(strategyDetail.getId())){
//已充电总度数
BigDecimal charging_degree = query.getCharging_degree();
- BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(charging_degree);
- BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(charging_degree);
+ BigDecimal chargingCapacity = chargingOrderAccountingStrategy.getChargingCapacity();
+ //计算本阶段充电度数
+ BigDecimal subtract = charging_degree.subtract(chargingCapacity);
+ //计算本阶段费用
+ BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(subtract);
+ BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(subtract);
BigDecimal serviceCharge = originalServicePrice;
//计算优惠金额
if(null != chargingOrder.getVipDiscount()){
serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount().divide(new BigDecimal(10)));
}
+ //将本阶段的费用增加到总费用中
+ electrovalenc = electrovalenc.add(chargingOrderAccountingStrategy.getPeriodElectricPrice());
+ originalServicePrice = originalServicePrice.add(chargingOrderAccountingStrategy.getPeriodOriginalServicePrice());
+ serviceCharge = serviceCharge.add(chargingOrderAccountingStrategy.getPeriodServicePrice());
chargingOrderAccountingStrategy.setChargingCapacity(charging_degree);
chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
@@ -1809,23 +1807,8 @@
@GlobalTransactional(rollbackFor = Exception.class)
public void endCharge(String orderCode, Integer endMode) {
TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, orderCode));
- Integer status = chargingOrder.getStatus();
- if(status == 4 || status == 5){
- return;
- }
- chargingOrder.setStatus(5);
chargingOrder.setEndMode(endMode);
- chargingOrder.setEndTime(LocalDateTime.now());
this.updateById(chargingOrder);
- // 将枪状态重置为空闲
- TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
- chargingGun.setStatus(2);
- chargingGunClient.updateChargingGunById(chargingGun);
-
- //计算用户标签
- editUserTag(chargingOrder);
- //用户推荐奖励
- referralReward(chargingOrder);
}
/**
@@ -1845,10 +1828,20 @@
@Override
@GlobalTransactional(rollbackFor = Exception.class)
public void endChargeBillingCharge(TransactionRecordMessageVO vo) {
+ TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
+ Integer status = chargingOrder.getStatus();
+ if(status == 4 || status == 5){
+ return;
+ }
+
+ //计算用户标签
+ editUserTag(chargingOrder);
+ //用户推荐奖励
+ referralReward(chargingOrder);
+
//如果使用优惠券需要判断优惠券是否满足使用条件
//根据实际的充电金额计算退款金额 退回费用=(原金额/总金额)*(总金额-实际充电金额)
//退款金额=优惠券金额+剩余充电金额
- TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
BigDecimal periodElectricPrice_total = BigDecimal.ZERO;
BigDecimal periodServicePrice_total = BigDecimal.ZERO;
@@ -1900,9 +1893,12 @@
if(chargingOrder.getEndMode() == 2){
chargingOrder.setEndMode(refundAmount.compareTo(BigDecimal.ZERO) > 0 ? 2 : 3);
}
+ chargingOrder.setEndTime(LocalDateTime.now());
chargingOrder.setStatus(5);
chargingOrder.setOrderAmount(orderAmount);
chargingOrder.setVipDiscountAmount(discountAmount);
+ chargingOrder.setServiceCharge(periodServicePrice_total);
+ chargingOrder.setElectrovalence(periodElectricPrice_total);
//计算优惠券
if(null != chargingOrder.getAppCouponId()){
@@ -1942,6 +1938,11 @@
chargingOrder.setPaymentAmount(payAmount);
this.updateById(chargingOrder);
+ // 将枪状态重置为空闲
+ TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+ chargingGun.setStatus(2);
+ chargingGunClient.updateChargingGunById(chargingGun);
+
//添加积分
TIntegralRule integralRule = integralRuleClient.getSet().getData();
if(null != integralRule){
--
Gitblit v1.7.1