package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.system.mapper.TBigGiftPackageMapper; import com.ruoyi.system.mapper.TCommissionTransactionFlowMapper; import com.ruoyi.system.mapper.TCompanyMapper; import com.ruoyi.system.model.TBigGiftPackage; import com.ruoyi.system.model.TBigGiftPackageOrder; import com.ruoyi.system.mapper.TBigGiftPackageOrderMapper; import com.ruoyi.system.model.TCommissionTransactionFlow; import com.ruoyi.system.model.TCompany; import com.ruoyi.system.query.BigGiftPackageOrderQuery; import com.ruoyi.system.query.ProfitPageListQuery; import com.ruoyi.system.service.TBigGiftPackageOrderService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.service.TCommissionTransactionFlowService; import com.ruoyi.system.vo.ProfitPageListVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; /** *

* 大礼包订单 服务实现类 *

* * @author xiaochen * @since 2025-12-08 */ @Service public class TBigGiftPackageOrderServiceImpl extends ServiceImpl implements TBigGiftPackageOrderService { @Resource private TCompanyMapper companyMapper; @Resource private TBigGiftPackageMapper bigGiftPackageMapper; @Resource private TCommissionTransactionFlowMapper commissionTransactionFlowMapper; @Override public List pageList(Page tBigGiftPackageOrderPage, BigGiftPackageOrderQuery query) { String sTime = null; String eTime = null; if(query.getTime()!=null && !query.getTime().isEmpty()){ String[] split = query.getTime().split(" - "); sTime = split[0] + " 00:00:00"; eTime = split[1] + " 23:59:59"; } List tBigGiftPackageOrders = this.baseMapper.pageList(tBigGiftPackageOrderPage, query, sTime, eTime); if(!tBigGiftPackageOrders.isEmpty()){ List companyId = tBigGiftPackageOrders.stream().map(TBigGiftPackageOrder::getCompanyId).collect(Collectors.toList()); List tCompanies = companyMapper.selectBatchIds(companyId); tBigGiftPackageOrders.forEach(tBigGiftPackageOrder -> { tBigGiftPackageOrder.setCompanyName(tCompanies.stream().filter(tCompany -> tCompany.getId().equals(tBigGiftPackageOrder.getCompanyId())).findFirst().get().getName()); }); List goodsIds = tBigGiftPackageOrders.stream().map(TBigGiftPackageOrder::getBigGiftPackageId).collect(Collectors.toList()); List bigGiftPackages = bigGiftPackageMapper.selectBatchIds(goodsIds); tBigGiftPackageOrders.forEach(tBigGiftPackageOrder -> { tBigGiftPackageOrder.setBigGiftPackageName(bigGiftPackages.stream().filter(tBigGiftPackage -> tBigGiftPackage.getId().equals(tBigGiftPackageOrder.getBigGiftPackageId())).findFirst().get().getName()); }); } return tBigGiftPackageOrders ; } @Override public List export(BigGiftPackageOrderQuery query) { String sTime = null; String eTime = null; if(query.getTime()!=null && !query.getTime().isEmpty()){ String[] split = query.getTime().split(" - "); sTime = split[0] + " 00:00:00"; eTime = split[1] + " 23:59:59"; } List tBigGiftPackageOrders = this.baseMapper.export(query, sTime, eTime); if(!tBigGiftPackageOrders.isEmpty()){ List companyId = tBigGiftPackageOrders.stream().map(TBigGiftPackageOrder::getCompanyId).collect(Collectors.toList()); List tCompanies = companyMapper.selectBatchIds(companyId); tBigGiftPackageOrders.forEach(tBigGiftPackageOrder -> { tBigGiftPackageOrder.setCompanyName(tCompanies.stream().filter(tCompany -> tCompany.getId().equals(tBigGiftPackageOrder.getCompanyId())).findFirst().get().getName()); }); List goodsIds = tBigGiftPackageOrders.stream().map(TBigGiftPackageOrder::getBigGiftPackageId).collect(Collectors.toList()); List bigGiftPackages = bigGiftPackageMapper.selectBatchIds(goodsIds); tBigGiftPackageOrders.forEach(tBigGiftPackageOrder -> { tBigGiftPackageOrder.setBigGiftPackageName(bigGiftPackages.stream().filter(tBigGiftPackage -> tBigGiftPackage.getId().equals(tBigGiftPackageOrder.getBigGiftPackageId())).findFirst().get().getName()); }); } return tBigGiftPackageOrders ; } @Override public List profitPageList(Page page, ProfitPageListQuery query) { String sTime = null; String eTime = null; if(query.getCreateTime()!=null && !query.getCreateTime().isEmpty()){ String[] split = query.getCreateTime().split(" - "); sTime = split[0] + " 00:00:00"; eTime = split[1] + " 23:59:59"; } List profitPageListVos = this.baseMapper.profitPageList(page, query, sTime, eTime); if(!profitPageListVos.isEmpty()){ List orderIds = profitPageListVos.stream().map(ProfitPageListVo::getId).collect(Collectors.toList()); List tCommissionTransactionFlows = commissionTransactionFlowMapper.selectList(new LambdaQueryWrapper().in(TCommissionTransactionFlow::getOrderId, orderIds)); for (ProfitPageListVo profitPageListVo : profitPageListVos) { TCommissionTransactionFlow flow = tCommissionTransactionFlows.stream().filter(e -> e.getOrderId().equals(profitPageListVo.getId()) && e.getAppUserType()==2).findFirst().orElse( null); if(flow!=null){ profitPageListVo.setSaleProfit(flow.getCommissionAmount()); } TCommissionTransactionFlow flow1 = tCommissionTransactionFlows.stream().filter(e -> e.getOrderId().equals(profitPageListVo.getId()) && e.getAppUserType()==3).findFirst().orElse( null); if(flow1!=null){ profitPageListVo.setPartnerProfit(flow1.getCommissionAmount()); } } } return profitPageListVos; } @Override public List profitPageListExport(ProfitPageListQuery query) { String sTime = null; String eTime = null; if(query.getCreateTime()!=null && !query.getCreateTime().isEmpty()){ String[] split = query.getCreateTime().split(" - "); sTime = split[0] + " 00:00:00"; eTime = split[1] + " 23:59:59"; } List profitPageListVos = this.baseMapper.profitPageListExport(query, sTime, eTime); if(!profitPageListVos.isEmpty()){ List orderIds = profitPageListVos.stream().map(ProfitPageListVo::getId).collect(Collectors.toList()); List tCommissionTransactionFlows = commissionTransactionFlowMapper.selectList(new LambdaQueryWrapper().in(TCommissionTransactionFlow::getOrderId, orderIds)); for (ProfitPageListVo profitPageListVo : profitPageListVos) { TCommissionTransactionFlow flow = tCommissionTransactionFlows.stream().filter(e -> e.getOrderId().equals(profitPageListVo.getId()) && e.getAppUserType()==2).findFirst().orElse( null); if(flow!=null){ profitPageListVo.setSaleProfit(flow.getCommissionAmount()); } TCommissionTransactionFlow flow1 = tCommissionTransactionFlows.stream().filter(e -> e.getOrderId().equals(profitPageListVo.getId()) && e.getAppUserType()==3).findFirst().orElse( null); if(flow1!=null){ profitPageListVo.setPartnerProfit(flow1.getCommissionAmount()); } } } return profitPageListVos; } }