Example #1
0
 public function handle_request()
 {
     $cursor = $this->getFlag();
     if (empty($cursor['id'])) {
         $cursor['id'] = 0;
     }
     $i = 0;
     while ($i < self::CIRCOUNT) {
         $i++;
         //读取bi数据
         $data = Model_Stats_HzPropQuality::data_access()->filter_by_op('id', '>', $cursor['id'])->limit(self::LIMIT)->get_all();
         if (empty($data)) {
             $this->setShStopFlag();
             return false;
         }
         //更新游标
         $cursor['id'] = $data[self::LIMIT - 1]['id'];
         $this->setFlag($cursor);
         //设置log
         $log = array('time' => date('Ymd h:i:s'), 'id' => $cursor['id']);
         $this->setLog(json_encode($log));
         $propIds = array();
         foreach ($data as $k => $v) {
             $propIds[] = $v['proId'];
         }
         //取出表中已存在的propId
         $extPropIds = Model_Activity_Res_HaoZuPropQualitys::data_access()->load_field('propId')->filter_by_op('propId', 'in', $propIds)->get_all();
         $tmp = array();
         foreach ($extPropIds as $v) {
             $tmp[$v['propId']] = $v['propId'];
         }
         //将不存在的propId插入表中
         foreach ($data as $k => $v) {
             if (empty($tmp[$v['proId']])) {
                 $insertData = array('propId' => $v['proId'], 'logTime' => date("Ymd"), 'cityId' => $v['cityId'], 'rankStar' => $v['rank'], 'createTime' => $v['creDate'], 'dataFrom' => 0);
                 Model_Activity_Res_HaoZuPropQualitys::insertData($insertData);
             }
         }
         unset($data);
     }
 }
Example #2
0
 public static function getRankFromBrokerBI($propIds)
 {
     $resultTmp = array();
     $resultTmpA = $resultTmpB = array();
     //从经纪人表中获取rank
     $resultTmpA = Model_Activity_Res_HaoZuPropQualitys::getPropRank($propIds);
     //取出在经纪人表中没有rank的propId
     $tmp = array();
     $propIdsTmp = array();
     foreach ($resultTmpA as $v) {
         $propIdsTmp[] = $v['propId'];
     }
     foreach ($propIds as $v) {
         if (!in_array($v, $propIdsTmp)) {
             $tmp[] = $v;
         }
     }
     //如果全部的房源都取得rank,直接返回
     if (empty($tmp)) {
         return $resultTmpA;
     }
     //读取BI中的房源
     $resultTmpB = Model_Stats_HzPropQuality::getPropsquality($tmp);
     if (!isset($resultTmpB)) {
         return $resultTmpA;
     }
     $resultTmp = $resultTmpA;
     $tmp = array();
     foreach ($resultTmpB as $v) {
         $tmp = array('propId' => $v['proId'], 'logTime' => date("Y-m-d", time()), 'cityId' => $v['cityId'], 'rankStar' => $v['rank'], 'createTime' => $v['creDate'], 'dataFrom' => 0);
         Model_Activity_Res_HaoZuPropQualitys::insertData($tmp);
         $resultTmp[] = $tmp;
     }
     return $resultTmp;
 }