From 67473ebd48956fad160368667887f0ef6ddb74f2 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 02 四月 2026 23:10:04 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   22 +++++++++-------------
 1 files changed, 9 insertions(+), 13 deletions(-)

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 4883945..7002466 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
@@ -2361,24 +2361,22 @@
 	 *
 	 * @param vo
 	 */
-    @Transactional
 	@Override
+    @Transactional
 	public R endChargeBillingCharge(TransactionRecordMessageVO vo) {
 		RLock lock = redissonClient.getLock("endOrder:" + vo.getTransaction_serial_number());
 		try {
             boolean tryLock = lock.tryLock(60, 60, TimeUnit.SECONDS);
             if(tryLock){
-                Object cacheObject = redisService.getCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number());
-                if(null != cacheObject && 5 == (int)cacheObject){
-                    return R.ok();
-                }
                 TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
                 if (null == chargingOrder) {
-                    return R.ok();
+                    log.error("订单不存在,订单号:{}", vo.getTransaction_serial_number());
+                    return R.fail("订单不存在,订单号:" + vo.getTransaction_serial_number());
                 }
                 Integer status = chargingOrder.getStatus();
                 if (status == 5) {
-                    return R.ok();
+                    log.info("订单已结算,订单号:{}", vo.getTransaction_serial_number());
+                    return R.fail("订单已结算,订单号:" + vo.getTransaction_serial_number());
                 }
 
                 //如果使用优惠券需要判断优惠券是否满足使用条件
@@ -2686,7 +2684,6 @@
                     chargingOrder.setEndSoc(new BigDecimal(desc.getSoc()));
                 }
                 this.updateById(chargingOrder);
-                redisService.setCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number(), 5, 100L, TimeUnit.SECONDS);
 
                 chargingOrder = this.getById(chargingOrder.getId());
                 Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0);
@@ -2809,13 +2806,12 @@
                             model.setAmount(amount);
                             R<Map<String, Object>> result = wxPaymentClient.refundOrderR(model);
                             if (200 == result.getCode()) {
-                                chargingOrderRefundService.save(chargingOrderRefund);
                                 //手续费
                                 Map<String, Object> amount1 = (Map<String, Object>) result.getData().get("amount");
                                 Object refund_fee1 = amount1.get("refund_fee");
                                 BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100));
                                 chargingOrderRefund.setRefundFee(refund_fee);
-                                chargingOrderRefundService.updateById(chargingOrderRefund);
+                                chargingOrderRefundService.save(chargingOrderRefund);
                             }
                         }
                         if (2 == rechargePaymentType) {
@@ -2890,7 +2886,7 @@
                 }
                 TChargingOrderSummaryData summaryData = new TChargingOrderSummaryData();
                 summaryData.setChargingOrderId(chargingOrder.getId());
-                summaryData.setChargingCapacity(chargingCapacity);
+                summaryData.setChargingCapacity(chargingCapacity.setScale(6, RoundingMode.HALF_EVEN));
                 summaryData.setChargingDuration(time);
                 summaryData.setIncome(paymentMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN));
                 summaryData.setElectricPrice(electronic_reduce.setScale(2, BigDecimal.ROUND_HALF_EVEN));
@@ -4395,10 +4391,10 @@
 				long between = ChronoUnit.SECONDS.between(startTime, endTime);
 				time += between;
 			}
-			
+
 			TChargingOrderSummaryData summaryData = new TChargingOrderSummaryData();
 			summaryData.setChargingOrderId(chargingOrderVO.getId());
-			summaryData.setChargingCapacity(chargingCapacity);
+			summaryData.setChargingCapacity(chargingCapacity.setScale(6, RoundingMode.HALF_EVEN));
 			summaryData.setChargingDuration(time);
 			summaryData.setIncome(paymentMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN));
 			summaryData.setElectricPrice(electronic_reduce.setScale(2, BigDecimal.ROUND_HALF_EVEN));

--
Gitblit v1.7.1