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); } }
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; }