Пример #1
0
 /**
  * 修正主题标签,插入本地获取冗余数据
  */
 public function getThemeTags()
 {
     echo "第一步:回复主题标签<br/>";
     $mark = new mark();
     $this->recoverTeamThemeTags();
     //*/
     $result = $dataSeach = array();
     echo "第二步:清理标签表<br/>";
     //$mark->table();exit;
     echo "第三步:获取话题标签信息<br/>";
     $result = $dataSeach = array();
     $data = array();
     $i = 0;
     $result = $this->libactivity->get('topic', 'topic_id,source_id,creater_id,tags,state,pub_time', array(), 0, -1, array('topic_id' => 'desc'), array('tags' => '!=""'));
     if ($result) {
         foreach ($result as $k => $v) {
             //处理标签
             if (strpos($v['tags'], ',')) {
                 $topic_tags = explode(',', $v['tags']);
                 foreach ($topic_tags as $m => $n) {
                     $tag[$n] = $n;
                     $data[$i]['action'] = 'topic_tag';
                     $data[$i]['parent_id'] = $v['source_id'];
                     $data[$i]['source'] = 'topic';
                     $data[$i]['source_id'] = $v['topic_id'];
                     $data[$i]['state'] = $v['state'];
                     $data[$i]['user_id'] = $v['creater_id'];
                     $data[$i]['create_time'] = $v['pub_time'];
                     $data[$i]['name'] = $n;
                     $i++;
                 }
             } else {
                 $tag[$v['tags']] = $v['tags'];
                 $data[$i]['action'] = 'topic_tag';
                 $data[$i]['parent_id'] = $v['source_id'];
                 $data[$i]['source'] = 'topic';
                 $data[$i]['source_id'] = $v['topic_id'];
                 $data[$i]['state'] = $v['state'];
                 $data[$i]['user_id'] = $v['creater_id'];
                 $data[$i]['create_time'] = $v['pub_time'];
                 $data[$i]['name'] = $v['tags'];
                 $i++;
             }
             //处理关系
         }
     }
     echo "第三步:获取小组标签信息<br/>";
     $result = $dataSeach = array();
     $result = $this->libactivity->get('activity', 'action_id,team_id,user_id,mark,create_time,state', array(), 0, -1, array('action_id' => 'desc'), array('mark' => '!=""'));
     if ($result) {
         foreach ($result as $k => $v) {
             //处理标签
             if (strpos($v['mark'], ',')) {
                 $topic_tags = explode(',', $v['mark']);
                 foreach ($topic_tags as $m => $n) {
                     $tag[$n] = $n;
                     $data[$i]['action'] = 'topic_tag';
                     $data[$i]['parent_id'] = $v['team_id'];
                     $data[$i]['source'] = 'activity';
                     $data[$i]['source_id'] = $v['action_id'];
                     $data[$i]['state'] = $v['state'];
                     $data[$i]['user_id'] = $v['user_id'];
                     $data[$i]['create_time'] = $v['create_time'];
                     $data[$i]['name'] = $n;
                     $i++;
                 }
             } else {
                 $tag[$v['tags']] = $v['tags'];
                 $data[$i]['action'] = 'keywords';
                 $data[$i]['source'] = 'activity';
                 $data[$i]['source_id'] = $v['action_id'];
                 $data[$i]['parent_id'] = $v['team_id'];
                 $data[$i]['state'] = $v['state'];
                 $data[$i]['user_id'] = $v['user_id'];
                 $data[$i]['create_time'] = $v['create_time'];
                 $data[$i]['name'] = $v['mark'];
                 $i++;
             }
         }
     }
     echo "第四步:获取人的标签信息<br/>";
     $result = $dataSeach = array();
     $member = new member();
     $result = $member->get_all_mark('', 0, -1);
     if ($result) {
         foreach ($result as $k => $v) {
             if ($v['mark'] != 0) {
                 //处理标签
                 if (strpos($v['mark'], ',')) {
                     $topic_tags = explode(',', $v['mark']);
                     foreach ($topic_tags as $m => $n) {
                         $tag[$n] = $n;
                         $data[$i]['action'] = 'myself';
                         //$data[$i]['parent_id'] = '';
                         $data[$i]['source'] = 'user';
                         $data[$i]['source_id'] = $v['member_id'];
                         $data[$i]['state'] = 1;
                         $data[$i]['user_id'] = $v['member_id'];
                         $data[$i]['create_time'] = TIMENOW;
                         $data[$i]['name'] = $n;
                         $i++;
                     }
                 } else {
                     $tag[$v['tags']] = $v['tags'];
                     $data[$i]['action'] = 'myself';
                     $data[$i]['source'] = 'user';
                     $data[$i]['source_id'] = $v['member_id'];
                     //$data[$i]['parent_id'] = $v['team_id'];
                     $data[$i]['state'] = 1;
                     $data[$i]['user_id'] = $v['member_id'];
                     $data[$i]['create_time'] = TIMENOW;
                     $data[$i]['name'] = $v['mark'];
                     $i++;
                 }
             }
         }
     }
     echo "第五步:获取小组的标签信息<br/>";
     $result = $dataSeach = array();
     $result = $this->libactivity->get('team', 'team_id,creater_id,tags,theme_tags,pub_time,state', array(), 0, -1, array('team_id' => 'desc'), array());
     if ($result) {
         foreach ($result as $k => $v) {
             if ($v['tags']) {
                 //处理标签
                 if (strpos($v['tags'], ',')) {
                     $topic_tags = explode(',', $v['tags']);
                     foreach ($topic_tags as $m => $n) {
                         $tag[$n] = $n;
                         $data[$i]['action'] = 'topic_tag';
                         $data[$i]['parent_id'] = $v['team_id'];
                         $data[$i]['source'] = 'team';
                         $data[$i]['source_id'] = $v['team_id'];
                         $data[$i]['state'] = $v['state'];
                         $data[$i]['user_id'] = $v['creater_id'];
                         $data[$i]['create_time'] = $v['pub_time'];
                         $data[$i]['name'] = $n;
                         $i++;
                     }
                 } else {
                     $tag[$v['tags']] = $v['tags'];
                     $data[$i]['action'] = 'topic_tag';
                     $data[$i]['parent_id'] = $v['team_id'];
                     $data[$i]['source'] = 'team';
                     $data[$i]['source_id'] = $v['team_id'];
                     $data[$i]['state'] = $v['state'];
                     $data[$i]['user_id'] = $v['creater_id'];
                     $data[$i]['create_time'] = $v['pub_time'];
                     $data[$i]['name'] = $v['tags'];
                     $i++;
                 }
             }
             if ($v['theme_tags']) {
                 //处理标签
                 if (strpos($v['theme_tags'], ',')) {
                     $topic_tags = explode(',', $v['theme_tags']);
                     foreach ($topic_tags as $m => $n) {
                         $tag[$n] = $n;
                         $data[$i]['action'] = 'theme_tags';
                         $data[$i]['parent_id'] = $v['team_id'];
                         $data[$i]['source'] = 'team';
                         $data[$i]['source_id'] = $v['team_id'];
                         $data[$i]['state'] = $v['state'];
                         $data[$i]['user_id'] = $v['creater_id'];
                         $data[$i]['create_time'] = $v['pub_time'];
                         $data[$i]['name'] = $n;
                         $i++;
                     }
                 } else {
                     $tag[$v['tags']] = $v['theme_tags'];
                     $data[$i]['action'] = 'theme_tags';
                     $data[$i]['parent_id'] = $v['team_id'];
                     $data[$i]['source'] = 'team';
                     $data[$i]['source_id'] = $v['team_id'];
                     $data[$i]['state'] = $v['state'];
                     $data[$i]['user_id'] = $v['creater_id'];
                     $data[$i]['create_time'] = $v['pub_time'];
                     $data[$i]['name'] = $v['theme_tags'];
                     $i++;
                 }
             }
             //处理关系
         }
     }
     echo "第六步:插入标签<br/>";
     $name = implode(',', $tag);
     $marks = $mark->insertMark(array('name' => $name, 'action' => 0));
     $s_marks = array_keys($marks);
     echo "第七步:插入标签关系<br/>";
     if ($data) {
         $pnu = $pau = array();
         foreach ($data as $k => $v) {
             if (in_array($v['name'], $s_marks)) {
                 $pun[$k]['action'] = $v['action'];
                 $pun[$k]['source'] = $v['source'];
                 $pun[$k]['source_id'] = $v['source_id'];
                 $pun[$k]['parent_id'] = $v['parent_id'];
                 $pun[$k]['create_time'] = $v['create_time'];
                 $pun[$k]['state'] = $v['state'];
                 $pun[$k]['mark_id'] = $marks[$v['name']];
                 $pau[$k] = $pun[$k];
                 $pau[$k]['user_id'] = $v['user_id'];
             }
         }
     }
     if ($pun) {
         $mark_u = $mark->insertMarkAction(array('marks_sss' => serialize($pun)));
     }
     if ($pau) {
         $mark_a = $mark->insertNameAction(array('marks_ttt' => serialize($pau)));
     }
     echo "处理完毕<br/>";
 }