From 842947e6ecf0bdf8fd98049c0e47eb3893a8cbdb Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期三, 25 九月 2024 18:13:14 +0800 Subject: [PATCH] 修改接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java | 160 +++++++++++++++++++++++++++++++++------------------- 1 files changed, 101 insertions(+), 59 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java index 25f1a01..eea6754 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java @@ -5,8 +5,10 @@ import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.constant.OrderNumConstants; import com.ruoyi.common.enums.BoardEnum; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.CodeGenerateUtils; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.*; import com.ruoyi.system.dto.*; import com.ruoyi.system.mapper.TOrderMealGoodsMapper; @@ -51,11 +53,17 @@ @Override public void add(TOrderMealDTO dto) { - if(Objects.isNull(dto.getBoardId())){ - throw new RuntimeException("餐桌不能为空"); - } TOrderMeal orderMeal = this.getById(dto.getId()); - orderMeal.setRemark(orderMeal.getRemark()+dto.getRemark()); + if(Objects.isNull(orderMeal)){ + throw new ServiceException("该订单不存在"); + } + if(StringUtils.isNotEmpty(dto.getRemark())){ + if(StringUtils.isNotEmpty(orderMeal.getRemark())){ + orderMeal.setRemark(orderMeal.getRemark()+dto.getRemark()); + }else { + orderMeal.setRemark(dto.getRemark()); + } + } orderMeal.setMealType(dto.getMealType()); orderMeal.setMealPerson(dto.getMealPerson()); orderMeal.setMealTime(dto.getMealTime()); @@ -63,44 +71,46 @@ // 查询菜品分类 List<TGoodsType> list1 = goodsTypeService.list(); // 查询餐桌 - TBoard board = boardService.getById(dto.getBoardId()); + TBoard board = boardService.getById(orderMeal.getBoardId()); if(!CollectionUtils.isEmpty(dto.getMealOrderGoodsDTOS())){ board.setStatus(BoardEnum.DURING_MEAL.getCode()); boardService.updateById(board); // 订单金额,订单编号 - String orderNum = OrderNumConstants.MEAL+CodeGenerateUtils.generateVolumeSn(); - dto.setOrderNum(orderNum); +// String orderNum = OrderNumConstants.MEAL+CodeGenerateUtils.generateVolumeSn(); +// dto.setOrderNum(orderNum); List<TOrderMealGoods> orderMealGoods = new ArrayList<>(); // 查询商品 - List<Long> goodsIds = dto.getMealOrderGoodsDTOS().stream().map(MealOrderGoodsDTO::getGoodsId).collect(Collectors.toList()); + List<MealOrderGoodsDTO> mealOrderGoodsDTOS = dto.getMealOrderGoodsDTOS(); + List<Long> goodsIds = mealOrderGoodsDTOS.stream().map(MealOrderGoodsDTO::getGoodsId).collect(Collectors.toList()); List<TGoods> list = goodsService.list(Wrappers.lambdaQuery(TGoods.class) .in(TGoods::getId, goodsIds)); // 查询已存在的菜品 List<TOrderMealGoods> list2 = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class) .in(TOrderMealGoods::getOrderId, dto.getId())); - dto.getMealOrderGoodsDTOS().forEach(item -> { - if(CollectionUtils.isEmpty(list2)){ - list.stream().filter(item1 -> item1.getId().equals(item.getGoodsId())).findFirst().ifPresent(item1 -> { - TOrderMealGoods orderMealGood = new TOrderMealGoods(); - orderMealGood.setGoodsName(item1.getGoodsName()); - orderMealGood.setGoodsNum(item1.getGoodsNum()); - orderMealGood.setGoodsPicture(item1.getGoodsPicture()); - orderMealGood.setGoodsCount(item.getGoodsCount()); - orderMealGood.setGoodsSalePrice(item1.getSalePrice()); - orderMealGood.setCostPrice(item1.getCostPrice()); - orderMealGood.setTypeId(item1.getTypeId()); - orderMealGood.setGoodsId(item1.getId()); - orderMealGood.setTypeName(list1.stream().filter(item2 -> item2.getId().equals(item1.getTypeId())).findFirst().get().getTypeName()); - orderMealGoods.add(orderMealGood); - }); - }else { - list2.stream().filter(item1 -> item1.getGoodsId().equals(item.getGoodsId())).findFirst().ifPresent(item1 -> { - item1.setGoodsCount(item1.getGoodsCount()+item.getGoodsCount()); - orderMealGoods.add(item1); - }); + for (MealOrderGoodsDTO mealOrderGoodsDTO : mealOrderGoodsDTOS) { + TOrderMealGoods tOrderMealGoods = list2.stream().filter(item1 -> item1.getGoodsId().equals(mealOrderGoodsDTO.getGoodsId())).findFirst().orElse(null); + if(Objects.nonNull(tOrderMealGoods)){ + tOrderMealGoods.setGoodsCount(tOrderMealGoods.getGoodsCount()+mealOrderGoodsDTO.getGoodsCount()); + orderMealGoods.add(tOrderMealGoods); + continue; } - }); - BigDecimal orderMoney = BigDecimal.ZERO; + for (TGoods goods : list) { + if(goods.getId().equals(mealOrderGoodsDTO.getGoodsId())){ + TOrderMealGoods orderMealGood = new TOrderMealGoods(); + orderMealGood.setGoodsName(goods.getGoodsName()); + orderMealGood.setGoodsNum(goods.getGoodsNum()); + orderMealGood.setGoodsPicture(goods.getGoodsPicture()); + orderMealGood.setGoodsCount(mealOrderGoodsDTO.getGoodsCount()); + orderMealGood.setGoodsSalePrice(goods.getSalePrice()); + orderMealGood.setCostPrice(goods.getCostPrice()); + orderMealGood.setTypeId(goods.getTypeId()); + orderMealGood.setGoodsId(goods.getId()); + orderMealGood.setTypeName(list1.stream().filter(item2 -> item2.getId().equals(goods.getTypeId())).findFirst().get().getTypeName()); + orderMealGoods.add(orderMealGood); + } + } + } + BigDecimal orderMoney = orderMeal.getOrderMoney(); // 添加菜品 for (TOrderMealGoods orderMealGood : orderMealGoods) { orderMealGood.setOrderId(dto.getId()); @@ -168,33 +178,35 @@ @Override public PageInfo<TOrderMealVO> pageList(TOrderMealQuery 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(StringUtils.isEmpty(query.getStartTime()) && StringUtils.isEmpty(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<TOrderMealVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); List<TOrderMealVO> list = this.baseMapper.pageList(query,pageInfo); @@ -218,6 +230,36 @@ @Override public AmountSumVO amountSum(TOrderMealQuery query) { + if(StringUtils.isEmpty(query.getStartTime()) && StringUtils.isEmpty(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.amountSum(query); } @@ -310,11 +352,11 @@ @Override public List<OrderTrendsVO> orderingTrends(TDataStatisticsQuery query) { List<OrderTrendsVO> orderTrendsVOS = this.baseMapper.orderingTrends(query); - LocalDate localDate = LocalDate.now(); + LocalDate localDate = DateUtils.stringToLocalDateTime(query.getEndTime()).toLocalDate(); for (int i = 0; i < 7; i++) { if(i == 0){ LocalDate finalLocalDate = localDate; - OrderTrendsVO orderTrendsVO = orderTrendsVOS.stream().filter(e -> DateUtils.stringToLocalDate(e.getDayTime()).compareTo(finalLocalDate) == 0).findFirst().orElse(null); + OrderTrendsVO orderTrendsVO = orderTrendsVOS.stream().filter(e -> finalLocalDate.compareTo(DateUtils.stringToLocalDate(e.getDayTime())) == 0).findFirst().orElse(null); if(Objects.isNull(orderTrendsVO)){ orderTrendsVO = new OrderTrendsVO(); orderTrendsVO.setDayTime(DateUtils.localDateToString(localDate)); @@ -324,7 +366,7 @@ }else { localDate = localDate.minusDays(1); LocalDate finalLocalDate1 = localDate; - OrderTrendsVO orderTrendsVO = orderTrendsVOS.stream().filter(e -> DateUtils.stringToLocalDate(e.getDayTime()).compareTo(finalLocalDate1) == 0).findFirst().orElse(null); + OrderTrendsVO orderTrendsVO = orderTrendsVOS.stream().filter(e -> finalLocalDate1.compareTo(DateUtils.stringToLocalDate(e.getDayTime())) == 0).findFirst().orElse(null); if(Objects.isNull(orderTrendsVO)){ orderTrendsVO = new OrderTrendsVO(); orderTrendsVO.setDayTime(DateUtils.localDateToString(finalLocalDate1)); -- Gitblit v1.7.1