diff --git a/application/api/controller/Web.php b/application/api/controller/Web.php index 5a65ee2..1b40a26 100644 --- a/application/api/controller/Web.php +++ b/application/api/controller/Web.php @@ -99,7 +99,10 @@ class Web extends Base return jsonError($rule->getError()); } $journal_info = $this->journal_obj->where('issn',$data['issn'])->find(); - $boards = $this->getBoardsForJournal($journal_info['journal_id']); + //数据排序调整 chengxiaoling 20250627 start + // $boards = $this->getBoardsForJournal($journal_info['journal_id']); + $boards = $this->getBoardListsForJournal($journal_info['journal_id']); + //数据排序调整 chengxiaoling 20250627 end //获取委员会和编辑信息 $committees = $this->committee_to_journal_obj ->field("t_committee_to_journal.*,t_user.account,t_user.email,t_user.realname,t_user.icon,t_user.google_index,t_user.google_time,t_user.wos_index,t_user.wos_time,t_user_reviewer_info.*") @@ -370,5 +373,51 @@ class Web extends Base return jsonSuccess($re); } + /**获取期刊编辑信息 + * @return void + */ + private function getBoardListsForJournal($journal_id, $aar = false) + { + $ca_board = []; + $boards = $this->board_to_journal_obj + ->field("t_board_to_journal.*,t_board_group.group_name,t_user.account,t_user.email,t_user.realname,t_user.icon,t_user.google_index,t_user.google_time,t_user.wos_index,t_user.wos_time,t_user_reviewer_info.*") + ->join("t_board_group", "t_board_group.board_group_id = t_board_to_journal.board_group_id", "left") + ->join("t_user", "t_user.user_id = t_board_to_journal.user_id", "left") + ->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id=t_board_to_journal.user_id", "left") + ->where('t_board_to_journal.journal_id', $journal_id) + ->where('t_board_to_journal.state', 0) + ->order("t_board_group.board_group_id asc,t_user.realname") + ->select(); + + foreach ($boards as $val) { + if ($aar) { + $article1 = $this->article_obj->where('user_id', $val['user_id'])->where('journal_id', $val['journal_id'])->where('state', 5)->where('ctime', ">", strtotime("-1 year"))->select(); + $article11 = $this->article_obj->where('user_id', $val['user_id'])->where('journal_id', $val['journal_id'])->where('ctime', ">", strtotime("-1 year"))->select(); + $ids = $this->article_author_obj->where('email', $val['email'])->column("article_id"); + $article2 = $this->article_obj->where('state', 5)->where('journal_id', $val['journal_id'])->where('article_id', "in", $ids)->select(); + $article22 = $this->article_obj->where('journal_id', $val['journal_id'])->where('article_id', "in", $ids)->select(); + $articles = my_array_merge($article1, $article2); + $articles_all = my_array_merge($article11, $article22); + $reviewes = $this->article_reviewer_obj->join("t_article", "t_article.article_id = t_article_reviewer.article_id", "left")->where('t_article_reviewer.reviewer_id', $val['user_id'])->where('t_article.journal_id', $journal_id)->where('t_article_reviewer.ctime', ">", strtotime("-1 year"))->where('t_article_reviewer.state', "in", [1, 2, 3])->select(); + $val['articles'] = $articles; + $val['articles_all'] = $articles_all; + $val['reviewes'] = $reviewes; + } + + if ($val['type'] == 0) {//主编 + $ca_board['main'][] = $val; + } elseif ($val['type'] == 1) {//副主编 + $ca_board['remain'][] = $val; + } else {//编委会成员 + if ($val['board_group_id'] == 0) { + $ca_board['member']['nogroup'][] = $val; + } else { + $ca_board['member'][$val['group_name']][] = $val; + } + } + } + return $ca_board; + } + } ?> \ No newline at end of file