isAvailable($cardNo)) { return $cardNo; } } // 冲突过多时追加随机码 return chr(rand(65, 90)) . str_pad(rand(0, 999), 3, '0', STR_PAD_LEFT) . rand(0, 9); } // 检查号码牌是否可用(不存在进行中/新单订单) public function isAvailable(string $cardNo): bool { $count = Order::where('card_no', $cardNo) ->whereIn('status', [0, 1]) ->count(); return $count === 0; } // 释放号码牌:检查该cardNo是否还有未完成订单 public function release(string $cardNo): bool { $count = Order::where('card_no', $cardNo) ->whereIn('status', [0, 1]) ->count(); return $count === 0; // true=已释放,false=仍占用 } }