From 3b533f35c37e990d8ef6de1c8ee7c0cd7ffc6dbf Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 24 十月 2024 15:50:45 +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 |  207 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 129 insertions(+), 78 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 921dedc..92be7ad 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
@@ -708,6 +708,9 @@
 			preChargeCheck1.setStartupSuccess(2);
 			order.setStatus(3);
 			order.setStartTime(LocalDateTime.now());
+			TChargingGun chargingGun = chargingGunClient.getChargingGunById(order.getChargingGunId()).getData();
+			chargingGun.setStatus(4);
+			chargingGunClient.updateChargingGunById(chargingGun);
 		}
 		redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS);
 		this.updateById(order);
@@ -889,57 +892,48 @@
 		//处理用户标签数据
 		List<TUserTag> data = userTagClient.getAllUserTag().getData();
 		//累计充电次数
-		long count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
-				.eq(TChargingOrder::getRechargePaymentStatus, 2).isNotNull(TChargingOrder::getPaymentAmount).eq(TChargingOrder::getDelFlag, 0));
 		List<TUserTag> userTagList1 = data.stream().filter(s -> s.getStandardCondition() == 1).collect(Collectors.toList());
-		int old_times = 0;
-		Integer userTagId = null;
 		for (TUserTag tUserTag : userTagList1) {
 			Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
-			//加上本次充电
-			//获取最大值标签
-			if((count1 + 1) >= times && old_times < times){
-				userTagId = tUserTag.getId();
-				old_times = times;
-			}
-		}
-		if(null != userTagId){
 			TAppUserTag appUserTag = new TAppUserTag();
 			appUserTag.setAppUserId(chargingOrder.getAppUserId());
-			appUserTag.setUserTagId(userTagId);
+			appUserTag.setUserTagId(tUserTag.getId());
 			TAppUserTag data1 = appUserTagClient.getUserTag(appUserTag).getData();
-			if(null == data1){
+			
+			String start = tUserTag.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+			String end = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+			long count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
+					.eq(TChargingOrder::getRechargePaymentStatus, 2).between(TChargingOrder::getStartTime, start, end).eq(TChargingOrder::getDelFlag, 0));
+			if(null == data1 && count1 >= times){
 				data1 = new TAppUserTag();
 				data1.setAppUserId(chargingOrder.getAppUserId());
-				data1.setUserTagId(userTagId);
+				data1.setUserTagId(tUserTag.getId());
 				data1.setCreateTime(LocalDateTime.now());
 				appUserTagClient.addUserTag(data1);
 			}
 		}
-		//充电评率
+		//充电频率
 		List<TUserTag> userTagList2 = data.stream().filter(s -> s.getStandardCondition() == 2).collect(Collectors.toList());
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		for (TUserTag tUserTag : userTagList2) {
 			TAppUserTag appUserTag = new TAppUserTag();
 			appUserTag.setAppUserId(chargingOrder.getAppUserId());
 			appUserTag.setUserTagId(tUserTag.getId());
 			TAppUserTag data1 = appUserTagClient.getUserTag(appUserTag).getData();
-			if(null == data1){
-				Integer day = JSON.parseObject(tUserTag.getConditions()).getInteger("day");
-				Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
-				Calendar start = Calendar.getInstance();
-				start.set(Calendar.DAY_OF_YEAR, start.get(Calendar.DAY_OF_YEAR) + day);
-				count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
-						.eq(TChargingOrder::getRechargePaymentStatus, 2).isNotNull(TChargingOrder::getPaymentAmount)
-						.between(TChargingOrder::getStartTime, sdf.format(start.getTime()), sdf.format(new Date())).eq(TChargingOrder::getDelFlag, 0));
-				//加上本次充电
-				if(count1 >= times){
-					data1 = new TAppUserTag();
-					data1.setAppUserId(chargingOrder.getAppUserId());
-					data1.setUserTagId(tUserTag.getId());
-					data1.setCreateTime(LocalDateTime.now());
-					appUserTagClient.addUserTag(data1);
-				}
+			
+			Integer day = JSON.parseObject(tUserTag.getConditions()).getInteger("day");
+			Integer times = JSON.parseObject(tUserTag.getConditions()).getInteger("times");
+			LocalDateTime endTime = LocalDateTime.now();
+			endTime.plusDays(day);
+			String start = tUserTag.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+			String end = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+			long count1 = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId())
+					.eq(TChargingOrder::getRechargePaymentStatus, 2).between(TChargingOrder::getStartTime, start, end).eq(TChargingOrder::getDelFlag, 0));
+			if(null == data1 && count1 >= times){
+				data1 = new TAppUserTag();
+				data1.setAppUserId(chargingOrder.getAppUserId());
+				data1.setUserTagId(tUserTag.getId());
+				data1.setCreateTime(LocalDateTime.now());
+				appUserTagClient.addUserTag(data1);
 			}
 		}
 	}
@@ -1073,6 +1067,7 @@
 			endTime2 = split[1];
 		}
 		PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+		PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,9999999);
 
 		if (StringUtils.hasLength(dto.getPhone())){
 			List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
@@ -1083,12 +1078,15 @@
 			dto.setUserIds(data);
 		}
 		List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
+		List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2);
 		 BigDecimal total = new BigDecimal("0");
 		 long time = 0L;
 		 BigDecimal income = new BigDecimal("0");
 		 BigDecimal electronicMoney = new BigDecimal("0");
 		 BigDecimal serviceMoney = new BigDecimal("0");
 		for (ChargingOrderVO chargingOrderVO : list) {
+			chargingOrderVO.setCommissionAmount(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
+			chargingOrderVO.setPlatFormMoney(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
 			chargingOrderVO.setUid(chargingOrderVO.getId()+"");
 			TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
 			TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
@@ -1100,10 +1098,6 @@
 			}
 			if (data2!=null && data3!=null){
 				chargingOrderVO.setTerminalName(data2.getName()+"-"+data3.getName());
-
-			}
-			if (chargingOrderVO.getChargingCapacity()!=null){
-				total = total.add(chargingOrderVO.getElectricity());
 			}
 			// 充电订单 明细记录
 			List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
@@ -1112,14 +1106,6 @@
 			if (data5!=null){
 				long l = data5.getCumulative_charging_time() * 60L;
 				chargingOrderVO.setChargingSecond(l);
-				time+=l;
-			}
-			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());
 			}
 			// 充电时段数
 			int size = chargingOrderId.size();
@@ -1140,6 +1126,27 @@
 
 			}
 		}
+		for (ChargingOrderVO chargingOrderVO : list1) {
+			if (chargingOrderVO.getChargingCapacity()!=null){
+				total = total.add(chargingOrderVO.getElectricity());
+			}
+			// 充电订单 明细记录
+			List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()
+					.eq("charging_order_id", chargingOrderVO.getId()));
+			UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData();
+			if (data5!=null){
+				long l = data5.getCumulative_charging_time() * 60L;
+				chargingOrderVO.setChargingSecond(l);
+				time+=l;
+			}
+			electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence());
+			serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge());
+
+			income = income.add(chargingOrderVO.getOrderAmount());
+
+
+
+		}
 		tCharingOrderVO.setTotal(total);
 		tCharingOrderVO.setTime(time);
 		tCharingOrderVO.setIncome(income);
@@ -1154,6 +1161,16 @@
 	public R<PageInfo<PayOrderDto>> payOrderQuery(PayOrderQueryDto payOrderQueryDto) {
 		PageInfo<PayOrderDto> pageInfo = new PageInfo<>(payOrderQueryDto.getPageCurr(),payOrderQueryDto.getPageSize());
 		List<PayOrderDto> list = this.baseMapper.payOrderQuery(pageInfo,payOrderQueryDto);
+		for (PayOrderDto payOrderDto : list) {
+			if (payOrderDto.getType()==2||payOrderDto.getType()==3){
+				payOrderDto.setFinalAmount(payOrderDto.getOrderAmount());
+			}
+			if (payOrderDto.getType()==1&&payOrderDto.getStatus()==3){
+				payOrderDto.setFinalAmount(payOrderDto.getRechargeAmount());
+				payOrderDto.setOrderAmount(payOrderDto.getRechargeAmount());
+				payOrderDto.setPaymentAmount(payOrderDto.getRechargeAmount());
+			}
+		}
 		pageInfo.setRecords(list);
 		return R.ok(pageInfo);
 	}
@@ -1261,12 +1278,12 @@
 		List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
 		for (ChargingOrderListVO chargingOrderListVO : list) {
 			chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
-			chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getOrderAmount());
+			chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
 			BigDecimal bigDecimal = new BigDecimal("0.006");
 			if (chargingOrderListVO.getServiceCharge()!=null){
 				chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getServiceCharge().multiply(bigDecimal));
 			}
-			chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount().subtract(chargingOrderListVO.getResidualAmount()));
+			chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount());
 			chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
 			List<Integer> integers = new ArrayList<>();
 			integers.add(chargingOrderListVO.getSiteId());
@@ -1307,7 +1324,9 @@
 						carId.add(chargingOrderListVO.getAppUserCarId());
 						if (!carId.isEmpty()){
 							List<TAppUserCar> data4 = appUserCarClient.getCarByIds(carId).getData();
-							if (data4!=null && !data4.isEmpty()) chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate());
+							if (data4!=null && !data4.isEmpty()) {
+								chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate());
+							}
 						}
 					}
 					chargingOrderListVO.setPhone(data3.getPhone());
@@ -1323,6 +1342,9 @@
 			BigDecimal gu = new BigDecimal("0");
 			BigDecimal total = new BigDecimal("0");
 			for (TChargingOrderAccountingStrategy temp : list2) {
+				if (temp.getChargingCapacity() == null){
+					temp.setChargingCapacity(BigDecimal.ZERO);
+				}
 				switch (temp.getType()) {
 					case 1:
 						jian = jian.add(temp.getChargingCapacity());
@@ -1385,7 +1407,7 @@
 		for (ChargingOrderListVO chargingOrderListVO : list1) {
 			if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity());
 
-			if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getOrderAmount());
+			if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
 			if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence());
 			if (chargingOrderListVO.getServiceCharge()!=null)serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge());
 			List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategyService.lambdaQuery()
@@ -1472,6 +1494,8 @@
 		TChargingOrder chargingOrder= this.getById(uid);
 
 		ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO();
+
+		chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
 		BigDecimal bigDecimal = new BigDecimal("0.006");
 		if (chargingOrder.getServiceCharge()!=null){
 			chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getServiceCharge().multiply(bigDecimal));
@@ -1642,6 +1666,8 @@
 		
 		//获取订单的计费策略
 		List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData();
+		
+		//开始处理计费明细数据和优惠数据
 		chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
 		for (int i = 0; i < accountingStrategyDetailOrderList.size(); i++) {
 			Class<? extends TransactionRecordMessageVO> clazz = vo.getClass();
@@ -1684,22 +1710,23 @@
 				BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
 				BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
 				BigDecimal serviceCharge = originalServicePrice;
+				BigDecimal vipDiscountAmount = BigDecimal.ZERO;
 				//计算优惠金额
 				if(null != chargingOrder.getVipDiscount()){
+					vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())).setScale(2, RoundingMode.DOWN);
 					serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
 				}
 				chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
 				chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
 				chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
 				chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
+				chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
 				chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
 				chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
 				
-				BigDecimal periodElectricPrice = chargingOrderAccountingStrategy.getPeriodElectricPrice();
-				BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodOriginalServicePrice();
-				periodElectricPrice_total = periodElectricPrice_total.add(periodElectricPrice);
-				periodServicePrice_total = periodServicePrice_total.add(periodServicePrice);
-				total = total.add(periodElectricPrice.add(periodServicePrice));
+				periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc);
+				periodServicePrice_total = periodServicePrice_total.add(originalServicePrice);
+				total = total.add(electrovalenc.add(originalServicePrice));
 			} catch (IllegalAccessException e) {
 				throw new RuntimeException(e);
 			} catch (InvocationTargetException e) {
@@ -1722,21 +1749,19 @@
 		//折扣金额
 		BigDecimal discountAmount = BigDecimal.ZERO;
 		if(null != chargingOrder.getVipDiscount()){
-			//服务费折扣
-			discountAmount = periodServicePrice_total.multiply((new BigDecimal(1).subtract(chargingOrder.getVipDiscount())));
-			periodServicePrice_total = periodServicePrice_total.multiply(chargingOrder.getVipDiscount());
-
 			TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
-			if(null != appUser.getVipId()){
-				//判断会员是否还有充电优惠次数
-				GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
-				getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
-				getAppUserVipDetail.setVipId(appUser.getVipId());
-				TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
-				if(null != data && data.getChargeNum() > 0){
-					data.setChargeNum(data.getChargeNum() - 1);
-					appUserVipDetailClient.updateAppUserVipDetail(data);
-				}
+			//判断会员是否还有充电优惠次数
+			GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+			getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId());
+			getAppUserVipDetail.setVipId(appUser.getVipId());
+			TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData();
+			if(null != data && data.getChargeNum() > 0){
+				data.setChargeNum(data.getChargeNum() - 1);
+				appUserVipDetailClient.updateAppUserVipDetail(data);
+				
+				//服务费折扣
+				discountAmount = periodServicePrice_total.multiply((new BigDecimal(1).subtract(chargingOrder.getVipDiscount())));
+				periodServicePrice_total = periodServicePrice_total.multiply(chargingOrder.getVipDiscount());
 				
 				TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
 				BigDecimal maximumDeduction = vip.getMaximumDeduction();
@@ -1745,8 +1770,8 @@
 					discountAmount = maximumDeduction;
 				}
 			}
-			payAmount = payAmount.subtract(discountAmount);
 		}
+		payAmount = payAmount.subtract(discountAmount);
 		
 		TChargingOrder order = new TChargingOrder();
 		order.setId(chargingOrder.getId());
@@ -1763,7 +1788,6 @@
 		order.setStatus(5);
 		order.setOrderAmount(orderAmount);
 		order.setVipDiscountAmount(discountAmount);
-		order.setServiceCharge(periodServicePrice_total);
 		order.setElectrovalence(periodElectricPrice_total);
 		order.setChargingCapacity(vo.getTotal_electricity());
 		order.setElectricity(vo.getTotal_electricity());
@@ -1784,11 +1808,16 @@
 						refundAmount = refundAmount.add(periodServicePrice_total);
 						order.setCouponDiscountAmount(periodServicePrice_total);
 						payAmount = payAmount.subtract(periodServicePrice_total);
+						periodServicePrice_total = BigDecimal.ZERO;
 					}else{
 						refundAmount = refundAmount.add(couponDiscountAmount);
 						order.setCouponDiscountAmount(couponDiscountAmount);
 						payAmount = payAmount.subtract(couponDiscountAmount);
+						periodServicePrice_total = periodServicePrice_total.subtract(couponDiscountAmount);
 					}
+					
+					appCoupon.setStatus(2);
+					appCouponClient.updateAppCoupon(appCoupon);
 				}else{
 					order.setAppCouponId(null);
 					order.setCouponDiscountAmount(BigDecimal.ZERO);
@@ -1806,11 +1835,16 @@
 						refundAmount = refundAmount.add(periodServicePrice_total);
 						order.setCouponDiscountAmount(periodServicePrice_total);
 						payAmount = payAmount.subtract(periodServicePrice_total);
+						periodServicePrice_total = BigDecimal.ZERO;
 					}else{
 						refundAmount = refundAmount.add(divide);
 						order.setCouponDiscountAmount(divide);
 						payAmount = payAmount.subtract(divide);
+						periodServicePrice_total = periodServicePrice_total.subtract(divide);
 					}
+					
+					appCoupon.setStatus(2);
+					appCouponClient.updateAppCoupon(appCoupon);
 				}else{
 					order.setAppCouponId(null);
 					order.setCouponDiscountAmount(BigDecimal.ZERO);
@@ -1818,11 +1852,27 @@
 				}
 			}
 		}
+		
+		order.setServiceCharge(periodServicePrice_total);
 		order.setPaymentAmount(payAmount);
 		order.setRefundAmount(refundAmount);
 		order.setRefundStatus(1);
 		this.updateById(order);
 		chargingOrder = this.getById(order.getId());
+		
+		//开始将优惠券优惠的金额添加到明细中
+		BigDecimal couponDiscountAmount = order.getCouponDiscountAmount();
+		if(couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0){
+			List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, order.getId()));
+			for (TChargingOrderAccountingStrategy chargingOrderAccountingStrategy : list) {
+				BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
+				BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(periodServicePrice_total, new MathContext(4, RoundingMode.HALF_EVEN)));
+				periodServicePrice = periodServicePrice.subtract(multiply);
+				chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice);
+				chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply);
+			}
+			chargingOrderAccountingStrategyService.updateBatchById(list);
+		}
 		
 		// 将枪状态重置为空闲
 		TChargingGun chargingGun = new TChargingGun();
@@ -1954,7 +2004,7 @@
 	}
 	@Override
 	public List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto) {
-		return this.baseMapper.usersByQuery(statisticsQueryDto);
+		return this.baseMapper.usersByQuery1(statisticsQueryDto);
 	}
 
 	@Override
@@ -2018,7 +2068,7 @@
 				chargingOrderRefund.setRefundTitle("后台退款");
 				chargingOrderRefund.setRefundContent("后台退款");
 				chargingOrderRefund.setRefundReason("后台退款");
-				chargingOrderRefund.setRefundRemark("后台退款");
+				chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
 				chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
 				chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
 
@@ -2031,7 +2081,7 @@
 					model.setNotify_url("/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.setTotal(tChargingOrder.getRechargeAmount().multiply(new BigDecimal(100)).intValue());
 					amount.setCurrency("CNY");
 					model.setAmount(amount);
 					R<String> orderR = wxPaymentClient.refundOrderR(model);
@@ -2079,7 +2129,7 @@
 				chargingOrderRefund.setRefundTitle("后台退款");
 				chargingOrderRefund.setRefundContent("后台退款");
 				chargingOrderRefund.setRefundReason("后台退款");
-				chargingOrderRefund.setRefundRemark("后台退款");
+				chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark());
 				chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
 				chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
 
@@ -2599,12 +2649,13 @@
 		info.setRefundAmount(chargingOrder.getRefundAmount());
 		LocalDateTime startTime = chargingOrder.getStartTime();
 		LocalDateTime endTime = chargingOrder.getEndTime();
-		info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
+		info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " " + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
 		info.setStartHour(startTime.format(DateTimeFormatter.ofPattern("HH:mm")));
-		info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
+		info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " " + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE));
 		info.setEndHour(endTime.format(DateTimeFormatter.ofPattern("HH:mm")));
-		int hour = endTime.getHour() - startTime.getHour();
-		int second = endTime.getMinute() - startTime.getMinute();
+		long time = (endTime.toEpochSecond(ZoneOffset.UTC) - startTime.toEpochSecond(ZoneOffset.UTC)) / 60;
+		long hour = time / 60;
+		long second = time % 60;
 		info.setDuration(0 == hour ? String.format("%s分钟", second) : String.format("%s小时%s分钟", hour, second));
 		return info;
 	}

--
Gitblit v1.7.1