public function handle_request_internal()
 {
     header("Access-Control-Allow-Origin: *");
     $userMobile = $this->_params['userMobile'];
     //检测电话号码格式是否正确
     if (strlen($userMobile) != 11) {
         throw new Exception_Broker_BrokerMobileFormatError('电话号码格式错误', Const_APIStatus::E_BROKER_MOBILE_FORMAT_ERROR);
     }
     $brokerInfo = Model_Broker_AjkBrokerExtend::getBrokerInfoByMobile($userMobile);
     if (!$brokerInfo) {
         throw new Exception_Broker_BrokerNotVerified('经纪人不存在', Const_APIStatus::E_BROKER_MOBILE_SEARCH_ERROR);
     }
     if ($brokerInfo->checkState != 1) {
         throw new Exception_BrokerNotFoundException('经纪人审核未通过', Const_APIStatus::E_BROKER_MOBILE_SEARCH_NOT_VERIFIED);
     }
     //查询微聊信息
     $chatInfo = Bll_Mobile_ChatInfoBll::getInstance()->onlyGetChatInfo($brokerInfo->brokerId);
     $re = array();
     $re['brokerId'] = $brokerInfo->brokerId;
     $re['companyInfo'] = $brokerInfo->company;
     $re['trueName'] = $brokerInfo->trueName;
     $re['userMobile'] = $brokerInfo->userMobile;
     $re['userPhoto'] = Util_ImageUtils::get_broker_photo_url($brokerInfo->userPhoto, '200x200');
     $re['chatId'] = $chatInfo['data']['chatId'];
     $re['twoCodeIcon'] = $chatInfo['data']['twoCodeIcon'];
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $re);
 }
 public function handle_request_internal()
 {
     /**
      * 00:00
      *  获取前一天20:00 以后
      * 10:00
      *  获取10:00 以后
      * 15:00
      *  获取15:00 以后
      * 20:00
      *  获取20:00 以后
      *
      */
     // 获取参数;
     $commId = $this->_params['commId'];
     // 根据ID获取小区
     $community = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($commId, 2);
     if (!$community || !$community['sosolat'] || !$community['sosolng']) {
         throw new Exception('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     $data = array();
     if (Bll_Broker_CommunitySign::isTopSignerActivityOngoing()) {
         $hour = intval(date('H'));
         if ($hour >= 0 && $hour < 10) {
             $theSignRange = array(date('Y-m-d 20:00:00', strtotime('-1 day')), date('Y-m-d 23:59:59', strtotime('-1 day')));
         } elseif ($hour >= 10 && $hour < 15) {
             $theSignRange = array(date('Y-m-d 10:00:00'), date('Y-m-d 14:59:59'));
         } elseif ($hour >= 15 && $hour < 20) {
             $theSignRange = array(date('Y-m-d 15:00:00'), date('Y-m-d 19:59:59'));
         } else {
             $theSignRange = array(date('Y-m-d 20:00:00'), date('Y-m-d 23:59:59'));
         }
         $brokerInfos = Bll_Commsign::getFirstThr($commId, $theSignRange[0]);
         //var_dump($data);exit;
         $data = array();
         if (!empty($brokerInfos)) {
             foreach ($brokerInfos as $k => $v) {
                 $brokerTmp = Bll_Commsign::getBrokerInfo($v['brokerId']);
                 if (!$brokerTmp) {
                     $broker = Model_Broker_AjkBrokerExtend::data_access()->filter('brokerId', $v['brokerId'])->find_only();
                     $broker_photo = Util_ImageUtils::get_broker_photo_url($broker['userPhoto'], '200x200');
                     $brokerTmp = array('brokerId' => $broker['brokerId'], 'username' => $broker['trueName'], 'userPhoto' => $broker_photo, 'cityId' => $broker['cityId']);
                     Bll_Commsign::redisBrokerInfo($v['brokerId'], $brokerTmp);
                 }
                 if (empty($brokerTmp['userPhoto'])) {
                     $brokerTmp['userPhoto'] = PageHelper::pure_static_url('/img/bknoimg.gif');
                 }
                 $dataTmp = array('brokerId' => $brokerTmp['brokerId'], 'brokerTrueName' => $brokerTmp['username'], 'brokerPhoto' => $brokerTmp['userPhoto']);
                 $data[] = $dataTmp;
             }
         }
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data);
 }
Example #3
0
 public function handle_request_internal()
 {
     header("Access-Control-Allow-Origin: *");
     $lng = $this->_params['lng'];
     $lat = $this->_params['lat'];
     $brokerId = $this->_params['brokerId'];
     $radius = isset($this->_params['radius']) ? $this->_params['radius'] : 3000;
     // 搜索半径,默认3000米
     $total = isset($this->_params['total']) ? $this->_params['total'] : 100;
     // 最大总数,默认500
     $days = isset($this->_params['days']) ? $this->_params['days'] : 3;
     // 查询天数,默认3天
     //获取附近经纪人Id
     $brokerLocations = Bll_Broker_Location::getRoundBrokerLocationsInThePastFewDays($lng, $lat, $radius, $total, $days);
     $brokerIds = array_keys($brokerLocations);
     //根据经纪人Id数组查询多个经纪人信息
     $brokerInfosTmp = Model_Broker_AjkBrokerExtend::findMultiBrokers($brokerIds);
     //提取经纪人ID
     $brokerIds = $brokerInfos = array();
     foreach ($brokerInfosTmp as $value) {
         if ($value->brokerId != $brokerId) {
             $brokerIds[] = $value->brokerId;
             $brokerInfos[$value->brokerId] = $value;
         }
     }
     //批量查询微聊信息
     $chatInfos = Bll_Mobile_ChatInfoBll::getInstance()->GetChatInfoByIds($brokerIds);
     //根据微聊信息筛选经纪人,去除微聊信息为空的经纪人
     $brokers = array();
     foreach ($chatInfos as $chatInfo) {
         $re = array();
         $distance = Util_Map::distance($lng, $lat, $brokerLocations[$chatInfo['brokerId']]['lng'], $brokerLocations[$chatInfo['brokerId']]['lat']);
         $distance = round($distance / 1000, 2);
         if ($distance > 3 || $brokerInfos[$chatInfo['brokerId']]->checkState != 1) {
             continue;
         }
         $re['brokerId'] = $chatInfo['brokerId'];
         $re['companyInfo'] = $brokerInfos[$chatInfo['brokerId']]->company;
         $re['trueName'] = $brokerInfos[$chatInfo['brokerId']]->trueName;
         $re['userMobile'] = $brokerInfos[$chatInfo['brokerId']]->userMobile;
         $disarr[] = $distance;
         $re['distance'] = $distance;
         $re['userPhoto'] = Util_ImageUtils::get_broker_photo_url($brokerInfos[$chatInfo['brokerId']]->userPhoto, '200x200');
         $re['chatId'] = $chatInfo['chatId'];
         $re['twoCodeIcon'] = $chatInfo['twoCodeIcon'];
         $brokers[] = $re;
     }
     //按距离排序
     array_multisort($disarr, $brokers);
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('brokerList' => $brokers));
 }
 public function handle_request_internal()
 {
     header("Access-Control-Allow-Origin: *");
     $brokerId = $this->_params['brokerId'];
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     //根据区域代码查询经纪人
     $brokerArea = $brokerInfo->areaCode;
     $brokerInfoTmp = Model_Broker_AjkBrokerExtend::getDataByAreaCodeAll($brokerArea);
     //提取经纪人ID
     $brokerIds = $brokerInfos = array();
     foreach ($brokerInfoTmp as $value) {
         if ($value->brokerId != $brokerId) {
             $brokerIds[] = $value->brokerId;
             $brokerInfos[$value->brokerId] = $value;
         }
     }
     //批量查询微聊信息
     $chatInfos = Bll_Mobile_ChatInfoBll::getInstance()->GetChatInfoByIds($brokerIds);
     //根据微聊信息筛选经纪人,去除微聊信息为空的经纪人
     $brokers = array();
     foreach ($chatInfos as $chatInfo) {
         if ($brokerInfos[$chatInfo['brokerId']]->checkState != 1) {
             continue;
         }
         $re = array();
         $re['brokerId'] = $chatInfo['brokerId'];
         $re['trueName'] = $brokerInfos[$chatInfo['brokerId']]->trueName;
         $re['userMobile'] = $brokerInfos[$chatInfo['brokerId']]->userMobile;
         $re['companyInfo'] = $brokerInfos[$chatInfo['brokerId']]->company;
         $re['userPhoto'] = Util_ImageUtils::get_broker_photo_url($brokerInfos[$chatInfo['brokerId']]->userPhoto, '200x200');
         $re['chatId'] = $chatInfo['chatId'];
         $re['twoCodeIcon'] = $chatInfo['twoCodeIcon'];
         $brokers[] = $re;
     }
     foreach ($brokers as $broker) {
         $brokerCompany[] = $broker['company'];
     }
     //按公司排序
     array_multisort($brokerCompany, $brokers);
     $keyReturn = array();
     foreach ($brokers as $broker) {
         $keyReturn[$broker['companyInfo']]['company'] = $broker['companyInfo'];
         $keyReturn[$broker['companyInfo']]['broker'][] = $broker;
     }
     $brokerList = array_values($keyReturn);
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('brokerList' => $brokerList));
 }
 public function handle_request_internal()
 {
     header("Access-Control-Allow-Origin: *");
     $brokerId = $this->_params['brokerId'];
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     //查询微聊信息
     $chatInfo = Bll_Mobile_ChatInfoBll::getInstance()->onlyGetChatInfo($brokerInfo->brokerId);
     $re = array();
     $re['brokerId'] = $brokerInfo->brokerId;
     $re['companyInfo'] = $brokerInfo->company;
     $re['trueName'] = $brokerInfo->trueName;
     $re['userMobile'] = $brokerInfo->userMobile;
     $re['userPhoto'] = Util_ImageUtils::get_broker_photo_url($brokerInfo->userPhoto, '200x200');
     $re['chatId'] = $chatInfo['data']['chatId'];
     $re['twoCodeIcon'] = $chatInfo['data']['twoCodeIcon'];
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $re);
 }
 public function handle_request_internal()
 {
     header("Access-Control-Allow-Origin: *");
     $brokerId = $this->_params['brokerId'];
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     //根据公司ID查询经纪人,限制100个
     $comId = $brokerInfo['cstBrokerCompanyId'];
     $brokerInfoTmp = Model_Broker_AjkBrokerExtend::getSameMendianBrokerInfo($comId);
     $brokerIds = array();
     foreach ($brokerInfoTmp as $value) {
         if ($value->brokerId != $brokerId) {
             $brokerIds[] = $value->brokerId;
             $brokerInfos[$value->brokerId] = $value;
         }
     }
     $chatInfos = Bll_Mobile_ChatInfoBll::getInstance()->GetChatInfoByIds($brokerIds);
     foreach ($brokerInfoTmp as $brokerInfo) {
         $brokerInfos[$brokerInfo->brokerId] = $brokerInfo;
     }
     $brokerList = array();
     foreach ($chatInfos as $chatInfo) {
         if ($brokerInfos[$chatInfo['brokerId']]->checkState != 1) {
             continue;
         }
         $re = array();
         $re['brokerId'] = $chatInfo['brokerId'];
         $re['trueName'] = $brokerInfos[$chatInfo['brokerId']]->trueName;
         $re['userMobile'] = $brokerInfos[$chatInfo['brokerId']]->userMobile;
         $re['userPhoto'] = Util_ImageUtils::get_broker_photo_url($brokerInfos[$chatInfo['brokerId']]->userPhoto, '200x200');
         $re['chatId'] = $chatInfo['chatId'];
         $re['twoCodeIcon'] = $chatInfo['twoCodeIcon'];
         $brokerList[] = $re;
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('brokerList' => $brokerList));
 }
Example #7
0
 public function handle_request_internal()
 {
     if (Bll_Weshop::weshopPropsIsMaintain()) {
         return array('status' => 'error', 'message' => "系统维护中,请稍后再试!");
     }
     header("Access-Control-Allow-Origin: *");
     //获取房源 获取房源图片
     $brokerId = $this->_params['brokerId'];
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     //获取房源信息
     $propId = $this->_params['propId'];
     $propInfo = Model_Weshop_Props::getWeshopProp($propId);
     if (empty($propInfo)) {
         throw new Exception_Property_NotFound(Const_APIStatus::E_PROP_INFO_FAILED);
     }
     //小区信息
     $commInfo = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($propInfo->commId, 2);
     $city_set = APF::get_instance()->get_config("city_set", "multicity");
     $cityPinYin = $city_set[$brokerInfo->cityId]['pinyin'];
     $row = array();
     $row['propId'] = $propId;
     $row['floor'] = $propInfo->floor;
     $row['totalFloor'] = $propInfo->totalFloor;
     $row['commId'] = $propInfo->commId;
     $row['commName'] = $commInfo['commName'];
     $row['commLocation'] = $commInfo['commLocal'];
     $row['sosolat'] = $commInfo['sosolat'];
     //纬度
     $row['sosolng'] = $commInfo['sosolng'];
     //经度
     //$areaId = substr($commInfo['areaCode'], 0, 8);
     //$areaInfo = Model_City_TypeCode::getTypeName($areaId);
     //$row['areaName'] = $areaInfo->typeName;
     $blockId = $commInfo['areaCode'];
     $blockInfo = Bll_Commtype_Api::getInfoByTypeCode($blockId);
     $areaInfo = Bll_Commtype_Api::getInfoByTypeId($blockInfo['parentId']);
     $row['areaName'] = $areaInfo['typeName'];
     $row['blockName'] = $blockInfo['typeName'];
     $row['room'] = $propInfo->room;
     $row['hall'] = $propInfo->hall;
     $row['toilet'] = $propInfo->toilet;
     $row['area'] = $propInfo->acreage;
     $row['areaUnit'] = '平米';
     $row['price'] = intval($propInfo->price);
     $row['priceUnit'] = '万';
     $isJson = Util_String::isJson($propInfo->description);
     $row['propDescription'] = $isJson ? json_decode($propInfo->description) : $propInfo->description;
     $row['title'] = $propInfo->title ? $propInfo->title : $row['commName'] . ' ' . $row['room'] . '室' . $row['hall'] . '厅' . ' ' . $row['area'] . '平' . ' ' . $row['price'] . '万';
     $row['cityPinYin'] = $cityPinYin;
     //从数据库取房源特色id
     $tagIds = $propInfo->tagIds;
     $tagIds = explode(',', $tagIds);
     $allTags = APF::get_instance()->get_config('weshop_tags');
     $propTags = array();
     foreach ($tagIds as $tagId) {
         $tagId = trim($tagId);
         if ($tagId) {
             $tag = array();
             $tag['tagId'] = $tagId;
             $tag['tagName'] = $allTags[$tagId];
             $propTags[] = $tag;
         }
     }
     $row['tags'] = $propTags;
     //获取房源图片
     $propImages = Model_Weshop_PropImages::getWeshopPropImages($propId);
     $row['propImages'] = $row['outdoorImage'] = array();
     foreach ($propImages as $propImage) {
         $image = array();
         $image['host'] = $propImage->imageHostId;
         $image['hash'] = $propImage->imageHash;
         $url = Util_ImageUtils::getResizeURL($propImage->imageHash, $propImage->imageHostId, 290, 240);
         $url = str_replace("display", "display/e", $url);
         //无水印格式
         $url = str_replace("240", "240c", $url);
         //图片url 加c
         $image['smallImageUrl'] = $url;
         $url = Util_ImageUtils::getResizeURL($propImage->imageHash, $propImage->imageHostId, 600, 600);
         $url = str_replace("display", "display/e", $url);
         //无水印格式
         $image['bigImageUrl'] = $url;
         //区分户型图和室内图
         if ($propImage->imageType == 1) {
             $row['propImages'][] = $image;
         } elseif ($propImage->imageType == 2) {
             $row['outdoorImage'][] = $image;
         }
     }
     $row['cityId'] = $brokerInfo->cityId;
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $row);
 }
 public function handle_request_internal()
 {
     /**
      * 签到小区详情
      *
      * - 验证参数
      *
      *
      * - 获取经纪人
      *
      * - 获取小区(AjkCommunity)
      * -
      *
      * - 获取小区签到人数
      *
      * - 判断经纪人是否可签到(经纪人是否已签到、当前是否在签到时间段)
      * - 校验小区坐标和lat、lng的距离5公里,超出不可签到(如小区无坐标,不可签到)
      *
      * - 计算距离下一时间点的签到倒计时(单位:s)
      *
      * - 获取小区各个时间段签到前3名
      *
      * - 返回数据
      */
     // 获取参数
     $brokerId = $this->_params['brokerId'];
     $commId = $this->_params['commId'];
     $lat = $this->_params['lat'];
     $lng = $this->_params['lng'];
     // 根据ID获取经纪人
     $broker = Bll_Commsign::getBrokerInfo($brokerId);
     if (!$broker) {
         $broker = Model_Broker_AjkBrokerExtend::data_access()->filter('brokerId', $brokerId)->find_only();
         if (!$broker) {
             throw new Exception('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
         }
         $broker_photo = Util_ImageUtils::get_broker_photo_url($broker['userPhoto'], '200x200');
         $brokerInfo = array('brokerId' => $broker['brokerId'], 'username' => $broker['trueName'], 'userPhoto' => $broker_photo, 'cityId' => $broker['cityId']);
         Bll_Commsign::redisBrokerInfo($brokerId, $brokerInfo);
     }
     // 根据ID获取小区
     $community = Bll_Commsign::getCommInfo($commId);
     if (empty($community)) {
         $community = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($commId, 2);
         $commInfo = array();
         $commInfo['commId'] = $community['commId'];
         $commInfo['commName'] = $community['commName'];
         $commInfo['sosolng'] = $community['sosolng'];
         $commInfo['sosolat'] = $community['sosolat'];
         Bll_Commsign::setCommInfo($commId, $commInfo);
     }
     if (!$community || !$community['sosolat'] || !$community['sosolng']) {
         throw new Exception('小区不存在', Const_APIStatus::E_COMMUNITY_NOT_EXISTS);
     }
     // 获取小区签到人数
     $communitySignCount = Bll_Commsign::getCommCount($commId);
     // 判断经纪人是否可签到
     $signAble = true;
     $currentSignRange = Bll_Broker_CommunitySign::getCurrentSignRange();
     if (!$currentSignRange) {
         $signAble = false;
     } else {
         // 经纪人是否已经签过到
         if (Bll_Commsign::isSignedAlready($brokerId, $commId, $currentSignRange[0])) {
             $signAble = false;
         }
     }
     // 对比小区坐标和参数坐标两点的距离(5km)
     $distance = Util_Map::distance($lat, $lng, $community['sosolat'], $community['sosolng']);
     if ($distance > 5000) {
         $signAble = false;
     }
     $data = array();
     $data['signAble'] = intval($signAble);
     $data['signCount'] = $communitySignCount;
     $data['countDown'] = $signAble ? 0 : Bll_Broker_CommunitySign::nextSignCountDown();
     $data['signList'] = array();
     // 获取各时间段签到前三名
     if (Bll_Broker_CommunitySign::isTopSignerActivityOngoing()) {
         $data['signList'] = array(array('hour' => '10:00', 'brokers' => array()), array('hour' => '15:00', 'brokers' => array()), array('hour' => '20:00', 'brokers' => array()));
         foreach ($data['signList'] as &$theSignList) {
             $theHour = intval($theSignList['hour']);
             $hour = intval(date('H'));
             if ($hour >= 0 && $hour < 10) {
                 break;
             } elseif ($hour >= 10 && $hour < 20) {
                 if ($theHour > $hour) {
                     continue;
                 }
             }
             $theSignRange = array();
             switch ($theHour) {
                 case 10:
                     $theSignRange = array(date('Y-m-d 10:00:00'), date('Y-m-d 14:59:59'));
                     break;
                 case 15:
                     $theSignRange = array(date('Y-m-d 15:00:00'), date('Y-m-d 19:59:59'));
                     break;
                 case 20:
                     $theSignRange = array(date('Y-m-d 20:00:00'), date('Y-m-d 23:59:59'));
                     break;
             }
             $theSignList['brokers'] = Bll_Commsign::getFirstThr($commId, $theSignRange[0]);
             if (empty($theSignList['brokers'])) {
                 $theSignList['brokers'] = Model_Broker_CommunitySign::data_access(date('Ym', strtotime($currentSignRange[0])))->filter('communityId', $commId)->filter_by_op_multi(array(array('signTime', '>=', $theSignRange[0]), array('signTime', '<=', $theSignRange[1])))->sort('signTime', 'asc')->limit(3)->get_all();
             }
             $tmp = array();
             if (!empty($theSignList['brokers'])) {
                 foreach ($theSignList['brokers'] as $k => $v) {
                     $brokerTmp = Bll_Commsign::getBrokerInfo($v['brokerId']);
                     if (!$brokerTmp) {
                         $broker = Model_Broker_AjkBrokerExtend::data_access()->filter('brokerId', $v['brokerId'])->find_only();
                         $broker_photo = Util_ImageUtils::get_broker_photo_url($broker['userPhoto'], '200x200');
                         $brokerTmp = array('brokerId' => $broker['brokerId'], 'username' => $broker['trueName'], 'userPhoto' => $broker_photo, 'cityId' => $broker['cityId']);
                         Bll_Commsign::redisBrokerInfo($v['brokerId'], $brokerTmp);
                     }
                     if (empty($brokerTmp['userPhoto'])) {
                         $brokerTmp['userPhoto'] = PageHelper::pure_static_url('/img/bknoimg.gif');
                     }
                     $dataTmp = array('brokerId' => $brokerTmp['brokerId'], 'brokerTrueName' => $brokerTmp['username'], 'brokerPhoto' => $brokerTmp['userPhoto']);
                     $tmp[] = $dataTmp;
                 }
                 $theSignList['brokers'] = $tmp;
             }
         }
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data);
 }
 private function getUpdateData($broker, $chatInfo)
 {
     $updateData = array();
     if ($chatInfo['phone'] != $broker['userMobile']) {
         $updateData['phone'] = $broker['userMobile'];
     }
     if ($chatInfo['nick_name'] != $broker['trueName']) {
         $updateData['nick_name'] = $broker['trueName'];
     }
     $userIcon = Util_ImageUtils::get_broker_photo_url($broker['userPhoto'], '200x200') ? Util_ImageUtils::get_broker_photo_url($broker['userPhoto'], '200x200') : "";
     if ($chatInfo['icon'] != $userIcon) {
         $updateData['icon'] = $userIcon;
     }
     if ($chatInfo['desc'] != $broker['aphorism']) {
         $updateData['desc'] = $broker['aphorism'];
     }
     if ($chatInfo['corp'] != $broker['company']) {
         $updateData['corp'] = $broker['company'];
     }
     return $updateData;
 }
Example #10
0
 public function handle_request_internal()
 {
     /**
      * 小区签到逻辑
      *
      * - 验证参数
      *
      * - 获取经纪人
      *
      * - 获取小区(AjkCommunity)
      * - 校验小区坐标和lat、lng的距离5公里(如小区无坐标,直接拒绝)
      *
      * - 添加签到记录
      *  - 添加签到记录
      *  - 更新签到按日统计信息(incr)
      *
      * - 更新经纪人坐标
      *  - 添加经纪人坐标日志
      *  - 更新经纪人坐标
      *
      * - 返回数据
      */
     $result = array('status' => 'error', 'errcode' => '', 'message' => '');
     // 获取参数
     $brokerId = $this->_params['brokerId'];
     $commId = $this->_params['commId'];
     $lat = $this->_params['lat'];
     $lng = $this->_params['lng'];
     if (empty($lat) || empty($lng)) {
         $result['message'] = '获取定位数据失败,请重新定位';
         return $result;
     }
     // 根据ID获取经纪人
     $broker = Bll_Commsign::getBrokerInfo($brokerId);
     if (!$broker) {
         $broker = Model_Broker_AjkBrokerExtend::data_access()->filter('brokerId', $brokerId)->find_only();
         if (!$broker) {
             throw new Exception('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
         }
         $broker_photo = Util_ImageUtils::get_broker_photo_url($broker['userPhoto'], '200x200');
         $brokerInfo = array('brokerId' => $broker['brokerId'], 'username' => $broker['trueName'], 'userPhoto' => $broker_photo, 'cityId' => $broker['cityId']);
         Bll_Commsign::redisBrokerInfo($brokerId, $brokerInfo);
     }
     // 根据ID获取小区
     $community = Bll_Commsign::getCommInfo($commId);
     if (empty($community)) {
         $community = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($commId, 2);
         $commInfo = array();
         $commInfo['commId'] = $community['commId'];
         $commInfo['commName'] = $community['commName'];
         $commInfo['sosolng'] = $community['sosolng'];
         $commInfo['sosolat'] = $community['sosolat'];
         Bll_Commsign::setCommInfo($commId, $commInfo);
     }
     // 小区不存在或小区经纬租表不存在时,返回小区不存在
     if (!$community || !$community['sosolat'] || !$community['sosolng']) {
         $result['errcode'] = Const_APIStatus::E_COMMUNITY_NOT_EXISTS;
         $result['message'] = '小区暂未开通签到功能';
         return $result;
     }
     // 对比小区坐标和参数坐标两点的距离(5km)
     $distance = Util_Map::distance($lat, $lng, $community['sosolat'], $community['sosolng']);
     if ($distance > 5000) {
         $result['errcode'] = Const_APIStatus::E_BROKER_COMMSIGN_FAR_AWAY;
         $result['message'] = '签到失败!你跑得太远了,请返回重新定位';
         return $result;
     }
     // 获取当前所处签到时间(10:00 15:00 20:00)
     $currentSignRange = Bll_Broker_CommunitySign::getCurrentSignRange();
     if (!$currentSignRange) {
         $result['errcode'] = Const_APIStatus::E_BROKER_COMMSIGN_NOT_IN_RANGE;
         $result['message'] = '不在签到时间范围';
         return $result;
     }
     // 判断是否已经签到
     if (Bll_Commsign::isSigned($brokerId, $commId, $currentSignRange[0])) {
         $result['errcode'] = Const_APIStatus::E_BROKER_COMMSIGN_ALREADY_SIGNED;
         $result['message'] = '已经签到!';
         return $result;
     }
     try {
         // 新建签到,
         $sign = array('brokerId' => $brokerId, 'communityId' => $commId, 'lat' => $lat, 'lng' => $lng, 'signTime' => date('Y-m-d H:i:s'), 'currentSignRange' => $currentSignRange[0]);
         Bll_Commsign::Signed($brokerId, $commId, $currentSignRange[0], $sign);
         //缓存‘签到信息’到同步数据库的redis中
         Bll_RedisToDb::writeBrokerCommunitySign($sign);
         // 缓存经纪人位置
         $locationInfo = array('brokerId' => $brokerId, 'lng' => $lng, 'lat' => $lat, 'updateTime' => date('Y-m-d H:i:s'));
         Bll_Commsign::setLocationInfo($brokerId, $locationInfo);
         //缓存‘位置信息’到同步数据库的redis中
         Bll_RedisToDb::writeBrokerLocation($locationInfo);
         //记录每日签到情况
         Bll_Commsign::dailySignedRecord($brokerId);
         // 获取签到排名
         $rank = Bll_Commsign::getSignRank($commId, $currentSignRange[0]);
         //连续签到统计
         $SignStatistics = Bll_Commsign::getSignStatistics($brokerId);
         $sendFlag = false;
         if ($SignStatistics) {
             if (date('Y-m-d', strtotime($SignStatistics['updateTime'])) == date('Y-m-d', strtotime('yesterday'))) {
                 $SignStatistics['signCount'] = $SignStatistics['signCount'] + 1;
                 $sendFlag = true;
             } elseif (date('Y-m-d', strtotime($SignStatistics['updateTime'])) == date('Y-m-d', time())) {
             } else {
                 $SignStatistics['signCount'] = 1;
                 $sendFlag = true;
             }
             if ($SignStatistics['signCount'] > $SignStatistics['maxSignCount']) {
                 $SignStatistics['maxSignCount'] = $SignStatistics['signCount'];
             }
             $SignStatistics['updateTime'] = date('Y-m-d H:i:s');
             Bll_Commsign::setSignStatistics($brokerId, $SignStatistics);
             //缓存‘签到统计信息’到同步数据库的redis中
             $SignStatistics = array_merge($SignStatistics, array('sendFlag' => $sendFlag));
             Bll_RedisToDb::writeCommSignStatistics($SignStatistics);
         } else {
             $SignStatistics = array('brokerId' => $brokerId, 'signCount' => 1, 'maxSignCount' => 1, 'createTime' => date('Y-m-d H:i:s'));
             Bll_Commsign::setSignStatistics($brokerId, $SignStatistics);
             $sendFlag = true;
             //缓存‘签到统计信息’到同步数据库的redis中
             $SignStatistics = array_merge($SignStatistics, array('sendFlag' => $sendFlag));
             Bll_RedisToDb::writeCommSignStatistics($SignStatistics);
         }
     } catch (Exception $e) {
         $result['message'] = '签到人太多,系统繁忙,请稍后再试~';
         return $result;
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('signRank' => $rank, 'countDown' => Bll_Broker_CommunitySign::nextSignCountDown()));
 }
Example #11
0
 public function handle_request_internal()
 {
     $params["j_username"] = trim($this->_params["username"]);
     $params["j_password"] = trim($this->_params["password"]);
     $params["channel"] = 3;
     $api_url = '/service-internal/rest/brokers/login';
     $broker = Util_CallAPI::get_data_from_java_api($api_url, $params);
     if ($broker['data']['status'] != 'ok') {
         if ($broker['data']['code'] == 398213) {
             return Util_MobileAPI::error(Const_APIStatus::E_BROKER_USERPWD_ERR);
         } else {
             return Util_MobileAPI::error(Const_APIStatus::E_CALL_API_ERROR);
         }
     }
     $broker_id = $broker['data']['broker']['brokerId'];
     //获取经纪人信息
     $api_url = "/service-internal/rest/brokers/{$broker_id}";
     $broker_info = Util_CallAPI::get_data_from_java_api($api_url);
     if (empty($broker_info)) {
         $broker_info = array();
     }
     if ($broker_info['data']['status'] == 'error') {
         return Util_MobileAPI::error(Const_APIStatus::E_CALL_API_ERROR);
     }
     $broker_info = $broker_info['data'];
     $cityId = isset($broker_info['broker']['cityId']) ? $broker_info['broker']['cityId'] : "";
     if ($cityId > 229) {
         return array('status' => 'error', 'errcode' => "", 'message' => "您所在的城市暂不支持APP服务");
     }
     $broker_return = array('id' => isset($broker_info['broker']['brokerId']) ? $broker_info['broker']['brokerId'] : "", 'city_id' => isset($broker_info['broker']['cityId']) ? $broker_info['broker']['cityId'] : "", 'email' => isset($broker_info['broker']['userEmail']) ? $broker_info['broker']['userEmail'] : "", 'last_log_date' => isset($broker_info['broker']['lastLogDate']) ? $broker_info['broker']['lastLogDate'] : "", 'name' => isset($broker_info['broker']['trueName']) ? $broker_info['broker']['trueName'] : "", 'username' => isset($broker_info['broker']['userName']) ? $broker_info['broker']['userName'] : "", 'phone' => isset($broker_info['broker']['userMobile']) ? $broker_info['broker']['userMobile'] : "", 'use_photo' => isset($broker_info['broker']['userPhoto']) ? $broker_info['broker']['userPhoto'] : "", 'user_type' => isset($broker_info['broker']['userType']) ? $broker_info['broker']['userType'] : "", 'user_id' => isset($broker_info['broker']['userId']) ? $broker_info['broker']['userId'] : "");
     $sid = APF::get_instance()->get_config("sid", "login");
     //单点登录
     $registerBll = new Bll_Register();
     $registerBll->singleSignon($broker_return['user_id'], $broker_return['username'], $sid, $broker_return['user_type']);
     // 生成token
     $token = self::createToken(array($broker_return["id"], $broker_return['username'], time()));
     $broker_return['use_photo'] = Util_ImageUtils::get_broker_photo_url($broker_return['use_photo']);
     $insert_data["token"] = $token;
     $insert_data["user_id"] = $broker_return["id"];
     $insert_data["expired"] = Bll_TokenBiz::get_instance()->get_expire_time();
     $insert_data["app"] = APF::get_instance()->get_config('java_api_from');
     Bll_TokenBiz::get_instance()->insert($insert_data);
     $device_data = array();
     $device_data["user_id"] = $broker_return["id"];
     $device_data["app"] = APF::get_instance()->get_config('java_api_from');
     $device_data["device"] = "";
     $device_data["ismi"] = trim(@$this->_params["imsi"]);
     $device_data["ip"] = APF::get_instance()->get_request()->get_client_ip();
     $device_data["i"] = "";
     $device_data["m"] = "";
     $device_data["o"] = "";
     $device_data["v"] = "";
     $device_data["cv"] = "";
     $device_data["cid"] = "";
     $device_data["pm"] = "";
     $device_data["created"] = date("Y-m-d H:i:s");
     Bll_DeviceBiz::get_instance()->save($device_data);
     $dwStatsBiz = new Bll_DwStatsBiz();
     if (!empty($this->_params["macid"])) {
         $guid = md5(trim($this->_params["macid"]));
         $dwStatsBiz->saveGuid($guid);
     }
     if (!empty($this->_params["uuid"])) {
         $guid = md5(trim($this->_params["uuid"]));
         $dwStatsBiz->saveGuid($guid);
     }
     if (!empty($this->_params["i"])) {
         $guid = md5(trim($this->_params["i"]));
         $dwStatsBiz->saveGuid($guid);
     }
     if (!empty($this->_params["uuid2"])) {
         //ios7兼容
         $guid = md5(trim($this->_params["uuid2"]));
         $dwStatsBiz->saveGuid($guid);
     }
     if (!empty($this->_params["udid2"])) {
         //ios7兼容
         $guid = md5(trim($this->_params["udid2"]));
         $dwStatsBiz->saveGuid($guid);
     }
     $return = array();
     $return["status"] = "ok";
     $return['data']["token"] = $token;
     $return['data']['broker'] = $broker_return;
     //缓存信息到redis
     $redisInfo = array('brokerId' => $broker_info['broker']['brokerId'], 'username' => $broker_info['broker']['trueName'], 'userPhoto' => $broker_return['use_photo'], 'cityId' => $broker_info['broker']['cityId']);
     Bll_Commsign::redisBrokerInfo($broker_info['broker']['brokerId'], $redisInfo);
     return $return;
 }
Example #12
0
 public function handle_request_internal()
 {
     if (Bll_Weshop::weshopPropsIsMaintain()) {
         return array('status' => 'error', 'message' => "系统维护中,请稍后再试!");
     }
     //存储房源  存储图片
     $brokerId = $this->_params['brokerId'];
     $data = $this->_params;
     //header('Content-Type: application/json; charset=utf-8');
     $images = json_decode($data['imageJson'], true);
     if (count($images) > 8) {
         throw new Exception_Prop_PropImageBeyondLimit();
     }
     if (mb_strlen($data['propDescription'], 'utf-8') > 500) {
         throw new Exception_Prop_PropDescriptionBeyondLimit();
     }
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     $tagIds = explode(',', $data['tagIds']);
     if (count($tagIds) > 4) {
         throw new Exception_Prop_PropTagsBeyondLimit();
     }
     $tmpBrokerIds = array(1471136);
     // ios5.2 加急审核
     if ($data['tagIds'] == 2 && $data['cv'] == 5.2 && in_array($data['brokerId'], $tmpBrokerIds)) {
         return array();
     }
     //小区信息
     $commInfo = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($data['commId']);
     if (empty($commInfo)) {
         throw new Exception_Property_CommNotFound(Const_APIStatus::E_COMM_NOT_EXISTS);
     }
     $propInfo = array();
     $propInfo['cityId'] = $brokerInfo->cityId;
     $propInfo['commId'] = $data['commId'];
     $propInfo['brokerId'] = $brokerId;
     $propInfo['areaId'] = substr($commInfo['areaCode'], 0, 8);
     $propInfo['blockId'] = $commInfo['areaCode'];
     $propInfo['price'] = $data['price'] > 0 ? $data['price'] : 0;
     $propInfo['acreage'] = $data['area'];
     $propInfo['room'] = $data['room'];
     $propInfo['hall'] = $data['hall'];
     $propInfo['toilet'] = $data['toilet'];
     $propInfo['description'] = json_encode($data['propDescription']);
     if (!empty($data['title'])) {
         $propInfo['title'] = trim($data['title']);
     }
     if (!empty($data['floor'])) {
         $propInfo['floor'] = intval($data['floor']);
     }
     if (!empty($data['totalFloor'])) {
         $propInfo['totalFloor'] = intval($data['totalFloor']);
     }
     $propInfo['tagIds'] = $data['tagIds'];
     //特色
     $propInfo['status'] = 1;
     $propInfo['createTime'] = date('Y-m-d H:i:s', time());
     $propInfo['updateTime'] = date('Y-m-d H:i:s', time());
     //存储房源
     $result = Model_Weshop_Props::insertWeshopProps($propInfo);
     $propId = $result->id;
     //$areaInfo = Model_City_TypeCode::getTypeName($propInfo['areaId']);
     //$areaName = $areaInfo->typeName;
     //$blockInfo = Model_City_TypeCode::getTypeName($propInfo['blockId']);
     //$blockName = $blockInfo->typeName;
     $areaInfo = Bll_Commtype_Api::getInfoByTypeCode($propInfo['areaId']);
     $areaName = $areaInfo['typeName'];
     $blockInfo = Bll_Commtype_Api::getInfoByTypeCode($propInfo['blockId']);
     $blockName = $blockInfo['typeName'];
     $imageUrl = '';
     if ($images) {
         foreach ($images as $key => $img) {
             $img_params['propId'] = $propId;
             $img_params['imageHostId'] = $img['host'];
             $img_params['imageHash'] = $img['hash'];
             $img_params['isDelete'] = 0;
             if ($key == 0) {
                 $img_params['isDefault'] = 1;
                 $url = Util_ImageUtils::getResizeURL($img_params['imageHash'], $img_params['imageHostId'], 290, 240);
                 //(拼好小图)
                 $imageUrl = str_replace("240", "240c", $url);
                 //无水印格式
             } else {
                 $img_params['isDefault'] = 0;
             }
             $img_params['createTime'] = date('Y-m-d H:i:s', time());
             $img_params['updateTime'] = date('Y-m-d H:i:s', time());
             $img_params['imageType'] = 1;
             //室内图
             //存储图片
             Model_Weshop_PropImages::insertWeshopPropImages($img_params);
         }
     }
     //户型图
     if (!empty($data['outdoorImageJson'])) {
         $outdoorImages = json_decode($data['outdoorImageJson'], true);
         if (!empty($outdoorImages)) {
             $img_params['propId'] = $propId;
             $img_params['imageHostId'] = $outdoorImages['host'];
             $img_params['imageHash'] = $outdoorImages['hash'];
             $img_params['isDelete'] = 0;
             $img_params['isDefault'] = 0;
             $img_params['createTime'] = date('Y-m-d H:i:s', time());
             $img_params['updateTime'] = date('Y-m-d H:i:s', time());
             $img_params['imageType'] = 2;
             //户型图
             //存储图片
             Model_Weshop_PropImages::insertWeshopPropImages($img_params);
         }
     }
     header("Access-Control-Allow-Origin: *");
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('propId' => $propId, 'title' => $propInfo['title'] ? $propInfo['title'] : $commInfo['commName'] . ' ' . $result->room . '室' . $result->hall . '厅' . ' ' . $result->acreage . '平' . ' ' . intval($result->price) . '万', 'areaName' => $areaName, 'blockName' => $blockName, 'commId' => $commInfo['commId'], 'commName' => $commInfo['commName'], 'room' => $result->room, 'hall' => $result->hall, 'toilet' => $result->toilet, 'price' => intval($result->price), 'priceUnit' => '万', 'area' => $result->acreage, 'areaUnit' => '平米', 'propDescription' => json_decode($propInfo['description']), 'previewUrl' => Bll_Weshop::getPropPreviewUrl(array('brokerId' => $brokerId, 'propId' => $propId)), 'imageUrl' => $imageUrl));
 }
Example #13
0
 public function handle_request_internal()
 {
     header("Access-Control-Allow-Origin: *");
     $propId = $this->_params['propId'];
     //好丑陋。。。。。。好无奈。。。。。。
     //委托房源自动转发停用,为了app能够展示报错信息。。。
     if (empty($propId)) {
         $this->_params['apiDebug'] = 1;
         return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'errcode' => '0000', 'message' => '委托房源自动转发功能已停用;若要发布请手动发布');
     }
     $propInfo = Bll_Ppc_ServiceAPI::getHouseInfo($propId);
     $brokerId = $this->_params['brokerId'];
     $houseInfo = Model_House_EsfHouseElementFactory::getHouseBaseInfo($propId);
     if (empty($houseInfo)) {
         $cityId = Model_Broker_AjkBrokerExtend::getCityIdByBrokerId($this->_params['brokerId']);
         $houseInfo = Bll_House_EsfHouse::getHouseBaseInfo($propId, $cityId);
     }
     if (!empty($houseInfo)) {
         $result['status'] = 'ok';
         $areaCode = $houseInfo['areaCode'];
         $block = Bll_Commtype_Api::getInfoByTypeCode($areaCode);
         $area = Bll_Commtype_Api::getInfoByTypeId($block['parentId']);
         $area_name = $area['typeName'];
         $block_name = $block['typeName'];
         $data['title'] = $houseInfo['proName'];
         $data['commId'] = $houseInfo['commId'];
         $data['commName'] = $houseInfo['commName'];
         //小区信息
         $commInfo = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($data['commId'], 2);
         $data['commLocation'] = $commInfo['commLocal'];
         $data['sosolat'] = $commInfo['sosolat'];
         //纬度
         $data['sosolng'] = $commInfo['sosolng'];
         //经度
         $data['floor'] = $propInfo['property']['ProFloor'];
         $data['totalFloor'] = $propInfo['property']['FloorNum'];
         $propDescription = $propInfo['property']['sale']['AddExplan'];
         $propDescription = str_replace('<p>', "", $propDescription);
         $propDescription = str_replace('</p>', "", $propDescription);
         $propDescription = trim($propDescription);
         $data['propDescription'] = $propDescription;
         $data['areaname'] = $area_name;
         $data['blockname'] = $block_name;
         $data['roomNum'] = $houseInfo['roomNum'];
         $data['hallNum'] = $houseInfo['hallNum'];
         $data['toiletNum'] = $houseInfo['toiletNum'];
         $data['area'] = $houseInfo['areaNum'];
         $data['areaUnit'] = '平米';
         $data['price'] = $houseInfo['proPrice'];
         $data['priceUnit'] = '万';
         $data['isMoreImg'] = $houseInfo['isHighQulity'];
         $data['isVisible'] = $houseInfo['isVisible'];
         $data['isPhonePub'] = $houseInfo['uriCode'] == 'mobile.asyn' || $houseInfo['uriCode'] == 'mobile-ajk-broker.asyn' ? 1 : 0;
         $data['propImagesUrl'] = array();
         $data['propImages'] = $data['outdoorImage'] = array();
         if ($propInfo['attachments']['attachments']) {
             $propImageNum = 0;
             $outdoorImageNum = 0;
             $images = $propInfo['attachments']['attachments'];
             foreach ($images as $image) {
                 if ($image['DataType'] == 2) {
                     if ($propImageNum >= 8) {
                         continue;
                     }
                     $imageInfo = array();
                     $url = Util_ImageUtils::getResizeURL($image['FileName'], $image['host_id'], 600, 600);
                     $url = str_replace("display", "display/e", $url);
                     $imageInfo['bigImageUrl'] = $url;
                     $data['propImages'][] = $imageInfo;
                     $propImageNum += 1;
                 } else {
                     if ($image['DataType'] == 3) {
                         if ($outdoorImageNum >= 1) {
                             continue;
                         }
                         $imageInfo = array();
                         $url = Util_ImageUtils::getResizeURL($image['FileName'], $image['host_id'], 600, 600);
                         $url = str_replace("display", "display/e", $url);
                         $imageInfo['bigImageUrl'] = $url;
                         $data['outdoorImage'][] = $imageInfo;
                         $outdoorImageNum += 1;
                     }
                 }
             }
         }
         $spread = Model_Plan_AjkPropspread::getAjkPropSpreadByIds($propId);
         $data['isChoice'] = $data['isBid'] = 0;
         if (!empty($spread)) {
             if ($spread[0]['bidVersion'] == 1 && $spread[0]['status'] == 1) {
                 $data['isBid'] = 1;
             } elseif ($spread[0]['bidVersion'] == 2 && ($spread[0]['status'] == 1 || $spread[0]['status'] == 11)) {
                 $data['isChoice'] = 1;
             }
         }
         //计算出房源推广天数
         $timeFixStr = strtotime(date("Ymd", $houseInfo['postDate']));
         $leftDay = floor((time() - $timeFixStr) / 86400);
         $data['publishDaysMsg'] = $leftDay > 0 ? $leftDay . '天前发布' : '今天发布';
         $imgBll = Bll_Image_EsfHouseImage::getInstance();
         $data['imgUrl'] = $imgBll->getThumbImageUrl($propId, $houseInfo['commId']);
         $mobileBaseDomain = APF::get_instance()->get_config("mobile_base_domain");
         $data['url'] = 'http://' . $mobileBaseDomain . '/sale/x/' . $houseInfo['cityId'] . '/' . $houseInfo->proId;
         //增加委托房源标签
         if ($houseInfo['commitionType'] == 2) {
             $data['isEntrust'] = 1;
         } else {
             $data['isEntrust'] = 0;
         }
     } else {
         $data['status'] = 'error';
         $data['message'] = '房源信息不存在';
     }
     $result['data'] = $data;
     return $result;
 }
Example #14
0
 /**
  * 注册微聊账号
  *
  * @param int|Model_Broker_AjkBrokerExtend $brokerInfo
  * @param $pushType
  *
  * @return array
  * @throws Exception
  */
 public function register($brokerInfo, $pushType)
 {
     if (is_numeric($brokerInfo)) {
         $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerInfo);
         if (is_null($brokerInfo)) {
             throw new Exception_BrokerNotFoundException();
         }
     } else {
         if (!$brokerInfo instanceof Model_Broker_AjkBrokerExtend) {
             throw new Exception_InvalidParameterException();
         }
     }
     $brokerId = $brokerInfo['brokerId'];
     $phone = $brokerInfo['userMobile'];
     $isActive = $pushType == 1 ? 1 : 0;
     // 验证手机号码是否合法
     if (!preg_match('/^1((3[0-9])|(4[0-9])|(5[0-9])|(7[0-9])|(8[0-9]))[0-9]{8}$/', $phone)) {
         throw new Exception_InvalidPhoneException();
     }
     // 调用微聊接口注册
     $path = "/user/register/{$phone}";
     $params = array('phone' => $phone, 'user_type' => 2, 'broker_id' => $brokerId, 'nick_name' => $brokerInfo['trueName'], 'icon' => Util_ImageUtils::get_broker_photo_url($brokerInfo['userPhoto'], '200x200') ? Util_ImageUtils::get_broker_photo_url($brokerInfo['userPhoto'], '200x200') : "", 'desc' => $brokerInfo['aphorism'], 'corp' => $brokerInfo['company'], 'is_active' => $isActive);
     $response = Util_CallAPI::get_data_from_chat_api($path, json_encode($params));
     // 注册成功,回写数据,发送欢迎消息
     if ($response && $response['data']['status'] == 'OK') {
         $chatId = $response['data']['result']['user_id'];
         Model_Mobile_BrokerChatInfo::addChatInfo(array('brokerId' => $brokerInfo['brokerId'], 'chatId' => $chatId, 'phone' => $phone, 'pushType' => $pushType, 'isPushed' => 1, 'sendMsgNum' => 0, 'isActived' => $isActive, 'createTime' => time(), 'updateTime' => time()));
         // 发送欢迎信息
         Bll_Chat::sendPublicMsg($chatId, '欢迎使用微聊!从此客户可以通过微聊轻松找到你。新渠道,带来更多的客户。不用担心通话不便,客户不真实,准备好开始微聊了吗?');
     }
     return $response;
 }
Example #15
0
 public function handle_request_internal()
 {
     $request = APF::get_instance()->get_request();
     $params = $request->get_parameters();
     $fields = array('commId', 'roomNum', 'hallNum', 'toiletNum', 'houseOri');
     $apiParams = array();
     foreach ($fields as $field) {
         if (!isset($params[$field])) {
             $this->responseJSON('error', array(), '参数不全');
             return;
         }
         $apiParams[$field] = $params[$field];
     }
     $data = array('MODELPIC' => array(), 'COMMPIC' => array());
     $apiParams['houseOri'] = Bll_House_EsfPublish::getPropOrigin($apiParams['houseOri']);
     try {
         /**
          * @var $result Bll_Service_Client_HttpResponse
          */
         $result = Bll_Service_Image::esfGetImgInfo($apiParams);
         if ($result->isFailed()) {
             $this->responseJSON('error', $data, '调用API超时');
             return;
         }
         if ($result['status'] != 'ok') {
             $this->responseJSON('error', $data, '调用API失败');
             return;
         }
         /** 房型图 */
         $modelPicAIds = array();
         if (isset($result['publicPicResult']['fineImg']['count']) && isset($result['publicPicResult']['fineImg']['list'])) {
             foreach ($result['publicPicResult']['fineImg']['list'] as $imageInfo) {
                 $modelPicAIds[] = $imageInfo['Aid'];
             }
         }
         if (isset($result['publicPicResult']['readyImg']['count']) && isset($result['publicPicResult']['readyImg']['list'])) {
             foreach ($result['publicPicResult']['readyImg']['list'] as $imageInfo) {
                 $modelPicAIds[] = $imageInfo['Aid'];
             }
         }
         if (!empty($modelPicAIds)) {
             $modelImageList = Model_Community_Attachment::getImageInfoById($modelPicAIds, array('aid', 'fileName', 'hostId'));
             foreach ($modelImageList as $imageInfo) {
                 $imageInfo['AID'] = intval($imageInfo['aid']);
                 $imageInfo['commPicId'] = intval($imageInfo['aid']);
                 $imageInfo['IMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['fileName'], $imageInfo['hostId'], 100, 75);
                 $imageInfo['BIGIMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['fileName'], $imageInfo['hostId'], 600, 600);
                 $data['MODELPIC'][] = $imageInfo;
             }
         }
         if (isset($result['publicPicResult']['othResult']['count']) && isset($result['publicPicResult']['othResult']['attachmentsComm'])) {
             foreach ($result['publicPicResult']['othResult']['attachmentsComm'] as $imageInfo) {
                 $imageInfo['AID'] = intval($imageInfo['Aid']);
                 $imageInfo['commPicId'] = intval($imageInfo['Aid']);
                 $imageInfo['IMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 100, 75);
                 $imageInfo['BIGIMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 600, 600);
                 $data['MODELPIC'][] = $imageInfo;
             }
         }
         /** 小区图 */
         if (isset($result['publicPicResult']['commPic']['count']) && isset($result['publicPicResult']['commPic']['attachmentsComm'])) {
             foreach ($result['publicPicResult']['commPic']['attachmentsComm'] as $imageInfo) {
                 $imageInfo['AID'] = intval($imageInfo['Aid']);
                 $imageInfo['commPicId'] = intval($imageInfo['Aid']);
                 $imageInfo['IMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 100, 75);
                 $imageInfo['BIGIMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 600, 600);
                 $data['COMMPIC'][] = $imageInfo;
             }
         }
         $data['MODELPIC'] = array_slice($data['MODELPIC'], 0, 10);
         $data['COMMPIC'] = array_slice($data['COMMPIC'], 0, 20);
         $this->responseJSON('ok', $data, '');
     } catch (Exception $e) {
         $this->responseJSON('error', $data, $e->getMessage());
     }
 }
Example #16
0
 public function handle_request_internal()
 {
     if (Bll_Weshop::weshopPropsIsMaintain()) {
         return array('status' => 'error', 'message' => "系统维护中,请稍后再试!");
     }
     header("Access-Control-Allow-Origin: *");
     $brokerId = $this->_params['brokerId'];
     $propIds = explode(',', $this->_params['propIds']);
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     //房源表查寻后 添加到队列表
     $propsInfos = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $brokerInfo->cityId);
     if (count($propIds) == 1) {
         //插入 房源列表  并返回
         $propInfo = Bll_Ppc_ServiceAPI::getHouseInfo($propIds[0]);
         if ($propInfo) {
             $params = array();
             $params['cityId'] = $propInfo['property']['CityId'];
             $params['commId'] = $propInfo['property']['CommId'];
             $params['brokerId'] = $brokerId;
             $params['areaId'] = substr($propInfo['property']['AreaCode'], 0, 8);
             $params['blockId'] = $propInfo['property']['AreaCode'];
             $params['price'] = $propInfo['property']['ProPrice'];
             $params['acreage'] = $propInfo['property']['AreaNum'];
             $params['room'] = $propInfo['property']['RoomNum'];
             $params['hall'] = $propInfo['property']['HallNum'];
             $params['toilet'] = $propInfo['property']['ToiletNum'];
             $propDescription = $propInfo['property']['sale']['AddExplan'];
             $propDescription = str_replace('<p>', "", $propDescription);
             $propDescription = str_replace('</p>', "", $propDescription);
             $propDescription = trim($propDescription);
             $params['description'] = json_encode($propDescription);
             $params['title'] = $propInfo['property']['ProName'];
             $params['floor'] = $propInfo['property']['ProFloor'];
             $params['totalFloor'] = $propInfo['property']['FloorNum'];
             $params['status'] = 1;
             $params['createTime'] = date('Y-m-d H:i:s', time());
             $params['updateTime'] = date('Y-m-d H:i:s', time());
             $result = Model_Weshop_Props::insertWeshopProps($params);
             //存储图片 默认图 区分 室内图8张 户型图 1张
             $imageUrl = '';
             if ($propInfo['attachments']['attachments']) {
                 $propImageNum = 0;
                 $outdoorImageNum = 0;
                 $images = $propInfo['attachments']['attachments'];
                 foreach ($images as $image) {
                     if ($image['DataType'] == 2) {
                         if ($propImageNum >= 8) {
                             continue;
                         }
                         if ($propImageNum == 0) {
                             $img_params['isDefault'] = 1;
                             //默认图
                             $url = Util_ImageUtils::getResizeURL($image['FileName'], $image['host_id'], 290, 240);
                             //(拼好小图)
                             $imageUrl = str_replace("240", "240c", $url);
                             //无水印格式
                         } else {
                             $img_params['isDefault'] = 0;
                         }
                         $img_params['imageType'] = 1;
                         //室内图
                         $propImageNum += 1;
                     } else {
                         if ($image['DataType'] == 3) {
                             if ($outdoorImageNum >= 1) {
                                 continue;
                             }
                             $img_params['imageType'] = 2;
                             //户型图
                             $outdoorImageNum += 1;
                         }
                     }
                     $img_params['propId'] = $result->id;
                     $img_params['imageHostId'] = $image['host_id'];
                     $img_params['imageHash'] = $image['FileName'];
                     $img_params['isDelete'] = 0;
                     $img_params['createTime'] = date('Y-m-d H:i:s', time());
                     $img_params['updateTime'] = date('Y-m-d H:i:s', time());
                     //存储图片
                     Model_Weshop_PropImages::insertWeshopPropImages($img_params);
                 }
             }
             if ($result) {
                 //插入 weshop_prop_ext表
                 $tmp = array('weshopPropId' => $result->id, 'brokerId' => $brokerId, 'propId' => $propIds[0]);
                 Model_Weshop_PropsFilter::insertRecord($tmp);
                 //区域板块
                 $areaAndBlockIds = array();
                 $areaId = $params['areaId'];
                 $blockId = $params['blockId'];
                 $areaAndBlockIds[] = $areaId;
                 $areaAndBlockIds[] = $blockId;
                 $commTypeInfos = Bll_Community_CommunityGardener::getCommTypeInfo($areaAndBlockIds);
                 $previewUrl = Bll_Weshop::getPropPreviewUrl(array('brokerId' => $brokerId, 'propId' => $result->id));
                 return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('propId' => $result->id, 'title' => $propInfo['property']['ProName'], 'areaName' => $commTypeInfos[$areaId], 'blockName' => $commTypeInfos[$blockId], 'commId' => $propInfo['property']['CommId'], 'commName' => $propInfo['property']['CommName'], 'room' => $propInfo['property']['RoomNum'], 'hall' => $propInfo['property']['HallNum'], 'toilet' => $propInfo['property']['ToiletNum'], 'price' => $propInfo['property']['ProPrice'], 'priceUnit' => '万', 'area' => $propInfo['property']['AreaNum'], 'areaUnit' => '平米', 'propDescription' => $propDescription, 'previewUrl' => $previewUrl, 'imageUrl' => $imageUrl));
             }
         }
     }
     //插入队列表
     foreach ($propsInfos as $propsInfo) {
         if ($propsInfo['brokerId'] == $brokerId) {
             $params = array();
             $params['brokerId'] = $brokerId;
             $params['propId'] = $propsInfo['proId'];
             $params['cityId'] = $brokerInfo->cityId;
             $params['status'] = 0;
             $params['addTime'] = date('Y-m-d H:i:s', time());
             $params['updateTime'] = date('Y-m-d H:i:s', time());
             Model_Weshop_PropQueue::insertWeshopPropQueue($params);
         }
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('message' => '导入成功'));
 }
Example #17
0
 public static function getHouseImageEx($brokerId, $houseId)
 {
     $result = array('COMMPIC' => array(), 'MODELPIC' => array(), 'SELCOMM' => array(), 'SELMODEL' => array(), 'UPDCOMM' => array(), 'UPDMODEL' => array(), 'UPDROOM' => array(), 'DEFAULTIMGID' => '', 'ALLCOMM' => array(), 'ALLMODEL' => array());
     $apiResult = Bll_Service_House_EsfHouseInfo::getHouseImage($houseId);
     if ($apiResult->isFailed()) {
         return $result;
     }
     if ($apiResult['status'] != 'ok') {
         return $result;
     }
     $houseBaseInfo = $apiResult['property'];
     if ($houseBaseInfo['BrokerId'] != $brokerId) {
         return $result;
     }
     $attachments = array();
     if (isset($apiResult['attachments']['attachments'])) {
         foreach ($apiResult['attachments']['attachments'] as $imageInfo) {
             if (empty($imageInfo['FileName'])) {
                 continue;
             }
             if ($imageInfo['IsSel']) {
                 $result['DEFAULTIMGID'] = $imageInfo['AId'];
             }
             $imageInfo['imageId'] = $imageInfo['AId'];
             $imageInfo['AID'] = $imageInfo['AId'];
             $imageInfo['url'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 100, 75);
             $imageInfo['bigImageUrl'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 600, 600);
             $attachments[$imageInfo['AId']] = $imageInfo;
             if ($imageInfo['CommPicId'] != 0 && !isset($attachments[$imageInfo['AId']])) {
                 $attachments[$imageInfo['CommPicId']] = $imageInfo;
             }
         }
     }
     if (empty($attachments)) {
         return $result;
     }
     $communityImageIds = array();
     $roomImageIds = array();
     $modelImageIds = array();
     static::parseSideOther($houseBaseInfo['SideOther'], $communityImageIds, $roomImageIds, $modelImageIds);
     /*
     if (!empty($communityImageIds) && is_array($communityImageIds)) {
         foreach ($communityImageIds as $imageId) {
             if (isset($attachments[$imageId])) {
                 $result['ALLCOMM'][] = $attachments[$imageId];
             }
         }
     }
     
     if (!empty($roomImageIds) && is_array($roomImageIds)) {
         foreach ($roomImageIds as $imageId) {
             if (isset($attachments[$imageId])) {
                 $result['UPDROOM'][] = $attachments[$imageId];
             }
         }
     }
     
     if (!empty($modelImageIds) && is_array($modelImageIds)) {
         foreach ($modelImageIds as $imageId) {
             if (isset($attachments[$imageId])) {
                 $result['ALLMODEL'][] = $attachments[$imageId];
             }
         }
     }
     */
     $result['ALLCOMM'] = static::getCommunityImage($attachments, $communityImageIds, 1);
     $result['UPDROOM'] = static::getCommunityImage($attachments, $roomImageIds, 2);
     $result['ALLMODEL'] = static::getCommunityImage($attachments, $modelImageIds, 3);
     return $result;
 }
Example #18
0
 /**
  * @param array $communityIds 小区编号
  */
 protected function getCommunityImageUrls($communityIds)
 {
     if (empty($communityIds)) {
         return array();
     }
     // ID去重
     $communityIds = array_flip(array_flip($communityIds));
     $communityImages = Model_Community_Attachment::data_access()->load_field(array('commId', 'fileName', 'hostId'))->filter('commId', $communityIds)->filter('imageSign', Model_Community_Attachment::IMAGE_SIGN_COMMUNITY)->filter('isDefault', Model_Community_Attachment::DEFAULT_YES)->find_all();
     $communityImageUrls = array();
     foreach ($communityImages as $communityImage) {
         $communityImageUrls[$communityImage->commId] = Util_ImageUtils::format_commpicurl_to_larger(Util_ImageUtils::convert_community_image2urlLarge($communityImage->fileName, $communityImage->hostId));
     }
     foreach ($communityIds as $communityId) {
         if (!isset($communityImageUrls[$communityId])) {
             $communityImageUrls[$communityId] = 'http://pages.anjukestatic.com/img/global/nopic2_385x240.gif';
         }
     }
     return $communityImageUrls;
 }
Example #19
0
 public function handle_request_internal()
 {
     if (Bll_Weshop::weshopPropsIsMaintain()) {
         return array('status' => 'error', 'message' => "系统维护中,请稍后再试!");
     }
     header("Access-Control-Allow-Origin: *");
     $brokerId = $this->_params['brokerId'];
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     $sinceId = isset($this->_params['sinceId']) ? intval($this->_params['sinceId']) : 0;
     //从$sinceId 行开始读
     $per = isset($this->_params['per']) ? $this->_params['per'] : 10;
     //每页显示的条数
     //获取经纪人房源
     $brokerProps = Model_Weshop_Props::getWeshopPropsByBrokerId($brokerId, $per + 1, $sinceId);
     $totalProps = Model_Weshop_Props::getWeshopPropsCount($brokerId);
     $propList = array();
     $hasNextPage = 0;
     if (!empty($brokerProps)) {
         $hasNextPage = count($brokerProps) > $per ? 1 : 0;
         if ($hasNextPage) {
             array_pop($brokerProps);
             $sinceId += $per;
         } else {
             $sinceId = 0;
         }
         $propIds = array();
         $commIds = array();
         foreach ($brokerProps as $prop) {
             $propIds[] = $prop->id;
             $commIds[] = $prop->commId;
         }
         //批量获取小区信息
         list($commInfos, $areaIds, $blockIds) = $this->getCommInfos($commIds);
         $araNames = $this->getCommTypeInfo($areaIds);
         $blockIdNames = $this->getCommTypeInfo($blockIds);
         //批量获取房源默认图片
         $defaultImages = $this->getPropDefaultImage($propIds);
         foreach ($brokerProps as $brokerProp) {
             $row = array();
             $row['propId'] = $brokerProp->id;
             $row['commId'] = $brokerProp->commId;
             $row['commName'] = $commInfos[$brokerProp->commId]['commName'];
             //批量获取小区信息  commIds propIds
             $areaId = substr($commInfos[$brokerProp->commId]['areaCode'], 0, 8);
             $blockId = $commInfos[$brokerProp->commId]['areaCode'];
             $row['areaName'] = $araNames[$areaId];
             //批量获取区域 板块
             $row['blockName'] = $blockIdNames[$blockId];
             //批量获取区域 板块
             $row['room'] = $brokerProp->room;
             $row['hall'] = $brokerProp->hall;
             $row['toilet'] = $brokerProp->toilet;
             $row['area'] = $brokerProp->acreage;
             $row['areaUnit'] = '平米';
             $row['price'] = intval($brokerProp->price);
             $row['priceUnit'] = '万';
             $isJson = Util_String::isJson($brokerProp->description);
             $row['propDescription'] = $isJson ? json_decode($brokerProp->description) : $brokerProp->description;
             $row['title'] = $brokerProp->title ? $brokerProp->title : $row['commName'] . ' ' . $row['room'] . '室' . $row['hall'] . '厅' . ' ' . $row['area'] . '平' . ' ' . $row['price'] . '万';
             $imageUrl = PageHelper::pure_static_url(APF::get_instance()->get_config('prop_image_url_default', 'weshop', 'img/mobile/app/weshop_prop_default.jpg'));
             $url = Util_ImageUtils::getResizeURL($defaultImages[$brokerProp->id]['imageHash'], $defaultImages[$brokerProp->id]['imageHostId'], 290, 240);
             $url = str_replace("display", "display/e", $url);
             //无水印格式
             $url = str_replace("240", "240c", $url);
             $row['imageUrl'] = $defaultImages[$brokerProp->id] ? $url : $imageUrl;
             $row['previewUrl'] = Bll_Weshop::getPropPreviewUrl(array('brokerId' => $brokerId, 'propId' => $brokerProp->id));
             $propList[] = $row;
         }
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('propList' => $propList, 'sinceId' => $sinceId, 'hasNextPage' => $hasNextPage, 'totalProps' => $totalProps));
 }
Example #20
0
 public function handle_request_internal()
 {
     if (Bll_Weshop::weshopPropsIsMaintain()) {
         return array('status' => 'error', 'message' => "系统维护中,请稍后再试!");
     }
     //更新房源数据库
     //header('Content-Type: application/json; charset=utf-8');
     header("Access-Control-Allow-Origin: *");
     $brokerId = $this->_params['brokerId'];
     $data = $this->_params;
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     //获取房源信息
     $imageUrl = 'http://pages.anjukestatic.com/img/mobile/app/weshop_prop_default.jpg';
     $propId = $data['propId'];
     $oldPropInfo = Model_Weshop_Props::getWeshopProp($propId);
     if (empty($oldPropInfo)) {
         throw new Exception_Property_NotFound();
     }
     if ($oldPropInfo->brokerId != $brokerId) {
         throw new Exception_Prop_PropNotBelongBroker('brokerId' . $oldPropInfo->brokerId);
     }
     $images = json_decode($data['imageJson'], true);
     $outdoorImage = json_decode($data['outdoorImageJson'], true);
     if (count($images) > 8) {
         throw new Exception_Prop_PropImageBeyondLimit();
     }
     if (mb_strlen($data['propDescription'], 'utf-8') > 500) {
         throw new Exception_Prop_PropDescriptionBeyondLimit();
     }
     $tagIds = explode(',', $data['tagIds']);
     if (count($tagIds) > 4) {
         throw new Exception_Prop_PropTagsBeyondLimit();
     }
     //小区信息
     $commInfo = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($data['commId']);
     if (empty($commInfo)) {
         throw new Exception_Property_CommNotFound(Const_APIStatus::E_COMM_NOT_EXISTS);
     }
     $propInfo = array();
     $propInfo['cityId'] = $brokerInfo->cityId;
     $propInfo['commId'] = $data['commId'];
     $propInfo['brokerId'] = $brokerId;
     $propInfo['areaId'] = substr($commInfo['areaCode'], 0, 8);
     $propInfo['blockId'] = $commInfo['areaCode'];
     $propInfo['price'] = $data['price'] > 0 ? $data['price'] : 0;
     $propInfo['acreage'] = $data['area'];
     $propInfo['room'] = $data['room'];
     $propInfo['hall'] = $data['hall'];
     $propInfo['toilet'] = $data['toilet'];
     $propInfo['description'] = json_encode($data['propDescription']);
     if (!empty($data['title'])) {
         $propInfo['title'] = trim($data['title']);
     }
     if (!empty($data['floor'])) {
         $propInfo['floor'] = intval($data['floor']);
     }
     if (!empty($data['totalFloor'])) {
         $propInfo['totalFloor'] = intval($data['totalFloor']);
     }
     $propInfo['tagIds'] = $data['tagIds'];
     $propInfo['status'] = 1;
     $res = Model_Weshop_Props::updateWeshopProps($propId, $propInfo);
     if (!$res) {
         throw new Exception_Property_NotFound();
     } else {
         //比较图片是否有修改
         $oldImages = Model_Weshop_PropImages::getWeshopPropImages($propId);
         $oldImageHashAndHost = $oldOutImageHashAndHost = array();
         foreach ($oldImages as $img) {
             if ($img->imageType == 1) {
                 $oldImageHashAndHost[] = $img->imageHash;
                 $oldImageHashAndHost[] = $img->imageHostId;
             } elseif ($img->imageType == 2) {
                 $oldOutImageHashAndHost[] = $img->imageHash;
                 $oldOutImageHashAndHost[] = $img->imageHostId;
             }
         }
         $newImageHashAndHost = $newOutImageHashAndHost = array();
         foreach ($images as $img) {
             $newImageHashAndHost[] = $img['hash'];
             $newImageHashAndHost[] = $img['host'];
         }
         $newOutImageHashAndHost[] = $outdoorImage['hash'];
         $newOutImageHashAndHost[] = $outdoorImage['host'];
         $compareImages = $this->compareImages($oldImageHashAndHost, $newImageHashAndHost);
         //无论是否有图片的变化 一定返回室内图片的第一张 作为默认图在列表显示
         if ($images) {
             $imageUrl = str_replace("240", "240c", str_replace("display", "display/e", Util_ImageUtils::getResizeURL($images[0]['hash'], $images[0]['host'], 290, 240)));
         }
         //不同 室内图
         if (!$compareImages) {
             //删除老图片插入新图片
             foreach ($oldImages as $image) {
                 if ($image->imageType == 1) {
                     $image->isDelete = 1;
                     //删除
                     $image->save();
                 }
             }
             //插入新图片
             if ($images) {
                 foreach ($images as $key => $img) {
                     $img_params['propId'] = $propId;
                     $img_params['imageHostId'] = $img['host'];
                     $img_params['imageHash'] = $img['hash'];
                     $img_params['isDelete'] = 0;
                     $img_params['isDefault'] = $key == 0 ? 1 : 0;
                     $img_params['imageType'] = 1;
                     //室内图
                     $img_params['createTime'] = date('Y-m-d H:i:s', time());
                     $img_params['updateTime'] = date('Y-m-d H:i:s', time());
                     //存储新图片
                     Model_Weshop_PropImages::insertWeshopPropImages($img_params);
                 }
             }
         }
         $compareOutImages = $this->compareImages($oldOutImageHashAndHost, $newOutImageHashAndHost);
         //不同 房型图
         if (!$compareOutImages) {
             //删除老图片插入新图片
             foreach ($oldImages as $image) {
                 if ($image->imageType == 2) {
                     $image->isDelete = 1;
                     //删除
                     $image->save();
                 }
             }
             //插入新图片
             if ($outdoorImage) {
                 $img_params['propId'] = $propId;
                 $img_params['imageHostId'] = $outdoorImage['host'];
                 $img_params['imageHash'] = $outdoorImage['hash'];
                 $img_params['isDelete'] = 0;
                 $img_params['isDefault'] = 0;
                 $img_params['imageType'] = 2;
                 //户型图
                 $img_params['createTime'] = date('Y-m-d H:i:s', time());
                 $img_params['updateTime'] = date('Y-m-d H:i:s', time());
                 //存储新图片
                 Model_Weshop_PropImages::insertWeshopPropImages($img_params);
             }
         }
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('imageUrl' => $imageUrl, 'message' => '保存成功'));
 }
Example #21
0
 /**
  * 数据整理
  * @param $data
  * @param $brokerId
  * @param $showStatus
  * @param $commLocal
  * @param $rushBrokerId
  * @param $propertyId
  * @return array
  */
 private function formatdate($data, $eBrokers, $showStatus, $commLocal, $rushBrokerId, $propertyId, $imgInfos)
 {
     if (empty($data)) {
         return '';
     }
     $business = APF::get_instance()->get_config("choice_business", "multicity");
     $row = array();
     $row['entrustId'] = $data['id'];
     //委托ID
     $row['cityId'] = $data['cityId'];
     //房源所属城市
     $row['ownerId'] = $data['userId'];
     //房东ID
     $row['ownerName'] = $data['userName'];
     //房东姓名
     if ($data['owner400'] != 0) {
         $is400 = 1;
     } else {
         $is400 = 0;
     }
     $row['is400'] = $is400;
     if ($rushBrokerId) {
         $row['ownerMobile'] = $rushBrokerId ? $data['ownerMobile'] : substr_replace($data['ownerMobile'], '*****', 3, 5);
         //手机. 规则抢到显示
         $row['owner400'] = $rushBrokerId ? $data['owner400'] : ($is400 == 1 ? substr_replace($data['owner400'], '*****', 0, strlen($data['owner400'])) : 0);
         //是否绑定400。0-否;是-具体号码
     } else {
         $row['ownerMobile'] = substr_replace($data['ownerMobile'], '*****', 3, 5);
         $row['owner400'] = $is400 == 1 ? substr_replace($data['owner400'], '*****', 0, strlen($data['owner400'])) : 0;
         //是否绑定400。0-否;是-具体号码
     }
     $row['owner400Host'] = APF::get_instance()->get_config("400_host");
     if ($data['fromType'] != 0) {
         $houseExt = Model_House_CommissionHouseExtend::getHouseExtByPk($data['id']);
         $chatId = $houseExt ? $houseExt->chatId : '';
     } else {
         $chatId = '';
     }
     if ($rushBrokerId) {
         $row['ownerChatId'] = $rushBrokerId ? $chatId : '';
         //新增微聊id。
     } else {
         $row['ownerChatId'] = '';
     }
     $row['commId'] = $data['commId'];
     //对应的小区ID
     $row['commName'] = $data['commName'];
     //小区名称
     $row['commLocal'] = $commLocal;
     //小区地址
     $row['roomNum'] = $data['roomNum'];
     //房间数量
     $row['hallNum'] = $data['hallNum'];
     //客厅的数量x
     $row['toiletNum'] = $data['toiletNum'];
     //卫生间的数量
     $row['areaNum'] = $data['areaNum'];
     //房源的建筑面积;单位”平米”
     $row['areaUnit'] = '平米';
     //房源的建筑面积;单位”平米”
     $row['propPrice'] = $data['proPrice'];
     //房源价格(万元)/房源租金(元/月)
     $row['priceUnit'] = $data['commissionType'] == 1 ? '万元' : '元/月';
     //房源价格(万元)/房源租金(元/月)
     $row['entrustType'] = $data['commissionType'];
     //1-出售,2-出租
     if (!empty($imgInfos) && $data['commissionType'] == 1) {
         foreach ($imgInfos as $imginfo) {
             $img = array();
             $img['id'] = $imginfo['id'];
             $img['smallImageUrl'] = Util_Image::getInstance()->getResizeURL($imginfo['imageId'], $imginfo['hostId'], 100, 75);
             //(拼好小图)
             $img['bigImageUrl'] = Util_Image::getInstance()->getResizeURL($imginfo['imageId'], $imginfo['hostId'], 600, 600);
             //(拼好大图)
             $img['hostId'] = $imginfo['hostId'];
             $img['width'] = $imginfo['width'] ? $imginfo['width'] : 1280;
             $img['height'] = $imginfo['height'] ? $imginfo['height'] : 1500;
             $img['hash'] = $imginfo['imageId'];
             $img['type'] = 2;
             //图片类型 1:小区图 2: 室内图 3: 户型图
             $img['entry'] = 4;
             //图片来源 1:系统默认 2:相机拍摄 3:相册选取 4: 在线图库
             $img['exists'] = 1;
             //图片是否已存在
             $img['format'] = 'JPEG';
             $imgs[] = $img;
         }
         $row['imagesInfo'] = $imgs;
     } else {
         $row['imagesInfo'] = array();
     }
     if ($showStatus == 5 || $showStatus == 6) {
         $row['showStatus'] = 7;
     } else {
         $row['showStatus'] = $showStatus;
     }
     //房源状态 0-非法数据暂时没用 1-违规删除 2-已过期 3-抢完了 4-可以抢 5-抢到未发布;6-抢到已发布未推广;7-抢到已发布已推广;8-房东已删除;9-房东停止委托;
     $row['propertyId'] = $propertyId;
     $row['created'] = $data['created'];
     //创建时间
     $row['lastModifyDate'] = $data['lastModifyDate'];
     //最后更改时间
     $row['brokerIds'] = $eBrokers ? implode(',', $eBrokers) : '';
     //该套委托二手房源的所有经纪人id
     $row['isRealityPats'] = empty($imgs) ? 0 : 1;
     //实拍icon 1:显示实拍 0:不显示
     if (!empty($business)) {
         $row['isChoiceCity'] = in_array($data['cityId'], $business) ? 1 : 0;
         //1:精选城市 0:非精选城市
     } else {
         $row['isChoiceCity'] = 0;
     }
     $row['timeState'] = Bll_Common_Format::formatTime($data['created']);
     //倒计时
     $row['brokerImages'] = array();
     if ($showStatus == 3) {
         //已抢完,加入经纪人头像
         $commissionInfo = Model_House_Commission::getCommissionsOrderById(intval($data['id']));
         $brokerIds = array();
         foreach ($commissionInfo as $comm) {
             $brokerIds[] = $comm['brokerId'];
         }
         $brokerInfo = array();
         $brokers = array();
         $brokerInfo = Model_Broker_AjkBrokerExtend::findMultiBrokers($brokerIds);
         foreach ($brokerInfo as $broInfo) {
             $brokers[$broInfo['brokerId']] = $broInfo;
         }
         if (!empty($brokerIds)) {
             foreach ($brokerIds as $broId) {
                 $photo = Util_ImageUtils::get_broker_photo_url($brokers[$broId]['userPhoto'], '200x200');
                 $row['brokerImages'][] = $photo ? $photo : APF::get_instance()->get_config("broker_image_url");
             }
         } else {
             for ($i = 0; $i < 5; $i++) {
                 $row['brokerImages'][$i] = APF::get_instance()->get_config("broker_image_url");
             }
         }
     }
     return $row;
 }