admin_obj = Db::name('admin'); $this->journal_obj = Db::name('journal'); $this->article_obj = Db::name('article'); $this->article_author_obj = Db::name('article_author'); $this->article_ltai_obj = Db::name('article_ltai'); $this->journal_topic_obj = Db::name('journal_topic'); $this->journal_stage_obj = Db::name('journal_stage'); $this->journal_notices_obj = Db::name('journal_notices'); $this->journal_abs_obj = Db::name('journal_abstracting'); $this->journal_cfp_obj = Db::name('journal_cfp'); $this->journal_line_obj = Db::name('journal_line'); $this->article_to_topic_obj = Db::name('article_to_topic'); $this->article_to_line_obj = Db::name('article_to_line'); $this->journal_paper_obj = Db::name('journal_paper'); $this->journal_paper_art_obj = Db::name('journal_paper_art'); $this->subscribe_journal_obj = Db::name('subscribe_journal'); $this->subscribe_topic_obj = Db::name('subscribe_topic'); $this->board_obj = Db::name('board'); $this->board_group_obj = Db::name('board_group'); } /** * @title 获取期刊列表 * @description 获取期刊列表 * @author wangjinlei * @url /api/Journal/getJournalList * @method POST * * * @return journalList:期刊列表@ * @journalList title:标题 issn:issn editorinchief:editorinchief acceptance:acceptance finaldecision:finaldecision apc:apc */ public function getJournalList() { $where['j_journal.state'] = 0; $res = $this->journal_obj ->field('j_journal.*,j_admin.realname realname') ->join('j_admin', 'j_admin.admin_id = j_journal.editor_id', 'LEFT') ->where($where) ->order(['j_journal.sort desc', 'j_journal.journal_id']) ->select(); return json(['code' => 0, 'msg' => 'success', 'data' => ['journalList' => $res]]); } /** * @title 获取期刊列表byname * @description 获取期刊列表byname * @author wangjinlei * @url /api/Journal/getJournalListByName * @method POST * * * @return journalList:期刊列表@ * @journalList title:标题 issn:issn editorinchief:editorinchief acceptance:acceptance finaldecision:finaldecision apc:apc */ public function getJournalListByName() { $where['j_journal.state'] = 0; $res = $this->journal_obj ->field('j_journal.*,j_admin.realname realname') ->join('j_admin', 'j_admin.admin_id = j_journal.editor_id', 'LEFT') ->where($where) ->order('j_journal.title') ->select(); return json(['code' => 0, 'msg' => 'success', 'data' => ['journalList' => $res]]); } /** * @title 获取期刊信息 * @description 获取期刊信息 * @author wangjinlei * @url /api/Journal/getJournal * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return journal:期刊基础信息array# * @return relats:关联数组# * @return journalAbs:期刊外链信息array# * @return journalstage:期刊分期信息array# */ public function getJournal() { $data = $this->request->post(); $journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find(); $rearr = $journal_info['relate'] == '' ? [] : explode(',', $journal_info['relate']); $relatelist = $this->journal_obj->where('journal_id', 'in', $rearr)->where('state', 0)->select(); $absList = $this->journal_abs_obj->where('journal_id', $data['journal_id'])->where('state', 0)->order('sort')->select(); $stageList = $this->journal_stage_obj->where('journal_id', $data['journal_id'])->where('is_publish', 1)->where('state', 0)->order('stage_year desc,stage_no desc')->select(); return json(['code' => 0, 'msg' => 'success', 'data' => ['journal' => $journal_info, 'relats' => $relatelist, 'journalAbs' => $absList, 'journalStage' => $stageList]]); } /** * @title 获取期刊话题 * @description 获取期刊话题 * @author wangjinlei * @url /api/Journal/getJournalTopic * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return topicList:期刊话题列表array# */ public function getJournalTopic() { $data = $this->request->post(); $p_res = $this->journal_topic_obj ->where('journal_id', $data['journal_id']) ->where('state', 0) ->where('parent_id',0) ->order('sort') ->select(); $res = $this->journal_topic_obj ->where('journal_id', $data['journal_id']) ->where('state', 0) ->where('parent_id','>',0) ->order('sort asc,journal_topic_id asc') ->select(); //处理数组 $frag = $p_res; // foreach ($res as $v) { // if ($v['parent_id'] == 0) { // $frag[] = $v; // } // } foreach ($frag as $kk => $vv) { $frag[$kk] = $this->getChieldarr($vv, $res); } return json(['code' => 0, 'msg' => 'success', 'data' => ['topicList' => $frag]]); } private function getChieldarr($vv, $res) { if ($vv['is_final'] == 1) { return $vv; } foreach ($res as $v) { if ($v['parent_id'] == $vv['journal_topic_id']) { $vv['children'][] = $this->getChieldarr($v, $res); } } return $vv; } /** * @title 获取期刊line * @description 获取期刊line * @author wangjinlei * @url /api/Journal/getJournalLine * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return lines:期刊line数组# */ public function getJournalLine() { $data = $this->request->post(); $list = $this->journal_line_obj->where('journal_id', $data['journal_id'])->where('state', 0)->order('journal_line_id')->select(); $re['lines'] = $list; return jsonSuccess($re); } /** * @title 获取期刊line文章 * @description 获取期刊line文章 * @author wangjinlei * @url /api/Journal/getJournalLineArt * @method POST * * @param name:journal_line_id type:int require:1 desc:期刊lineid * * @return journalLine:期刊时间线信息# * @return articles:期刊line文章数组# */ public function getJournalLineArt() { $data = $this->request->post(); $journalLine = $this->journal_line_obj->where('journal_line_id', $data['journal_line_id'])->find(); $journal_info = $this->journal_obj->where('journal_id', $journalLine['journal_id'])->find(); $list = $this->article_to_line_obj->field('j_article.*,j_journal_stage.*') ->join([['j_article', 'j_article_to_line.article_id = j_article.article_id', 'LEFT'], ['j_journal_stage', 'j_journal_stage.journal_stage_id = j_article.journal_stage_id', 'LEFT']]) ->where('j_article_to_line.journal_line_id', $data['journal_line_id']) ->where('j_article_to_line.state', 0) ->order('j_article.sort desc') ->select(); //标题斜体 foreach ($list as $k => $v) { $caches = $this->article_ltai_obj->where('article_id', $v['article_id'])->where('state', 0)->column('content'); $cache_title = $v['title']; foreach ($caches as $val) { $cache_title = str_replace($val, '' . $val . '', $cache_title); } $list[$k]['title'] = $cache_title; } //获取作者 foreach ($list as $k => $v) { $stage_info = $this->journal_stage_obj->where('journal_stage_id', $v['journal_stage_id'])->find(); //组合cite信息 $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; $cite = $v['abbr'] . '. ' . $v['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; $list[$k]['cite'] = $cite; $list[$k]['authortitle'] = $this->getAuthor($v); } // //获取作者 // foreach ($list as $k => $v) { // $list[$k]['authortitle'] = $this->getAuthor($v); // } $re['journalLine'] = $journalLine; $re['articles'] = $list; return jsonSuccess($re); } /** * @title 获取期刊推广文章 * @description 获取期刊推广文章 * @author wangjinlei * @url /api/Journal/getJournalArticles * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return articleList:期刊话题列表array# * @return stage:当前分期信息array# */ public function getJournalArticles() { $data = $this->request->post(); $journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find(); $list = $this->article_obj->where('journal_stage_id', $journal_info['publish_stage_id']) ->where('state', 0) ->order('sort asc') ->select(); $stage_info = $this->journal_stage_obj->where('journal_stage_id', $journal_info['publish_stage_id'])->find(); //标题斜体 foreach ($list as $k => $v) { $caches = $this->article_ltai_obj->where('article_id', $v['article_id'])->where('state', 0)->column('content'); $cache_title = $v['title']; foreach ($caches as $val) { $cache_title = str_replace($val, '' . $val . '', $cache_title); } $list[$k]['title'] = $cache_title; } //获取作者 foreach ($list as $k => $v) { //组合cite信息 $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; if ($journal_info['journal_id'] == 22) { $cite = $v['abbr'] . '. ' . $v['title'] . '[J]. ' . $journal_info['jabbr'] . ',' . $stage_info['stage_year'] . ',' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; } else { $cite = $v['abbr'] . '. ' . $v['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; } // $cite = $v['abbr'] . '. ' . $v['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; $list[$k]['cite'] = $cite; $list[$k]['authortitle'] = $this->getAuthor($v); } return json(['code' => 0, 'msg' => 'success', 'data' => ['stage' => $stage_info, 'articleList' => $list]]); } private function getAuthor($article) { $where['article_id'] = $article['article_id']; $where['state'] = 0; $list = $this->article_author_obj->where($where)->select(); $frag = ''; foreach ($list as $k => $v) { $frag = $frag == '' ? '' . $v['author_name'] : $frag . ', ' . $v['author_name']; } return $frag; } /** * @title 获取onlinefirst文章 * @description 获取onlinefirst文章 * @author wangjinlei * @url /api/Journal/getOnlineArticle * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * @param name:pageIndex type:int require:1 desc:当前页码数 * @param name:pageSize type:int require:1 desc:单页数据条数 * * @return articlelist:文章列表array# * @return count:总数 */ public function getOnlineArticle() { $data = $this->request->post(); $stages = $this->journal_stage_obj->where('journal_id', $data['journal_id'])->where('is_publish', 0)->where('state', 0)->column('journal_stage_id'); $journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find(); $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; $list = $this->article_obj ->field('j_article.*,j_journal_stage.*') ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') ->where('j_article.journal_stage_id', 'in', $stages) ->where('j_article.state', 0) ->order('j_article.sort desc') ->limit($limit_start,$data['pageSize']) ->select(); $count = $this->article_obj ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') ->where('j_article.journal_stage_id', 'in', $stages) ->where('j_article.state', 0) ->count(); //标题斜体 foreach ($list as $k => $v) { $caches = $this->article_ltai_obj->where('article_id', $v['article_id'])->where('state', 0)->column('content'); $cache_title = $v['title']; foreach ($caches as $val) { $cache_title = str_replace($val, '' . $val . '', $cache_title); } $list[$k]['title'] = $cache_title; } //获取作者 foreach ($list as $k => $v) { $stage_info = $this->journal_stage_obj->where('journal_stage_id', $v['journal_stage_id'])->find(); //组合cite信息 $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; $cite = $v['abbr'] . '. ' . $v['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; $list[$k]['cite'] = $cite; $list[$k]['authortitle'] = $this->getAuthor($v); } return json(['code' => 0, 'msg' => 'success', 'data' => ['articlelist' => $list,'count'=>$count]]); } /** * @title 获取news文章 * @description 获取news文章 * @author wangjinlei * @url /api/Journal/getNewsArticle * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return articlelist:文章列表array# */ public function getNewsArticle() { $data = $this->request->post(); $stages = $this->journal_stage_obj->where('journal_id', $data['journal_id'])->where('is_publish', 1)->where('state', 0)->column('journal_stage_id'); $journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find(); $list = $this->article_obj ->field('j_article.*,j_journal_stage.*') ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') ->where('j_article.journal_stage_id', 'in', $stages) ->where('j_article.state', 0) ->where('j_journal_stage.stage_year','>','2018') ->where('j_article.type', ['like', 'News'], ['like', 'Comment'], 'or') ->order('j_journal_stage.stage_year desc,j_journal_stage.stage_vol desc,j_journal_stage.stage_no desc,j_article.article_id desc') ->select(); //获取作者 foreach ($list as $k => $v) { $stage_info = $this->journal_stage_obj->where('journal_stage_id', $v['journal_stage_id'])->find(); //组合cite信息 $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; $cite = $v['abbr'] . '. ' . $v['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; $list[$k]['cite'] = $cite; $list[$k]['authortitle'] = $this->getAuthor($v); } //标题斜体 foreach ($list as $k => $v) { $caches = $this->article_ltai_obj->where('article_id', $v['article_id'])->where('state', 0)->column('content'); $cache_title = $v['title']; foreach ($caches as $val) { $cache_title = str_replace($val, '' . $val . '', $cache_title); } $list[$k]['title'] = $cache_title; } return json(['code' => 0, 'msg' => 'success', 'data' => ['articlelist' => $list]]); } /** * @title 获取top前4条article * @description 获取top前4条article * @author wangjinlei * @url /api/Journal/getTopArticle * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * @param name:pageIndex type:int require:1 desc:当前页码数 * @param name:pageSize type:int require:1 desc:单页数据条数 * * @return articles:文章列表array# * @return count:总数 */ public function getTopArticle() { $data = $this->request->post(); $journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find(); $limit_start = ($data['pageIndex'] - 1) * $data['pageSize']; $list = $this->article_obj->field('j_article.*,j_journal_stage.*') ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') ->where('j_article.journal_id', $data['journal_id']) ->where('j_article.state', 0) ->where('j_journal_stage.is_publish',1) ->orderRaw('j_article.cited+j_article.abs_num+j_article.pdf_num desc') ->limit($limit_start,$data['pageSize']) ->select(); $count = $this->article_obj ->join('j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT') ->where('j_article.journal_id', $data['journal_id']) ->where('j_article.state', 0) ->where('j_journal_stage.is_publish',1) ->count(); //获取作者 foreach ($list as $k => $v) { $stage_info = $this->journal_stage_obj->where('journal_stage_id', $v['journal_stage_id'])->find(); //组合cite信息 $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; $cite = $v['abbr'] . '. ' . $v['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; $list[$k]['cite'] = $cite; $list[$k]['authortitle'] = $this->getAuthor($v); } //标题斜体 foreach ($list as $k => $v) { $caches = $this->article_ltai_obj->where('article_id', $v['article_id'])->where('state', 0)->column('content'); $cache_title = $v['title']; foreach ($caches as $val) { $cache_title = str_replace($val, '' . $val . '', $cache_title); } $list[$k]['title'] = $cache_title; } return jsonSuccess(['articles' => $list,'count'=>$count]); } /** * @title 获取消息列表 * @description 获取消息列表 * @author wangjinlei * @url /api/Journal/getNotices * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return notices:消息列表array# */ public function getNotices() { $data = $this->request->post(); $list = $this->journal_notices_obj->where('journal_id', $data['journal_id'])->where('state', 0)->order('ctime desc')->select(); return jsonSuccess(['notices' => $list]); } /** * @title 获取消息详情 * @description 获取消息详情 * @author wangjinlei * @url /api/Journal/getNoticesDetail * @method POST * * @param name:journal_notices_id type:int require:1 desc:期刊消息id * * @return notices:消息内容# */ public function getNoticesDetail() { $data = $this->request->post(); $notices_info = $this->journal_notices_obj->where('journal_notices_id', $data['journal_notices_id'])->find(); $re['notices'] = $notices_info; return jsonSuccess($re); } /** * @title 获取highl话题文章 * @description 获取highl话题文章 * @author wangjinlei * @url /api/Journal/getHighTopicArticle * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return topic_info:话题详情 * @return articlelist:文章列表array# */ public function getHighTopicArticle() { $data = $this->request->post(); $topic_info = $this->journal_topic_obj->where('journal_id', $data['journal_id'])->where('position', 'highlights')->where('state', 0)->find(); $journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find(); if ($topic_info) { $list = $this->article_to_topic_obj->field('j_article.*,j_journal_stage.*') ->join(array(['j_article', 'j_article.article_id = j_article_to_topic.article_id', 'LEFT'], ['j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT'])) ->where('j_article_to_topic.topic_id', $topic_info['journal_topic_id']) ->where('j_article_to_topic.state', 0) ->where('j_journal_stage.is_publish',1) ->order('j_article.sort desc') ->select(); //获取作者 foreach ($list as $k => $v) { $stage_info = $this->journal_stage_obj->where('journal_stage_id', $v['journal_stage_id'])->find(); //组合cite信息 $no = $stage_info['stage_no'] == 0 ? ':' : '(' . $stage_info['stage_no'] . '):'; $cite = $v['abbr'] . '. ' . $v['title'] . '. ' . $journal_info['jabbr'] . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $v['npp'] . '. doi:' . $v['doi']; $list[$k]['cite'] = $cite; $list[$k]['authortitle'] = $this->getAuthor($v); } //标题斜体 foreach ($list as $k => $v) { $caches = $this->article_ltai_obj->where('article_id', $v['article_id'])->where('state', 0)->column('content'); $cache_title = $v['title']; foreach ($caches as $val) { $cache_title = str_replace($val, '' . $val . '', $cache_title); } $list[$k]['title'] = $cache_title; } return jsonSuccess(['topic_info' => $topic_info, 'articlelist' => $list]); } else { return jsonError('no highlights'); } } /** * @title 获取话题列表 * @description 获取话题列表 * @author wangjinlei * @url /api/Journal/getTopicList * @method POST * * @param name:journal_topic_id type:int require:1 desc:期刊话题id * * @return oldJournal:父期刊信息 Description * @return journalList:话题列表array# */ public function getTopicList() { $data = $this->request->post(); $journal_info = $this->journal_topic_obj->where('journal_topic_id', $data['journal_topic_id'])->find(); $list = $this->journal_topic_obj->where('parent_id', $data['journal_topic_id'])->where('state', 0)->order('sort asc')->select(); $re['oldJournal'] = $journal_info; $re['journalList'] = $list; return jsonSuccess($re); } /** * @title 获取期刊cfp * @description 获取期刊cfp * @author wangjinlei * @url /api/Journal/getJournalCfp * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return cfps:期刊cfps# */ public function getJournalCfp() { $data = $this->request->post(); $list = $this->journal_cfp_obj->where('journal_id', $data['journal_id'])->where('state', 0)->order('sort desc ,journal_cfp_id asc')->select(); $re['cfps'] = $list; return jsonSuccess($re); } /** * @title 获取期刊cfp详情 * @description 获取期刊cfp详情 * @author wangjinlei * @url /api/Journal/getCfpDetail * @method POST * * @param name:journal_cfp_id type:int require:1 desc:期刊cfpid * * @return cfp:期刊cfp信息# */ public function getCfpDetail() { $data = $this->request->post(); $cfp_info = $this->journal_cfp_obj->where('journal_cfp_id', $data['journal_cfp_id'])->find(); $re['cfp'] = $cfp_info; return jsonSuccess($re); } /** * @title 获取期刊footer * @description 获取期刊footer * @author wangjinlei * @url /api/Journal/getFooter * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return footers:footers# */ public function getFooter() { $data = $this->request->post(); $papers = $this->journal_paper_obj->where('journal_id', $data['journal_id'])->where('state', 0)->select(); foreach ($papers as $k => $v) { $cache_list = $this->journal_paper_art_obj->where('journal_paper_id', $v['journal_paper_id'])->where('state', 0)->select(); $papers[$k]['articles'] = $cache_list; } $re['footers'] = $papers; return jsonSuccess($re); } /** * @title 获取期刊footer文章 * @description 获取期刊footer文章 * @author wangjinlei * @url /api/Journal/getFooterArt * @method POST * * @param name:journal_paper_art_id type:int require:1 desc:期刊footer文章id * * @return article:文章内容# */ public function getFooterArt() { $data = $this->request->post(); $article = $this->journal_paper_art_obj->where('journal_paper_art_id', $data['journal_paper_art_id'])->find(); $re['article'] = $article; return jsonSuccess($re); } /** * @title 获取期刊编委信息 * @description 获取期刊编委信息 * @author wangjinlei * @url /api/Journal/getBoard * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return boards:编委array# */ public function getBoard(){ $data = $this->request->post(); $list = $this->board_obj ->field('j_board.*,j_board_group.group_name') ->join('j_board_group','j_board.board_group_id = j_board_group.board_group_id','left') ->where('j_board.journal_id',$data['journal_id']) ->where('j_board.state',0) ->order('j_board_group.board_group_id,j_board.name') ->select(); $frag = []; foreach ($list as $k => $v){ if($v['type']==0){ $frag['main'][] = $v; }elseif($v['type']==1){ $frag['remain'][] = $v; }else{ if($v['board_group_id']==0){ $frag['member'][] = $v; }else{ $frag['member'][$v['group_name']][] = $v; } } } $re['boards'] = $frag; return jsonSuccess($re); } /** * @title 获取期刊话题列表 * @description 获取期刊话题列表 * @author wangjinlei * @url /api/Journal/getTopicForSubscribe * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * * @return topics:话题列表array# */ public function getTopicForSubscribe() { $data = $this->request->post(); $list = $this->journal_topic_obj->where('journal_id', $data['journal_id'])->where('state', 0)->where('level', 2)->select(); $re['topics'] = $list; return jsonSuccess($re); } /** * @title 添加期刊订阅 * @description 添加期刊订阅 * @author wangjinlei * @url /api/Journal/addSubscribeJournal * @method POST * * @param name:journal_id type:int require:1 desc:期刊id * @param name:email type:string require:1 desc:邮件地址 */ public function addSubscribeJournal() { $data = $this->request->post(); //去重 $repeat = $this->subscribe_journal_obj ->where('journal_id', $data['journal_id']) ->where('email', $data['email']) ->where('state',0) ->find(); if ($repeat) { return jsonError('repeat subscribe!'); } $insert['journal_id'] = $data['journal_id']; $insert['email'] = $data['email']; $id = $this->subscribe_journal_obj->insertGetId($insert); //发送邮件感谢 $tt = 'Dear Researcher,

'; $tt .= 'Welcome you to the email alert for the latest research and more. Thank you for your interest in our publications and topics.
'; $tt .= 'Unsubscribe
'; $tt .= 'This service is provided by TMR Publishing Group | New Zealand
'; $tt .= 'Telephone: +64 02108293806'; $tt .= 'Email: publisher@tmrjournals.com'; $tt .= 'www.tmrjournals.com'; $maidata['email'] = $data['email']; $maidata['title'] = 'Traditional Medicine Research ISSN 2413-3973'; $maidata['content'] = $tt; $maidata['tmail'] = 'publicrelations@tmrjournals.com'; $maidata['tpassword'] = 'pRWU999999'; Queue::push('app\api\job\mail@fire', $maidata, "mail"); return jsonSuccess([]); } /** * @title 添加期刊话题订阅 * @description 添加期刊话题订阅 * @author wangjinlei * @url /api/Journal/addSubscribeTopic * @method POST * * @param name:topic_id type:int require:1 desc:期刊话题id * @param name:email type:string require:1 desc:邮箱地址 */ public function addSubscribeTopic() { $data = $this->request->post(); //去重 $repeat = $this->subscribe_topic_obj ->where('topic_id', $data['topic_id']) ->where('email', $data['email']) ->where('state',0) ->find(); if ($repeat) { return jsonError('repeat subscribe!'); } $insert['topic_id'] = $data['topic_id']; $insert['email'] = $data['email']; $id = $this->subscribe_topic_obj->insertGetId($insert); //发送邮件感谢 $tt = 'Dear Researcher,

'; $tt .= 'Welcome you to the email alert for the latest research and more. Thank you for your interest in our publications and topics.
'; $tt .= 'Unsubscribe
'; $tt .= 'This service is provided by TMR Publishing Group | New Zealand
'; $tt .= 'Telephone: +64 02108293806'; $tt .= 'Email: publisher@tmrjournals.com'; $tt .= 'www.tmrjournals.com'; $maidata['email'] = $data['email']; $maidata['title'] = 'Thank you for subscribing.'; $maidata['content'] = $tt; $maidata['tmail'] = 'publicrelations@tmrjournals.com'; $maidata['tpassword'] = 'pRWU999999'; Queue::push('app\api\job\mail@fire', $maidata, "mail"); return jsonSuccess([]); } public function UnsubscribeTopic($snum){ $this->subscribe_topic_obj->where('subscribe_topic_id',$snum)->update(['state'=>1]); echo 'Unsubscribe successfully!'; } public function UnsubscribeJournal($snum){ $this->subscribe_journal_obj->where('subscribe_journal_id',$snum)->update(['state'=>1]); echo 'Unsubscribe successfully!'; } public function testEmail() { // phpinfo();die; $tt = 'mytestemail.'; $maidata['email'] = '751475802@qq.com'; $maidata['title'] = '测试邮件1'; $maidata['content'] = $tt; $maidata['tmail'] = 'tmr@tmrjournals.com'; $maidata['tpassword'] = 'Wu999999tm'; Queue::push('app\api\job\mail@fire', $maidata, "mail"); } }