/** * 把country跑到mv_basic_country */ public function actionFixcountry() { $mvBasic = MvBasic::find()->where('id>=12313')->orderBy('id asc'); $total = $mvBasic->count(); $page = 1; $pageSize = 40; $totalPage = ceil($total / $pageSize); $mvBasic->limit($pageSize)->asArray(); for ($page = 1; $page <= $totalPage; $page++) { $offset = ($page - 1) * $pageSize; $data = $mvBasic->offset($offset)->all(); foreach ($data as $v) { $basic_id = $v['id']; $movieCountry = explode(',', $v['countries']); echo $basic_id, "\n"; foreach ($movieCountry as $t) { echo $t, "\n"; // mv_basic_condition country $cond = models\MvBasicCondition::find()->where(['name' => $t, 'status' => 1, 'cond_type' => 2])->asArray()->one(); if (empty($cond)) { $MvBasicType = new models\MvBasicCondition(); $MvBasicType->cond_type = 2; $MvBasicType->name = $t; $MvBasicType->update_time = time(); $MvBasicType->save(); $cond_id = $MvBasicType->primaryKey; } else { $cond_id = $cond['id']; } // mv_basic_country if (!models\MvBasicCountry::findOne(['basic_id' => $basic_id, 'country_id' => $cond_id])) { $MvBasicCountry = new models\MvBasicCountry(); $MvBasicCountry->basic_id = $basic_id; $MvBasicCountry->country_id = $cond_id; $MvBasicCountry->save(); } } echo "\n\n"; } } return $ret; }
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_ , mv_basic_condition 入库 */ public function updateMovieCountry($basic_id, $movieCountry) { if (empty($basic_id) || !is_numeric($basic_id) || empty($movieCountry) || !is_array($movieCountry)) { return false; } foreach ($movieCountry as $t) { // mv_basic_condition country $cond = models\MvBasicCondition::find()->where(['name' => $t, 'cond_type' => 2])->asArray()->one(); if (empty($cond)) { $MvBasicType = new models\MvBasicCondition(); $MvBasicType->cond_type = 2; $MvBasicType->name = $t; $MvBasicType->update_time = time(); $MvBasicType->save(); $cond_id = $MvBasicType->primaryKey; } else { $cond_id = $cond['id']; } // mv_basic_country if (!models\MvBasicCountry::findOne(['basic_id' => $basic_id, 'country_id' => $cond_id])) { $MvBasicCountry = new models\MvBasicCountry(); $MvBasicCountry->basic_id = $basic_id; $MvBasicCountry->country_id = $cond_id; $MvBasicCountry->save(); } } }