From 66a4d910a33d1273427b513e008bd9cd4c5d4054 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 23 九月 2024 19:04:15 +0800 Subject: [PATCH] 修改接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java | 114 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 73 insertions(+), 41 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java index 62f8b4b..2aadbc9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java +++ b/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.CheckoutDTO; import com.ruoyi.system.dto.TOrderSaleDTO; +import com.ruoyi.system.mapper.TOrderSaleGoodsMapper; import com.ruoyi.system.mapper.TOrderSaleMapper; import com.ruoyi.system.query.*; import com.ruoyi.system.service.TGoodsService; @@ -43,6 +44,8 @@ @Autowired private TOrderSaleGoodsService orderSaleGoodsService; @Autowired + private TOrderSaleGoodsMapper orderSaleGoodsMapper; + @Autowired private TGoodsTypeService goodsTypeService; @Autowired private TGoodsService goodsService; @@ -66,33 +69,35 @@ @Override public PageInfo<TOrderSaleVO> pageList(TOrderSaleQuery query) { - if(Objects.nonNull(query.getTimeType())){ - LocalDateTime startTime = null; - LocalDateTime endTime = null; - switch (query.getTimeType()){ - case 1: - // 今日 - startTime = DateUtils.getDayStart(LocalDateTime.now()); - endTime = DateUtils.getDayEnd(LocalDateTime.now()); - break; - case 2: - // 昨日 - startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1)); - endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1)); - break; - case 3: - // 近7天 - startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7)); - endTime = DateUtils.getDayEnd(LocalDateTime.now()); - break; - case 4: - // 近30天 - startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30)); - endTime = DateUtils.getDayEnd(LocalDateTime.now()); - break; + if(Objects.nonNull(query.getStartTime()) && Objects.nonNull(query.getEndTime())){ + if(Objects.nonNull(query.getTimeType())){ + LocalDateTime startTime = null; + LocalDateTime endTime = null; + switch (query.getTimeType()){ + case 1: + // 今日 + startTime = DateUtils.getDayStart(LocalDateTime.now()); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); + break; + case 2: + // 昨日 + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1)); + endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1)); + break; + case 3: + // 近7天 + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); + break; + case 4: + // 近30天 + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); + break; + } + query.setStartTime(DateUtils.localDateTimeToDate(startTime)); + query.setEndTime(DateUtils.localDateTimeToDate(endTime)); } - query.setStartTime(DateUtils.localDateTimeToDate(startTime)); - query.setEndTime(DateUtils.localDateTimeToDate(endTime)); } PageInfo<TOrderSaleVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); List<TOrderSaleVO> list = this.baseMapper.pageList(query,pageInfo); @@ -103,7 +108,11 @@ list.forEach(e->{ List<TOrderSaleGoods> collect = list1.stream().filter(m -> m.getOrderId().equals(e.getId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(collect)){ - e.setGoodsAmount(collect.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get()); + BigDecimal goodsAmount = BigDecimal.ZERO; + for (TOrderSaleGoods tOrderSaleGoods : collect) { + goodsAmount = goodsAmount.add(tOrderSaleGoods.getThisSalePrice().multiply(new BigDecimal(tOrderSaleGoods.getGoodsCount()))); + } + e.setGoodsAmount(goodsAmount); e.setOrderSaleGoods(collect); } }); @@ -135,25 +144,18 @@ } @Override - public List<SalesRankingVO> salesRanking(TDataStatisticsQuery query) { + public PageInfo<SalesRankingVO> salesRanking(TDataStatisticsQuery query) { + PageInfo<SalesRankingVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); List<TOrderSale> list = this.list(Wrappers.lambdaQuery(TOrderSale.class) .eq(TOrderSale::getShopId, query.getShopId()) .between(TOrderSale::getOrderTime, query.getStartTime(), query.getEndTime())); List<Long> ids = list.stream().map(TOrderSale::getId).collect(Collectors.toList()); - List<SalesRankingVO> salesRankingVOS = new ArrayList<>(); - if(!CollectionUtils.isEmpty(ids)){ - List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class) - .in(TOrderSaleGoods::getOrderId, ids)); - Map<Long, List<TOrderSaleGoods>> listMap = list1.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getTypeId)); - List<TGoodsType> list2 = goodsTypeService.list(); - listMap.forEach((k,v)->{ - SalesRankingVO salesRankingVO = new SalesRankingVO(); - salesRankingVO.setTypeName(list2.stream().filter(e->e.getId().equals(k)).findFirst().get().getTypeName()); - salesRankingVO.setSalesVolume(v.stream().map(item->item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount()))).reduce(BigDecimal.ZERO, BigDecimal::add)); - salesRankingVOS.add(salesRankingVO); - }); + if(CollectionUtils.isEmpty(ids)){ + return new PageInfo<>(); } - return salesRankingVOS; + List<SalesRankingVO> salesRankingVOS = orderSaleGoodsMapper.salesRanking(ids,pageInfo); + pageInfo.setRecords(salesRankingVOS); + return pageInfo; } @Override @@ -205,6 +207,36 @@ @Override public Map<String, Double> getDataGeneratorSaleDetail(TDataGeneratorSaleQuery query) { + if(Objects.nonNull(query.getStartTime()) && Objects.nonNull(query.getEndTime())){ + if(Objects.nonNull(query.getTimeType())){ + LocalDateTime startTime = null; + LocalDateTime endTime = null; + switch (query.getTimeType()){ + case 1: + // 今日 + startTime = DateUtils.getDayStart(LocalDateTime.now()); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); + break; + case 2: + // 昨日 + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1)); + endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1)); + break; + case 3: + // 近7天 + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); + break; + case 4: + // 近30天 + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); + break; + } + query.setStartTime(DateUtils.localDateTimeToDate(startTime)); + query.setEndTime(DateUtils.localDateTimeToDate(endTime)); + } + } return this.baseMapper.getDataGeneratorSaleDetail(query); } -- Gitblit v1.7.1