From 592c8eb4d1fb5b9592f98ef7dea452adf06ccc4b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 10 三月 2025 11:22:59 +0800
Subject: [PATCH] 引流平台

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |  183 ++++++++++++++++++++++++++++++---------------
 1 files changed, 121 insertions(+), 62 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 fc64e04..e50aeb3 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
@@ -1244,7 +1244,6 @@
 		List<TChargingPile> allPile = chargingGunClient.getAllPile().getData();
 		List<Site> data9 = siteClient.getSiteAll().getData();
 		List<TAppUser> data6 = appUserClient.getAllUser().getData();
-		List<Partner> data7 = siteClient.getAllPartner().getData();
 		List<TAppUserCar> data4 = appUserCarClient.getAllCar().getData();
 		String startTime1 = null;
 		String startTime2 = null;
@@ -1311,14 +1310,12 @@
 		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");
 		 BigDecimal commissionMoney = new BigDecimal("0");
 		 BigDecimal refundMoney = new BigDecimal("0");
 		 BigDecimal paymentMoney = new BigDecimal("0");
-		List<String> collect2 = list.stream().map(TChargingOrder::getCode).collect(Collectors.toList());
-		List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>());
+		List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list();
 
 		for (ChargingOrderVO chargingOrderVO : list) {
 			if (roleType == 2){
@@ -1327,8 +1324,8 @@
 					List<Boolean> t1= partnerClient.getChargingOrderMenu(sysUser.getObjectId(),siteId).getData();
 					chargingOrderVO.setAuthRecord(t1.get(0));
 				}
-
 			}
+			chargingOrderVO.setSharingAmount(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
 			chargingOrderVO.setCommissionAmount(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0"));
 			chargingOrderVO.setPlatFormMoney(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
 			chargingOrderVO.setUid(chargingOrderVO.getId()+"");
@@ -1376,14 +1373,16 @@
 		}
 
 
-		List<Long> orderIds = list1.stream().map(TChargingOrder::getId).collect(Collectors.toList());
-		if(orderIds.isEmpty())orderIds.add(-1L);
 		List<TChargingOrderRefund> chargingOrderRefunds = chargingOrderRefundService.lambdaQuery()
-				.in(TChargingOrderRefund::getChargingOrderId, orderIds)
 				.eq(TChargingOrderRefund::getRefundStatus,2).list();
 
 		for (ChargingOrderVO chargingOrderVO : list1) {
-			paymentMoney= paymentMoney.add(chargingOrderVO.getPaymentAmount()!=null?chargingOrderVO.getPaymentAmount():new BigDecimal("0"));
+			if (!chargingOrderVO.getOrderSource().equals(2)) {
+				paymentMoney = paymentMoney.add(chargingOrderVO.getPaymentAmount() != null ? chargingOrderVO.getPaymentAmount() : new BigDecimal("0"));
+			}else{
+				paymentMoney = paymentMoney.add(chargingOrderVO.getServiceCharge() != null ? chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN) : new BigDecimal("0"));
+
+			}
 			if (chargingOrderVO.getRechargeAmount()!=null){
 				commissionMoney = commissionMoney.add(chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN));
 			}
@@ -1403,7 +1402,11 @@
 					refundMoney = refundMoney.add(tChargingOrderRefund.getRefundTotalAmount());
 			}
 			electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence()!=null?chargingOrderVO.getElectrovalence():new BigDecimal("0"));
-			serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge():new BigDecimal("0"));
+			if (!chargingOrderVO.getOrderSource().equals(2)){
+				serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge():new BigDecimal("0"));
+			}else{
+				serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0"));
+			}
 		}
 		tCharingOrderVO.setTotal(total);
 		tCharingOrderVO.setTime(time);
@@ -1491,6 +1494,8 @@
 
 	@Resource
 	private SysUserClient sysUserClient;
+
+
 	@Override
 	public ChargingOrderTimeVO chargingList(ChargingListQuery dto) {
 		String startTime1 = null;
@@ -1689,7 +1694,13 @@
 						"0"+"%(平)/"+
 						"0"+"%(谷)");
 			}
-
+			if (chargingOrderListVO.getOrderSource().equals(2)){
+				chargingOrderListVO.setSharingAmount(chargingOrderListVO.getServiceCharge()!=null?
+						chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_HALF_UP)
+						:new BigDecimal("0"));
+			}else{
+				chargingOrderListVO.setSharingAmount(new BigDecimal("0"));
+			}
 		}
 		// 不分页
 		PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1,999999999);
@@ -1741,39 +1752,78 @@
 		BigDecimal feng = new BigDecimal("0");
 		BigDecimal ping = new BigDecimal("0");
 		BigDecimal gu = new BigDecimal("0");
-		List<Long> collect = list1.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList());
-		List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.lambdaQuery()
-				.in(TChargingOrderAccountingStrategy::getChargingOrderId,collect).list();
+		List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list();
 		for (ChargingOrderListVO chargingOrderListVO : list1) {
 			if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity());
 
-			if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount());
+			if (chargingOrderListVO.getPaymentAmount()!=null){
+				if (chargingOrderListVO.getOrderSource().equals(2)){
+					paymentAmount = paymentAmount.add(chargingOrderListVO.getServiceCharge()!=null?chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)):new BigDecimal("0"));
+				}else{
+					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 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
-					.collect(Collectors.toList());
-			for (TChargingOrderAccountingStrategy temp : list2) {
-				switch (temp.getType()){
-					case 1:
-						if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity());
-						if (temp.getChargingCapacity()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence());
-						if (temp.getChargingCapacity()!=null)jianService = jianService.add(temp.getServiceCharge());
-						break;
-					case 2:
-						if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity());
-						if (temp.getChargingCapacity()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence());
-						if (temp.getChargingCapacity()!=null)fengService = fengService.add(temp.getServiceCharge());
-						break;
-					case 3:
-						if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity());
-						if (temp.getChargingCapacity()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence());
-						if (temp.getChargingCapacity()!=null)pingService = pingService.add(temp.getServiceCharge());
-						break;
-					case 4:
-						if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity());
-						if (temp.getChargingCapacity()!=null)guElectronic = guElectronic.add(temp.getElectrovalence());
-						if (temp.getChargingCapacity()!=null)guService = guService.add(temp.getServiceCharge());
-						break;
+			if (chargingOrderListVO.getServiceCharge()!=null){
+				if (chargingOrderListVO.getOrderSource().equals(2)){
+					serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
+				}else{
+					serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge());
+				}
+			}
+			if (!chargingOrderListVO.getOrderSource().equals(2)){
+				List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
+						.collect(Collectors.toList());
+				for (TChargingOrderAccountingStrategy temp : list2) {
+					switch (temp.getType()){
+						case 1:
+							if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity());
+							if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence());
+							if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge());
+							break;
+						case 2:
+							if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity());
+							if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence());
+							if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge());
+							break;
+						case 3:
+							if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity());
+							if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence());
+							if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge());
+							break;
+						case 4:
+							if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity());
+							if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence());
+							if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge());
+							break;
+					}
+				}
+			}else{
+				List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId()))
+						.collect(Collectors.toList());
+				for (TChargingOrderAccountingStrategy temp : list2) {
+					switch (temp.getType()){
+						case 1:
+							if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity());
+							if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence());
+							if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
+							break;
+						case 2:
+							if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity());
+							if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence());
+							if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
+							break;
+						case 3:
+							if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity());
+							if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence());
+							if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
+							break;
+						case 4:
+							if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity());
+							if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence());
+							if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)));
+							break;
+					}
 				}
 			}
 		}
@@ -1782,28 +1832,29 @@
 		chargingOrderTimeVO.setPaymentAmount(paymentAmount);
 		chargingOrderTimeVO.setElectrovalence(electrovalence);
 		chargingOrderTimeVO.setServiceCharge(serviceCharge);
-		// 计算尖峰平谷充电量占比
+		// 计算尖峰平谷充电到账占比
+
 		BigDecimal add = jianElectronic.add(fengElectronic).add(pingElectronic).add(guElectronic);
 		// 计算尖峰平谷服务费占比
 		BigDecimal add1 = jianService.add(fengService).add(pingService).add(guService);
-		// 计算尖峰平谷充电到账占比
+		// 计算尖峰平谷充电量占比
 		BigDecimal add2 = jian.add(feng).add(ping).add(gu);
 		if (add.compareTo(new BigDecimal("0"))!=0){
-			chargingOrderTimeVO.setCapacityProportion(jianElectronic+"度/"+fengElectronic+"度/"+pingElectronic+"度/"+guElectronic+"度-"
-					+jianElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
-					+fengElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
-					+pingElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
-					+guElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
+			chargingOrderTimeVO.setCapacityProportion(jian+"度/"+feng+"度/"+ping+"度/"+gu+"度-"
+					+jian.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
+					+feng.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
+					+ping.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
+					+gu.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
 			chargingOrderTimeVO.setServiceProportion(jianService+"元/"+fengService+"元/"+pingService+"元/"+guService+"元-"
 					+jianService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
 					+fengService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
 					+pingService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
 					+guService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
-			chargingOrderTimeVO.setElectronicProportion(jian+"元/"+feng+"元/"+ping+"元/"+gu+"元-"
-					+jian.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
-					+feng.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
-					+ping.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
-					+gu.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
+			chargingOrderTimeVO.setElectronicProportion(jianElectronic+"元/"+fengElectronic+"元/"+pingElectronic+"元/"+guElectronic+"元-"
+					+jianElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
+					+fengElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
+					+pingElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/"
+					+guElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
 		}else{
 			chargingOrderTimeVO.setCapacityProportion(jianElectronic+"度/"+fengElectronic+"度/"+pingElectronic+"度/"+guElectronic+"度-"
 					+"0"+"%/"
@@ -1933,7 +1984,12 @@
 		chargingOrderListInfoVO.setUid(chargingOrder.getId().toString());
 		chargingOrderListInfoVO.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount());
 		chargingOrderListInfoVO.setVipDiscountAmount(chargingOrder.getVipDiscountAmount());
-		chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount());
+		if (chargingOrder.getOrderSource().equals(2)){
+			chargingOrderListInfoVO.setSharingAmount(chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
+		}else{
+			chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount());
+
+		}
 		// 查询费用明细列表
 		List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery()
 				.eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId())
@@ -2019,10 +2075,10 @@
 		if(null == chargingOrder){
 			return R.ok();
 		}
-		Integer status = chargingOrder.getStatus();
-		if(status == 5){
-			return R.ok();
-		}
+//		Integer status = chargingOrder.getStatus();
+//		if(status == 5){
+//			return R.ok();
+//		}
 		
 		//如果使用优惠券需要判断优惠券是否满足使用条件
 		//根据实际的充电金额计算退款金额   退回费用=(原金额/总金额)*(总金额-实际充电金额)
@@ -2085,7 +2141,7 @@
 					AccountingStrategyDetailOrderVo vo1 = new AccountingStrategyDetailOrderVo();
 					BeanUtils.copyProperties(strategyDetail, vo1);
 					vo1.setChargingCapacity(sharp_peak_charge);
-					lists.add(vo1);
+					lists.add(0, vo1);
 				}
 				
 				//第二天的
@@ -2831,8 +2887,8 @@
 
 			}
 			// 累加分佣
-			if (tChargingOrder.getSharingAmount()!=null) {
-				sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount());
+			if (tChargingOrder.getOrderSource()==2) {
+				sharingAmount = sharingAmount.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
 			}
 			// 累加电费
 			if (tChargingOrder.getElectrovalence()!=null) {
@@ -2840,8 +2896,11 @@
 			}
 			// 累加服务费
 			if (tChargingOrder.getServiceCharge()!=null){
-				serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
-
+				if (tChargingOrder.getOrderSource()==2) {
+					serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN));
+				}else{
+					serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge());
+				}
 			}
 			// 累加会员折扣
 			if (tChargingOrder.getVipDiscountAmount()!=null){

--
Gitblit v1.7.1