From 3b00b48aef82ade1283a15fa8a7834cdbbe9ca9e Mon Sep 17 00:00:00 2001 From: chengxl Date: Mon, 28 Jul 2025 14:30:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Article.php | 55 ++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/application/api/controller/Article.php b/application/api/controller/Article.php index 6061ea5..9e0b370 100644 --- a/application/api/controller/Article.php +++ b/application/api/controller/Article.php @@ -2005,6 +2005,21 @@ class Article extends Base return jsonError("The article can only be added in state with editor at least"); } + //获取审稿人最后一次邀请时间 chengxiaoling 20250724 start + $iUserId = empty($data['uid']) ? 0 : $data['uid']; + if(empty($iUserId)){ + return jsonError("Please select the reviewers to invite!"); + } + //判断距离上次邀请审稿是否超过10天 + $aWhere = ['reviewer_id' => $iUserId]; + $iTeenDaysLater = strtotime('-10 days');// 计算10天之前的时间戳 + $aUserInfo = Db::name('user_reviewer_info')->field('last_invite_time')->where($aWhere)->where('t_user_reviewer_info.last_invite_time', '<', $iTeenDaysLater) + ->whereOr('t_user_reviewer_info.last_invite_time', '=', 0)->find(); + if(empty($aUserInfo)){ + return jsonError("The time since the last invitation for review by the reviewer has not exceeded 10 days!"); + } + //获取审稿人最后一次邀请时间 chengxiaoling 20250724 end + //增加信息到文章审稿表 $insert_data['reviewer_id'] = $data['uid']; $insert_data['article_id'] = $data['articleId']; @@ -2013,6 +2028,14 @@ class Article extends Base $insert_data['state'] = 5; $res = $this->article_reviewer_obj->insertGetId($insert_data); + //更新审稿人最后一次审稿时间 chengxiaoling 20250724 start + if(!empty($res) && !empty($insert_data['reviewer_id'])){ + $aUpdate = ['last_invite_time'=>time()]; + $aWhere = ['reviewer_id' => $iUserId]; + $updateResult = Db::name('user_reviewer_info')->where($aWhere)->limit(1)->update($aUpdate); + } + //更新审稿人最后一次审稿时间 chengxiaoling 20250724 end + //修改文章状态->审稿中 $this->article_obj->where('article_id', $data['articleId'])->update(['state' => 2]); @@ -3114,6 +3137,12 @@ class Article extends Base $inset_data['ctime'] = time(); $inset_data['state'] = -1; + + //新增字段是否使用AI及使用说明 chengxiaoling 20250725 start + $inset_data['is_use_ai'] = empty($data['is_use_ai']) ? 2 : $data['is_use_ai']; //是否使用AI1是2否 + $inset_data['use_ai_explain'] = isset($data['use_ai_explain']) ? $data['use_ai_explain'] : ''; + //新增字段是否使用AI及使用说明 chengxiaoling 20250725 end + $article_id = $this->article_obj->insertGetId($inset_data); } else { @@ -3141,9 +3170,20 @@ class Article extends Base $up["approval"] = 0; $up['approval_content'] = isset($data["approval_content"]) ? $data["approval_content"] : '';//trim($data['approval_content']); } + + //新增字段是否使用AI及使用说明 chengxiaoling 20250725 start + $up['is_use_ai'] = empty($data['is_use_ai']) ? 2 : $data['is_use_ai']; //是否使用AI1是2否 + $up['use_ai_explain'] = isset($data['use_ai_explain']) ? $data['use_ai_explain'] : '';//使用AI说明 + //新增字段是否使用AI及使用说明 chengxiaoling 20250725 end + $this->article_obj->where('article_id', $article_id)->update($up); } - changeArticleMajor($article_id, $data['major']); + //注释文章筛选领域添加修改为AI推荐领域,在第四步可以查看修改 chengxiaoling 20250722 + // changeArticleMajor($article_id,$data['major']); + if(!empty($article_id)){//AI推荐领域队列执行 + $sQueueId = \think\Queue::push('app\api\job\RecommendArticleField@fire',['article_id' => $article_id], 'RecommendArticleField'); + } + //注释文章筛选领域添加修改为AI推荐领域,在第四步可以查看修改 chengxiaoling 20250722 return jsonSuccess(['article_id' => $article_id]); } @@ -3451,6 +3491,15 @@ class Article extends Base } $this->article_obj->where('article_id', $data['article_id'])->update($update_l); $this->ai_scor($data['article_id']); + + //判断是否有文章领域 进行更新操作 chengxiaoling 20250722 start + $sMajorData = empty($data['article_field']) ? '' : $data['article_field'];//文章领域 + $iArticleId = empty($data['article_id']) ? 0 : $data['article_id'];//文章ID + if(!empty($sMajorData) && !empty($iArticleId)){ + $this->updateArticleField(['article_id' => $iArticleId,'article_field' => $sMajorData]); + } + //判断是否有文章领域 进行更新操作 chengxiaoling 20250722 end + return json(['code' => 0]); } @@ -4614,7 +4663,7 @@ class Article extends Base public function getArticleField($aParam = []) { - $aParam = empty($aParam) ? $this->request->post() : $this->request->post(); + $aParam = empty($aParam) ? $this->request->post() : $aParam; if (empty($aParam['article_id'])) { return json_encode(['status' => 2, 'msg' => 'Please select a Article']); @@ -4643,7 +4692,7 @@ class Article extends Base public function updateArticleField($aParam = []) { - $aParam = empty($aParam) ? $this->request->post() : $this->request->post(); + $aParam = empty($aParam) ? $this->request->post() : $aParam; $iArticleId = empty($aParam['article_id']) ? 0 : $aParam['article_id']; if (empty($iArticleId)) { return json_encode(['status' => 2, 'msg' => 'Please select a article']);