xuhy
2024-09-05 8c2128317af3e5a2df32150f3684167925ee4508
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
@@ -9,6 +9,7 @@
import com.ruoyi.system.domain.*;
import com.ruoyi.system.dto.TOrderSaleDTO;
import com.ruoyi.system.mapper.TOrderSaleMapper;
import com.ruoyi.system.query.TDataGeneratorSaleQuery;
import com.ruoyi.system.query.TDataStatisticsQuery;
import com.ruoyi.system.query.TOrderMealQuery;
import com.ruoyi.system.query.TOrderSaleQuery;
@@ -92,6 +93,13 @@
        }
        PageInfo<TOrderSaleVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
        List<TOrderSaleVO> list = this.baseMapper.pageList(query,pageInfo);
        List<Long> ids = list.stream().map(TOrderSaleVO::getId).collect(Collectors.toList());
        List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class)
                .in(TOrderSaleGoods::getOrderId, ids));
        list.forEach(e->{
            e.setGoodsAmount(list1.stream().filter(m->m.getOrderId().equals(e.getId())).map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get());
            e.setOrderSaleGoods(list1.stream().filter(m->m.getOrderId().equals(e.getId())).collect(Collectors.toList()));
        });
        pageInfo.setRecords(list);
        return pageInfo;
    }
@@ -185,4 +193,51 @@
    public List<OrderTrendsVO> orderingTrends(TDataStatisticsQuery query) {
        return this.baseMapper.orderingTrends(query);
    }
    @Override
    public Map<String, BigDecimal> getDataGeneratorMealDetail(TDataGeneratorSaleQuery query) {
        return this.baseMapper.getDataGeneratorMealDetail(query);
    }
    @Override
    public List<TOrderSaleVO> saleGeneratorExport(TDataGeneratorSaleQuery query) {
        if(Objects.nonNull(query.getTimeType())){
            LocalDateTime startTime = null;
            LocalDateTime endTime = null;
            switch (query.getTimeType()){
                case 1:
                    // 今日
                    startTime = LocalDateTime.MIN;
                    endTime = LocalDateTime.MAX;
                    break;
                case 2:
                    // 昨日
                    startTime = LocalDateTime.now().minusDays(1);
                    endTime = LocalDateTime.now().minusDays(1);
                    break;
                case 3:
                    // 近7天
                    startTime = LocalDateTime.now().minusDays(7);
                    endTime = LocalDateTime.now();
                    break;
                case 4:
                    // 近30天
                    startTime = LocalDateTime.now().minusDays(30);
                    endTime = LocalDateTime.now();
                    break;
            }
            query.setStartTime(startTime);
            query.setEndTime(endTime);
        }
        List<TOrderSaleVO> list = this.baseMapper.saleGeneratorExport(query);
        List<Long> ids = list.stream().map(TOrderSaleVO::getId).collect(Collectors.toList());
        List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class)
                .in(TOrderSaleGoods::getOrderId,ids));
        // 查询商品信息
        for (TOrderSaleVO orderSaleVO : list) {
            List<TOrderSaleGoods> collect = list1.stream().filter(e -> e.getOrderId().equals(orderSaleVO.getId())).collect(Collectors.toList());
            orderSaleVO.setOrderSaleGoods(collect);
        }
        return list;
    }
}