public function handle_request_internal() { $brokerId = $this->_params['brokerId']; //检查经纪人是否存在 $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (!$brokerInfo) { throw new Exception_Broker_NotFound('BrokerId: ' . $brokerId); } // 判断城市是否开通竞价业务 $cityId = $brokerInfo->cityId; if (!Bll_City::isBidCity($cityId)) { throw new Exception_City_NotBidCity('CityId: ' . $cityId); } //从 竞价计划表 找出该经纪人的所有计划 1:推广中 11: 排队中 2:删除 $bidPlans = Model_Plan_EsfAjkPropSpread::getPlanByBroker($brokerId, Model_Plan_EsfAjkPropSpread::DEFAULTVERSION); $data = array('OnlinePropertyList' => array(), 'QueuedPropertyList' => array(), 'OfflinePropertyList' => array()); if (empty($bidPlans)) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data); } $keyedPlans = array(); foreach ($bidPlans as $plan) { $keyedPlans[$plan->propId] = $plan; //key:propId 保存时间 状态 } //房源信息 $propIds = array_keys($keyedPlans); $props = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $brokerInfo->cityId); //批量获取竞价总点击 $bidClickInfo = Model_plan_HpProStatsDay::getPropClicks($propIds, $brokerInfo->cityId); //批量获取图片 $propDefImages = Model_House_AjkPropertyData::getDafImages($propIds); //拼接房源列表中房源数据 $propertyList = array(); foreach ($props as $prop) { $row = array(); $row['propId'] = $prop->proId; $row['title'] = $prop->proName; $row['commId'] = $prop->commId; $row['commName'] = $prop->commName; $row['roomNum'] = $prop->roomNum; $row['hallNum'] = $prop->hallNum; $row['area'] = round($prop->areaNum); $row['toiletNum'] = $prop->toiletNum; $row['price'] = intval($prop->proPrice); $row['priceUnit'] = '万'; $row['isVisible'] = $prop->isHighQulity; $row['isBid'] = 1; $row['isChoice'] = 0; $row['isMoreImg'] = $prop->isHighQulity; $row['isPhonePub'] = $prop->uriCode == 'mobile.asyn' || $prop->uriCode == 'mobile-ajk-broker.asyn' ? 1 : 0; $row['isVisible'] = $prop->isVisible; $row['createTime'] = $keyedPlans[$prop->proId]->createtime; $row['imgUrl'] = $propDefImages[$prop->proId]; if ($prop->commitionType > 1) { $row['isEntrust'] = 1; } else { $row['isEntrust'] = 0; } $row['totalClicks'] = $bidClickInfo[$prop->proId]['totalClicks']; //房源竞价总点击 $propertyList[] = $row; } // 排序 usort($propertyList, function ($a, $b) { if ($a['createTime'] == $b['createTime']) { return 0; } return $a['createTime'] > $b['createTime'] ? -1 : 1; }); // 分组 $onlinePropertyList = array(); //推广中列表 $waitPropertyList = array(); //排队中列表 $offlinePropertyList = array(); //推广结束列表 foreach ($propertyList as $val) { switch ($keyedPlans[$val['propId']]->status) { case '1': $onlinePropertyList[] = $val; break; case '11': $waitPropertyList[] = $val; break; default: $val['isBid'] = 0; $offlinePropertyList[] = $val; } } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('OnlinePropertyList' => $onlinePropertyList, 'QueuedPropertyList' => $waitPropertyList, 'OfflinePropertyList' => $offlinePropertyList)); }