From 531c94e27fd3dc2abe8ad72485f66e9e141a0bae Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 07 九月 2024 10:00:06 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 93 insertions(+), 11 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 ceaf65f..27599e1 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
@@ -38,10 +38,7 @@
 import com.ruoyi.order.api.query.ChargingOrderQuery;
 import com.ruoyi.order.api.query.SettlementListQuery;
 import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery;
-import com.ruoyi.order.api.vo.ChargingOrderListVO;
-import com.ruoyi.order.api.vo.ChargingOrderTimeVO;
-import com.ruoyi.order.api.vo.ChargingOrderVO;
-import com.ruoyi.order.api.vo.TCharingOrderVO;
+import com.ruoyi.order.api.vo.*;
 import com.ruoyi.order.dto.*;
 import com.ruoyi.order.mapper.TChargingOrderMapper;
 import com.ruoyi.order.mapper.TSettlementConfirmMapper;
@@ -104,7 +101,7 @@
 	private ChargingGunClient chargingGunClient;
 	@Resource
 	private TSettlementConfirmMapper tSettlementConfirmMapper;
-	
+
 	@Resource
 	private SiteClient siteClient;
 
@@ -128,7 +125,7 @@
 	
 	@Resource
 	private AliPaymentClient aliPaymentClient;
-	
+
 	@Resource
 	private AppCouponClient appCouponClient;
 
@@ -447,6 +444,7 @@
 					chargingOrder.setVipDiscountAmount(discountAmount);
 				}
 			}
+
 		}
 		this.save(chargingOrder);
 
@@ -598,7 +596,7 @@
 					preChargeCheck1.setFailureCause(failure_cause);
 					//启动失败后取消订单,退款操作
 					refund(code);
-					order.setStatus(5);
+					order.setStatus(-1);
 					order.setEndMode(0);
 				}else{
 					preChargeCheck1.setStartupSuccess(2);
@@ -1332,10 +1330,10 @@
 		return chargingOrderTimeVO;
 	}
 
-	@Override
-	public R payRefund(PayOrderRefundDto payOrderQueryDto) {
-		return null;
-	}
+//	@Override
+//	public R payRefund(PayOrderRefundDto payOrderQueryDto) {
+//		return null;
+//	}
 
 	@Override
 	public ChargingOrderListInfoVO chargingInfo(String uid) {
@@ -1387,6 +1385,7 @@
 		chargingOrderListInfoVO.setList1(list);
 		return chargingOrderListInfoVO;
 	}
+
 
 	/**
 	 * 处理充电订单实时监控数据相关的业务逻辑
@@ -1556,6 +1555,89 @@
 		endCharge(orderCode, 0);
 	}
 
+
+
+	@Override
+	public R payRefund(PayOrderRefundDto payOrderQueryDto) {
+			if (payOrderQueryDto.getType()==1){
+				TChargingOrder tChargingOrder = this.baseMapper.selectById(payOrderQueryDto.getOrderId());
+				TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund();
+				chargingOrderRefund.setChargingOrderId(tChargingOrder.getId());
+				chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
+				chargingOrderRefund.setRefundStatus(1);
+				chargingOrderRefund.setPayType(tChargingOrder.getRechargePaymentType());
+				chargingOrderRefund.setRefundTime(LocalDateTime.now());
+				chargingOrderRefund.setCode(tChargingOrder.getCode());
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+				chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Math.random() * 1000));
+				chargingOrderRefund.setRefundTitle("后台退款");
+				chargingOrderRefund.setRefundContent("后台退款");
+				chargingOrderRefund.setRefundReason("后台退款");
+				chargingOrderRefund.setRefundRemark("后台退款");
+				chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
+				chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
+
+				if(1 == tChargingOrder.getRechargePaymentType()){
+					WxPaymentRefundModel model = new WxPaymentRefundModel();
+					model.setOut_trade_no(tChargingOrder.getCode());
+					model.setOut_refund_no(chargingOrderRefund.getRefundCode());
+					model.setTransaction_id(tChargingOrder.getRechargeSerialNumber());
+					model.setReason("取消订单");
+					model.setNotify_url("http://127.0.0.1:9000/order/t-shopping-order/cancelShoppingOrderWxRefund");
+					WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
+					amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
+					amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
+					amount.setCurrency("CNY");
+					model.setAmount(amount);
+					R<String> orderR = wxPaymentClient.refundOrderR(model);
+					if(200 == orderR.getCode()){
+						chargingOrderRefundService.save(chargingOrderRefund);
+					}
+				}
+
+				if(2 == tChargingOrder.getRechargePaymentType()){
+					RefundReq dto = new RefundReq();
+					dto.setOutTradeNo(tChargingOrder.getCode());
+					dto.setOutRequestNo(tChargingOrder.getCode());
+					dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString());
+					dto.setRefundReason("取消订单");
+					RefundResp resp = aliPaymentClient.refund(dto).getData();
+					if(null != resp){
+						SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE");
+							chargingOrderRefundService.save(chargingOrderRefund);
+
+					}
+				}
+
+
+
+
+
+			}
+
+
+
+		return null;
+	}
+
+
+	/**
+	 * 根据车牌号和开始时间查询充电数据
+	 * @param query
+	 * @return
+	 */
+	@Override
+	public TChargingOrder getChargingOrderByLicensePlate(GetChargingOrderByLicensePlate query) {
+		TAppUserCar appUserCar = appUserCarClient.getAppUserCarByLicensePlate(query.getLicensePlate()).getData();
+		if(null == appUserCar){
+			return null;
+		}
+		TChargingOrder one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserCarId, appUserCar.getId())
+				.eq(TChargingOrder::getDelFlag, 0).gt(TChargingOrder::getStartTime, query.getStartTime())
+				.eq(TChargingOrder::getRechargePaymentStatus, 2).ne(TChargingOrder::getStatus, -1));
+		return one;
+	}
+
 	@Override
 	public TSettlementConfirm settlementAdd(SettlementConfirmAdd dto) {
 		List<Site> data = siteClient.getSiteByIds(Arrays.asList(dto.getSiteId())).getData();

--
Gitblit v1.7.1