diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/DateUtil.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/DateUtil.java index a7be698..13aeabc 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/DateUtil.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/DateUtil.java @@ -4,6 +4,7 @@ import com.bonus.common.houqin.constant.GlobalConstants; import java.time.DayOfWeek; import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; import java.util.ArrayList; import java.util.HashMap; @@ -11,6 +12,8 @@ import java.util.List; public class DateUtil { + static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + public static List getLastWeekDate() { List objects = new ArrayList<>(); LocalDate sunday = LocalDate.now().with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY)); @@ -40,4 +43,29 @@ public class DateUtil { return dateHashMap; } + /** + * 获取给定日期所在周的日期(周一到周日) + * @param date 给定的日期 + * @return 包含周一到周日的日期列表 + */ + public static List getWeekDates(LocalDate date) { + List weekDates = new ArrayList<>(); + // 找到本周的周一 + LocalDate monday = date.with(DayOfWeek.MONDAY); + // 添加周一到周日的日期 + for (int i = 0; i < 7; i++) { + weekDates.add(monday.plusDays(i)); + } + return weekDates; + } + + public static void main(String[] args) { + LocalDate givenDate = LocalDate.of(2025, 7, 4); + List weekDates = getWeekDates(givenDate); + System.out.println(givenDate.getYear()); + for (LocalDate date : weekDates) { + System.out.println(date.format(formatter) + " (" + date.getDayOfWeek() + ")"); + } + } + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/WeekRecipeDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/WeekRecipeDTO.java index 07f0848..75c17fc 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/WeekRecipeDTO.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/WeekRecipeDTO.java @@ -7,6 +7,9 @@ import java.time.LocalDate; @Data public class WeekRecipeDTO { + @ApiModelProperty(value = "食堂id") + private Long canteenId; + @ApiModelProperty(value = "菜单日期") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate menuDate; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/WeekRecipeDetailVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/WeekRecipeDetailVO.java index b641e6d..adfd6f3 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/WeekRecipeDetailVO.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/WeekRecipeDetailVO.java @@ -15,6 +15,8 @@ public class WeekRecipeDetailVO { @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate menuDate; + private Long recipeId; + @ApiModelProperty(value = "餐次(早中晚)") private int mealType; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/mapper/ZhhqCookRecipeMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/mapper/ZhhqCookRecipeMapper.java index e618fae..98b455b 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/mapper/ZhhqCookRecipeMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/mapper/ZhhqCookRecipeMapper.java @@ -1,5 +1,6 @@ package com.bonus.canteen.core.zhhq.mapper; +import com.bonus.canteen.core.zhhq.domain.WeekRecipeDetailVO; import org.apache.ibatis.annotations.Param; import java.time.LocalDate; import java.util.List; @@ -12,5 +13,7 @@ import java.util.Set; * @date 2025-05-25 */ public interface ZhhqCookRecipeMapper { + public List selectWeekRecipeList(); + public List selectWeekRecipeDetail(@Param("weekDates") List weekDates, @Param("recipeIds") List recipeIds); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/service/impl/ZhhqCookRecipeServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/service/impl/ZhhqCookRecipeServiceImpl.java index d4dfb63..d1468dd 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/service/impl/ZhhqCookRecipeServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/service/impl/ZhhqCookRecipeServiceImpl.java @@ -1,6 +1,10 @@ package com.bonus.canteen.core.zhhq.service.impl; +import com.bonus.canteen.core.basic.domain.BasicCanteen; +import com.bonus.canteen.core.basic.mapper.BasicCanteenMapper; +import com.bonus.canteen.core.common.utils.DateUtil; import com.bonus.canteen.core.zhhq.domain.WeekRecipeDTO; +import com.bonus.canteen.core.zhhq.domain.WeekRecipeDetailVO; import com.bonus.canteen.core.zhhq.domain.WeekRecipeVO; import com.bonus.canteen.core.zhhq.mapper.ZhhqCookRecipeMapper; import com.bonus.canteen.core.zhhq.service.IZhhqCookRecipeService; @@ -24,11 +28,26 @@ import java.util.stream.Collectors; @Service @Slf4j public class ZhhqCookRecipeServiceImpl implements IZhhqCookRecipeService { + @Autowired + private BasicCanteenMapper basicCanteenMapper; @Autowired private ZhhqCookRecipeMapper zhhqCookRecipeMapper; @Override public WeekRecipeVO getWeekRecipeDetailList(WeekRecipeDTO dto) { - return null; + WeekRecipeVO weekRecipeVO = new WeekRecipeVO(); + weekRecipeVO.setRecipeName("周菜谱"); + BasicCanteen basicCanteen = basicCanteenMapper.selectBasicCanteenByCanteenId(dto.getCanteenId()); + weekRecipeVO.setCanteenName(basicCanteen.getCanteenName()); + List weekDates = DateUtil.getWeekDates(dto.getMenuDate()); + weekRecipeVO.setRecipeYear(dto.getMenuDate().getYear()); + weekRecipeVO.setStartDate(weekDates.get(0)); + weekRecipeVO.setEndDate(weekDates.get(weekDates.lastIndexOf(weekDates))); + //查询一周菜谱详情 + List recipeIds = zhhqCookRecipeMapper.selectWeekRecipeList(); + List recipeDetails = zhhqCookRecipeMapper.selectWeekRecipeDetail(weekDates, recipeIds); + //组装原料及营养信息 + weekRecipeVO.setRecipeDetails(recipeDetails); + return weekRecipeVO; } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/zhhq/ZhhqCookRecipeMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/zhhq/ZhhqCookRecipeMapper.xml index 666ebe6..ef8a7e3 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/zhhq/ZhhqCookRecipeMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/zhhq/ZhhqCookRecipeMapper.xml @@ -3,6 +3,74 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + +