瀏覽代碼

打印页面

lizhen_gitee 8 月之前
父節點
當前提交
d5dc8a0121
共有 2 個文件被更改,包括 45 次插入24 次删除
  1. 40 19
      application/admin/controller/Trainactive.php
  2. 5 5
      application/admin/view/trainactive/showinfo.html

+ 40 - 19
application/admin/controller/Trainactive.php

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

+ 5 - 5
application/admin/view/trainactive/showinfo.html

@@ -138,13 +138,13 @@
 <table id="left_table" class="table table-striped table-bordered table-hover table-nowrap">
     <tr>
         <td colspan="5">学习情况</td>
-        <td colspan="3">应到{$result.yingdao}人,实到{$result.shidao}人,其他{$result.qita}人</td>
+        <td colspan="3">应到{$result.yingdao}人,实到{$result.shidao}人,未到{$result.weidao}人,其他{$result.qita}人</td>
     </tr>
     {volist name="$user_train_chunk" id="chunk"}
     <tr>
         <td colspan="8">
             {volist name="$chunk" id="vo"}
-            <img src="{$vo.sign_image}" width="90px" height="50px">
+            <?php if(!empty($vo['sign_image'])){ ?><img src="{$vo.sign_image}" width="90px" height="50px"><?php } ?>
             {/volist}
         </td>
     </tr>
@@ -154,7 +154,7 @@
 <table id="right_table" style="display: none" class="table table-striped table-bordered table-hover table-nowrap" width="100%">
     <tr>
         <td colspan="5">学习情况</td>
-        <td colspan="3">应到{$result.yingdao}人,实到{$result.shidao}人,其他{$result.qita}人</td>
+        <td colspan="3">应到{$result.yingdao}人,实到{$result.shidao}人,未到{$result.weidao}人,其他{$result.qita}人</td>
     </tr>
     <tr>
         <td colspan="5">参与人</td>
@@ -165,8 +165,8 @@
     <tr>
         <td colspan="2">{$vo.nickname}</td>
         <td colspan="3"><img src="{$vo.sign_image}" width="90px" height="50px"></td>
-        <td colspan="2">{$vo.sign_time|date="Y-m-d H:i:s",###}</td>
-        <td>{$vo.status_text}</td>
+        <td colspan="2">{$vo.sign_time}</td>
+        <td><font color="{$vo.status_color}">{$vo.status_text}</font></td>
     </tr>
     {/volist}
 </table>