From d33c34c76e74dbacf1bf7a57d7d3109e2bc54e68 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 30 八月 2024 11:49:23 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   97 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 84 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 090c134..5fda815 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
@@ -16,17 +16,22 @@
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
 import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.integration.api.feignClient.ChargingHandshakeClient;
+import com.ruoyi.integration.api.feignClient.SendMessageClient;
 import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
 import com.ruoyi.integration.api.model.ChargingHandshake;
+import com.ruoyi.integration.api.model.PlatformStartCharging;
 import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
 import com.ruoyi.order.api.model.TChargingOrder;
 import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
+import com.ruoyi.order.api.model.TChargingOrderRefund;
+import com.ruoyi.order.api.model.TOrderEvaluate;
 import com.ruoyi.order.api.query.ChargingOrderQuery;
 import com.ruoyi.order.api.vo.ChargingOrderVO;
 import com.ruoyi.order.api.vo.TCharingOrderVO;
@@ -34,6 +39,7 @@
 import com.ruoyi.order.mapper.TChargingOrderMapper;
 import com.ruoyi.order.service.TChargingOrderAccountingStrategyService;
 import com.ruoyi.order.service.TChargingOrderService;
+import com.ruoyi.order.service.TOrderEvaluateService;
 import com.ruoyi.payment.api.feignClient.AliPaymentClient;
 import com.ruoyi.payment.api.feignClient.WxPaymentClient;
 import com.ruoyi.payment.api.vo.*;
@@ -103,6 +109,12 @@
 	@Resource
 	private ChargingHandshakeClient chargingHandshakeClient;
 	
+	@Resource
+	private SendMessageClient sendMessageClient;
+	
+	@Resource
+	private TOrderEvaluateService orderEvaluateService;
+	
 	
 	
 
@@ -133,9 +145,14 @@
 			BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
 			myChargingOrderList.setPayMoney(payMoney);
 			myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+			long count = orderEvaluateService.count(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderType, 1)
+					.eq(TOrderEvaluate::getOrderId, tChargingOrder.getId()).eq(TOrderEvaluate::getDelFlag, 0));
+			myChargingOrderList.setEvaluate(count + 1L);
 			orderLists.add(myChargingOrderList);
 		}
+		list = this.baseMapper.getMyChargingOrderList(appUserId, query.getType(), null, null);
 		map.put("list", orderLists);
+		map.put("totle", list.size());
 		return map;
 	}
 	
@@ -239,6 +256,8 @@
 			BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
 			myChargingOrderList.setPayMoney(payMoney);
 			myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+			myChargingOrderList.setElectricCharge(tChargingOrder.getElectrovalence());
+			myChargingOrderList.setServiceCharge(tChargingOrder.getServiceCharge());
 			list.add(myChargingOrderList);
 		}
 		return list;
@@ -412,10 +431,25 @@
 		preChargeCheck.setSecureConnectionDetection(false);
 		String key = "AQJC_" + chargingOrder.getChargingGunId();
 		redisService.setCacheObject(key, preChargeCheck);
-		//开始检测充电桩状,将检查状态写入缓存。检测完成后开始开启充电
-		//充电结束后需要计算退款剩余金额
-		// todo 需要完善
 		
+		//根据当前充值的金额和计费模板算出充电的金额
+		BigDecimal rechargeAmount = chargingOrder.getRechargeAmount();
+		//计算充电金额,会员需要将折扣金额加入到充电总金额中
+		
+//		TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
+//		if(){
+//			appUser.getVipId()
+//		}
+//
+//
+//		//调用远程启动充电消息
+//		PlatformStartCharging platformStartCharging = new PlatformStartCharging();
+//		platformStartCharging.setTransaction_serial_number(chargingOrder.getCode());
+//		platformStartCharging.setCharging_pile_code();
+//		platformStartCharging.setCharging_gun_code();
+//		platformStartCharging.setCard_number();
+//		platformStartCharging.setAccount_balance()
+//		sendMessageClient.platformStartCharging(platformStartCharging);
 		return AjaxResult.success();
 	}
 	
@@ -482,10 +516,21 @@
 		chargingOrder.setEndMode(1);
 		this.updateById(chargingOrder);
 		//调用硬件停止充电,停止成功后开始计算费用退款
+		
+		
+		
 		// todo 待完善
 		return AjaxResult.success();
 	}
 
+	
+	
+	public void endCharge(){
+	
+	}
+	
+	
+	
 
     @Override
     public TCharingOrderVO chargingOrder(ChargingOrderQuery dto) {
@@ -524,7 +569,9 @@
 		 BigDecimal electronicMoney = new BigDecimal("0");
 		 BigDecimal serviceMoney = new BigDecimal("0");
 		for (ChargingOrderVO chargingOrderVO : list) {
-			total = total.add(chargingOrderVO.getChargingCapacity());
+			if (chargingOrderVO.getChargingCapacity()!=null){
+				total = total.add(chargingOrderVO.getChargingCapacity());
+			}
 			// 充电订单 明细记录
 			List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
 					.eq("charging_order_id", chargingOrderVO.getId()));
@@ -535,14 +582,18 @@
 			LocalDateTime startTime = chargingOrderVO.getStartTime();
 			LocalDateTime endTime = chargingOrderVO.getEndTime();
 			// 计算时间差 秒 充电时长
-			long between = ChronoUnit.SECONDS.between(startTime, endTime);
-			chargingOrderVO.setChargingSecond(between);
-			time += between;
+			if (startTime!=null && endTime!=null){
+				long between = ChronoUnit.SECONDS.between(startTime, endTime);
+				chargingOrderVO.setChargingSecond(between);
+				time += between;
+			}
 			// 总收入
-			if (chargingOrderVO.getRefundStatus() == 2){
+			if (chargingOrderVO.getRefundStatus() !=null && chargingOrderVO.getRefundStatus() == 2){
 				income = income.add(chargingOrderVO.getPaymentAmount().subtract(chargingOrderVO.getRefundAmount()));
 			}else{
-				income = income.add(chargingOrderVO.getPaymentAmount());
+				if (chargingOrderVO.getPaymentAmount()!=null){
+					income = income.add(chargingOrderVO.getPaymentAmount());
+				}
 			}
 			for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : chargingOrderId) {
 				// 累计电费
@@ -564,11 +615,14 @@
 				// 车牌号
 				chargingOrderVO.setPhone(data.getPhone());
 				List<Long> longs = new ArrayList<>();
-				longs.add(chargingOrderVO.getAppUserCarId());
-				List<TAppUserCar> data1 = appUserCarClient.getCarByIds(longs).getData();
-				if (!data1.isEmpty()){
-					chargingOrderVO.setLicensePlate(data1.get(0).getLicensePlate());
+				if (chargingOrderVO.getAppUserCarId()!=null){
+					longs.add(chargingOrderVO.getAppUserCarId());
+					List<TAppUserCar> data1 = appUserCarClient.getCarByIds(longs).getData();
+					if (!data1.isEmpty()){
+						chargingOrderVO.setLicensePlate(data1.get(0).getLicensePlate());
+					}
 				}
+
 			}
 		}
 		tCharingOrderVO.setTotal(total);
@@ -580,4 +634,21 @@
 		tCharingOrderVO.setList(pageInfo);
         return tCharingOrderVO;
     }
+
+	@Override
+	public R<PageInfo<PayOrderDto>> payOrderQuery(PayOrderQueryDto payOrderQueryDto) {
+		PageInfo<PayOrderDto> pageInfo = new PageInfo<>(payOrderQueryDto.getPageCurr(),payOrderQueryDto.getPageSize());
+		List<PayOrderDto> list = this.baseMapper.payOrderQuery(pageInfo,payOrderQueryDto);
+		pageInfo.setRecords(list);
+		return R.ok(pageInfo);
+	}
+
+	@Override
+	public R<PageInfo<TChargingOrderRefund>> getRefundList(ChargingRefundDto chargingRefundDto) {
+		PageInfo<TChargingOrderRefund> pageInfo = new PageInfo<>(chargingRefundDto.getPageCurr(),chargingRefundDto.getPageSize());
+		List<TChargingOrderRefund> list = this.baseMapper.getRefundList(pageInfo,chargingRefundDto);
+		pageInfo.setRecords(list);
+
+		return R.ok(pageInfo);
+	}
 }

--
Gitblit v1.7.1