31 lines
747 B
Go
31 lines
747 B
Go
package app
|
|
|
|
import "strings"
|
|
|
|
func attachTransportOwnershipLockState(items []TransportOwnershipRecord, clients []TransportClient) (out []TransportOwnershipRecord, lockCount int) {
|
|
if len(items) == 0 {
|
|
return nil, 0
|
|
}
|
|
statusByClientID := map[string]TransportClientStatus{}
|
|
for _, client := range clients {
|
|
id := strings.TrimSpace(client.ID)
|
|
if id == "" {
|
|
continue
|
|
}
|
|
statusByClientID[id] = client.Status
|
|
}
|
|
|
|
out = make([]TransportOwnershipRecord, len(items))
|
|
for i := range items {
|
|
rec := items[i]
|
|
st := statusByClientID[strings.TrimSpace(rec.ClientID)]
|
|
rec.OwnerStatus = string(st)
|
|
rec.LockActive = isTransportClientOwnerLockActive(st)
|
|
if rec.LockActive {
|
|
lockCount++
|
|
}
|
|
out[i] = rec
|
|
}
|
|
return out, lockCount
|
|
}
|