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;
 }