public function actionSphinxdata() { ini_set('memory_limit', '512M'); $dataFile = '/usr/local/sphinx/data/mv_main.tsv'; // mv_basic_condition $movieCondData = models\MvBasicCondition::find()->select('*')->asArray()->all(); $movieCond = []; foreach ($movieCondData as $v) { $movieCond[$v['cond_type']][$v['id']] = $v['name']; } // mv_basic_type $movieTypeData = models\MvBasicType::find()->select('*')->asArray()->all(); $movieType = []; foreach ($movieTypeData as $v) { $movieType[$v['basic_id']][] = $movieCond['1'][$v['cate_id']]; } // mv_basic_country $movieCountryData = models\MvBasicCountry::find()->select('*')->asArray()->all(); $movieCountry = []; foreach ($movieCountryData as $v) { $movieCountry[$v['basic_id']][] = $movieCond['2'][$v['country_id']]; } // mv_basic $movieData = models\MvBasic::find()->select('id,title,py_title,original_title,py_original_title,aka,directors,casts,year,rating,update_time,status')->where('status=1 and rating>"0.0"')->asArray()->all(); if ($h = fopen($dataFile, "wb")) { foreach ($movieData as $k => &$v) { $id = $v['id']; var_dump($id); $v['directors'] = str_replace("\t", "", $v['directors']); $v['casts'] = str_replace("\t", "", $v['casts']); //$v['aka'] = isset($v['aka']) ? implode(' ', explode(',',$v['aka'])) : ''; $v['type'] = isset($movieType[$id]) ? implode(' ', $movieType[$id]) : ''; $v['country'] = isset($movieCountry[$id]) ? implode(' ', $movieCountry[$id]) : ''; //var_dump( implode("\t",$v) );die; $line = implode("\t", $v) . "\n"; fwrite($h, $line); } fclose($h); } }
/** * 更新电影分类 * mv_basic_type , mv_basic_condition 入库 */ public function updateMovieType($basic_id, $movieType) { if (empty($basic_id) || !is_numeric($basic_id) || empty($movieType) || !is_array($movieType)) { return false; } foreach ($movieType as $t) { // mv_basic_condition type $cond = models\MvBasicCondition::find()->where(['name' => $t, 'cond_type' => 1])->asArray()->one(); if (empty($cond)) { $MvBasicType = new models\MvBasicCondition(); $MvBasicType->cond_type = 1; $MvBasicType->name = $t; $MvBasicType->update_time = time(); $MvBasicType->save(); $cond_id = $MvBasicType->primaryKey; } else { $cond_id = $cond['id']; } // mv_basic_type if (!models\MvBasicType::findOne(['basic_id' => $basic_id, 'cate_id' => $cond_id])) { $MvBasicType = new models\MvBasicType(); $MvBasicType->basic_id = $basic_id; $MvBasicType->cate_id = $cond_id; $MvBasicType->save(); } } }