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

264 lines
10 KiB
XML
Raw Normal View History

2025-02-27 13:43:02 +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" >
2025-02-27 15:33:34 +08:00
<mapper namespace="com.bonus.canteen.core.allocation.canteen.mapper.AllocStallMapper">
2025-03-04 09:21:12 +08:00
<!-- 分页查询档口列表 -->
<select id="pageStall" resultType="com.bonus.canteen.core.allocation.canteen.vo.AllocStallVO">
SELECT
2025-03-13 18:16:12 +08:00
t1.stall_id, t1.stall_num, t1.stall_name, t5.nick_name as cust_name, t1.contact_tel,
2025-03-04 09:21:12 +08:00
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
2025-03-13 18:16:12 +08:00
sys_user t5 ON t1.cust_id = t5.cust_id
2025-03-04 09:21:12 +08:00
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>
2025-03-05 13:06:43 +08:00
<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>
2025-03-06 17:12:12 +08:00
<!-- 查询带权限的档口列表 -->
<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>
2025-03-06 17:46:50 +08:00
<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>
2025-03-10 17:53:40 +08:00
<!-- 根据食堂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>
2025-03-11 13:38:24 +08:00
<!-- 通过区域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>
2025-02-27 13:43:02 +08:00
</mapper>