From df65f525e22b3c8c54083fb3c25c81c21c1b00f3 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 27 二月 2025 16:19:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 46 insertions(+), 10 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 bc67496..6a24a15 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
@@ -859,7 +859,7 @@
 			chargingGun.setStatus(4);
 			chargingGunClient.updateChargingGunById(chargingGun);
 			//推送状态给三方平台
-			tcecClient.pushChargingGunStatus(chargingGun.getId(), chargingGun.getStatus());
+			tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus());
 		}
 		redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS);
 		this.updateById(order);
@@ -915,9 +915,15 @@
 				amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue());
 				amount.setCurrency("CNY");
 				model.setAmount(amount);
-				R<String> orderR = wxPaymentClient.refundOrderR(model);
+				R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model);
 				if(200 == orderR.getCode()){
 					chargingOrderRefundService.save(chargingOrderRefund);
+					//手续费
+					Map<String, Object> amount1 = (Map<String, Object>) orderR.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);
 				}
 			}
 			if(2 == rechargePaymentType){
@@ -1378,7 +1384,9 @@
 
 		for (ChargingOrderVO chargingOrderVO : list1) {
 			paymentMoney= paymentMoney.add(chargingOrderVO.getPaymentAmount()!=null?chargingOrderVO.getPaymentAmount():new BigDecimal("0"));
-			commissionMoney = commissionMoney.add(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
+			if (chargingOrderVO.getRechargeAmount()!=null){
+				commissionMoney = commissionMoney.add(chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN));
+			}
 			if (chargingOrderVO.getChargingCapacity()!=null){
 				total = total.add(chargingOrderVO.getElectricity()!=null?chargingOrderVO.getElectricity():new BigDecimal("0"));
 			}
@@ -1399,7 +1407,8 @@
 		}
 		tCharingOrderVO.setTotal(total);
 		tCharingOrderVO.setTime(time);
-		tCharingOrderVO.setIncome(paymentMoney.subtract(commissionMoney));
+//		tCharingOrderVO.setIncome(paymentMoney.subtract(commissionMoney));
+		tCharingOrderVO.setIncome(paymentMoney);
 		tCharingOrderVO.setElectronicMoney(electronicMoney);
 		tCharingOrderVO.setServiceMoney(serviceMoney);
 		pageInfo.setRecords(list);
@@ -2007,6 +2016,9 @@
 	@GlobalTransactional(rollbackFor = Exception.class)
 	public R endChargeBillingCharge(TransactionRecordMessageVO vo) {
 		TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
+		if(null == chargingOrder){
+			return R.ok();
+		}
 		Integer status = chargingOrder.getStatus();
 		if(status == 5){
 			return R.ok();
@@ -2358,7 +2370,7 @@
 		chargingGunClient.updateChargingGunById(chargingGun);
 		//推送状态给三方平台
 		if(2 == chargingOrder.getOrderSource()){
-			tcecClient.pushChargingGunStatus(chargingGun.getId(), chargingGun.getStatus());
+			tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus());
 		}
 		
 		//添加积分
@@ -2428,9 +2440,15 @@
 					amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue());
 					amount.setCurrency("CNY");
 					model.setAmount(amount);
-					R<String> orderR = wxPaymentClient.refundOrderR(model);
-					if(200 == orderR.getCode()){
+					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);
 					}
 				}
 				if(2 == rechargePaymentType){
@@ -2586,12 +2604,18 @@
 					amount.setTotal(tChargingOrder.getRechargeAmount().multiply(new BigDecimal(100)).intValue());
 					amount.setCurrency("CNY");
 					model.setAmount(amount);
-					R<String> orderR = wxPaymentClient.refundOrderR(model);
+					R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model);
 					if(200 == orderR.getCode()){
 						tChargingOrder.setRefundStatus(2);
 						tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
 						this.baseMapper.updateById(tChargingOrder);
 						chargingOrderRefundService.save(chargingOrderRefund);
+						//手续费
+						Map<String, Object> amount1 = (Map<String, Object>) orderR.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);
 					}
 				}
 
@@ -2648,12 +2672,18 @@
 					amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
 					amount.setCurrency("CNY");
 					model.setAmount(amount);
-					R<String> orderR = wxPaymentClient.refundOrderR(model);
+					R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model);
 					if(200 == orderR.getCode()){
 						tChargingOrder.setRefundStatus(2);
 						tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
 						shoppingOrderService.updateById(tChargingOrder);
 						shoppingOrderRefundService.save(chargingOrderRefund);
+						//手续费
+						Map<String, Object> amount1 = (Map<String, Object>) orderR.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);
+						shoppingOrderRefundService.updateById(chargingOrderRefund);
 					}
 				}
 
@@ -2707,12 +2737,18 @@
 				amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
 				amount.setCurrency("CNY");
 				model.setAmount(amount);
-				R<String> orderR = wxPaymentClient.refundOrderR(model);
+				R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model);
 				if(200 == orderR.getCode()){
 					tChargingOrder.setRefundStatus(2);
 					tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
 					vipOrderService.updateById(tChargingOrder);
 					vipOrderRefundService.save(chargingOrderRefund);
+					//手续费
+					Map<String, Object> amount1 = (Map<String, Object>) orderR.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);
+					vipOrderRefundService.updateById(chargingOrderRefund);
 				}
 			}
 

--
Gitblit v1.7.1