/** * 处理小区id为0的情况 * @param $beginId * @param $nocomms * @param $cityId * @param int $limit * @return array */ public function dealPropCommidZero($beginId, $nocomms, $cityId, $limit = 100) { $allReturn = array(); if (empty($nocomms)) { return array('status' => 0, 'msg' => 'nocomms is empty'); } $searchProps = Bll_HzProp::getSearchProps(array('where' => 'status in (1,2,5,6,9,11,12,13,14,15) and cityid=? and proid>? limit ' . $limit, 'params' => array($cityId, $beginId)), $cityId); if (empty($searchProps)) { return array('status' => 0, 'msg' => 'empty'); } foreach ($searchProps as $searchProp) { $proId = $this->cursor = $searchProp['proid']; if ($searchProp['commid']) { continue; } $prop = Bll_HzProp::get_prop($proId); foreach ($nocomms as $index => $nocomm) { $blockInofNew = Bll_HzProp::getBlockByTypeCode($nocomm['new_code']); $blockInofOld = Bll_HzProp::getBlockByTypeCode($nocomm['old_code']); if (!$blockInofNew || !$blockInofOld) { return array('status' => 0, 'msg' => 'block info is empty'); } if ($prop['blockid'] == $blockInofOld['id'] && $prop['areaid'] == $blockInofOld['parentid']) { // 更新房源信息 $result = $this->changePropBlock($proId, $blockInofNew['id'], $blockInofNew['parentid'], $cityId, $searchProp['ajk_brokerid']); if ($result['status'] == 0) { $this->setLog('租房房源区域板块更新失败 id:[ ' . $proId . ' ]' . ' info:' . $result['msg']); } else { $this->setLog('租房房源区域板块更新成功 id:[ ' . $proId . ' ]'); //通知上下架队列 $param['prop_id'] = $proId; $param['spread_id'] = 0; // $param['ajk_broker_id'] = $searchProp['ajk_brokerid']; $param['from'] = 'cms_' . __FUNCTION__; $param['time'] = time(); $param['operate_id'] = 0; $param['site_type'] = 2; $param['remark'] = json_encode(array('cityId' => $cityId, 'old' => $nocomm['old_code'], 'new' => $nocomm['new_code'])); $param['type'] = 'community_area_change_ex'; $getRes = $this->action_collect_Api_new($param); $res = json_decode($getRes, true); if ($res['status'] == 'err') { $this->setLog('调用上下架队列api失败,租房房源id:[ ' . $proId . ' ] info:' . $res['msg']); } else { $this->setLog('调用上下架队列api成功,租房房源id:[ ' . $proId . ' ] info:' . $res['msg']); } } $allReturn = array_merge($allReturn, $result['msg']); } } } return array('status' => 1, 'msg' => $allReturn); }
/** * 处理comms业务功能 * @param $action */ public static function dealActionComms($action) { $allResult = array(); //添加去重数组,为更新租房commid=0的数据做准备 $blockInfoArr = array(); foreach ($action['comms'] as $comm) { $blockInof = Bll_HzProp::getBlockByTypeCode($comm['new_block_code'], array(0, 1), true); // 判断小区solr是否ok $ajkBlock = Dao_Broker_HzProp::getAjkBlockInfo($comm['new_block_code']); if (!$ajkBlock) { return self::buildReturn(0, '二手房没有该板块:' . $comm['new_block_code']); } if (!Bll_HzProp::isCommSolrUpdated($ajkBlock['TypeId'], $ajkBlock['ParentId'], $blockInof['cityid'], $comm['community_id'], $comm['community_name'])) { return self::buildReturn(0, '租房小区solr还没更新完,动作id:' . $action['id'] . ' 小区id:' . $comm['community_id']); } if ($blockInof) { $result = Bll_HzProp::updatePropBlock($blockInof['id'], $blockInof['parentid'], $blockInof['cityid'], $comm['community_id']); if (!$result['status']) { // 更新动作表 if (!Bll_Cms_BlockChange::updateCommAction($comm['s_id'], $action['id'], 3, '处理失败')) { return self::buildReturn(0, '更新动作表失败,动作id:' . $action['id']); } return $result; } $allResult = array_merge($allResult, $result['msg']); } // 更新动作表 if (!Bll_Cms_BlockChange::updateCommAction($comm['s_id'], $action['id'], 1, '处理成功')) { return self::buildReturn(0, '更新动作表失败,动作id:' . $action['id']); } $temp = array(); $temp['new_code'] = $comm['new_block_code']; $temp['old_code'] = $comm['block_code']; $temp['city_id'] = $comm['city_id']; $blockInfoArr[$temp['old_code'] . '_' . $temp['new_code']] = $temp; } if (!empty($blockInfoArr)) { Bll_Cms_BlockChange::insertCommList($blockInfoArr); } return self::buildReturn(1, $allResult); }
/** * 处理小区id为0的情况 * @param $beginId * @param $nocomms * @param $cityId * @param $youBiaoFile * @param int $limit * @return array */ public static function dealPropCommidZero($beginId, $nocomms, $cityId, $youBiaoFile, $limit = 1000) { $allReturn = array(); if (empty($nocomms)) { return self::buildReturn(0, 'nocomms is empty'); } // sql commid=0去掉 $searchProps = Bll_HzProp::getSearchProps(array('where' => 'status in (1,2,5,6,9,11,12,13,14,15) and cityid=? and proid>? limit ' . $limit, 'params' => array($cityId, $beginId)), $cityId); if (empty($searchProps)) { return self::buildReturn(0, 'empty'); } foreach ($searchProps as $searchProp) { $proId = $searchProp['proid']; file_put_contents($youBiaoFile, $proId); if ($searchProp['commid']) { continue; } $prop = self::get_prop($proId); foreach ($nocomms as $index => $nocomm) { $blockInofNew = Bll_HzProp::getBlockByTypeCode($nocomm['new_code']); $blockInofOld = Bll_HzProp::getBlockByTypeCode($nocomm['old_code']); if (!$blockInofNew || !$blockInofOld) { return self::buildReturn(0, 'block info is empty'); } if ($prop['blockid'] == $blockInofOld['id'] && $prop['areaid'] == $blockInofOld['parentid']) { // 更新房源信息 $result = self::changePropBlock($proId, $blockInofNew['id'], $blockInofNew['parentid'], $cityId); if (!$result['status']) { return $result; } $allReturn = array_merge($allReturn, $result['msg']); } /*else { $allReturn[] = "proid: " . $proId . ",不需要更新"; }*/ } } return self::buildReturn(1, $allReturn); }