success = false; $e->message = ''; $e->serial_no = ''; $e->mac = ''; $tt = time(); $batchNo = self::getBatchNo($manufactureNo, $projectNo, $modelNo, $productionNo); $batchModel = CreateBatchRepository::findOne(['batch_no' => $batchNo]); if (empty($batchModel)) { $e->message = '没有该批次'; return $e; } $batchId = $batchModel->id; $count = DeviceRepository::rowsCount(['batch_id' => $batchId, 'status' => DeviceStatus::HAS_AUTH, 'is_delete' => 0]); if (($count *1) >= ($batchModel->num * 1)) { // 超过了限制数,记录到另外一个表里面 // to do 记录到表里面 $failRecord = DeviceAuthFailRepository::findOne(['device_id' => $deviceId, 'is_delete' => 0]); if (!$failRecord) { $item = [ 'manufacture_no' => $manufactureNo, 'project_no' => $projectNo, 'model_no' => $modelNo, 'production_no' => $productionNo, 'device_id' => $deviceId, ]; DeviceAuthFail::create($item); } $e->message = '授权失败'; return $e; } $deviceModel = DeviceRepository::findOne(['device_id' => $deviceId, 'batch_id' => $batchId, 'is_delete' => 0]); if (empty($deviceModel)) { $newDeviceModel = DeviceRepository::findOne(['device_id'=> null,'batch_id' => $batchId, 'is_delete' => 0, 'status' => DeviceStatus::NO_AUTH]); $newDeviceModel->device_id = $deviceId; $newDeviceModel->status = DeviceStatus::HAS_AUTH; $newDeviceModel->apply_at = $tt ; $newDeviceModel->auth_at = $tt; $newDeviceModel->save(); $e->message = '授权成功'; $e->success = true; $e->serial_no = $newDeviceModel->serial_no; $e->mac = $newDeviceModel->mac; return $e; } if (DeviceStatus::HAS_AUTH == $deviceModel->status) { $e->message = '授权成功'; $e->success = true; $e->serial_no = $deviceModel->serial_no; $e->mac = $deviceModel->mac; } elseif (DeviceStatus::FAIL_AUTH == $deviceModel->status) { $e->message = '授权失败'; } elseif (DeviceStatus::NO_AUTH == $deviceModel->status) { // 删除之后恢复的数据 $deviceModel->status = DeviceStatus::HAS_AUTH; $deviceModel->auth_at = $tt; $deviceModel->save(); $e->message = '授权成功'; $e->success = true; $e->serial_no = $deviceModel->serial_no; $e->mac = $deviceModel->mac; } else { $e->message = '授权失败!'; } return $e; } }