Example #1
0
 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);
     }
 }
Example #2
0
 /**
  * 更新电影分类
  * 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();
         }
     }
 }