Merge remote-tracking branch 'origin/master'

This commit is contained in:
wangjinlei
2025-08-29 17:02:13 +08:00
13 changed files with 1444 additions and 51 deletions

View File

@@ -418,7 +418,7 @@ class Article extends Base
foreach ($state_num as $item) {
$num_arr[$item['state']] = $item['num'];
}
for ($i = 0; $i < 7; $i++) {
for ($i = 0; $i <= 8; $i++) {
$num_frag[$i] = isset($num_arr[$i]) ? $num_arr[$i] : 0;
}
@@ -552,7 +552,23 @@ 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]);
//查询终审意见 chengxiaoling 20250828 start
$aFinal = [];
$iArticleId = empty($data['articleId']) ? 0 : $data['articleId'];
if(!empty($iArticleId)){
$aWhere = ['article_id' => $iArticleId,'state' => ['between',[1,3]]];
$aFinal = Db::name('article_reviewer_final')->field('id,reviewer_id,state,suggest_for_editor,suggest_for_author,review_time')->where($aWhere)->select();
if(!empty($aFinal)){
//数据处理
foreach ($aFinal as $key => $value) {
$aFinal[$key]['review_time'] = empty($value['review_time']) ? '' : date('Y-m-d H:i:s',$value['review_time']);
$aFinal[$key]['realname'] = empty($aUser[$value['reviewer_id']]) ? '' : $aUser[$value['reviewer_id']];
}
}
}
//查询终审意见 chengxiaoling 20250828 end
return json(['article' => $article_res, 'msg' => $article_msg, 'authors' => $author_res, 'suggest' => $suggest, 'transfer' => $transfer_res, 'transinfo' => $transfer_info, "major" => $major,'suggest_final' => $aFinal]);
}
@@ -1221,6 +1237,62 @@ class Article extends Base
return jsonError("Status cannot be changed");
}
//终审判断[3个审稿人审稿意见为同意/1个审稿人审稿意见为不同意] chengxiaoling 20250825 start
if(isset($data['state']) && $data['state'] == 8){
if($article_info['state'] != 1){
return jsonError("The article status is not with editor");
}
$iId = empty($data['articleId']) ? 0 : $data['articleId'];//文章ID
if(empty($iId)){
return jsonError("Please select an article");
}
//判断是否有审稿记录
$aReviewerParam = ['article_id' => $iId,'state' => ['between',[1,3]]];
$aReviewLists = Db::name('article_reviewer')->where($aReviewerParam)->column('state');
if(empty($aReviewLists)){
return jsonError("Reviewer did not conduct a review");
}
//判断审稿记录是否有拒稿
if(!in_array(2, $aReviewLists)){//拒稿
if(count($aReviewLists) < 3){
return jsonError("The number of reviewers is less than 3");
}
}
//更新文章状态
$aWhere = ['article_id' => $iId,'state' => 1];
$sUpateResult = $this->article_obj->where($aWhere)->limit(1)->update(['state' => 8]);
if($sUpateResult === false){
return jsonError("Status update failed");
}
//添加文章状态信息(如果状态未更新可做通话用,并结束操作)
$insert_data['article_id'] = $iId;
$insert_data['content'] = 'The article enters the final review stage';
$insert_data['state_from'] = $article_info['state'];
$insert_data['state_to'] = 8;
$insert_data['ctime'] = time();
if(!$this->article_msg_obj->insert($insert_data)){
return jsonError("article_msg insertion failed");
}
//增加用户操作log
$iEditorId = empty($editor_info['user_id']) ? 0 : $editor_info['user_id'];
$sEditorAccount = empty($editor_info['account']) ? '' : $editor_info['account'];
$sRealName = empty($editor_info['realname']) ? '' : $editor_info['realname'];
$sTitle = empty($article_info['title']) ? '' : $article_info['title'];
$iArticleUserId = empty($article_info['user_id']) ? 0 : $article_info['user_id'];
$log_data['user_id'] = $iEditorId;
$log_data['type'] = 1;
$log_data['content'] = $sEditorAccount . "(" . $sRealName . "),更改了一篇文章:(" . $sTitle . ")的状态,更改时间是:" . date('Y-m-d H:i:s', time());
$log_data['ctime'] = time();
$this->user_log_obj->insert($log_data);
//增加usermsg
add_usermsg($iArticleUserId, 'Your manuscript has new process: ' . $sTitle, '/articleDetail?id=' . $iId);
return json(['code' => 0]);
}
//终审判断[3个审稿人审稿意见为同意/1个审稿人审稿意见为不同意] chengxiaoling 20250825 end
//判断文章的h指数是否添加
$authors = $this->article_author_obj->where('article_id', $data['articleId'])->where('is_report', 1)->select();
// $h_check = false;