[英]Logical error in the query of the booking system
我的預訂系統的邏輯出現了故障。 我有一個房間可以租。
現在有人想從 15.06 到 17.06 預訂房間,但 17.06 已經預訂了。
我想到了類似的東西
SELECT * FROM reservation WHERE resDate >= "2020-06-15" AND depDate <= "2020-06-17"
我對 Doctrine 的查詢看起來像
return $this->createQueryBuilder('s')
->where('s.resDate >= :startdate')
->andWhere('s.depDate <= :enddate')
->setParameter('startdate', $startdate)
->setParameter('enddate', $enddate)
->getQuery()
->getOneOrNullResult()
;
不知何故,我找不到相應的邏輯,查詢告訴我它沒有找到條目並且輸入的時間段是免費的。 我究竟做錯了什么?
您的預訂從 17 日開始,因此從 15 日到 17 日仍然可以免費預訂。
因此,您的邏輯應該是在 16 日的 1 天以內查詢數據庫,因為結帳將在 17 日完成。
通常當預訂發生在 15 日至 17 日時,這意味着客人已支付 15 日、16 日和 17 日的費用,並將在 18 日早上退房。 這就是為什么您會在酒店預訂中看到 3 晚和 5 晚住宿。 但在你解釋的情況下。 好像您在 2 個地方計算同一天。
無論哪種方式,您都必須首先改變客戶嘗試預訂房間的方式,否則粗略的修復將無法正常工作,並且稍后會造成其他混亂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.