This commit is contained in:
wangjinlei
2023-07-11 17:52:04 +08:00
parent cf65d492f4
commit 87464357c2
2 changed files with 55 additions and 15 deletions

View File

@@ -91,29 +91,67 @@ class Web extends Base
$r = explode("/",$data['doi']);
$p_info = $this->production_article_obj->where('doi',$r[1])->where("state",2)->find();
if(!$p_info){
return jsonError("");
return jsonError("production error");
}
$article_info = $this->article_obj->where('article_id',$p_info['article_id'])->find();
//只显示2023年5。1之后的文章流程
if($article_info['rtime']<1682870400){
return jsonError("time error");
}
$msgs = $this->article_msg_obj->where('article_id',$article_info['article_id'])->select();
$reviewers = $this->article_reviewer_obj
->field("t_article_reviewer.*,t_article_reviewer_question.ctime qtime,t_article_reviewer_question.rated,t_article_reviewer_question.is_anonymous")
->join("t_article_reviewer_question","t_article_reviewer_question.art_rev_id = t_article_reviewer.art_rev_id","left")
->where('t_article_reviewer.article_id',$p_info['article_id'])
->where('t_article_reviewer.state','in',[1,2,3])
->select();
foreach ($reviewers as $k => $v){
if($v['is_anonymous']==0){
$u_info = $this->user_obj->where('user_id',$v['reviewer_id'])->find();
$reviewers[$k]['reviewer_name'] = $u_info['realname'];
}else{
$reviewers[$k]['reviewer_name'] = "anonymous";
}
}
$begin['type'] = 0;
$begin['time'] = $article_info['ctime'];
$frag[] = $begin;
$reviewer_has = false;
foreach ($msgs as $v){
if($v['state_to']==2&&!$reviewer_has){
$reviewer_has = true;
$frag[] = [
"type"=>$v['state_to'],
"reviewers"=>$reviewers,
"time"=>$v['ctime']
];
continue;
}
$frag[] = [
"type"=>$v['state_to'],
"time"=>$v['ctime']
];
// switch ($v['state_to']){
// case 1:
// $frag[] = [
// "type"=>1,
// "time"=>$v['ctime']
// ];
// break;
// case 2:
// $frag[] = [];
// break
// }
}
//如果没有审稿状态,添加
if(!$reviewer_has&&count($reviewers)>0){
$frag[] = [
"type"=>2,
"reviewers"=>$reviewers,
"time"=>$reviewers[0]['ctime']
];
}
//冒泡排序法
for ($i = 0; $i < count($frag) -1; $i++) {//循环对比的轮数
for ($j = 0; $j < count($frag) - $i - 1; $j++) {//当前轮相邻元素循环对比
if ($frag[$j]["time"] > $frag[$j + 1]["time"]) {//如果前边的大于后边的
$tmp = $frag[$j];//交换数据
$frag[$j] = $frag[$j + 1];
$frag[$j + 1] = $tmp;
}
}
}
$re['msgs'] = $frag;