From f2fcabbaa58928954ff6023ce39f08c1dd658b39 Mon Sep 17 00:00:00 2001
From: wangjinlei <751475802@qq.com>
Date: Fri, 9 Jun 2023 08:59:33 +0800
Subject: [PATCH] 1
---
application/api/controller/Article.php | 20 +++--
application/api/controller/Journal.php | 7 ++
application/api/controller/Main.php | 8 ++
application/api/controller/Special.php | 2 +
application/api/controller/Tmrde.php | 2 +
application/common.php | 20 +++++
application/master/controller/Article.php | 98 ++++++++++++++++++++-
application/master/controller/Submision.php | 27 ------
8 files changed, 148 insertions(+), 36 deletions(-)
diff --git a/application/api/controller/Article.php b/application/api/controller/Article.php
index ac61cf1..ecf79ba 100644
--- a/application/api/controller/Article.php
+++ b/application/api/controller/Article.php
@@ -89,13 +89,13 @@ class Article extends Controller {
$cite = $article_info['abbr'] . '. ' . $article_info['title'] . '. ' . choiseJabbr($article_info['article_id'], $journal_info['jabbr']) . '. ' . $stage_info['stage_year'] . ';' . $stage_info['stage_vol'] . $no . $article_info['npp'] . '. doi:' . $article_info['doi'];
}
- //获取html
- if($article_info['file_html']==''){
- $caches = $this->article_main_obj->where('article_id',$article_info['article_id'])->where('state',0)->select();
- if($caches){
- $article_info['file_html'] = $caches;
- }
- }
+// //获取html
+// if($article_info['file_html']==''){
+// $caches = $this->article_main_obj->where('article_id',$article_info['article_id'])->where('state',0)->select();
+// if($caches){
+// $article_info['file_html'] = $caches;
+// }
+// }
if (stripos($article_info['npp'], '-')) {
$cc = explode('-', $article_info['npp']);
@@ -153,6 +153,7 @@ class Article extends Controller {
$re['stageInfo'] = $stage_info;
$re['author'] = $author;
$re['cite'] = $cite;
+ $re['mains'] = getArticleMains($data['article_id']);
return jsonSuccess($re);
}
@@ -160,6 +161,7 @@ class Article extends Controller {
echo 'ok';
}
+
/**
* @title 获取文章话题
* @description 获取文章话题
@@ -314,6 +316,8 @@ class Article extends Controller {
$list[$k]['topic'] = $cache_topic;
$list[$k]['cite'] = $cite;
$list[$k]['authortitle'] = $this->getAuthor($v);
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
//标题斜体
foreach ($list as $k => $v) {
@@ -395,6 +399,8 @@ class Article extends Controller {
$list[$k]['cite'] = $cite;
$list[$k]['journal_title'] = choiseti1($v['article_id'],$journal_info['title']);
$list[$k]['authortitle'] = $this->getAuthor($v);
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
//标题斜体
foreach ($list as $k => $v) {
diff --git a/application/api/controller/Journal.php b/application/api/controller/Journal.php
index 15737ec..1795513 100644
--- a/application/api/controller/Journal.php
+++ b/application/api/controller/Journal.php
@@ -632,6 +632,7 @@ class Journal extends Controller {
$cache_title = str_replace($val, '' . $val . '', $cache_title);
}
$list[$k]['title'] = $cache_title;
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
//获取作者
@@ -772,6 +773,7 @@ class Journal extends Controller {
$cache_title = str_replace($val, '' . $val . '', $cache_title);
}
$list[$k]['title'] = $cache_title;
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
//获取作者
@@ -834,6 +836,8 @@ class Journal extends Controller {
$list[$k]['topic'] = $cache_topic;
$list[$k]['cite'] = $cite;
$list[$k]['authortitle'] = $this->getAuthor($v);
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
//标题斜体
foreach ($list as $k => $v) {
@@ -909,6 +913,8 @@ class Journal extends Controller {
$list[$k]['topic'] = $cache_topic;
$list[$k]['cite'] = $cite;
$list[$k]['authortitle'] = $this->getAuthor($v);
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
//连续出版判断,决定是否显示出版时间
foreach ($list as $k => $v){
@@ -1567,6 +1573,7 @@ class Journal extends Controller {
}
$cache_title = str_replace(trim($data['keyword']), '' . $data['keyword'] . '', $cache_title);
$list[$k]['title'] = $cache_title;
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
$re['articles'] = $list;
$re['count'] = $count;
diff --git a/application/api/controller/Main.php b/application/api/controller/Main.php
index 6c7ec03..986a71c 100644
--- a/application/api/controller/Main.php
+++ b/application/api/controller/Main.php
@@ -192,6 +192,8 @@ class Main extends Controller {
$cache_title = str_replace($val, '' . $val . '', $cache_title);
}
$list[$k]['title'] = $cache_title;
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
//连续出版判断,决定是否显示出版时间
@@ -251,6 +253,8 @@ class Main extends Controller {
$cache_title = str_replace($val, '' . $val . '', $cache_title);
}
$list[$k]['title'] = $cache_title;
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
@@ -298,6 +302,8 @@ class Main extends Controller {
$cite = $v['abbr'] . '. ' . $v['title'] . '. ' . choiseJabbr($v['article_id'],$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);
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
//标题斜体
@@ -375,6 +381,8 @@ class Main extends Controller {
$cite = $v['abbr'] . '. ' . $v['title'] . '. ' . choiseJabbr($v['article_id'],$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);
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
//标题斜体
diff --git a/application/api/controller/Special.php b/application/api/controller/Special.php
index 81ebe59..11e01a7 100644
--- a/application/api/controller/Special.php
+++ b/application/api/controller/Special.php
@@ -350,6 +350,8 @@ class Special extends Controller {
$cite = $v['abbr'] . '. ' . $v['title'] . '. ' . choiseJabbr($v['article_id'],$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);
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
$re['articles'] = $list;
return jsonSuccess($re);
diff --git a/application/api/controller/Tmrde.php b/application/api/controller/Tmrde.php
index 4bc05cb..d35817d 100644
--- a/application/api/controller/Tmrde.php
+++ b/application/api/controller/Tmrde.php
@@ -85,6 +85,8 @@ class Tmrde extends Controller{
$cache_title = str_replace($val, '' . $val . '', $cache_title);
}
$list[$k]['title'] = $cache_title;
+
+ $list[$k]['mains'] = getArticleMains($v['article_id']);
}
diff --git a/application/common.php b/application/common.php
index 17008ea..4e51922 100644
--- a/application/common.php
+++ b/application/common.php
@@ -74,6 +74,26 @@ function choiseJabbr($article_id,$jabbr){
return $jabbr;
}
+function getArticleMains($article_id){
+ $article_main_obj = Db::name("article_main");
+ $list = $article_main_obj->where('article_id',$article_id)->where('state',0)->where('is_add',0)->select();
+ $frag = [];
+ foreach ($list as $v){
+ $frag[] = $v;
+ $pre = $v['article_main_id'];
+ while ($pre!=0){
+ $ca = $article_main_obj->where("pre_id",$pre)->where('state',0)->find();
+ if($ca){
+ $frag[] = $ca;
+ $pre = $ca['article_main_id'];
+ }else{
+ $pre = 0;
+ }
+ }
+ }
+ return $frag;
+}
+
function choiseJtitle($list){
foreach ($list as $k => $v){
$list[$k]['journal_title'] = choiseti($v);
diff --git a/application/master/controller/Article.php b/application/master/controller/Article.php
index 06278a1..b2fd3d2 100644
--- a/application/master/controller/Article.php
+++ b/application/master/controller/Article.php
@@ -545,7 +545,7 @@ class Article extends Controller
Db::commit();
$this->pushDoiToCrossref($data['doi'], $aid);
$this->pushEmailToAuthor($aid);
- $this->addArticleMain($aid,$data['p_article_id']);
+// $this->addArticleMain($aid,$data['p_article_id']);
return jsonSuccess(['article_id' => $aid]);
} else {
Db::rollback();
@@ -1100,7 +1100,7 @@ class Article extends Controller
$article_list[$k]['med_title'] = '';
$article_list[$k]['med_ename'] = '';
}
- $article_list[$k]['mains'] = $this->article_main_obj->where('article_id',$v['article_id'])->where('state',0)->select();
+ $article_list[$k]['mains'] = getArticleMains($v['article_id']);
}
$count = $this->article_obj
->join(array(['j_journal_stage', 'j_article.journal_stage_id = j_journal_stage.journal_stage_id', 'LEFT'], ['j_journal', 'j_journal.journal_id=j_article.journal_id', 'LEFT']))
@@ -1108,6 +1108,100 @@ class Article extends Controller
return json(['code' => 0, 'msg' => 'success', 'data' => ['count' => $count, 'articleList' => $article_list]]);
}
+
+ public function getArticleMainsForSubmission(){
+ $data = $this->request->post();
+ $rule = new Validate([
+ "article_id"=>"require"
+ ]);
+ if(!$rule->check($data)){
+ return jsonError($rule->getError());
+ }
+ $article_info = $this->article_obj->where('article_id',$data['article_id'])->find();
+ $mains = getArticleMains($data['article_id']);
+ $re['article'] = $article_info;
+ $re['mains'] = $mains;
+ return jsonSuccess($re);
+ }
+
+ public function delArticleMainForSubmission(){
+ $data = $this->request->post();
+ $rule = new Validate([
+ "article_main_id"=>"require"
+ ]);
+ if(!$rule->check($data)){
+ return jsonError($rule->getError());
+ }
+ $main_info = $this->article_main_obj->where('article_main_id',$data['article_main_id'])->find();
+ $next = $this->article_main_obj->where('pre_id',$data['article_main_id'])->where('state',0)->find();
+ if($next){
+ //找到目标删除点的上位节点
+ $pre = $this->article_main_obj
+ ->where('article_main_id','<',$main_info['article_main_id']-1)
+ ->order("article_main_id desc")
+ ->limit(1)->select();
+ $pre_id = $pre[0]['article_main_id'];
+ $find_add = true;
+ while ($find_add){
+ $fi = $this->article_main_obj->where('pre_id',$pre_id)->where('state',0)->find();
+ if($fi){
+ $pre_id = $fi['article_main_id'];
+ }else{
+ $find_add = false;
+ }
+ }
+ $this->article_main_obj->where('article_main_id',$next['article_main_id'])->update(['pre_id'=>$pre_id]);
+ }
+ $this->article_main_obj->where('article_main_id',$data['article_main_id'])->update(['state'=>1]);
+ return jsonSuccess([]);
+ }
+
+
+ public function editArticleMainForSubmission(){
+ $data = $this->request->post();
+ $rule = new Validate([
+ "article_main_id"=>"require",
+ "type"=>"require",
+ "content"=>"require",
+ ]);
+ if(!$rule->check($data)){
+ return jsonError($rule->getError());
+ }
+ if($data['type']=="img"){
+ $update['content'] = $data['content'];
+ $update['width'] = $data['width'];
+ $update['note'] = $data['note'];
+ }else{
+ $update['content'] = trim($data['content']);
+ }
+ $this->article_main_obj->where('article_main_id',$data['article_main_id'])->update($update);
+ return jsonSuccess([]);
+ }
+
+
+ public function addArticleMainAddForSubmission(){
+ $data = $this->request->post();
+ $rule = new Validate([
+ "article_id"=>'require',
+ "pre_id"=>"require",
+ "type"=>"require",
+ "content"=>"require"
+ ]);
+ if(!$rule->check($data)){
+ return jsonError($rule->getError());
+ }
+ $insert['article_id'] = $data['article_id'];
+ $insert['pre_id'] = $data['pre_id'];
+ $insert['is_add'] = 1;
+ $insert['content'] = trim($data['content']);
+ if($data['type']=="img"){
+ $insert['width'] = $data['width'];
+ $insert['note'] = trim($data['note']);
+ }
+ $this->article_main_obj->insert($insert);
+ return jsonSuccess([]);
+ }
+
/**
* @title 获取文章对应期刊话题
* @description 获取文章对应期刊话题
diff --git a/application/master/controller/Submision.php b/application/master/controller/Submision.php
index 948de04..41207e0 100644
--- a/application/master/controller/Submision.php
+++ b/application/master/controller/Submision.php
@@ -167,32 +167,5 @@ class Submision extends Controller {
return $frag;
}
- public function getArticleMains(){
- $data = $this->request->post();
- $rule = new Validate([
- "article_id"=>"require"
- ]);
- if(!$rule->check($data)){
- return jsonError($rule->getError());
- }
- $mains = $this->article_main_obj->where('article_id',$data['article_id'])->where('state',0)->select();
- $re['mains'] = $mains;
- return jsonSuccess($re);
- }
-
- public function delArticleMain(){
- $data = $this->request->post();
- $rule = new Validate([
- "article_main_id"=>"require"
- ]);
- if(!$rule->check($data)){
- return jsonError($rule->getError());
- }
- $this->article_main_obj->where('article_main_id',$data['article_main_id'])->update(['state'=>1]);
- return jsonSuccess([]);
- }
-
-
-
}