排序调整

This commit is contained in:
chengxl
2025-04-18 16:38:33 +08:00
parent a884dca823
commit 0517f9048e
2 changed files with 60 additions and 4 deletions

View File

@@ -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);
}
/**
*

View File

@@ -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])));