From 0a32ecc49bc4acd885096562e809381d28b3d1d7 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期三, 04 九月 2024 14:37:31 +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/TOrderInvoiceServiceImpl.java |   83 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 1 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
index 61431f4..fdb077d 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -4,17 +4,25 @@
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserCar;
 import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
 import com.ruoyi.chargingPile.api.feignClient.SiteClient;
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.api.model.TChargingOrder;
 import com.ruoyi.order.api.model.TOrderInvoice;
 import com.ruoyi.order.api.model.TOrderInvoiceDetail;
 import com.ruoyi.order.api.model.TShoppingOrder;
+import com.ruoyi.order.api.query.TOrderInvoiceQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
+import com.ruoyi.order.api.vo.TOrderInvoiceVO;
 import com.ruoyi.order.dto.*;
 import com.ruoyi.order.mapper.TOrderInvoiceMapper;
 import com.ruoyi.order.service.TChargingOrderService;
@@ -30,6 +38,7 @@
 import io.seata.spring.annotation.GlobalTransactional;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -75,7 +84,9 @@
 	
 	@Resource
 	private CouponClient couponClient;
-	
+	@Resource
+	private AppUserClient appUserClient;
+
 	
 	
 	
@@ -228,4 +239,74 @@
 		}
 		return myOrderInvoiceInfo;
 	}
+
+	@Override
+	public PageInfo<TOrderInvoiceVO> pageList(TOrderInvoiceQuery query) {
+		// 查询申请用户
+		List<TAppUser> userList = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
+		if(CollectionUtils.isEmpty(userList)){
+			return new PageInfo<>();
+		}
+		query.setUserIds(userList.stream().map(TAppUser::getId).collect(Collectors.toList()));
+		PageInfo<TOrderInvoiceVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
+		List<TOrderInvoiceVO> list = this.baseMapper.pageList(query,pageInfo);
+
+		List<Long> ids = list.stream().map(TOrderInvoiceVO::getId).collect(Collectors.toList());
+
+		List<TOrderInvoiceDetail> orderInvoiceDetailList = orderInvoiceDetailService.list(new LambdaQueryWrapper<TOrderInvoiceDetail>()
+				.in(TOrderInvoiceDetail::getOrderInvoiceId, ids));
+
+		list.forEach(e->{
+			e.setServiceTariff(orderInvoiceDetailList.get(0).getServiceTariff());
+			e.setElectricityTariff(orderInvoiceDetailList.get(0).getElectricityTariff());
+			e.setAddedServiceTariff(orderInvoiceDetailList.get(0).getAddedServiceTariff());
+			e.setAddedService(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get());
+			e.setElectrovalence(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get());
+			e.setServiceCharge(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get());
+			e.setUserPhone(userList.stream().filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone());
+		});
+
+		pageInfo.setRecords(list);
+		return pageInfo;
+	}
+
+	@Override
+	public Map<String, Integer> statusCount(TOrderInvoiceQuery query) {
+		Map<String, Integer> map = new HashMap<>();
+		List<TAppUser> userList = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
+		if(CollectionUtils.isEmpty(userList)){
+			map.put("notAccepted",0);
+			map.put("processing",0);
+			map.put("finished",0);
+			return map;
+		}
+		query.setUserIds(userList.stream().map(TAppUser::getId).collect(Collectors.toList()));
+		map = this.baseMapper.statusCount(query);
+		return map;
+	}
+
+	@Override
+	public List<TOrderInvoiceVO> export(TOrderInvoiceQuery query) {
+		// 查询申请用户
+		List<TAppUser> userList = appUserClient.selectByPhoneLike(query.getUserPhone()).getData();
+		if(CollectionUtils.isEmpty(userList)){
+			return new ArrayList<>();
+		}
+		query.setUserIds(userList.stream().map(TAppUser::getId).collect(Collectors.toList()));
+		PageInfo<TOrderInvoiceVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
+		List<TOrderInvoiceVO> list = this.baseMapper.export(query);
+		List<Long> ids = list.stream().map(TOrderInvoiceVO::getId).collect(Collectors.toList());
+		List<TOrderInvoiceDetail> orderInvoiceDetailList = orderInvoiceDetailService.list(new LambdaQueryWrapper<TOrderInvoiceDetail>()
+				.in(TOrderInvoiceDetail::getOrderInvoiceId, ids));
+		list.forEach(e->{
+			e.setServiceTariff(orderInvoiceDetailList.get(0).getServiceTariff());
+			e.setElectricityTariff(orderInvoiceDetailList.get(0).getElectricityTariff());
+			e.setAddedServiceTariff(orderInvoiceDetailList.get(0).getAddedServiceTariff());
+			e.setAddedService(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get());
+			e.setElectrovalence(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get());
+			e.setServiceCharge(orderInvoiceDetailList.stream().map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get());
+			e.setUserPhone(userList.stream().filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone());
+		});
+		return list;
+	}
 }

--
Gitblit v1.7.1