public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $propId = $this->_params['propId']; //检查经纪人是否存在 $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); } //房子的竞价计划 $bidPlan = Model_Plan_EsfAjkPropSpread::getBidPlanInfoByHouseid($propId); if (empty($bidPlan)) { //房源信息 $propInfo = Bll_House_EsfHouse::getHouseBaseInfo($propId, $brokerInfo->cityId); if (!$propInfo[0]->isHighQulity) { throw new Exception_Property_NotMultiImages("Anjuke propId: {$propId}"); } throw new Exception_BidPlan_NotFound('PropId: ' . $propId); } //房源总点击 $bidClickInfo = Model_Plan_HpProStatsDay::getPropClicks($propId, $brokerInfo->cityId); $data = array(); $data['totalClicks'] = $bidClickInfo[$propId]['totalClicks']; //房源竞价总点击 $data['todayClicks'] = Model_plan_HpProStatsDay::getPropClickByDate($propId, $cityId, date('Ymd')); //今日点击 $data['planId'] = $bidPlan->id; $priceInfo = Model_House_EsfPrice::get_price($cityId, $bidPlan->propriceint); $data['minClickPrice'] = $priceInfo['vPrice']; //最小出价 $data['minClickPriceUnit'] = '元'; //最小出价 //推广中 排队中 if ($bidPlan->status == Model_Plan_EsfAjkPropSpread::ONLINE || $bidPlan->status == Model_Plan_EsfAjkPropSpread::ONQUEUE) { $data['planStatus'] = 1; // 推广中 or 排队中 $data['budget'] = $bidPlan->budget / 100; //预算 $data['budgetUnit'] = '元'; $consume = Model_plan_HpProStatsDay::getPlanAmounts($bidPlan->id, $cityId); $data['budgetRemain'] = ($bidPlan->budget - $consume) / 100; $data['budgetRemainUnit'] = '元'; $data['clickPrice'] = $bidPlan->offer / 100; //出价 $data['clickPriceUnit'] = '元'; $data['rankMsg'] = '排队中'; if ($bidPlan->status == Model_Plan_EsfAjkPropSpread::ONLINE) { //排名 $data['rank'] = $this->getPpcSaleRankBll($propId, $bidPlan->commId, $bidPlan->smallprice, $bidPlan->bigprice, $bidPlan->commsHpratioA, 3); $data['rankMsg'] = '推广中'; } } else { $data['planStatus'] = 2; //已暂停 $data['budget'] = 0; $data['budgetUnit'] = '元'; $data['budgetRemain'] = 0; $data['budgetRemainUnit'] = '元'; $data['clickPrice'] = 0; $data['clickPriceUnit'] = '元'; $data['rankMsg'] = '已暂停'; } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data); }
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)); }