該擋的時候,它會真的擋下來
借、還、租、領用、押金、逾期都在裡面。跟一般借還系統最大的差別是:該擋的時候它會真的把借出擋下來,不是跳一個提醒讓櫃檯自己判斷。
掃進來的可能是器材編號、會員條碼、學生證、悠遊卡 —— 系統自己認得那是什麼,櫃檯不用先選類別再掃。網路慢的時候頁面照樣按得動,不會卡在轉圈圈。
東西還沒還、這個人被停權、借太多件了、還沒消毒、沒有操作資格、校驗過期。碰到這六種,畫面上按不下去,不是跳個提醒讓櫃檯自己決定。要開哪幾道、每一道的標準是什麼,你自己設。
校驗一過期器材就借不出去,所以提醒一定要提前發。不然現場是明天早上要用的時候才發現借不到 —— 那是整條產線停在那裡等。提前幾天通知也在設定裡。
兩個人同時掃同一台器材,兩邊螢幕都會顯示「可借」—— 因為查詢跟登記之間有零點幾秒的空隙。我們把借出做成用搶的:誰先搶到誰借得成,另一邊當場被拒絕。不會變成兩邊都成功,然後晚上對帳才發現多借了一台。
條件式更新 UPDATE … WHERE status='available',依實際更新筆數判定成敗(非讀後寫)。以並行請求實測驗證。
民眾掃 QR 自己填資料,管理員在後台按通過。之後他可以用學號、會員條碼、身分證、或手上任何一張悠遊卡來認人 —— 我們只讀那張卡的編號,不會寫進去,所以不影響它原本的用途。
資料庫裡沒有完整的身分證字號。存的是三樣東西:一組認得出「是不是同一個人」但還原不回號碼的指紋、一份要有授權才打得開的密件、還有櫃檯肉眼核對用的末四碼。整份資料庫被搬走也拼不出完整號碼。
HMAC-SHA256(查詢用,不可逆)+ AES-GCM 密文(授權解密)+ 末四碼明文。金鑰不在資料庫裡。
借一年的發財金跟借三天的相機,不可能用同一組提醒天數。到期前幾天先講、逾期第幾天催第一次、之後每幾天再催一次,全部你自己填。