1.排队取号 数量查询不准确修复

This commit is contained in:
2024-09-19 14:27:50 +08:00
parent 171641a9b0
commit 039f7efec3

View File

@@ -35,31 +35,46 @@
<select id="selectInfoByOpenId"
resultType="com.chaozhanggui.system.cashierservice.entity.vo.CallQueueInfoVO">
SELECT
d.shop_name, d.logo, d.status as shop_state,
d.shop_name,
d.logo,
d.status AS shop_state,
a.call_num,
a.id, -- 用户的排队记录ID
a.state,
a.user_id, -- 用户ID
b.name AS table_name, -- 桌子名称
b.note AS table_note, -- 桌子备注
COUNT(c.id) AS waiting_count, -- 前面有几个人
COUNT(c.id) * b.wait_time AS wait_time -- 预计等待时间
(
SELECT COUNT(1)
FROM tb_call_queue c
WHERE
c.call_table_id = a.call_table_id
and c.shop_id=a.shop_id -- 同一张桌子
AND c.create_time &lt; a.create_time -- 在当前用户之前排队
AND c.state IN (0, 1) -- 排队中或等待中的人
) AS waiting_count, -- 前面有几个人
(
SELECT COUNT(1) * b.wait_time
FROM tb_call_queue c
WHERE
c.call_table_id = a.call_table_id
AND c.shop_id=a.shop_id -- 同一张桌子
AND c.create_time &lt; a.create_time -- 在当前用户之前排队
AND c.state IN (0, 1) -- 排队中或等待中的人
) AS wait_time -- 预计等待时间
FROM
tb_call_queue a
left join tb_shop_info d on a.shop_id=d.id
LEFT JOIN
tb_shop_info d ON a.shop_id = d.id
LEFT JOIN
tb_call_table b ON a.call_table_id = b.id
LEFT JOIN
tb_call_queue c ON c.call_table_id = a.call_table_id
AND c.create_time &lt; a.create_time
AND c.state IN (0, 1) -- 前面的人
WHERE
a.open_id=#{openId} and a.shop_id=#{shopId} and a.create_day=#{today} -- 替换为目标用户的user_id
a.open_id = #{openId} -- 替换为目标用户的 open_id
AND a.shop_id = #{shopId}
AND a.create_day = #{today} -- 替换为目标日期
GROUP BY
a.id, a.user_id, b.name, b.note, b.wait_time
ORDER BY
a.create_time ASC;
</select>
</mapper>