From 51de7e6b1a7b68c76b8dcb385013a0c06466b81c Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 22 十月 2024 11:49:26 +0800
Subject: [PATCH] 合并代码

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   93 ++++++++++++++++++++++++++++------------------
 1 files changed, 57 insertions(+), 36 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 02d2d74..c2500ca 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
@@ -441,7 +441,6 @@
 		chargingOrder.setRechargePaymentStatus(1);
 		chargingOrder.setRechargeAmount(addChargingOrder.getPaymentAmount());
 		chargingOrder.setAppCouponId(addChargingOrder.getAppUserCouponId());
-		chargingOrder.setVipDiscount(new BigDecimal(10));
 		chargingOrder.setVipDiscountAmount(BigDecimal.ZERO);
 		chargingOrder.setOrderSource(0);
 		chargingOrder.setTitle("【充电桩充电】" + chargingPile.getNumber() + "号桩/" + tChargingGun.getCode() + "号枪");
@@ -471,7 +470,7 @@
 			TAppUserVipDetail vipDetail = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
 			if(null != vipDetail){
 				Integer chargeNum = vipDetail.getChargeNum();
-				if(0 > chargeNum){
+				if(0 < chargeNum){
 					chargingOrder.setVipDiscount(discount);
 				}
 			}
@@ -583,7 +582,7 @@
 					Integer start = Integer.valueOf(accountingStrategyDetailOrder.getStartTime().replaceAll(":", ""));
 					Integer end = Integer.valueOf(accountingStrategyDetailOrder.getEndTime().replaceAll(":", ""));
 					String[] split = accountingStrategyDetailOrder.getEndTime().split(":");
-					if(sta || now >= start){
+					if(sta || (now >= start && now < end)){
 						sta = true;
 						
 						Calendar end_calendar = Calendar.getInstance();
@@ -605,16 +604,16 @@
 						//每秒需要支付的服务费金额
 						BigDecimal s_server_amount = s_degrees.multiply(accountingStrategyDetailOrder.getServiceCharge());
 						//计算剩余金额能充多长时间的电
-						long times = rechargeAmount1.divide(s_server_amount, 0, RoundingMode.DOWN).longValue();
+						long times = rechargeAmount1.divide(s_total_amount, 0, RoundingMode.DOWN).longValue();
 						if(times > m){
 							//充电时间跨度两个计费策略,需要继续对下一个策略进行计算
 							serviceCharge = s_server_amount.multiply(new BigDecimal(m));
-							discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(10).subtract(discount)).divide(new BigDecimal(10))));
+							discountAmount = discountAmount.add(serviceCharge.multiply(new BigDecimal(1).subtract(discount)));
 							rechargeAmount1 = rechargeAmount1.subtract(s_total_amount.multiply(new BigDecimal(m)));
 							nowTimeMillis = null;
 						}else{
 							serviceCharge = s_server_amount.multiply(new BigDecimal(times));
-							discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(10).subtract(discount)).divide(new BigDecimal(10))));
+							discountAmount = discountAmount.add(serviceCharge.multiply(new BigDecimal(1).subtract(discount)));
 							break;
 						}
 					}
@@ -1124,7 +1123,7 @@
 		//处理推荐奖励(被推荐首单奖励)
 		TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
 		long count = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
-				.eq(TChargingOrder::getStatus, 5).isNull(TChargingOrder::getEndMode).eq(TChargingOrder::getDelFlag, 0));
+				.in(TChargingOrder::getStatus, Arrays.asList(4, 5)).eq(TChargingOrder::getDelFlag, 0));
 		if(null != appUser.getInviteUserId() && 1 == count){
 			TIntegralRule integralRule = integralRuleClient.getSet().getData();
 			String inviteUsersToEarnPoints = integralRule.getInviteUsersToEarnPoints();
@@ -1165,6 +1164,7 @@
 			appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1);
 			appUserIntegralChange.setCreateTime(LocalDateTime.now());
 			appUserIntegralChange.setOrderCode(chargingOrder.getCode());
+			appUserIntegralChange.setExtension(chargingOrder.getId().toString());
 			appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
 			
 			appUser1.setPoints(appUser1.getPoints() + num1);
@@ -1259,6 +1259,7 @@
 		 BigDecimal electronicMoney = new BigDecimal("0");
 		 BigDecimal serviceMoney = new BigDecimal("0");
 		for (ChargingOrderVO chargingOrderVO : list) {
+			chargingOrderVO.setUid(chargingOrderVO.getId()+"");
 			TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
 			TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
 			if (chargingOrderVO.getSiteId()!=null){
@@ -1272,38 +1273,24 @@
 
 			}
 			if (chargingOrderVO.getChargingCapacity()!=null){
-				total = total.add(chargingOrderVO.getChargingCapacity());
+				total = total.add(chargingOrderVO.getElectricity());
 			}
 			// 充电订单 明细记录
 			List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
 					.eq("charging_order_id", chargingOrderVO.getId()));
-			// 单个订单累计电费
-			BigDecimal electronicMoney1 = new BigDecimal("0");
-			// 单个订单累计服务费
-			BigDecimal serviceMoney1 = new BigDecimal("0");
 			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
 			if (data5!=null){
-				chargingOrderVO.setChargingSecond(data5.getTime_remaining()*60L);
+				long l = data5.getCumulative_charging_time() * 60L;
+				chargingOrderVO.setChargingSecond(l);
+				time+=l;
 			}
-			// 总收入
-			if (chargingOrderVO.getRefundStatus() !=null && chargingOrderVO.getRefundStatus() == 2){
-				income = income.add(chargingOrderVO.getPaymentAmount().subtract(chargingOrderVO.getRefundAmount()));
-			}else{
-				if (chargingOrderVO.getPaymentAmount()!=null){
-					income = income.add(chargingOrderVO.getPaymentAmount());
-				}
+			electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
+			serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
+
+			income = income.add(chargingOrderVO.getServiceCharge().add(chargingOrderVO.getElectrovalence()));
+			if (chargingOrderVO.getRefundAmount()!=null){
+				income = income.subtract(chargingOrderVO.getRefundAmount());
 			}
-			for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : chargingOrderId) {
-				// 累计电费
-				electronicMoney1 = electronicMoney1.add(tChargingOrderAccountingStrategy.getElectrovalence()
-						.multiply(tChargingOrderAccountingStrategy.getChargingCapacity()));
-				electronicMoney = electronicMoney.add(electronicMoney1);
-				// 累计服务费
-				serviceMoney1 = serviceMoney1.add(tChargingOrderAccountingStrategy.getServiceCharge());
-				serviceMoney = serviceMoney.add(serviceMoney1);
-			}
-			chargingOrderVO.setServiceCharge(serviceMoney1);
-			chargingOrderVO.setElectrovalence(electronicMoney1);
 			// 充电时段数
 			int size = chargingOrderId.size();
 			chargingOrderVO.setCount(size);
@@ -1410,7 +1397,36 @@
 			startTime2 = split[1];
 		}
 		ChargingOrderTimeVO chargingOrderTimeVO = new ChargingOrderTimeVO();
-
+		if (StringUtils.hasLength(dto.getPhone())){
+			List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
+			if(data!=null){
+				if (!data.isEmpty()){
+					dto.setUserIds(data);
+				}
+			}else{
+				dto.setUserIds(new ArrayList<Long>());
+			}
+			if (dto.getUserIds().isEmpty()){
+				List<Long> carIds = dto.getUserIds();
+				carIds.add(-1L);
+				dto.setUserIds(carIds);
+			}
+		}
+		if (StringUtils.hasLength(dto.getPhone())){
+			List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData();
+			if(data!=null){
+				if (!data.isEmpty()){
+					dto.setCarIds(data);
+				}
+			}else{
+				dto.setCarIds(new ArrayList<Long>());
+			}
+			if (dto.getCarIds().isEmpty()){
+				List<Long> carIds = dto.getCarIds();
+				carIds.add(-1L);
+				dto.setCarIds(carIds);
+			}
+		}
 		PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
 		List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
 		for (ChargingOrderListVO chargingOrderListVO : list) {
@@ -1440,7 +1456,7 @@
 			// 获取开始SOC 结束soc
 			if (chargingOrderListVO.getCode()!=null){
 				List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData();
-				if (!data6.isEmpty()){
+			if (data6!=null && !data6.isEmpty()){
 					// 第一条数据soc为开始 最后一条数据soc为结束soc
 					chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString());
 					chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString());
@@ -1805,7 +1821,7 @@
 						invoke = clazz.getMethod("getValley_charge" + (i + 1)).invoke(vo);
 						break;
 				}
-				if(null == invoke || Integer.valueOf(invoke.toString()) == 0){
+				if(null == invoke || Double.valueOf(invoke.toString()) == 0){
 					continue;
 				}
 				BigDecimal sharp_peak_charge = new BigDecimal(invoke.toString());
@@ -1824,7 +1840,7 @@
 				BigDecimal serviceCharge = originalServicePrice;
 				//计算优惠金额
 				if(null != chargingOrder.getVipDiscount()){
-					serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount().divide(new BigDecimal(10))).setScale(2, RoundingMode.DOWN);
+					serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
 				}
 				chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
 				chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
@@ -1861,7 +1877,7 @@
 		BigDecimal discountAmount = BigDecimal.ZERO;
 		if(null != chargingOrder.getVipDiscount()){
 			//服务费折扣
-			discountAmount = periodServicePrice_total.multiply((new BigDecimal(10).subtract(chargingOrder.getVipDiscount())).divide(new BigDecimal(10)));
+			discountAmount = periodServicePrice_total.multiply((new BigDecimal(1).subtract(chargingOrder.getVipDiscount())));
 			
 			TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
 			if(null != appUser.getVipId()){
@@ -1976,6 +1992,7 @@
 			appUserIntegralChange.setCurrentIntegral(appUser.getPoints());
 			appUserIntegralChange.setCreateTime(LocalDateTime.now());
 			appUserIntegralChange.setOrderCode(chargingOrder.getCode());
+			appUserIntegralChange.setExtension(chargingOrder.getId().toString());
 			appUserClient.updateAppUser(appUser);
 			appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
 		}
@@ -2069,6 +2086,10 @@
 	public List<Map<String, Object>> usersByQuery(ChargingStatisticsQueryDto statisticsQueryDto) {
 		return this.baseMapper.usersByQuery(statisticsQueryDto);
 	}
+	@Override
+	public List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto) {
+		return this.baseMapper.usersByQuery(statisticsQueryDto);
+	}
 
 	@Override
 	public List<Map<String, Object>> getUserTagCount() {

--
Gitblit v1.7.1