diff --git a/application/api/controller/Crontask.php b/application/api/controller/Crontask.php index 8062337..484047e 100644 --- a/application/api/controller/Crontask.php +++ b/application/api/controller/Crontask.php @@ -296,6 +296,62 @@ class Crontask extends Controller $this->showMessage('批量更新超过七日未审稿的状态成功',2); + } + /** + * @title 审稿人拒绝审稿统计 + * + */ + public function refuseReviewNum(){ + //获取该文章审核人的信息 + $aWhere = [ + 'state'=> 4 + ]; + + //统计每个审稿人未审稿的数量 + $aReviewerNum = Db::name('article_reviewer')->field('reviewer_id,count(art_rev_id) as num')->where($aWhere)->group('reviewer_id')->order('reviewer_id asc')->select(); + if(empty($aReviewerNum)){ + $this->showMessage('未查询到用户拒绝审稿数量',2); + exit; + } + //更新超过七日未审核的数据 + Db::startTrans(); + //更新审稿人未审稿的数量 + $aChunkReviewerNum = array_chunk($aReviewerNum, 1000); + foreach ($aChunkReviewerNum as $key => $value) { + $aId = array_column($value, 'reviewer_id'); + if(empty($aId)){ + continue; + } + $aCase = $aUpdateId = []; + $sRdNum = ''; + foreach ($value as $item) { + if($item['reviewer_id'] <=0){ + continue; + } + //审核数量有,变化更新数量 + $sRdNum .= "WHEN {$item['reviewer_id']} THEN "; + $sRdNum .= "{$item['num']} "; + $aUpdateId[] = $item['reviewer_id']; + } + //SQL拼接最后结尾 + $aCase['rd_num'] ='CASE user_id '.$sRdNum.'END'; + //执行更新 + $result = Db::name('user') + ->where(['user_id' => ['in',$aUpdateId]]) + ->limit(count($aUpdateId)) + ->update([ + 'rd_num' => Db::raw($aCase['rd_num']), + ]); + if ($result === false) { + $this->showMessage('更新用户拒绝审稿数量失败['.$key.']执行SQL:'.Db::getLastSql()."\n",2); + }else{ + $this->showMessage('更新用户拒绝审稿数量成功['.$key.']执行SQL条数:'.$result."\n",1); + } + } + Db::commit(); + + $this->showMessage('批量更新超过七日未审稿的状态成功',2); + } /** * diff --git a/application/api/controller/Recommend.php b/application/api/controller/Recommend.php index b2c97bc..a664951 100644 --- a/application/api/controller/Recommend.php +++ b/application/api/controller/Recommend.php @@ -98,8 +98,8 @@ class Recommend extends Base if(empty($iCount)){ exit(json_encode(array('status' => 1,'msg' => '','data' => ['total' => 0,'lists' => []]))); } - $sOrder = 'review_num asc,right_rate desc'; - $aUser = Db::table('t_user')->field('user_id,account,email,realname,rs_num,right_times,error_times,right_rate,error_rate,review_num')->where($aWhere)->order($sOrder)->limit($limit_start, $iSize)->select(); + $sOrder = 'rd_num asc,rs_num desc,right_rate desc,review_num asc'; + $aUser = Db::table('t_user')->field('user_id,account,email,realname,rs_num,rd_num,right_times,error_times,right_rate,error_rate,review_num')->where($aWhere)->order($sOrder)->limit($limit_start, $iSize)->select(); //查询审稿人详细信息 $aUserId = array_column($aUser, 'user_id'); $aInfo = Db::name('user_reviewer_info')->field('reviewer_id,technical,country,introduction,company,field')->whereIn('reviewer_id',$aUserId)->select(); @@ -107,8 +107,8 @@ class Recommend extends Base foreach ($aUser as $key => $value) { $value += empty($aInfo[$value['user_id']]) ? [] : $aInfo[$value['user_id']]; - $value['right_rate'] = $value['right_rate']*100; - $value['error_rate'] = $value['error_rate']*100; + $value['right_rate'] = intval($value['right_rate']*100); + $value['error_rate'] = intval($value['error_rate']*100); $aUser[$key] = $value; } exit(json_encode(array('status' => 1,'msg' => '','data' => ['total' => $iCount,'lists' => $aUser])));