Bonus-Cloud-JYY-Smart-Canteen/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookRecipeH5Mapper.xml

151 lines
7.1 KiB
XML
Raw Normal View History

2025-06-06 14:52:57 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bonus.canteen.core.cook.mapper.CookRecipeH5Mapper">
<resultMap id="appletReserveCanteenVO" type="com.bonus.canteen.core.basic.domain.AppletReserveCanteenVO">
<result property="canteenId" column="canteen_id"/>
<result property="canteenName" column="canteen_name"/>
<result property="canteenImgUrl" column="canteen_img_url"/>
<result property="startBusinessTime" column="start_business_time_ac"/>
<result property="endBusinessTime" column="end_business_time_ac"/>
<result property="businessState" column="business_state_ac"/>
<collection property="stallList" ofType="com.bonus.canteen.core.basic.domain.AppletReserveStallVO">
<result property="stallId" column="stall_id"/>
<result property="stallName" column="stall_name"/>
<result property="stallImgUrl" column="stall_img_url"/>
<result property="recipeId" column="recipe_id"/>
<result property="startBusinessTime" column="start_business_time"/>
<result property="endBusinessTime" column="end_business_time"/>
<result property="businessState" column="business_state"/>
</collection>
</resultMap>
<resultMap id="appletReserveRecipeVO" type="com.bonus.canteen.core.cook.vo.AppletReserveRecipeVO">
<result property="mealtimeType" column="mealtime_type"/>
<collection property="typeList" ofType="com.bonus.canteen.core.cook.vo.AppletReserveRecipeTypeVO">
<result property="typeId" column="type_id"/>
<result property="typeName" column="type_name"/>
<collection property="dishesList" ofType="com.bonus.canteen.core.cook.vo.AppletReserveRecipeDishesVO">
<result property="baseDishesId" column="base_dishes_id"/>
<result property="dishesName" column="dishes_name"/>
<result property="detailType" column="detail_type"/>
<result property="dishesImgUrl" column="dishes_img_url"/>
<result property="detailId" column="detail_id"/>
<result property="canteenId" column="canteen_id"/>
<result property="canteenName" column="canteen_name"/>
<result property="stallId" column="stall_id"/>
<result property="stallName" column="stall_name"/>
<result property="recommendFlag" column="recommend_flag"/>
<collection property="dishesDetailList" ofType="com.bonus.canteen.core.cook.vo.AppletCurrentDishesDetailVO">
<result property="dishesId" column="dishes_id"/>
<result property="dishesName" column="real_dishes_name"/>
<result property="surplusNum" column="surplus_num"/>
<result property="restrictNum" column="restrict_num"/>
<result property="dishesPrice" column="dishes_price"/>
<result property="prefPrice" column="pref_price"/>
<result property="sizeType" column="size_type"/>
<result property="sizeJson" column="size_json"/>
<result property="monthlySales" column="monthly_sales"/>
<result property="goodProbability" column="good_probability"/>
</collection>
<!-- <collection property="tasteNameList" ofType="string">-->
<!-- <result property="tasteName" column="taste_name"/>-->
<!-- </collection>-->
</collection>
</collection>
</resultMap>
<select id="selectReserveMealCanteenList" resultMap="appletReserveCanteenVO">
select
ac.canteen_id,
ac.canteen_name,
ac.img_url as canteen_img_url,
ass.stall_id,
ass.stall_name,
ass.img_url as stall_img_url,
mr.recipe_id,
ac.start_business_time as start_business_time_ac,
ac.end_business_time as end_business_time_ac,
ac.business_state as business_state_ac,
ass.start_business_time,
ass.end_business_time,
ass.business_state
from
alloc_canteen ac
left join alloc_stall ass on ac.canteen_id = ass.canteen_id
left join menu_recipe mr on mr.stall_id = ass.stall_id
left join menu_app_recipe mar on mar.recipe_id = mr.recipe_id
where
bind_type = 2
and ac.del_flag = 0
and ass.del_flag = 0
</select>
<select id="selectMonthSalesStall" resultType="com.bonus.canteen.core.basic.domain.CookStallSaleModel">
select
stall_id,
sum(monthly_sales) as monthly_sales
from
menu_dishes_sale_record
where
sale_month = month(curdate())
and stall_id in
<foreach collection="stallIdList" item="stallId" open="(" separator="," close=")">
#{stallId}
</foreach>
group by
stall_id
</select>
<!-- 获取预定点餐菜谱 -->
<select id="selectReserveRecipe" resultMap="appletReserveRecipeVO">
select
mrd.mealtime_type,
md.meal_type as type_id,
'菜品' as type_name,
mdb.base_dishes_id,
md.dishes_id,
mdb.dishes_name,
md.dishes_name as real_dishes_name,
md.meal_type as detail_type,
md.image_url as dishes_img_url,
mrd.detail_id,
m.surplus_num,
m.restrict_num,
m.price as dishes_price,
m.sale_price as pref_price,
ac.canteen_id,
ac.canteen_name,
ass.stall_id,
ass.stall_name,
m.size_type,
m.recommend_flag,
md.size_json,
mdsr.monthly_sales,
mdsr.good_probability
from
menu_recipe_detail mrd
inner join menu_recipe_dishes m on mrd.detail_id = m.detail_id
inner join menu_dishes md on m.dishes_id = md.dishes_id
inner join menu_dishes_type mdt on md.type_id = mdt.type_id
inner join menu_recipe mr on mrd.recipe_id = mr.recipe_id
inner join menu_app_recipe mar on mr.recipe_id = mar.recipe_id
and mar.bind_type = 2
left join menu_dishes_sale_record mdsr on md.dishes_id = mdsr.dishes_id
and mr.stall_id = mdsr.stall_id
and mdsr.sale_month = month(curdate())
left join alloc_canteen ac on mr.canteen_id = ac.canteen_id
left join alloc_stall ass on mr.stall_id = ass.stall_id
left join menu_dishes_base mdb on md.base_dishes_id = mdb.base_dishes_id
-- 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
where
mrd.apply_date = #{applyDate}
and mr.recipe_id = #{recipeId}
order by
m.sort_num asc
</select>
</mapper>