diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishestype/DishesTypeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishestype/DishesTypeServiceImpl.java index cd19db23..f3d61d56 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishestype/DishesTypeServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dishestype/DishesTypeServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.system.service.dishestype; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -93,35 +94,37 @@ public class DishesTypeServiceImpl implements DishesTypeService { List list=new ArrayList<>(); //获取订单id List collect = dishesTypeMapper.selectOrderIds(carteenId, startTime, endTime); - List orderDetailDOS = dishesTypeMapper.selectByIdAmdTypeName(collect); - orderDetailDOS.forEach(f-> f.setCreator(TimePeriodEnum.getTimePeriod(f.getCreateTime()))); - // 根据时间进行分组 - Map> map = orderDetailDOS.stream() - .collect(Collectors.groupingBy(OrderDetail::getCreator)); - for (Map.Entry> en : map.entrySet()) { - DishesTypeListRespVO vo=new DishesTypeListRespVO(); - vo.setTime(en.getKey()); - //集合根据菜品名称去重 - List collect1 = new ArrayList<>(en.getValue().stream().collect(Collectors.toMap( - OrderDetail::getDishesName, - m -> m, - (oldValue, newValue) -> newValue - )).values()); - //根据类型进行分组 - collect1.stream() - .collect(Collectors.groupingBy(OrderDetail::getDishUrl)) - .forEach((v,k)-> { - Map map1 = MapUtil.builder(new HashMap()) - .put("dishesName", StrUtil.join(",",k.stream() - .map(OrderDetail::getDishesName) - .collect(Collectors.toList()))) - .put("typeName", v) - .map(); - vo.getDishesTypeName().add(map1); - }); - list.add(vo); + if(ObjUtil.isNotEmpty(collect)){ + List orderDetailDOS = dishesTypeMapper.selectByIdAmdTypeName(collect); + orderDetailDOS.forEach(f-> f.setCreator(TimePeriodEnum.getTimePeriod(f.getCreateTime()))); + // 根据时间进行分组 + Map> map = orderDetailDOS.stream() + .collect(Collectors.groupingBy(OrderDetail::getCreator)); + for (Map.Entry> en : map.entrySet()) { + DishesTypeListRespVO vo=new DishesTypeListRespVO(); + vo.setTime(en.getKey()); + //集合根据菜品名称去重 + List collect1 = new ArrayList<>(en.getValue().stream().collect(Collectors.toMap( + OrderDetail::getDishesName, + m -> m, + (oldValue, newValue) -> newValue + )).values()); + //根据类型进行分组 + collect1.stream() + .collect(Collectors.groupingBy(OrderDetail::getDishUrl)) + .forEach((v,k)-> { + Map map1 = MapUtil.builder(new HashMap()) + .put("dishesName", StrUtil.join(",",k.stream() + .map(OrderDetail::getDishesName) + .collect(Collectors.toList()))) + .put("typeName", v) + .map(); + vo.getDishesTypeName().add(map1); + }); + list.add(vo); + } + list.sort(Comparator.comparing(DishesTypeListRespVO::getTime)); } - list.sort(Comparator.comparing(DishesTypeListRespVO::getTime)); return list; } } \ No newline at end of file