|
@@ -153,39 +153,60 @@ class Trainactive extends Backend
|
|
|
|
|
|
$this->assign('row',$info);
|
|
|
|
|
|
- //签到记录
|
|
|
- $user_train = Db::name('user_train')->field('user_train.*,user.nickname')
|
|
|
- ->join('user','user_train.user_id = user.id','LEFT')
|
|
|
- ->where('user_train.train_id',$id)->order('id asc')->select();
|
|
|
+ //全部应到用户,左外链接,没签到的则为NULL
|
|
|
+ $user_yingdao = Db::name('user')->field('user_train.*,user.nickname')
|
|
|
+ ->join('user_train','user_train.user_id = user.id and user_train.train_id = '.$info['id'],'LEFT')
|
|
|
+ ->where('user.id','IN',$info['user_ids'])
|
|
|
+ ->orderRaw('field(user.id,'.$info['user_ids'].')')
|
|
|
+ ->select();
|
|
|
+// dump($user_yingdao);
|
|
|
$status_arr = [
|
|
|
1 => '正常',
|
|
|
2 => '迟到',
|
|
|
];
|
|
|
+ $status_color = [
|
|
|
+ 1 => 'green',
|
|
|
+ 2 => 'yellow',
|
|
|
+ ];
|
|
|
+ foreach($user_yingdao as $key => $val){
|
|
|
+ $user_yingdao[$key]['sign_time'] = empty($val['sign_time']) ? '' : date('Y--m-d H:i:s',$val['sign_time']);
|
|
|
+ $user_yingdao[$key]['sign_image'] = localpath_to_netpath($val['sign_image']);
|
|
|
+ $user_yingdao[$key]['status_text'] = isset($status_arr[$val['status']]) ? $status_arr[$val['status']] : '未到';
|
|
|
+ $user_yingdao[$key]['status_color'] = isset($status_color[$val['status']]) ? $status_color[$val['status']] : 'red';
|
|
|
+ }
|
|
|
+
|
|
|
+ //其他用户 签到记录
|
|
|
+ $user_train = Db::name('user_train')->field('user_train.*,user.nickname')
|
|
|
+ ->join('user','user_train.user_id = user.id','LEFT')
|
|
|
+ ->where('user_train.train_id',$id)
|
|
|
+ ->where('user_train.user_id','NOTIN',$info['user_ids'])
|
|
|
+ ->order('user_train.id desc')->select();
|
|
|
+// dump($user_train);
|
|
|
foreach($user_train as $key => $val){
|
|
|
+ $user_train[$key]['sign_time'] = empty($val['sign_time']) ? '' : date('Y--m-d H:i:s',$val['sign_time']);
|
|
|
$user_train[$key]['sign_image'] = localpath_to_netpath($val['sign_image']);
|
|
|
- $user_train[$key]['status_text'] = isset($status_arr[$val['status']]) ? $status_arr[$val['status']] : '';
|
|
|
+// $user_train[$key]['status_text'] = isset($status_arr[$val['status']]) ? $status_arr[$val['status']] : '';
|
|
|
+// $user_train[$key]['status_color'] = isset($status_color[$val['status']]) ? $status_color[$val['status']] : 'red';
|
|
|
+ $user_train[$key]['status_text'] = '';
|
|
|
+ $user_train[$key]['status_color'] = '';
|
|
|
}
|
|
|
- $this->assign('user_train',$user_train);
|
|
|
- $this->assign('user_train_chunk',array_chunk($user_train,8));
|
|
|
|
|
|
- //全部应到用户
|
|
|
- /*$user_nosign = Db::name('user')
|
|
|
- ->where('id','IN',$info['user_ids'])
|
|
|
- ->where('id','NOTIN',array_column($user_train,'user_id'))
|
|
|
- ->field('id,nickname')->select();
|
|
|
- foreach($user_nosign as $key => $val){
|
|
|
+ //合并
|
|
|
+ $all_user_train = array_merge($user_yingdao,$user_train);
|
|
|
+ $this->assign('user_train',$all_user_train);
|
|
|
+ $this->assign('user_train_chunk',array_chunk($all_user_train,8));
|
|
|
|
|
|
- }*/
|
|
|
|
|
|
- //勾选的,应到人数
|
|
|
+ //应到,但实到的
|
|
|
$shidao = Db::name('user_train')->where('train_id',$id)->where('user_id','IN',$info['user_ids'])->count('id');
|
|
|
|
|
|
-
|
|
|
- //杂项
|
|
|
+ //应到的
|
|
|
+ $yingdao = count(explode(',',$info['user_ids']));
|
|
|
$result = [
|
|
|
- 'yingdao' => count(explode(',',$info['user_ids'])),
|
|
|
+ 'yingdao' => $yingdao,
|
|
|
'shidao' => $shidao,
|
|
|
- 'qita' => count($user_train) - $shidao,
|
|
|
+ 'weidao' => $yingdao - $shidao,
|
|
|
+ 'qita' => Db::name('user_train')->where('train_id',$id)->where('user_id','NOTIN',$info['user_ids'])->count('id'),
|
|
|
];
|
|
|
$this->assign('result',$result);
|
|
|
//
|