Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
 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();
     }
 }
Ejemplo n.º 4
0
 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);
 }