public function handle_request_internal() { $entrustId = $this->_params['entrustId']; $brokerId = $this->_params['brokerId']; $entrustType = $this->_params['entrustType']; //房源数据获取 $data = Model_House_CommissionHouse::getEntrustsPro($entrustId); $data = $data[0]; //图片读取 $imgInfo = Model_Image_SaleEntrustImage::getImagesByProIds(array($entrustId)); //获取委托房源关系 $eEntrust = Model_House_Commission::getCommissions($entrustId); foreach ($eEntrust as $eEntrustval) { $eBrokers[] = $eEntrustval['brokerId']; if ($eEntrustval['brokerId'] == $brokerId) { $rushBrokerId = $eEntrustval['brokerId']; $brokerHouseId = $eEntrustval['brokerHouseId']; } } //委托房源详情状态值获取 list($showStatus, $propertyId) = $this->showState($data, $brokerId, $rushBrokerId, $brokerHouseId); //小区信息读取 $commInfo = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($data['commId'], 2); //格式化数据 $data = $this->formatdate($data, $eBrokers, $showStatus, $commInfo['commLocal'], $rushBrokerId, $propertyId, $imgInfo); return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data); }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $propertyId = $this->_params['propertyId']; $comeFrom = $this->_params['comeFrom']; //读取经纪人信息 $BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); //城市是否开通房源库 $cityInfo = Bll_Fyk_Prop_Manage::getInstance()->getCityConfig($BrokerInfo['BaseInfo']['CITYID']); if ($cityInfo) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '已开通房源库,不可抢~', 'errcode' => Const_APIStatus::E_COMMISSION_INVALID); } //读取房源信息 $houses = Model_House_CommissionHouse::getEntrustsPro($propertyId); $house = $houses[0]; //获取委托房源关系 $eEntrust = Model_House_Commission::getInfoByBrokerIdAndHouseId($brokerId, $propertyId, $house->commissionType); if ($house['commissionType'] == Model_House_CommissionHouse::COMMISSION_TYPE_SALE) { //是否收费 $isToll = Bll_Broker_EntrustPrice::getInstance()->checkCityConsumeStatus($BrokerInfo['BaseInfo']['CITYID']); $isConsume = false; if ($isToll) { $isConsume = true; } $data = Bll_Broker_EntrustQuery::getInstance()->saleRush($propertyId, $brokerId, $BrokerInfo['BaseInfo']['TRUENAME'], $BrokerInfo['BaseInfo']['USERMOBILE'], $BrokerInfo['BaseInfo']['CITYID'], $comeFrom, $isConsume); } else { $isConsume = false; //租房免费 $data = Bll_Broker_EntrustQuery::getInstance()->rentRush($propertyId, $brokerId, $BrokerInfo['BaseInfo']['TRUENAME'], $BrokerInfo['BaseInfo']['USERMOBILE'], $BrokerInfo['BaseInfo']['CITYID'], $comeFrom, $isConsume); } $ownerinfo = $this->formatdate($house, $eEntrust); if ($data['status'] == 1) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $ownerinfo, 'message' => '抢委托成功'); } elseif ($data['status'] == 15) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '15天之内已抢房源中有3套未发,禁止经纪人继续抢房', 'errcode' => Const_APIStatus::E_COMMISSION_MAX); } elseif ($data['status'] == 8) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '账户余额不足', 'errcode' => Const_APIStatus::E_COMMISSION_BALANCE); } elseif ($data['status'] == 9) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '房东已删除', 'errcode' => Const_APIStatus::E_COMMISSION_DEL); } elseif ($data['status'] == 10) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '违规已删除', 'errcode' => Const_APIStatus::E_COMMISSION_ILLEGAL); } elseif ($data['status'] == 5) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '已过期~', 'errcode' => Const_APIStatus::E_COMMISSION_EXPIRED); } elseif ($data['status'] == 7) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '抢过了~', 'errcode' => Const_APIStatus::E_COMMISSION_RUSHED); } elseif ($data['status'] == 6) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '抢完了~', 'errcode' => Const_APIStatus::E_COMMISSION_FULL); } else { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '不可抢~', 'errcode' => Const_APIStatus::E_COMMISSION_INVALID); } }
public function handle_request() { $houses = $this->getPushedCommissionHouses(); $propertyIds = array(); foreach ($houses as $val) { $propertyIds[] = $val['propertyId']; } $propertyIds = array_unique($propertyIds); $entrustInfos = array(); if (!empty($propertyIds)) { //读取房源信息 $entrusts = Model_House_CommissionHouse::getEntrustsPro($propertyIds); foreach ($entrusts as $entrust) { $entrustInfos[$entrust['id']] = $entrust; } } foreach ($houses as $key => $house) { //xxx(小区)出现N室N厅(户型)的委托房源,快来抢吧 $msg = '新房源出现,快抢!'; $entrustId = $house['propertyId']; $entrustType = $entrustInfos[$house['propertyId']]['commissionType']; $result = $this->push($house['brokerId'], $msg, $entrustId, $entrustType); // 更新游标 $this->cursor['id'] = $house['id']; $this->setFlag($this->cursor); if (!$result) { $house['rpcStatus'] = -1; $this->setLog(date('Y-m-d H:i:s') . ' - id: ' . $house['id'] . ', fail'); $house->save(); unset($houses[$key]); } } $api_host = APF::get_instance()->get_config('chat_api_host'); $message_url = $api_host['host'] . '/common/sendUserNotify?from_idc=1&skip_auth=1&from=mobile-ajk-broker'; $message = json_encode($this->message); $results = Util_API::postData($message_url, $message); foreach ($houses as $house) { if ($results['status'] == 'OK') { $house['rpcStatus'] = 1; $this->setLog(date('Y-m-d H:i:s') . ' - id: ' . $house['id'] . ', success'); } else { $house['rpcStatus'] = -1; $this->setLog(date('Y-m-d H:i:s') . ' - id: ' . $house['id'] . ', fail'); } $house->save(); } }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $per = isset($this->_params['per']) ? $this->_params['per'] : 20; $per = $per + 1; //判断是否有下一页 $moreFlag = 1; //读取经纪人信息 $BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); //城市是否开通房源库 $cityInfo = Bll_Fyk_Prop_Manage::getInstance()->getCityConfig($BrokerInfo['BaseInfo']['CITYID']); if ($cityInfo) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'canGrabNum' => 0, 'msg' => '亲!房源已转至房源库,快去开通吧!', 'data' => array(), 'nextPage' => 0); } // 获取已推送委托 $pushedCommissionHouses = Model_House_CommissionHousePushed::pushedCommissionHouses($brokerId, $per, $this->_params['maxId'], $this->_params['sinceId']); $countPushedCommissionHouses = count($pushedCommissionHouses); if ($countPushedCommissionHouses < $per) { $moreFlag = 0; } else { unset($pushedCommissionHouses[$countPushedCommissionHouses - 1]); } // 排序(按ID倒序) uasort($pushedCommissionHouses, function ($a, $b) { return $a['id'] < $b['id']; }); // 获取房源数据 $houses = array(); $rushedHouses = array(); if (!empty($pushedCommissionHouses)) { // 获取房源ID $houseIds = array(); foreach ($pushedCommissionHouses as $pushedCommissionHouse) { $houseIds[] = $pushedCommissionHouse['propertyId']; } // 获取房源信息 $houses = Model_House_CommissionHouse::getEntrustsPro($houseIds); $indexedHouses = array(); foreach ($houses as $house) { $indexedHouses[$house['id']] = $house; } $houses = $indexedHouses; // 获取已抢房源数据 $rushedCommissions = Model_House_Commission::getEntrustInfos($houseIds); foreach ($rushedCommissions as $rushedCommission) { if ($brokerId == $rushedCommission->brokerId) { $rushedHouses[$rushedCommission->houseId] = $rushedCommission->id; } } // 是否存在实拍图片 $imagesInfos = Model_Image_SaleEntrustImage::getImagesByProIds($houseIds); foreach ($imagesInfos as $imagesInfo) { $isImages[$imagesInfo->proId] = 1; } } // 拼装结果 $data = array(); $rushableCount = 0; foreach ($pushedCommissionHouses as $pushedCommissionHouse) { if (!isset($houses[$pushedCommissionHouse['propertyId']])) { continue; } $house = $houses[$pushedCommissionHouse['propertyId']]; $row = array(); $row['id'] = $pushedCommissionHouse['id']; $row['propertyId'] = $house['id']; $row['commName'] = $house['commName']; $row['ownerName'] = $house['userName']; if ($house->getPhone()) { $row['ownerPhone'] = substr_replace($house->getPhone(), '*****', 3, 5); } else { $row['ownerPhone'] = ''; } $row['type'] = $house['commissionType']; $row['room'] = $house['roomNum']; $row['hall'] = $house['hallNum']; $row['toilet'] = $house['toiletNum']; $row['area'] = $house['areaNum']; $row['price'] = $house['proPrice']; switch ($house['commissionType']) { case Model_House_CommissionHouse::COMMISSION_TYPE_RENT: $row['priceUnit'] = '元/月'; break; case Model_House_CommissionHouse::COMMISSION_TYPE_SALE: $row['priceUnit'] = '万元'; break; } $row['publishTime'] = date('Y-m-d H:i:s', $house['created']); $row['rushable'] = 1; $row['showStatus'] = 4; $row['rushableInfo'] = '抢委托'; $row['rushed'] = 0; if ($house['proStatus'] == Model_House_CommissionHouse::STATUS_ONGOING && $house['openBrokerCnt'] < Model_House_CommissionHouse::allowedMaxCommissionCount()) { $rushableCount++; } if (!($house['proStatus'] == Model_House_CommissionHouse::STATUS_ONGOING && $house['openBrokerCnt'] < Model_House_CommissionHouse::allowedMaxCommissionCount()) && empty($rushedHouses[$house['id']])) { $row['rushable'] = 0; $row['showStatus'] = 3; $row['rushableInfo'] = '抢完了'; } if ($house['proStatus'] == Model_House_CommissionHouse::STATUS_STOP && $house['openBrokerCnt'] < Model_House_CommissionHouse::allowedMaxCommissionCount()) { $row['rushable'] = 0; $row['showStatus'] = 9; $row['rushableInfo'] = '房东停止委托'; } if (isset($rushedHouses[$house['id']])) { $row['rushable'] = 0; $row['rushableInfo'] = '抢过了'; $row['rushed'] = 1; } $row['isRealityPats'] = $isImages[$house['id']] ? 1 : 0; $row['timestate'] = Bll_Common_Format::formatTime($house['created']); //抢过不显示 if (empty($rushedHouses[$house['id']])) { $data[] = $row; } } // 重置可抢房源数 $daCommissionHousePushedCount = Model_House_CommissionHousePushedCount::data_access()->filter('brokerId', $brokerId)->find_only(); if (!empty($daCommissionHousePushedCount)) { $daCommissionHousePushedCount->resetCommissionHousePushedCount(); } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'canGrabNum' => $rushableCount, 'msg' => '仅展示15天以内房源', 'data' => $data, 'nextPage' => $moreFlag); }