Bonus-Cloud-Houqin/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/alloc/canteen/AllocStallMapper.xml

264 lines
10 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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.allocation.canteen.mapper.AllocStallMapper">
<!-- 分页查询档口列表 -->
<select id="pageStall" resultType="com.bonus.canteen.core.allocation.canteen.vo.AllocStallVO">
SELECT
t1.stall_id, t1.stall_num, t1.stall_name, t5.nick_name as cust_name, t1.contact_tel,
t1.business_state, t1.start_business_time, t1.end_business_time, t1.if_use_call_num,
t1.on_line_meal_code_prefix, t1.off_line_meal_code_prefix,
t1.img_url, t1.if_book, t1.if_reserve, t1.crtime, t1.uptime, t1.pay_code_url,
t1.canteen_id, t2.canteen_name, t3.labelNameStr, t4.kindNameStr, t6.area_name
FROM
alloc_stall t1
INNER JOIN alloc_canteen t2
ON t1.canteen_id = t2.canteen_id
LEFT JOIN (
SELECT
stall_id, GROUP_CONCAT(label_name) AS labelNameStr
FROM
alloc_label
GROUP BY stall_id) t3
ON t1.stall_id = t3.stall_id
LEFT JOIN (
SELECT
stall_id, GROUP_CONCAT(kind_name) AS kindNameStr
FROM
alloc_kind
GROUP BY stall_id) t4
ON t1.stall_id = t4.stall_id
LEFT JOIN
sys_user t5 ON t1.cust_id = t5.cust_id
INNER JOIN
alloc_area t6 ON t2.area_id = t6.area_id
WHERE
t1.if_del = #{param.ifDel,jdbcType=NUMERIC}
AND t1.stall_type = #{param.stallType}
<if test="param.canteenId != null">
AND t1.canteen_id = #{param.canteenId}
</if>
<if test="param.stallId != null">
AND t1.stall_id = #{param.stallId}
</if>
<if test="param.stallName != null and param.stallName != ''">
AND t1.stall_name LIKE #{param.stallName}
</if>
<if test="param.areaIdList != null and param.areaIdList.size() > 0">
AND t2.area_id IN
<foreach collection="param.areaIdList" item="areaId" separator="," open="(" close=")">
#{areaId}
</foreach>
</if>
ORDER BY t1.id DESC
</select>
<!-- 根据档口id 更新档口信息 -->
<update id="updateByStallId">
UPDATE
alloc_stall
SET
stall_name = #{dto.stallName},
canteen_id = #{dto.canteenId},
area_id = #{dto.areaId},
cust_id = #{dto.custId},
contact_tel = #{dto.contactTel},
main_project = #{dto.mainProject},
start_business_time = #{dto.startBusinessTime},
end_business_time = #{dto.endBusinessTime},
if_use_call_num = #{dto.ifUseCallNum},
on_line_meal_code_prefix = #{dto.onLineMealCodePrefix},
off_line_meal_code_prefix = #{dto.offLineMealCodePrefix},
if_enable_delivery = #{dto.ifEnableDelivery},
deliveries = #{dto.deliveries},
if_enable_order = #{dto.ifEnableOrder},
img_url = #{dto.imgUrl},
if_book = #{dto.ifBook},
if_reserve = #{dto.ifReserve},
if_enable_pay_code = #{dto.ifEnablePayCode},
pay_code_url = #{dto.payCodeUrl}
WHERE
stall_id = #{stallId}
</update>
<select id="listAuthStallByUserRole" resultType="com.bonus.canteen.core.allocation.canteen.vo.AllocStallVO">
SELECT t1.stall_id,
t1.canteen_id,
t1.stall_name,
t1.stall_type
FROM alloc_stall t1
WHERE t1.if_del = 2
</select>
<!-- 查询带权限的档口列表 -->
<select id="listAuthStall" resultType="com.bonus.canteen.core.allocation.canteen.vo.AllocStallAuthVO">
SELECT
t1.stall_id, t1.stall_name
FROM
alloc_stall t1
WHERE
t1.if_del = 2
AND t1.stall_type = 1
<if test="canteenIdList != null and canteenIdList.size() > 0">
AND t1.canteen_id IN
<foreach collection="canteenIdList" item="canteenId" separator="," open="(" close=")">
#{canteenId}
</foreach>
</if>
</select>
<select id="pageRecipeMealLineInfo" resultType="com.bonus.canteen.core.allocation.canteen.vo.AllocRecipeStallVO">
SELECT
t3.area_id, t3.area_name, t2.canteen_id, t2.canteen_name, t1.stall_id, t1.stall_name,
t8.meal_line_id, t8.meal_line_name, t8.meal_line_type
FROM
alloc_meal_line t8
LEFT JOIN alloc_stall t1 ON t8.stall_id = t1.stall_id
LEFT JOIN alloc_canteen t2 ON t1.canteen_id = t2.canteen_id
LEFT JOIN alloc_area t3 ON t2.area_id = t3.area_id
where t8.if_del = 2 and t1.if_del = 2 and t2.if_del = 2 and t3.if_del = 2
<if test="param.recipeName !=null and param.recipeName !=''">
AND EXISTS (
select null
from menu_app_recipe t4 INNER JOIN menu_recipe t5 on t4.recipe_id = t5.recipe_id
where t4.meal_line_id = t8.meal_line_id AND t4.bind_type = #{param.bindType}
and t5.recipe_name like #{param.recipeName}
)
</if>
<if test="param.deviceTypeList != null and param.deviceTypeList.size() > 0">
AND EXISTS (
SELECT NULL
FROM
device_bind t6
LEFT JOIN device_info t7 ON t7.device_id = t6.device_id
WHERE
t6.canteen_id = t2.canteen_id
AND t6.stall_id = t1.stall_id
AND t6.meal_line_id = t8.meal_line_id
AND t7.device_type IN
<foreach collection="param.deviceTypeList" item="deviceType" separator="," open="(" close=")">
#{deviceType}
</foreach>
)
</if>
<if test="param.areaId != null">
AND t3.area_id = #{param.areaId}
</if>
<if test="param.areaIds != null and param.areaIds.size() > 0">
AND t3.area_id IN
<foreach collection="param.areaIds" item="areaId" separator="," open="(" close=")">
#{areaId}
</foreach>
</if>
<if test="param.canteenId != null">
AND t2.canteen_id = #{param.canteenId}
</if>
<if test="param.canteenIds != null and param.canteenIds.size() > 0">
AND t2.canteen_id IN
<foreach collection="param.canteenIds" item="canteenId" separator="," open="(" close=")">
#{canteenId}
</foreach>
</if>
<if test="param.stallId != null">
AND t1.stall_id = #{param.stallId}
</if>
<if test="param.stallIds != null and param.stallIds.size() > 0">
AND t1.stall_id IN
<foreach collection="param.stallIds" item="stallId" separator="," open="(" close=")">
#{stallId}
</foreach>
</if>
<if test="param.mealLineId != null">
AND t8.meal_line_id = #{param.mealLineId}
</if>
<if test="param.mealLineType != null">
AND t8.meal_line_type = #{param.mealLineType}
</if>
</select>
<!-- 查询菜谱档口关联信息 -->
<select id="pageRecipeStallInfo" resultType="com.bonus.canteen.core.allocation.canteen.vo.AllocRecipeStallVO">
SELECT
t3.area_id, t3.area_name, t2.canteen_id, t2.canteen_name, t1.stall_id, t1.stall_name
FROM
alloc_stall t1
LEFT JOIN alloc_canteen t2 ON t1.canteen_id = t2.canteen_id
LEFT JOIN alloc_area t3 ON t2.area_id = t3.area_id
where t1.if_del = 2 and t2.if_del = 2 and t3.if_del = 2
<if test="param.recipeName !=null and param.recipeName !=''">
AND EXISTS (
select null
from menu_app_recipe t4 INNER JOIN menu_recipe t5 on t4.recipe_id = t5.recipe_id
where t5.stall_id = t1.stall_id AND t4.bind_type = #{param.bindType}
and t5.recipe_name like #{param.recipeName}
)
</if>
<if test="param.deviceTypeList != null and param.deviceTypeList.size() > 0">
AND EXISTS (
SELECT NULL
FROM
device_bind t6
LEFT JOIN device_info t7 ON t7.device_id = t6.device_id
WHERE
t6.canteen_id = t2.canteen_id
AND t6.stall_id = t1.stall_id
AND t7.device_type IN
<foreach collection="param.deviceTypeList" item="deviceType" separator="," open="(" close=")">
#{deviceType}
</foreach>
)
</if>
<if test="param.areaId != null">
AND t3.area_id = #{param.areaId}
</if>
<if test="param.areaIds != null and param.areaIds.size() > 0">
AND t3.area_id IN
<foreach collection="param.areaIds" item="areaId" separator="," open="(" close=")">
#{areaId}
</foreach>
</if>
<if test="param.canteenId != null">
AND t2.canteen_id = #{param.canteenId}
</if>
<if test="param.canteenIds != null and param.canteenIds.size() > 0">
AND t2.canteen_id IN
<foreach collection="param.canteenIds" item="canteenId" separator="," open="(" close=")">
#{canteenId}
</foreach>
</if>
<if test="param.stallId != null">
AND t1.stall_id = #{param.stallId}
</if>
<if test="param.stallIds != null and param.stallIds.size() > 0">
AND t1.stall_id IN
<foreach collection="param.stallIds" item="stallId" separator="," open="(" close=")">
#{stallId}
</foreach>
</if>
</select>
<!-- 根据食堂id获取档口列表 -->
<select id="listStallByCanteenId" resultType="com.bonus.canteen.core.allocation.canteen.vo.CanteenStallVO">
SELECT stall_id,
canteen_id
FROM alloc_stall
WHERE canteen_id = #{canteenId}
</select>
<!-- 通过区域id列表查询未删除的全部档口id列表 -->
<select id="listStallIdByAreaIdList" resultType="java.lang.Long">
SELECT
t1.stall_id
FROM
alloc_stall t1
WHERE
t1.if_del = 2
<if test="areaIdList != null and areaIdList.size() > 0">
AND t1.area_id IN
<foreach collection="areaIdList" item="areaId" separator="," open="(" close=")">
#{areaId}
</foreach>
</if>
</select>
</mapper>