fix(gate,installer): 修复进站刷卡字段兼容并清理安装器头注释
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
local DEFAULT_SERVER_BASE = "https://ticket.fse-media.group"
|
||||
local DEFAULT_SERVER_PATH = "/api/tickets/check"
|
||||
local GATE_OPEN_SECONDS = 2
|
||||
local VERSION = "v1.5.23"
|
||||
local VERSION = "v1.5.24"
|
||||
local VERSION_CHECK_INTERVAL = 5
|
||||
|
||||
local serverURL = nil
|
||||
@@ -1010,6 +1010,24 @@ local function updateICCardField(dev, key, value)
|
||||
return true
|
||||
end
|
||||
|
||||
local function updateICCardFieldWithFallback(dev, keys, value)
|
||||
if type(keys) == "string" then
|
||||
return updateICCardField(dev, keys, value)
|
||||
end
|
||||
local firstErr = nil
|
||||
if type(keys) ~= "table" then return false, "invalid_keys" end
|
||||
for _, key in ipairs(keys) do
|
||||
local okField, errField = updateICCardField(dev, key, value)
|
||||
if okField then
|
||||
return true, key
|
||||
end
|
||||
if not firstErr then
|
||||
firstErr = tostring(key) .. ": " .. tostring(errField or "update_failed")
|
||||
end
|
||||
end
|
||||
return false, firstErr or "update_failed"
|
||||
end
|
||||
|
||||
local function updateICCardFields(dev, patch)
|
||||
local allOk = true
|
||||
local firstErr = nil
|
||||
@@ -1157,9 +1175,11 @@ local function handleICCardScan(scan, side, scanDev)
|
||||
local okWrite = true
|
||||
local writeErr = nil
|
||||
for _, dev in ipairs(inspectionDevs) do
|
||||
local okPatch, errPatch = updateICCardFields(dev, {
|
||||
entry = exitStation,
|
||||
})
|
||||
local okPatch, errPatch = updateICCardFieldWithFallback(dev, {
|
||||
"entry_station",
|
||||
"entry",
|
||||
"start_station"
|
||||
}, exitStation)
|
||||
okWrite = okPatch and okWrite
|
||||
if not okPatch and not writeErr then writeErr = errPatch end
|
||||
end
|
||||
@@ -1203,7 +1223,11 @@ local function handleICCardScan(scan, side, scanDev)
|
||||
local okDeduct, newBalanceOrErr = deductICCardBalance(dev, fare)
|
||||
if okDeduct then
|
||||
balance = toMoney(newBalanceOrErr or (balance - fare)) or 0
|
||||
local okClear, clearErr = updateICCardField(dev, "entry", nil)
|
||||
local okClear, clearErr = updateICCardFieldWithFallback(dev, {
|
||||
"entry_station",
|
||||
"entry",
|
||||
"start_station"
|
||||
}, nil)
|
||||
local okFare, fareErr = updateICCardField(dev, "last_fare", fare)
|
||||
if not okClear or not okFare then
|
||||
okWrite = false
|
||||
|
||||
Reference in New Issue
Block a user