public function add($request, $response) { /*{{{*/ $user = UserClient::getInstance()->getCurrentUser(); $assistant = Inspector::getInspector($user); $nickname = $request->nickname; $err = ''; if (empty($nickname)) { $err = '您还未填写昵称名'; } else { $assistantNickname = DAL::get()->find_by_nickname('assistantnickname', $nickname); if ($assistantNickname->isNull()) { $nicknameAudit = DAL::get()->find_by_assistantid_and_status('AssistantNicknameAudit', $assistant->id, AssistantNicknameAudit::WAITTING_AUDIT); if (false == $nicknameAudit->isNull()) { $err = '您提交的昵称申请正在审核中'; } else { $assistantNickname = DAL::get()->find_by_assistantid('assistantnickname', $assistant->id); if (false == $assistantNickname->isNull()) { $err = '您已经绑定过昵称,请勿重新申请'; } else { $assistantNicknameAuditId = AssistantNicknameClient::getInstance()->applyNickname($assistant, $nickname); $err = '您成功提交医生助理昵称申请'; $assistantNicknameAudit = DAL::get()->find('assistantnicknameaudit', $assistantNicknameAuditId); S3LogClient::getInstance()->add($assistant, $assistantNicknameAudit->getLogable()->action(4, '')); } } } else { if ($assistantNickname->isBind()) { $err = '您申请的昵称已经被使用,请重新申请'; } else { $nicknameAudit = DAL::get()->find_by_assistantnicknameid_and_status('AssistantNicknameAudit', $assistantNickname->id, AssistantNicknameAudit::WAITTING_AUDIT); $nicknameAudit2 = DAL::get()->find_by_assistantid_and_status('AssistantNicknameAudit', $assistant->id, AssistantNicknameAudit::WAITTING_AUDIT); if (false == $nicknameAudit->isNull()) { if ($nicknameAudit->assistant->id == $assistant->id) { $err = '您已经申请过昵称,您之前申请的昵称为:' . $assistantNickname->nickname; } else { $err = '您申请的昵称已经有其他人申请(正在审核),请重新申请或稍后重试'; } } else { if (false == $nicknameAudit2->isNull()) { $err = '您提交的昵称申请正在审核中'; } else { $assistantNicknameAuditId = AssistantNicknameClient::getInstance()->applyNickname($assistant, $nickname); $err = '您成功提交医生助理昵称申请'; $assistantNicknameAudit = DAL::get()->find('assistantnicknameaudit', $assistantNicknameAuditId); S3LogClient::getInstance()->add($assistant, $assistantNicknameAudit->getLogable()->action(4, '')); } } } } } $response->setRedirect($response->router->urlfor('nicknameaudit/applynickname', array('err' => $err))); $response->err = $err; }