public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (!$brokerInfo) { throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS); } $usrCardState = $brokerInfo->usrCardState; $usrPhotoState = $brokerInfo->usrPhotoState; $userCardFileJson = json_decode($this->_params['userCardFile'], true); $size = $userCardFileJson['size']; $width = $userCardFileJson['width']; $height = $userCardFileJson['height']; $format = $userCardFileJson['format']; //判断图片大小,格式是否正确 if ($size > 614400 || $size < 20480) { throw new Exception_Broker_UpLoadFailed('pic_error,文件应大于20KB,小于600KB'); } elseif ($width < 320 || $height < 200) { throw new Exception_Broker_UpLoadFailed('pic_error,图片应大于320*200像素'); } elseif (!in_array($format, array('JPEG', 'JPG', 'GIF', 'PNG'))) { throw new Exception_Broker_UpLoadFailed('pic_error,图片限jpg、jpeg、gif、png格式'); } $idCard = $this->_params['idCardNo']; //验证身份证是否正确 $res = $this->checkIdCard($idCard); if (!$res) { throw new Exception_Broker_UpLoadApiFailed('身份证号码错误。'); } //验证身份证是否重复 $data = Model_Broker_AjkBrokerextend::check_usercard_exit($idCard, $brokerId, $brokerInfo->cityId); if ($data) { throw new Exception_Broker_UpLoadApiFailed('身份证号码重复。'); } //都保存md5值 显示规则统一 显示ok 调用上传身份证的接口 $userCardFile = 'display/' . $userCardFileJson['hash'] . '_' . $userCardFileJson['host']; if ($usrCardState == 0 || $usrCardState == 3) { //存身份证号码 $brokerInfo->userCard = $idCard; $brokerInfo->save(); $setNewIdCard = Bll_BrokerBaseBll::setNewIdCard($brokerId, $brokerInfo->trueName, $userCardFile, $idCard); if ($setNewIdCard == 1) { if ($usrPhotoState == 1 || $usrPhotoState == 2) { Bll_Broker_BrokerCheckInfo::autoSendPass($brokerId); } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('status' => 1)); } else { throw new Exception_Broker_UpLoadApiFailed($setNewIdCard['message']); } } else { throw new Exception_Broker_UpLoadApiFailed('身份证不能重复上传。'); } }
public static function check_usercard_exit($userCard, $brokerId, $cityId) { $data = Model_Broker_AjkBrokerextend::data_access()->filter('userCard', $userCard)->filter_by_op('accountType', '!=', 10000)->filter_by_op('brokerId', '!=', $brokerId)->filter('cityId', $cityId)->find(); return $data; }