From bd5f4fa187f6e41e54d2a1f6cca8f39e6abf7358 Mon Sep 17 00:00:00 2001 From: wangjinlei <751475802@qq.com> Date: Thu, 13 Feb 2025 09:14:09 +0800 Subject: [PATCH] 1 --- application/api/controller/Article.php | 52 +++++++++++++++++-------- application/api/controller/Major.php | 53 +++++++++++++++++++++++++- application/common.php | 24 ++++++++++++ 3 files changed, 113 insertions(+), 16 deletions(-) diff --git a/application/api/controller/Article.php b/application/api/controller/Article.php index c056f00..c552641 100644 --- a/application/api/controller/Article.php +++ b/application/api/controller/Article.php @@ -269,6 +269,9 @@ class Article extends Base return json(['code' => 0]); } + + + /** * @title 获取文章列表(编辑) * @description 获取文章列表(编辑) @@ -511,6 +514,12 @@ class Article extends Base // $suggest[$k]['repeats'] = $ca; // } $major = $this->getMajorStr($article_res['major_id']); + $majors = $this->major_to_article_obj->where("article_id",$data['articleId'])->where("state",0)->select(); + foreach ($majors as $k => $v){ + $majors[$k]["major"] = getMajorShu($v['major_id']); + $majors[$k]['str'] = getMajorStr($v['major_id']); + } + $article_res['majors'] = $majors; //查询文章作者信息 $author_res = $this->article_author_obj->where('article_id', $data['articleId'])->where('state', 0)->select(); //查询转投信息 @@ -529,7 +538,7 @@ class Article extends Base $up_data['editor_act'] = 0; } $this->article_obj->where('article_id', $data['articleId'])->update($up_data); - return json(['article' => $article_res, 'msg' => $article_msg, 'authors' => $author_res, 'suggest' => $suggest, 'transfer' => $transfer_res, 'transinfo' => $transfer_info, 'major' => $major]); + return json(['article' => $article_res, 'msg' => $article_msg, 'authors' => $author_res, 'suggest' => $suggest, 'transfer' => $transfer_res, 'transinfo' => $transfer_info,"major"=>$major]); } @@ -2839,19 +2848,23 @@ class Article extends Base return jsonError($rule->getError()); } $base = $this->article_obj->where('article_id', $data['article_id'])->find(); - $major_info = $this->major_obj->where('major_id', $base['major_id'])->find(); +// $major_info = $this->major_obj->where('major_id', $base['major_id'])->find(); $major = ''; - if ($major_info['major_level'] == 4) { - $major2 = $this->major_obj->where('major_id', $major_info['pid'])->find(); - $major2['child'] = $major_info; - $major = $this->major_obj->where('major_id', $major2['pid'])->find(); - $major['child'] = $major2; - } elseif ($major_info['major_level'] == 3) { - $major1 = $this->major_obj->where('major_id', $major_info['pid'])->find(); - $major1['child'] = $major_info; - $major = $major1; - } else { - $major = $major_info; +// if ($major_info['major_level'] == 4) { +// $major2 = $this->major_obj->where('major_id', $major_info['pid'])->find(); +// $major2['child'] = $major_info; +// $major = $this->major_obj->where('major_id', $major2['pid'])->find(); +// $major['child'] = $major2; +// } elseif ($major_info['major_level'] == 3) { +// $major1 = $this->major_obj->where('major_id', $major_info['pid'])->find(); +// $major1['child'] = $major_info; +// $major = $major1; +// } else { +// $major = $major_info; +// } + $majors = $this->major_to_article_obj->where("article_id",$data['article_id'])->where("state",0)->select(); + foreach ($majors as $k => $v){ + $majors[$k]["major"] = getMajorShu($v['major_id']); } $authors = $this->article_author_obj->where('article_id', $data['article_id'])->where('state', 0)->select(); $files = $this->article_file_obj->where('article_id', $data['article_id'])->where('state', 0)->select(); @@ -2859,6 +2872,7 @@ class Article extends Base $re['authors'] = $authors; $re['files'] = $files; $re['major'] = $major; + $re['majors'] = $majors; return jsonSuccess($re); } @@ -2906,7 +2920,7 @@ class Article extends Base $inset_data['accept_sn'] = getArticleSN($journal_info['abbr'], $data['type']); $inset_data['topics'] = isset($data["topics"]) ? json_encode($data['topics']) : ""; $inset_data['type'] = $data['type']; - $inset_data['major_id'] = $data['major']; +// $inset_data['major_id'] = $data['major']; //处理伦理 if(isset($data['approval'])&&$data['approval']==1){ @@ -2920,6 +2934,7 @@ class Article extends Base $inset_data['ctime'] = time(); $inset_data['state'] = -1; $article_id = $this->article_obj->insertGetId($inset_data); + } else { $checkArticle = $this->article_obj->where("article_id", "<>", $article_id)->where("title", trim($data['title']))->select(); foreach ($checkArticle as $v) { @@ -2936,7 +2951,7 @@ class Article extends Base $up['topics'] = isset($data["topics"]) ? json_encode($data['topics']) : ""; $up['fund'] = isset($data['fund']) ? trim($data['fund']) : ''; $up['type'] = $data['type']; - $up['major_id'] = $data['major']; +// $up['major_id'] = $data['major']; //处理伦理 if(isset($data['approval'])&&$data['approval']==1){ $up['approval'] = 1; @@ -2947,10 +2962,17 @@ class Article extends Base } $this->article_obj->where('article_id', $article_id)->update($up); } + changeArticleMajor($article_id,$data['major']); return jsonSuccess(['article_id' => $article_id]); } + + + public function mytest(){ + changeArticleMajor(5774,"97"); + } + /**获取期刊话题 * @return void */ diff --git a/application/api/controller/Major.php b/application/api/controller/Major.php index 9a9eb5f..b925cb5 100644 --- a/application/api/controller/Major.php +++ b/application/api/controller/Major.php @@ -17,7 +17,7 @@ use think\Validate; * @title 领域接口 * @description 领域接口 */ -class Major extends Controller { +class Major extends Base { protected $article_obj = ''; protected $user_obj = ''; @@ -393,6 +393,57 @@ class Major extends Controller { return jsonSuccess([]); } + + public function getMajorByArticleId(){ + $data = $this->request->post(); + $rule = new Validate([ + "article_id"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $majors = $this->major_to_article_obj->where("article_id",$data['article_id'])->where("state",0)->select(); + foreach ($majors as $k => $v){ + $majors[$k]["ids"] = getMajorShu($v['major_id']); + $majors[$k]['str'] = getMajorStr($v['major_id']); + } + $re['majors'] = $majors; + + return jsonSuccess($re); + } + + public function addMajorByArticleIdForEditor(){ + $data = $this->request->post(); + $rule = new Validate([ + "article_id"=>"require", + "major_id"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $check = $this->major_to_article_obj->where("article_id",$data['article_id'])->where("major_id",$data['major_id'])->where("state",0)->find(); + if($check){ + return jsonError("Repeat addition"); + } + $insert['article_id'] = $data['article_id']; + $insert['major_id'] = $data['major_id']; + $insert['ctime'] = time(); + $this->major_to_article_obj->insert($insert); + return jsonSuccess([]); + } + + public function delMajorByArticleIdForEditor(){ + $data = $this->request->post(); + $rule = new Validate([ + "mta_id"=>"require" + ]); + if(!$rule->check($data)){ + return jsonError($rule->getError()); + } + $this->major_to_article_obj->where("mta_id",$data['mta_id'])->update(['state'=>1]); + return jsonSuccess([]); + } + /** * @title 获取期刊领域树 * @description 获取期刊领域树 diff --git a/application/common.php b/application/common.php index aba59ae..07dbd72 100644 --- a/application/common.php +++ b/application/common.php @@ -869,6 +869,30 @@ function getMajorShu($major) return $p . ',' . $res['major_id']; } + +function changeArticleMajor($article_id,$majors){ + $ms = explode(",",$majors); + $major_to_article_obj = Db::name("major_to_article"); + foreach ($ms as $v){ + $check = $major_to_article_obj->where("article_id",$article_id)->where("major_id",$v)->where("state",0)->find(); + if(!$check){ + $insert['article_id'] = $article_id; + $insert['major_id'] = $v; + $insert['ctime'] = time(); + $major_to_article_obj->insert($insert); + } + } + $has = $major_to_article_obj->where("article_id",$article_id)->where("state",0)->select(); + foreach ($has as $v){ + if(!in_array($v['major_id'],$ms)){ + $major_to_article_obj->where("mta_id",$v['mta_id'])->update(['state'=>1]); + } + } + + + +} + function getReviewerCvs($reviewer_id){ $cvs = Db::name('user_cv')->where('user_id',$reviewer_id)->where('state',0)->select(); return $cvs;