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