/** * 转移文章主任务线程,转移老驼牛的文章 */ private function transferArticle() { //获取文章 $query = 'SELECT id,catid,title,kwords,bcontent,hits,author,tags,add_time,update_time,share_times,thumb_pic,trash,ischeck ' . 'FROM fiidee_article'; $items = self::$_SRC_DB->getItems($query); //获取文章内容 $ids = array(); foreach ($items as $__val) { $ids[] = $__val['id']; } $articleData = self::$_SRC_DB->getItems('SELECT itemid,content FROM fiidee_articleData WHERE itemid IN (' . implode(',', $ids) . ')'); $articleData = ArrayUtils::changeArrayKey($articleData, 'itemid'); //转移文章 $articleService = Beans::get('article.article.service'); $articleTagsService = Beans::get('article.tags.service'); $imageService = Beans::get('image.image.service'); //userid,chanel_id,media_id,thumb,title,kwords,bcontent,author,tags,add_time,update_time,publish_time,share_times,hits,trash,ischeck foreach ($items as $value) { $data = array(); $data['id'] = $value['id']; $data['userid'] = 0; $data['chanel_id'] = intval(self::$_CAT_TO_CHANEL[$value['catid']]); if ($data['chanel_id'] <= 0) { $data['chanel_id'] = 5; } if (mb_strlen($value['title'], 'UTF-8') < 4) { $message = "添加文章失败,源ID : {$value['id']}, 文章标题 : ‘{$value['title']}’ 长度太短"; tprintError($message); $this->addErrorLog($message); continue; } $data['media_id'] = 0; $data['title'] = $value['title']; $data['kwords'] = $value['kwords']; $data['bcontent'] = $value['bcontent']; $data['author'] = $value['author']; $data['add_time'] = $value['add_time']; $data['update_time'] = $value['update_time']; $data['publish_time'] = $value['update_time']; $data['share_times'] = $value['share_times']; $data['hits'] = $value['hits']; $data['trash'] = $value['trash']; $data['ischeck'] = $value['ischeck']; //转移缩略图 $data['thumb'] = str_replace('/res/attachs/', '/res/upload/', $value['thumb_pic']); //转移内容 $content = $articleData[$value['id']]['content']; //过滤掉正文汉字长度小于100的文章 $__content = ''; $__length = strlen($content); for ($i = 0; $i < $__length; $i++) { if (ord($content[$i]) > 127) { $__content .= $content[$i]; } } if (mb_strlen($__content, 'UTF-8') < 100) { $message = "添加文章失败,源ID : {$value['id']}, 文章标题 : ‘{$value['title']}’ 文章内容正文小于100"; tprintError($message); $this->addErrorLog($message); continue; } $articleService->beginTransaction(); $data['content'] = str_replace('/res/attachs/', '/res/upload/', $content); $this->getContentImage($value['id'], 0, $data['content']); //保存缩略图到图片空间 $pathinfo = pathinfo($data['thumb']); $imgData = array('userid' => 0, 'media_id' => 0, 'aid' => $value['id'], 'url' => $data['thumb'], 'type' => 'image', 'filename' => $pathinfo['basename'], 'add_time' => time(), 'grabed' => 1); $imageService->add($imgData); //如果标签为空则自动生成标签 if (trim($value['tags']) != '') { $tags = \WordSplit::split($value['title']); } else { $tags = explode(' ', $value['tags']); } //如果标签的数量超过5个,则删除多余的标签 if (count($tags) > 5) { $tags = array_slice($tags, 0, 5); } $tagIds = array(); foreach ($tags as $_value) { if (trim($_value) == '') { continue; } $tagIds[] = $articleTagsService->add(array('name' => $_value)); } //添加文章 $data['tags'] = implode(',', $tagIds); //var_dump($data);die(); $result = $articleService->add($data); if ($result) { //提交 $articleService->commit(); tprintOk("添加文章成功! 源ID : {$value['id']}, 新ID : {$result}"); } else { //回滚 $articleService->rollback(); $message = "添加文章失败,源ID : {$value['id']}"; tprintError($message); $this->addErrorLog($message); } } }
/** * 自动获取标签 * @param HttpRequest $request */ public function fetchTags(HttpRequest $request) { $data = $request->getParameter('data', 'trim'); Loader::import('extend.word.WordSplit', IMPORT_CUSTOM); $words = \WordSplit::split($data); if (!empty($words)) { AjaxResult::ajaxResult('ok', implode(',', $words)); } else { AjaxResult::ajaxFailtureResult(); } }