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