From 357cdc204c1bffd845f40e71e7a5a2c5e4885d6f Mon Sep 17 00:00:00 2001 From: jiask <1069621233@qq.com> Date: Mon, 18 Aug 2025 11:21:13 +0800 Subject: [PATCH] =?UTF-8?q?jsk=20=20=E6=B7=BB=E5=8A=A0=E9=A2=84=E5=AE=9A?= =?UTF-8?q?=E9=A4=90=E6=97=B6=E9=97=B4=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MenuRecipeServiceImpl.java | 30 ++++++++++++++++++ .../menu/vo/AppletReserveRecipeDishesVO.java | 31 +++++++++++++++++++ .../mapper/menu/MenuRecipeMapper.xml | 13 +++++++- 3 files changed, 73 insertions(+), 1 deletion(-) diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeServiceImpl.java index 349a94bc..c0861d32 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeServiceImpl.java @@ -4,10 +4,12 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bonus.canteen.core.menu.model.AllocMealtimeModel; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.houqin.constant.DelFlagEnum; import com.bonus.canteen.core.allocation.api.AllocCanteenApi; @@ -37,6 +39,7 @@ import com.bonus.canteen.core.order.api.OrderMenuApi; import com.bonus.canteen.core.order.common.vo.OrderGoodsNumVO; import com.bonus.common.houqin.i18n.I18n; import com.bonus.common.houqin.utils.id.Id; +import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import org.slf4j.Logger; @@ -285,6 +288,33 @@ public class MenuRecipeServiceImpl extends ServiceImpl typeList=vo.getTypeList(); + if (ObjectUtil.isNotEmpty(typeList)) { + for(AppletReserveRecipeTypeVO vo1:typeList){ + List dishesList=vo1.getDishesList(); + if (ObjectUtil.isNotEmpty(dishesList)) { + for(AppletReserveRecipeDishesVO vo2:dishesList){ + String mealtime=vo2.getMealTime(); + if(mealtime!=null&&mealtime.contains("\"endTime\":")){ + ObjectMapper mapper = new ObjectMapper(); + AllocMealtimeModel person =new AllocMealtimeModel(); + try{ + person = (AllocMealtimeModel) JSONObject.parseObject(mealtime, AllocMealtimeModel.class); + }catch (Exception e){e.printStackTrace();} + if(person!=null){ + vo2.setStartTime(person.getStartTime()); + } + if(person!=null){ + vo2.setEndTime(person.getEndTime()); + } + + } + } + } + } + } + } resultList.sort(Collections.reverseOrder((s1, s2) -> { return s2.getMealtimeType() - s1.getMealtimeType(); })); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletReserveRecipeDishesVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletReserveRecipeDishesVO.java index 108db2b2..94c213ce 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletReserveRecipeDishesVO.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletReserveRecipeDishesVO.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.math.BigDecimal; +import java.time.LocalTime; import java.util.List; @ApiModel("菜品详情") @@ -45,6 +46,12 @@ public class AppletReserveRecipeDishesVO { private List tasteNameList; @ApiModelProperty("预定时间") private String reserveEndTime; + @ApiModelProperty("当日预定时间") + private String mealTime; + @ApiModelProperty("当日预定结束时间") + private LocalTime endTime; + @ApiModelProperty("当日预定开始时间") + private LocalTime startTime; public String getDishesImgUrl() { return ObjectUtil.isNotEmpty(this.dishesImgUrl) ? SysUtil.getCutFileUrl(this.dishesImgUrl.split(",")[0]) : this.dishesImgUrl; @@ -181,4 +188,28 @@ public class AppletReserveRecipeDishesVO { public void setReserveEndTime(String reserveEndTime) { this.reserveEndTime = reserveEndTime; } + + public String getMealTime() { + return mealTime; + } + + public void setMealTime(String mealTime) { + this.mealTime = mealTime; + } + + public LocalTime getEndTime() { + return endTime; + } + + public void setEndTime(LocalTime endTime) { + this.endTime = endTime; + } + + public LocalTime getStartTime() { + return startTime; + } + + public void setStartTime(LocalTime startTime) { + this.startTime = startTime; + } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml index 636c98b3..2b1ab2a6 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml @@ -147,6 +147,7 @@ + @@ -193,7 +194,7 @@ md.size_json, mdtt.taste_name, mdsr.monthly_sales, - mdsr.good_probability,amd.model_value as reserveEndTime + mdsr.good_probability,amd.model_value as reserveEndTime,amd2.model_value as mealTime from menu_recipe_detail mrd inner join menu_recipe_dishes m on mrd.detail_id = m.detail_id @@ -211,6 +212,16 @@ left join menu_taste_dishes mtd on md.dishes_id = mtd.dishes_id left join menu_dishes_taste mdtt on mtd.taste_id = mdtt.taste_id left join alloc_metadata amd on mr.canteen_id = amd.canteen_id and mr.stall_id = amd.stall_id and amd.model_key='reserveEndTime' + left join ( + select a.*,case when a.model_key='mealtimeBreakfast' then '1' + when a.model_key='mealtimeLunch' then '2' + when a.model_key='mealtimeAfternoonTea' then '3' + when a.model_key='mealtimeDinner' then '4' + when a.model_key='mealtimeMidnightSnack' then '5' + else '0' end as model_keyd + from alloc_metadata a where a.model_type='mealtime' + ) amd2 + on mrd.mealtime_type=amd2.model_keyd and mr.canteen_id = amd2.canteen_id and mr.stall_id = amd2.stall_id where mrd.apply_date = #{applyDate} and mr.recipe_id = #{recipeId}