예제 #1
0
 public function handle_request_internal()
 {
     $request = APF::get_instance()->get_request();
     $params = $request->get_parameters();
     $city = $params['city'];
     $company = $params['company'];
     $storeName = $params['kw'];
     $storeName = sprintf('%%%s%%', $storeName);
     $area_id = $params['areaid'];
     $block_id = $params['block_id'];
     $type = $params['type'];
     if ($block_id == 0) {
         $areacode = 0;
     } else {
         // 根据type 获取areacode.
         $type = intval($type);
         $rst = DAO_Common_common::getCommTypeDetail($type);
         $areacode = @$rst['TYPECODE'];
     }
     $storeList = Model_Broker_AjkCstBrokerCompany::getStoreListByKeyword($company, $city, $storeName);
     $store = array();
     $other = array('id' => 0, 'name' => '其他门店', 'AreaId' => 0, 'AreaName' => null, 'BlockId' => 0, 'BlockName' => null);
     array_push($store, $other);
     foreach ($storeList as $k => $v) {
         //$area = DAO_Common_common::getAreaInfo(substr($v['areaCode'], 0, 8));
         //$block = DAO_Common_common::getAreaInfo($v['areaCode']);
         $block = Model_City_TypeCode::getAreaInfo($v['areaCode']);
         $area = Model_City_TypeCode::getAreaInfoByTypeIdEx($block['parentId']);
         $swap = array('id' => $v['comanyId'], 'name' => $v['comanyName'], 'AreaId' => $area['typeId'], 'AreaName' => $area['typeName'], 'BlockId' => $block['typeId'], 'BlockName' => $block['typeName']);
         array_push($store, $swap);
     }
     echo json_encode($store);
 }
예제 #2
0
 public function handle_request_internal()
 {
     $cityId = $this->_params['cityId'];
     //$areaInfoBycityId = Model_City_TypeCode::getAreaInfoByCityId($cityId);
     $areaInfoBycityId = Bll_Commtype_Api::getAreaInfoByCityId($cityId);
     //$areaInfosByParentId = Model_City_TypeCode::getAreaInfoByParentId($areaInfoBycityId['typeId']);
     $areaInfosByParentId = Bll_Commtype_Api::getAreaInfoByParentId($areaInfoBycityId['typeId']);
     $return = array();
     foreach ($areaInfosByParentId as $value) {
         //判断区域下面有没有板块,如果没有板块,则不现实该区域
         $blockInfos = Model_City_TypeCode::getAreaInfoByParentId($value['typeId']);
         $blockCount = count($blockInfos);
         if ($blockCount > 0) {
             $return['districtList'][] = array('districtId' => $value['typeId'], 'districtName' => $value['typeName']);
         }
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $return);
 }
예제 #3
0
 public function handle_request_internal()
 {
     //$a = Bll_Commtype_Api::getInstance()->search(1,200);
     //    $a = Bll_Commtype_Api::getInfoByTypeIdOrCode(array(200,201),0,2);
     ///print_r($a);exit;
     $a = Bll_Commtype_Api::getAreaInfoByCityId(11);
     print_r($a);
     $tmp = Model_City_TypeCode::get_area_block(200);
     echo $tmp->typeName;
     phpinfo();
     die;
     $hzbrokerId = 147468;
     $r = Bll_Hammer::send_gift($hzbrokerId);
     echo "<pre>";
     var_dump($r);
     die;
     $ret = array('status' => 'ok', 'data' => array('num1' => 10000, 'num2' => 20000));
     $this->output($ret);
     die;
 }
예제 #4
0
 protected function getAreaCodeNames($areaCodes)
 {
     if (empty($areaCodes)) {
         return array();
     }
     // 去重
     $areaCodes = array_flip(array_flip($areaCodes));
     // 获取区域的编码
     foreach ($areaCodes as $areaCode) {
         if (strlen($areaCode) > 8) {
             $areaCodes[] = substr($areaCode, 0, 8);
         }
     }
     // 再次去重
     $areaCodes = array_flip(array_flip($areaCodes));
     $typeCodes = Model_City_TypeCode::data_access()->filter('typeCode', $areaCodes)->find_all();
     $result = array();
     foreach ($typeCodes as $typeCode) {
         $result[$typeCode->typeCode] = $typeCode->typeName;
     }
     return $result;
 }
예제 #5
0
 /**
  * 获取城市的板块信息
  *
  * @param string $areaCode
  * @return array
  */
 public static function getAreaBlock($type_id)
 {
     $blockInfos = Model_City_TypeCode::get_area_block($type_id);
     $keyBlockInfos = array();
     foreach ($blockInfos as $blockInfo) {
         $keyBlockInfos[$blockInfo['typeCode']] = $blockInfo['typeName'];
     }
     return $keyBlockInfos;
 }
예제 #6
0
 /**
  * 获取房源 Solr 文档信息
  *
  * @param Model_Fyk_QueuePropToSolr $task
  *
  * @return array
  */
 protected function propDoc($task)
 {
     $propDoc = array();
     $prop = $task->prop();
     if (!$prop) {
         throw new Exception(sprintf('Task %d prop %d not found.', $task->id, $task->propId));
     }
     $propDoc['id'] = $prop->id;
     $propDoc['status'] = $prop->status;
     $propDoc['city_id'] = $prop->cityId;
     $propDoc['housing_type_id'] = $prop->housingType;
     $propDoc['housing_type_name'] = '';
     // TODO
     // TODO 待优化
     $housingType = Model_Community_UseType::data_access()->filter('typeId', $prop->housingType)->find_only();
     if ($housingType) {
         $propDoc['housing_type_name'] = $housingType['typeName'];
         // TODO
     }
     $propDoc['build_year'] = $prop->buildYear;
     $propDoc['is_only'] = $prop->isOnly;
     $propDoc['is_real'] = $prop->isReal;
     $propDoc['is_certificate'] = $prop->certificate;
     $propDoc['fitment_id'] = $prop->fitment;
     $propDoc['fitment_name'] = '';
     // TODO
     $fitmentType = Model_House_FitmentType::data_access()->filter('fitmentId', $prop->fitment)->find_only();
     if ($fitmentType) {
         $propDoc['fitment_name'] = $fitmentType->fitmentValue;
     }
     $propDoc['area_num'] = $prop->acreage;
     $propDoc['room_num'] = $prop->cell;
     $propDoc['hall_num'] = $prop->hall;
     $propDoc['toilet_num'] = $prop->toilet;
     $propDoc['floor'] = $prop->floor;
     $propDoc['floor_total'] = $prop->totalFloor;
     $propDoc['price'] = $prop->totalPrices * 10000;
     // 单位:元
     $propDoc['price_unit'] = $prop->acreage ? intval($prop->totalPrices * 10000 / $prop->acreage) : 0;
     $propDoc['comm_id'] = $prop->commId;
     $propDoc['comm_name'] = '';
     $propDoc['comm_location'] = '';
     // TODO 待优化
     $comm = Bll_Community_APIComm::getInstance()->getInfoById($prop->commId, 2);
     $commLat = $comm['geolocation']['soso'] ? $comm['geolocation']['soso']['lat'] : null;
     $commLng = $comm['geolocation']['soso'] ? $comm['geolocation']['soso']['lng'] : null;
     if ($comm) {
         $propDoc['comm_name'] = $comm['name'];
         $propDoc['comm_location'] = $commLat . ',' . $commLng;
     }
     $propDoc['block_id'] = $prop->blockId;
     $propDoc['block_name'] = '';
     $propDoc['district_id'] = $prop->areaId;
     $propDoc['district_name'] = '';
     // TODO 待优化
     $zones = Model_City_TypeCode::data_access()->filter('typeId', array($prop->blockId, $prop->areaId))->find_all();
     foreach ($zones as $zone) {
         if ($zone->typeId == $propDoc['block_id']) {
             $propDoc['block_name'] = $zone->typeName;
         }
         if ($zone->typeId == $propDoc['district_id']) {
             $propDoc['district_name'] = $zone->typeName;
         }
     }
     $propDoc['onsell_time'] = $prop->onsellTime;
     $propDoc['create_time'] = $prop->createTime;
     $propDoc['update_time'] = strtotime($prop->updateTime);
     return $propDoc;
 }
예제 #7
0
 public function handle_request_internal()
 {
     $request = APF::get_instance()->get_request();
     $params = $request->get_parameters();
     $channel = intval($params['channel']);
     if ($channel < 0 && $channel > 3) {
         $channel = 0;
     }
     $sid = $this->getSid($channel);
     if ($this->isBrokerLogin()) {
         $request->set_attribute("url", $params['url']);
         $request->set_attribute("sid", $sid);
         $request->set_attribute("loginok", "ok");
         return "Broker_Loginok";
     }
     if ($params["cityid"] && intval($params["cityid"]) > 10) {
         $defaultCityId = $params["cityid"];
     } else {
         $defaultCityId = 11;
     }
     if ($params["selectcityid"]) {
         $defaultCityId = $params["selectcityid"];
     }
     //得到可以选择主营业务的城市id列表
     $mainBusinessAvailableCity = APF::get_instance()->get_config("main_business_available", "multicity");
     if (isset($params['action'])) {
         $strAction = $params['action'];
     }
     if ($strAction == "register") {
         $preg = "/^(1|2)\\d{10}/";
         if (!preg_match($preg, $params['mobile'])) {
             $this->regError['mobile'] = Const_Register::REGISTER_MOBILE_FORMAT;
         }
         $mobile = Bll_Security_Member::dhtmlspecialchars(trim($params['mobile']));
         $checkMobileRes = Bll_Broker_Register::CheckMobile(array('mobile' => $mobile));
         if ($checkMobileRes) {
             $this->regError['mobile'] = Const_Register::REGISTER_MOBILE_CHECK;
         } else {
             $checkUserMobile = Bll_Broker_Register::checkUserMobile(array('mobile' => $mobile));
             if ($checkUserMobile) {
                 $this->regError['mobile'] = Const_Register::REGISTER_USER_MOBILE_CHECK;
             }
         }
         if (preg_match("/['\"&<>\\s]/i", $params['password'])) {
             $this->regError['password'] = Const_Register::PROFILE_PASSWORD_ILLEGAL;
         }
         if (preg_match("/['\"&<>\\s]/i", $params['truename']) || $params['truename'] == "") {
             $this->regError['truename'] = Const_Register::PROFILE_PASSWORD_ILLEGAL;
         }
         $checkPwd = Bll_Security_Member::dhtmlspecialchars(trim($params['checkpwd']));
         $password = Bll_Security_Member::dhtmlspecialchars(trim($params['password']));
         $passwordLength = strlen($password);
         if ($passwordLength < 6 || $passwordLength > 16) {
             $this->regError['password'] = Const_Register::PROFILE_PASSWORD_LENGTH;
         }
         if ($checkPwd != $password) {
             $this->regError['passwd_notmatch'] = Const_Register::PROFILE_PASSWORD_NOT_MATCH;
         }
         $selectcityid = intval($params['selectcityid']);
         $companyId = intval($params['companyid']);
         $selectareaid = intval($params['selectareaid']);
         $selectblockid = intval($params['selectblockid']);
         if ($selectcityid < 11) {
             $this->regError['city'] = Const_Register::REGISTER_CITY_CHECK;
         }
         $openRegisterCity = APF::get_instance()->get_config("open_register_city", "multicity");
         if (!empty($openRegisterCity) && empty($openRegisterCity[$selectcityid])) {
             $this->regError['city'] = Const_Register::REGISTER_CITY_CHECK_OPEN;
         }
         if ($companyId == 0) {
             $this->regError['company'] = Const_Register::REGISTER_COMPANY_CHECK;
         }
         if ($companyId < 1) {
             $companyId = 0;
         }
         if ($selectareaid <= 0 || $selectblockid <= 0) {
             $this->regError['city'] = Const_Register::REGISTER_BLOCK_CHECK;
         }
         if ($params['storeid'] == "") {
             $this->regError['store'] = Const_Register::REGISTER_STORE_CHECK;
         }
         if (empty($params['storeid'])) {
             $storeid = 0;
         } else {
             $storeid = $params['storeid'];
         }
         //验证主营业务数据是否合法
         $params['mainbusiness'] = (int) $params['mainbusiness'];
         if (!isset($params['mainbusiness'])) {
             $this->regError['main_business'] = Const_Register::MAIN_BUSSINESS_EMPTY;
         } elseif ($params['mainbusiness'] < 1 || $params['mainbusiness'] > 2) {
             $this->regError['main_business'] = Const_Register::MAIN_BUSSINESS_INVALID;
         } elseif ($params['mainbusiness'] == 2) {
             //检查该城市是否有权限选择主营业务
             $businessAccess = in_array($selectcityid, $mainBusinessAvailableCity);
             if ($businessAccess === false) {
                 $request->set_attribute("url", $params['url']);
                 $request->set_attribute("sid", $sid);
                 $request->set_attribute("error", Const_Register::MAIN_BUSSINESS_ACCESS);
                 $request->set_attribute("loginok", "ok");
                 return "Broker_Loginok";
             }
         }
         $truename = Bll_Security_Member::dhtmlspecialchars(trim($params['truename']));
         //验证cookie
         $regCookie = $request->get_cookie('anjukereg');
         $verifyCode = Util_AuthorCrypt::decrypt($regCookie, md5($_SERVER['HTTP_USER_AGENT']));
         if ($verifyCode != $params['code']) {
             $this->regError['seccodeverify'] = Const_Register::SUBMIT_SEC_CODE_INVALID;
         }
         if (count($this->regError) > 0) {
             $request->set_attribute("regerror", $this->regError);
         } else {
             $selectblockid = $selectblockid == 0 ? $selectareaid : $selectblockid;
             $getAreaInfo = Model_City_TypeCode::getAreaInfoByTypeId($selectblockid, $selectcityid);
             $areaCode = $getAreaInfo['typeCode'];
             if (!$areaCode) {
                 $request->set_attribute("url", $params['url']);
                 $request->set_attribute("sid", $sid);
                 $request->set_attribute("error", "发现不恰当行为,区域板块不存在。");
                 $request->set_attribute("loginok", "ok");
                 return "Broker_Loginok";
             }
             $clientIp = $request->get_client_ip();
             $brd = intval(trim($params['brd']));
             $ext = "";
             if ($brd) {
                 $ext = json_encode(array("brokerId" => $brd));
             }
             $ppcConfig = APF::get_instance()->get_config("ppc_city_config", "ppc");
             $postData = array("j_password" => $password, "trueName" => $truename, "cityId" => $selectcityid, "areaCode" => $areaCode, "companyId" => $companyId, "storeId" => $storeid, "userMobile" => $mobile, "channel" => $channel, "regip" => $clientIp, "ext" => $ext, 'clientPort' => intval($_SERVER['REMOTE_PORT']), "isPPC" => $ppcConfig[$selectcityid] ? "true" : "false", "mainBussiness" => $params['mainbusiness']);
             $registerRes = Bll_Broker_Register::register($postData);
             if ($registerRes && $registerRes['status'] == "ok") {
                 //记录经纪人的主营业务类型
                 $mainBusinessDate = array('broker_id' => $registerRes['broker']['brokerId'], 'member_id' => $registerRes['broker']['userId'], 'type' => $params['mainbusiness']);
                 $addMainBusiness = $this->store_main_business($mainBusinessDate);
                 //存储经纪人主营业务失败
                 if ($addMainBusiness['status'] === false) {
                     $request->set_attribute("url", $params['url']);
                     $request->set_attribute("sid", $sid);
                     $request->set_attribute("error", $addMainBusiness['mesg']);
                     $request->set_attribute("loginok", "ok");
                     return "Broker_Loginok";
                 }
                 $UserId = $registerRes['broker']['userId'];
                 $this->success($UserId);
             } else {
                 $request->set_attribute("url", $params['url']);
                 $request->set_attribute("sid", $sid);
                 $request->set_attribute("error", "服务器忙,请稍后再试。");
                 $request->set_attribute("loginok", "ok");
                 return "Broker_Loginok";
             }
         }
     }
     $cfsByPinYin = $this->getAllCityInfo();
     foreach ($cfsByPinYin as $key => $val) {
         foreach ($val as $k => $v) {
             if ($defaultCityId == $v['cityId']) {
                 $defaultCityName = $v['cityName'];
             }
         }
     }
     $request->set_attribute("defaultcityid", $defaultCityId);
     $request->set_attribute("channel", $channel);
     $request->set_attribute("defaultcityname", $defaultCityName);
     $hotCity = APF::get_instance()->get_config("hot_city", "multicity");
     $request->set_attribute("hotcity", $hotCity);
     $request->set_attribute("cfsbypinyin", $cfsByPinYin);
     //设置可以选择主营业务的城市id列表
     $request->set_attribute("mainbusinessavailablecity", json_encode($mainBusinessAvailableCity));
     //设置my domain
     $ajk_base_domain = APF::get_instance()->get_config('anjuke_base_domain');
     $ajk_domain = 'http://my.' . $ajk_base_domain;
     $request->set_attribute("ajkdomain", $ajk_domain);
     if (!empty($params["selectcityid"]) && !empty($params["selectareaid"])) {
         $daoinfo = Model_City_TypeCode::getAreaInfoByCityId(intval($params['selectcityid']));
         foreach ($daoinfo as $info) {
             if ($info["typeId"] == $params["selectareaid"]) {
                 $params["areaname"] = $info["typeName"];
                 break;
             }
         }
         if (!empty($params["selectblockid"])) {
             $daoinfo = Model_City_TypeCode::getArrayAreaInfoByParentId(intval($params['selectareaid']));
             foreach ($daoinfo as $info) {
                 if ($info["typeId"] == $params["selectblockid"]) {
                     $params["blockname"] = $info["typeName"];
                     break;
                 }
             }
         }
     }
     $request->set_attribute("params", $params);
     return "Broker_Register";
 }
예제 #8
0
 /**
  * 拼接房源具体信息
  *
  * @param $houseIdStr
  * @return array
  */
 public function getProductDetail($houseIdStr)
 {
     $houseArray = array();
     if (empty($houseIdStr)) {
         return $houseArray;
     }
     $houseIdArray = explode(',', $houseIdStr);
     $imgBll = Bll_Image_EsfHouseImage::getInstance();
     foreach ($houseIdArray as $row) {
         $houseInfo = Model_House_EsfHouseElementFactory::getHouseBaseInfo($row);
         if (empty($houseInfo)) {
             continue;
         }
         $formatHouseInfo = array();
         //房源标题
         $formatHouseInfo['title'] = $houseInfo->proName;
         //板块名称
         $block = Model_City_TypeCode::getTypeCodeNames(array($houseInfo->areaCode));
         if (empty($block)) {
             $formatHouseInfo['block'] = '';
         } else {
             $formatHouseInfo['block'] = $block[$houseInfo->areaCode];
         }
         //小区名称
         $formatHouseInfo['community'] = $houseInfo->commName;
         //户型
         $formatHouseInfo['type'] = sprintf('%d室%d厅', $houseInfo->roomNum, $houseInfo->hallNum);
         //大小
         $formatHouseInfo['area'] = sprintf('%d平米', intval($houseInfo->areaNum));
         //价格
         $formatHouseInfo['price'] = sprintf('%d万', intval($houseInfo->proPrice));
         //房源图片
         $formatHouseInfo['pic'] = $imgBll->getThumbImageUrl($houseInfo->proId, $houseInfo->commId);
         $houseArray[] = $formatHouseInfo;
     }
     return $houseArray;
 }
예제 #9
0
 public static function getArrayAreaInfoByParentIdEx($parentId)
 {
     try {
         $result = Model_City_TypeCode::data_access()->load_field("typeId")->load_field("typeName")->filter('parentId', $parentId)->filter('typeFlag', 0)->get_all();
     } catch (Exception $e) {
         $result = array('');
     }
     return $result;
 }
예제 #10
0
 public function handle_request_internal()
 {
     $propLists = array();
     $hasNextPage = 0;
     $userId = $this->_params['userId'];
     $sinceId = isset($this->_params['sinceId']) ? intval($this->_params['sinceId']) : 0;
     $per = isset($this->_params['per']) ? $this->_params['per'] : 20;
     $propIds = Model_Broker_FykPushProps::data_access()->load_field('propId')->filter('userId', $userId)->sort('id', 'desc')->limit($per + 1)->offset($sinceId)->get_all();
     if (!empty($propIds)) {
         $hasNextPage = count($propIds) > $per ? 1 : 0;
         if ($hasNextPage) {
             array_pop($propIds);
             $sinceId = $sinceId + $per;
         } else {
             $sinceId = 0;
         }
         $propIds = self::getArrayColumn($propIds, 'propId');
         $props = Model_Fyk_PropLibrary::data_access()->filter('id', array_unique($propIds))->get_all();
         //获取小区、板块名称 start
         $commNames = $typeNames = array();
         $commIds = self::getArrayColumn($props, 'commId');
         /*$commInfos = Model_Community_AjkCommunity::data_access()
           ->filter('commId', $commIds)
           ->get_all();*/
         $commInfos = Bll_Community_APIComm::getInstance()->getInfoById($commIds);
         foreach ($commInfos as $info) {
             $commNames[$info['comm_id']] = $info['name'];
         }
         //————————————————————————————————————————————————
         $districtIds = self::getArrayColumn($props, 'areaId');
         $blockIds = self::getArrayColumn($props, 'blockId');
         $typeIds = array_merge($districtIds, $blockIds);
         $typeInfos = Model_City_TypeCode::data_access()->load_field('typeId')->load_field('typeName')->filter('typeId', $typeIds)->get_all();
         foreach ($typeInfos as $info) {
             $typeNames[$info['typeId']] = $info['typeName'];
         }
         //获取小区、板块名称 end
         foreach ($props as $prop) {
             //计算发布时间
             $publishDate = strtotime(date('Y-m-d', $prop['createTime']));
             $nowDate = strtotime(date('Y-m-d', time()));
             $publishDays = intval(($nowDate - $publishDate) / 86400);
             $propId = $prop['id'];
             $propList['fPropId'] = $propId;
             $propList['isOnly'] = $prop['isOnly'];
             $propList['isReal'] = $prop['isReal'];
             $propList['certificate'] = $prop['certificate'];
             $propList['commId'] = $prop['commId'];
             $propList['commName'] = $commNames[$prop['commId']];
             $propList['districtId'] = $prop['areaId'];
             $propList['districtName'] = $typeNames[$prop['areaId']];
             $propList['blockId'] = $prop['blockId'];
             $propList['blockName'] = $typeNames[$prop['blockId']];
             $propList['roomNum'] = $prop['cell'];
             $propList['hallNum'] = $prop['hall'];
             $propList['toiletNum'] = $prop['toilet'];
             $propList['area'] = $prop['acreage'];
             $propList['areaUnit'] = '平';
             $propList['price'] = intval($prop['totalPrices']);
             $propList['priceUnit'] = '万';
             $propList['publishDays'] = $publishDays;
             $propList['publishDaysMsg'] = $propList['publishDays'] > 0 ? "{$propList['publishDays']}天前发布" : '今天发布';
             $propLists[$propId] = $propList;
         }
     }
     $propListFormat = array();
     foreach ($propIds as $id) {
         $propListFormat[] = $propLists[$id];
     }
     unset($propLists);
     //更新为0
     Model_Fyk_PushPropsLatestCount::data_access()->set_field('count', 0)->filter('userId', $userId)->update();
     $data['props'] = $propListFormat;
     $data['sinceId'] = $sinceId;
     $data['hasNextPage'] = $hasNextPage;
     return API_Result::create()->ok()->data($data)->toArray();
 }
예제 #11
0
 public static function getAreaOrBlockName($typeId)
 {
     $tmp = Model_City_TypeCode::get_area_block($typeId);
     return $tmp->typeName;
 }