Browse Source

20250326 优化调整

贾小兵 1 month ago
parent
commit
0b69378761

+ 15 - 12
application/admin/controller/Simulator.php

@@ -23,18 +23,21 @@ class Simulator extends Backend
     {
     {
 
 
         $simNum = [];
         $simNum = [];
-        if(Env::get('app.is_fault')){
-            $url = config('site.url_type').'/sim/sim/listAllEnable';
-            $ret = json_decode(send_get($url),true);
-            if($ret['code'] == 200){
-                foreach ($ret['data'] as $k => $val){
-                    $simNum[] = [
-                        'simNum'=>$val['simNum'],
-                        'simType'=>$val['simType'],
-                    ];
-                }
-            }
-        }
+//        if(Env::get('app.is_fault')){
+////            $url = config('site.url_type').'/sim/sim/listAllEnable';
+//            $url = config('site.url_type').'/sim/debug/debugScanAllSeat/';
+//            $ret = json_decode(send_get($url),true);
+//            if($ret['code'] == 200){
+//                foreach ($ret['data'] as $k => $val){
+//                    $simNum[] = [
+//                        'seatId'=>$val['seatId'],
+//                        'simId'=>$val['simId'],
+//                        'simType'=>$val['simType'],
+//                        'Text'=>$val['text'],
+//                    ];
+//                }
+//            }
+//        }
         $this->assign('simNum', $simNum);
         $this->assign('simNum', $simNum);
         $this->assignConfig('url_type', config('site.url_type'));
         $this->assignConfig('url_type', config('site.url_type'));
         return $this->view->fetch();
         return $this->view->fetch();

+ 2 - 16
application/admin/controller/student/Collection.php

@@ -117,26 +117,12 @@ class Collection extends Backend
             if(!empty($this->auth->seat_id) && !empty($info['seat_id']) && $this->auth->seat_id!=$info['seat_id']){
             if(!empty($this->auth->seat_id) && !empty($info['seat_id']) && $this->auth->seat_id!=$info['seat_id']){
                 $this->error('已在其他座号有开始的考试,不允许换座号');
                 $this->error('已在其他座号有开始的考试,不允许换座号');
             }
             }
-            $sim = Db::name('sim')->where('sim_type',$info['sim_type'])->where('seat_id',$this->auth->seat_id)->find();
-            if(empty($sim)){
+            $sim = Db::name('seat')->where('seat_num',$this->auth->seat_id)->find();
+            if(empty($sim['current_sim_id']) && Env::get('app.is_fault')){
                 $this->error('未找到模拟器,不可考试');
                 $this->error('未找到模拟器,不可考试');
             }
             }
-//            $this->exam_model->where('exam_id',$info['exam_id'])->update(['seat_id'=>$this->auth->seat_id,'sim_id'=>$sim['sim_id']]);
             $info['seat_id'] = $this->auth->seat_id;
             $info['seat_id'] = $this->auth->seat_id;
             $sim_text = '';
             $sim_text = '';
-//            if(!empty($sim)){
-//                if($sim['sim_state']==1){
-//                    $sim_text = '在线';
-//                }else if($sim['sim_state']==2){
-//                    $sim_text = '模拟器离线';
-//                }else if($sim['sim_state']==3){
-//                    $sim_text = '网关离线';
-//                }else if($sim['sim_state']==4){
-//                    $sim_text = '硬件故障异常';
-//                }else if($sim['sim_state']==5){
-//                    $sim_text = '手动禁用';
-//                }
-//            }
             if($info['sim_type']=='0001'){
             if($info['sim_type']=='0001'){
                 $sim_type_text = 'FZD04B';
                 $sim_type_text = 'FZD04B';
             }else if($info['sim_type']=='0002'){
             }else if($info['sim_type']=='0002'){

+ 3 - 17
application/admin/controller/student/Practice.php

@@ -101,26 +101,12 @@ class Practice extends Backend
             if(!empty($this->auth->seat_id) && !empty($info['seat_id']) && $this->auth->seat_id!=$info['seat_id']){
             if(!empty($this->auth->seat_id) && !empty($info['seat_id']) && $this->auth->seat_id!=$info['seat_id']){
                 $this->error('已在其他座号有开始的训练,不允许换座号');
                 $this->error('已在其他座号有开始的训练,不允许换座号');
             }
             }
-            $sim = Db::name('sim')->where('sim_type',$info['sim_type'])->where('seat_id',$this->auth->seat_id)->find();
-            if(empty($sim)){
-                $this->error('未找到模拟器,不可训练');
+            $sim = Db::name('seat')->where('seat_num',$this->auth->seat_id)->find();
+            if(empty($sim['current_sim_id']) && Env::get('app.is_fault')){
+                $this->error('未找到模拟器,不可考试');
             }
             }
-//            $this->exam_model->where('exam_id',$info['exam_id'])->update(['seat_id'=>$this->auth->seat_id,'sim_id'=>$sim['sim_id']]);
             $info['seat_id'] = $this->auth->seat_id;
             $info['seat_id'] = $this->auth->seat_id;
             $sim_text = '';
             $sim_text = '';
-//            if(!empty($sim)){
-//                if($sim['sim_state']==1){
-//                    $sim_text = '在线';
-//                }else if($sim['sim_state']==2){
-//                    $sim_text = '模拟器离线';
-//                }else if($sim['sim_state']==3){
-//                    $sim_text = '网关离线';
-//                }else if($sim['sim_state']==4){
-//                    $sim_text = '硬件故障异常';
-//                }else if($sim['sim_state']==5){
-//                    $sim_text = '手动禁用';
-//                }
-//            }
             if($info['sim_type']=='0001'){
             if($info['sim_type']=='0001'){
                 $sim_type_text = 'FZD04B';
                 $sim_type_text = 'FZD04B';
             }else if($info['sim_type']=='0002'){
             }else if($info['sim_type']=='0002'){

+ 15 - 30
application/admin/controller/teacher/Exams.php

@@ -297,17 +297,10 @@ class Exams extends Backend
             return $this->selectpage();
             return $this->selectpage();
         }
         }
         [$where, $sort, $order, $offset, $limit] = $this->buildparams();
         [$where, $sort, $order, $offset, $limit] = $this->buildparams();
-        // $list = $this->model
-        //     ->where($where)->where('exam_collection_id',$ids)
-        //     ->where($this->whereExtend)->with($this->relationtTable)
-        //     ->order($sort, $order)
-        //     ->paginate($limit);
-        // $sim_type = Db::name('real_exam_collection')->where('exam_collection_id',$ids)->value('sim_type');
+
         $list = Db::name('seat')->select();
         $list = Db::name('seat')->select();
         foreach ($list as $key => $value) {
         foreach ($list as $key => $value) {
-            $exam = $this->model->where('exam_collection_id',$ids)->order('exam_id desc')->where('seat_id',$value['seat_id'])->find();
-            
-            
+            $exam = $this->model->where('exam_collection_id',$ids)->order('exam_id desc')->where('seat_id',$value['seat_num'])->find();
             $user_username = '';
             $user_username = '';
             $user_nickname = '';
             $user_nickname = '';
             $exam_status = '未登录';
             $exam_status = '未登录';
@@ -317,27 +310,19 @@ class Exams extends Backend
             $simtype = '';
             $simtype = '';
             $sim_state = '';
             $sim_state = '';
             if(!empty($exam)){
             if(!empty($exam)){
-                $sim = Db::name('sim')->where('seat_id',$value['seat_id'])->where('sim_type',$exam['sim_type'])->find();
-                $sim_type = $exam['sim_type'];
-                if($sim_type=='0001'){
-                    $sim_type_text = 'FZD04B';
-                }else if($sim_type=='0002'){
-                    $sim_type_text = 'FZB006';
-                }else if($sim_type=='0003'){
-                    $sim_type_text = '防化兵型';
-                }
-                if(!empty($sim['sim_state'])){
-                    switch ($sim['sim_state']) {
-                        case '1':
-                            $sim_state = $sim_type_text.'在线';
-                            break;
-                        case '2':
-                            $sim_state = $sim_type_text.'离线';
-                            break;
-                        default:
-                            $sim_state = '';
-                            break;
+                if(!empty($value['current_sim_id'])){
+                    $sim = Db::name('sim')->where('sim_id',$value['current_sim_id'])->find();
+                    if(!empty($sim['sim_state'])){
+                        switch ($sim['sim_state']) {
+                            case '1':
+                                $sim_state = '在线';
+                                break;
+                            case '2':
+                                $sim_state = '离线';
+                                break;
+                        }
                     }
                     }
+                    $simtype = $sim['sim_type'];
                 }
                 }
                 $user_username = $exam['user_username']??'';
                 $user_username = $exam['user_username']??'';
                 $user_nickname = $exam['user_nickname']??'';
                 $user_nickname = $exam['user_nickname']??'';
@@ -351,7 +336,7 @@ class Exams extends Backend
                 $total_score = $exam['total_score']??'';
                 $total_score = $exam['total_score']??'';
                 $fault_names = $exam['fault_names']??'';
                 $fault_names = $exam['fault_names']??'';
                 $exam_id = $exam['exam_id']??0;
                 $exam_id = $exam['exam_id']??0;
-                $simtype = $exam['sim_type']??'';
+                $simtype = $simtype;
             }
             }
             $list[$key]['user_username'] = $user_username;
             $list[$key]['user_username'] = $user_username;
             $list[$key]['user_nickname'] = $user_nickname;
             $list[$key]['user_nickname'] = $user_nickname;

+ 14 - 25
application/admin/controller/teacher/Practice.php

@@ -446,8 +446,7 @@ class Practice extends Backend
         // $sim_type = Db::name('real_exam_collection')->where('exam_collection_id',$ids)->value('sim_type');
         // $sim_type = Db::name('real_exam_collection')->where('exam_collection_id',$ids)->value('sim_type');
         $list = Db::name('seat')->select();
         $list = Db::name('seat')->select();
         foreach ($list as $key => $value) {
         foreach ($list as $key => $value) {
-            $exam = $this->exam_model->where('exam_collection_id',$ids)->order('exam_id desc')->where('seat_id',$value['seat_id'])->find();
-            
+            $exam = $this->exam_model->where('exam_collection_id',$ids)->order('exam_id desc')->where('seat_id',$value['seat_num'])->find();
             $user_username = '';
             $user_username = '';
             $user_nickname = '';
             $user_nickname = '';
             $exam_status = '未登录';
             $exam_status = '未登录';
@@ -457,30 +456,20 @@ class Practice extends Backend
             $simtype = '';
             $simtype = '';
             $sim_state = '';
             $sim_state = '';
             if(!empty($exam)){
             if(!empty($exam)){
-
-                $sim = Db::name('sim')->where('seat_id',$value['seat_id'])->where('sim_type',$exam['sim_type'])->find();
-                $sim_type = $exam['sim_type'];
-                if($sim_type=='0001'){
-                    $sim_type_text = 'FZD04B';
-                }else if($sim_type=='0002'){
-                    $sim_type_text = 'FZB006';
-                }else if($sim_type=='0003'){
-                    $sim_type_text = '防化兵型';
-                }
-                if(!empty($sim['sim_state'])){
-                    switch ($sim['sim_state']) {
-                        case '1':
-                            $sim_state = $sim_type_text.'在线';
-                            break;
-                        case '2':
-                            $sim_state = $sim_type_text.'离线';
-                            break;
-                        default:
-                            $sim_state = '';
-                            break;
-                    } 
+                if(!empty($value['current_sim_id'])){
+                    $sim = Db::name('sim')->where('sim_id',$value['current_sim_id'])->find();
+                    if(!empty($sim['sim_state'])){
+                        switch ($sim['sim_state']) {
+                            case '1':
+                                $sim_state = '在线';
+                                break;
+                            case '2':
+                                $sim_state = '离线';
+                                break;
+                        }
+                    }
+                    $simtype = $sim['sim_type'];
                 }
                 }
-
             
             
                 $user_username = $exam['user_username']??'';
                 $user_username = $exam['user_username']??'';
                 $user_nickname = $exam['user_nickname']??'';
                 $user_nickname = $exam['user_nickname']??'';

+ 29 - 6
application/admin/library/Auth.php

@@ -83,14 +83,11 @@ class Auth extends \fast\Auth
 //                $server_ip  = '192.168.1.106';
 //                $server_ip  = '192.168.1.106';
 //            }
 //            }
             $admin->server_ip = $server_ip;
             $admin->server_ip = $server_ip;
-            $seat_id = Db::name('seat')->where('seat_bind_ip',$server_ip)->value('seat_id');
+            $seat_id = Db::name('seat')->where('seat_bind_ip',$server_ip)->value('seat_num');
             if(!empty($seat_id)){
             if(!empty($seat_id)){
                 $admin->seat_id = $seat_id;
                 $admin->seat_id = $seat_id;
-                //$sim_id = Db::name('sim')->where('seat_id',$seat_id)->value('sim_id');
-                //$admin->sim_id = $sim_id??0;
             }else{
             }else{
-                $admin->seat_id = 1;
-                //$admin->sim_id = 11;
+                $admin->seat_id = 0;
             }
             }
             Db::name('real_exam')->where(['user_username'=>$username,'exam_status'=>0])->update(['exam_status'=>1]);
             Db::name('real_exam')->where(['user_username'=>$username,'exam_status'=>0])->update(['exam_status'=>1]);
         }
         }
@@ -142,6 +139,31 @@ class Auth extends \fast\Auth
             if ($admin->loginip != $ip) {
             if ($admin->loginip != $ip) {
                 return false;
                 return false;
             }
             }
+            if(!empty($admin->depart_id)){
+                // 获取服务器自己的IP地址
+                $server_ip = $_SERVER['REMOTE_ADDR'];//gethostbyname('localhost');
+//                if($admin->username=='xueyuan001'){
+//                    $server_ip  = '192.168.1.101';
+//                }else if($admin->username=='xueyuan002'){
+//                    $server_ip  = '192.168.1.102';
+//                }else if($admin->username=='xueyuan003'){
+//                    $server_ip  = '192.168.1.103';
+//                }else if($admin->username=='xueyuan004'){
+//                    $server_ip  = '192.168.1.104';
+//                }else if($admin->username=='xueyuan005'){
+//                    $server_ip  = '192.168.1.105';
+//                }else if($admin->username=='xueyuan006'){
+//                    $server_ip  = '192.168.1.106';
+//                }
+                $admin->server_ip = $server_ip;
+                $seat_id = Db::name('seat')->where('seat_bind_ip',$server_ip)->value('seat_num');
+                if(!empty($seat_id)){
+                    $admin->seat_id = $seat_id;
+                }else{
+                    $admin->seat_id = 0;
+                }
+                Db::name('real_exam')->where(['user_username'=>$admin->username,'exam_status'=>0])->update(['exam_status'=>1]);
+            }
             Session::set("admin", $admin->toArray());
             Session::set("admin", $admin->toArray());
             Session::set("admin.safecode", $this->getEncryptSafecode($admin));
             Session::set("admin.safecode", $this->getEncryptSafecode($admin));
             //刷新自动登录的时效
             //刷新自动登录的时效
@@ -265,7 +287,8 @@ class Auth extends \fast\Auth
             return false;
             return false;
         }
         }
         //校验安全码,可用于判断关键信息发生了变更需要重新登录
         //校验安全码,可用于判断关键信息发生了变更需要重新登录
-        if (!isset($admin['safecode']) || $this->getEncryptSafecode($my) !== $admin['safecode']) {
+//        || $this->getEncryptSafecode($my) !== $admin['safecode']
+        if (!isset($admin['safecode']) ) {
             $this->logout();
             $this->logout();
             return false;
             return false;
         }
         }

+ 6 - 2
application/admin/view/simulator/index.html

@@ -20,6 +20,7 @@
         background-color: #CCE8EB;
         background-color: #CCE8EB;
         width: 100px;
         width: 100px;
     }
     }
+    .layui-layer-loading2{width: 330px !important;}
 </style>
 </style>
 
 
 <div class="row">
 <div class="row">
@@ -31,13 +32,16 @@
                     <div class="col-xs-12 col-sm-6" style="left: -10%">
                     <div class="col-xs-12 col-sm-6" style="left: -10%">
                         <select class="form-control simNum1">
                         <select class="form-control simNum1">
                             <option value="">请选择</option>
                             <option value="">请选择</option>
+                            {if false}
                             {foreach name="simNum" item="vo"}
                             {foreach name="simNum" item="vo"}
-                            <option value="{$vo.simType}">{$vo.simNum}</option>
+<!--                            <option value="{$vo.simType}">{//$vo.simNum}</option>-->
+                            <option value="{$vo.simType}" seat="{$vo.seatId}">{$vo.Text}</option>
                             {/foreach}
                             {/foreach}
+                            {/if}
                         </select>
                         </select>
                     </div>
                     </div>
 
 
-                    <button type="button" class="btn btn-info ">模拟器扫描</button>
+                    <button type="button" class="btn btn-info btn-scanning">模拟器扫描</button>
 
 
                 </div>
                 </div>
                 <div class="form-group col-sm-6">
                 <div class="form-group col-sm-6">

+ 34 - 4
public/assets/js/backend/simulator.js

@@ -1,7 +1,36 @@
 define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echarts-theme', 'template'], function ($, undefined, Backend, Datatable, Table, Echarts, undefined, Template) {
 define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echarts-theme', 'template'], function ($, undefined, Backend, Datatable, Table, Echarts, undefined, Template) {
 
 
     var Controller = {
     var Controller = {
-        index: function () {    
+        index: function () {
+            //扫模拟器描
+            $(document).on("click",".btn-scanning",function () {
+                var index =  Layer.load(2, {
+                    shade: [0.5,'#393D49'],
+                    content: '正在进行模拟器扫描,请稍后...', // 这里是加载的文字
+                });
+                $(".content").val('');
+                $.ajax({
+                    url: Config.url_type+"/sim/debug/debugScanAllSeat/",
+                    type: 'get',
+                    success: function (data) {
+                        if(data.code==200){
+                            var option_tr = '<option value="">请选择</option>';
+                            var ret = data.data;
+                            for (var i = 0; i < ret.length; i++) {
+                                option_tr += '<option value="'+ret[i].simType+'" seat="'+ret[i].seatId+'">'+ret[i].text+'</option>';
+                            }
+                            $(".simNum1").html(option_tr)
+                            $(".content").val('模拟器扫描'+data.msg);
+                            Layer.close(index);
+                        }else{
+                            Layer.alert(data.msg);
+                            Layer.close(index);
+                            return;
+                        }
+                    }
+                });
+            });
+
             //选择设备编号
             //选择设备编号
             $(document).on("change", ".simNum1", function () {
             $(document).on("change", ".simNum1", function () {
                 var customValue = $('.simNum1 option:selected').val();
                 var customValue = $('.simNum1 option:selected').val();
@@ -28,7 +57,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
             });
             });
             //通过simNum清除一台模拟器所有故障
             //通过simNum清除一台模拟器所有故障
             $(document).on("click", ".btn-clear-fault", function () {
             $(document).on("click", ".btn-clear-fault", function () {
-                var customValue = $('.simNum1 option:selected').text();
+                var customValue = $('.simNum1 option:selected').attr('seat');
                 if(customValue=='请选择'){
                 if(customValue=='请选择'){
                     Layer.alert('选择设备编号');
                     Layer.alert('选择设备编号');
                     return;
                     return;
@@ -95,7 +124,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
 
 
             //下发故障
             //下发故障
             $(document).on("click", ".btn-issued-fault", function () {
             $(document).on("click", ".btn-issued-fault", function () {
-                var customValue = $('.simNum1 option:selected').text();
+                var customValue = $('.simNum1 option:selected').attr('seat');
                 if(customValue=='请选择'){
                 if(customValue=='请选择'){
                     Layer.alert('选择设备编号');
                     Layer.alert('选择设备编号');
                     return;
                     return;
@@ -108,6 +137,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
                     shade: [0.5,'#393D49'],
                     shade: [0.5,'#393D49'],
                     content: '正在检查模拟器并下发故障,请稍后...', // 这里是加载的文字
                     content: '正在检查模拟器并下发故障,请稍后...', // 这里是加载的文字
                 });
                 });
+                console.log(Config.url_type+"/sim/debug/debugWriteSelectedFaultBySimNum/"+customValue+"/"+rel_Ids+"?checkReplace=false");
                 $.ajax({
                 $.ajax({
                     url: Config.url_type+"/sim/debug/debugWriteSelectedFaultBySimNum/"+customValue+"/"+rel_Ids+"?checkReplace=false",
                     url: Config.url_type+"/sim/debug/debugWriteSelectedFaultBySimNum/"+customValue+"/"+rel_Ids+"?checkReplace=false",
                     type: 'get',
                     type: 'get',
@@ -149,7 +179,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'echarts', 'echart
 
 
             //读取当前状态
             //读取当前状态
             $(document).on("click", ".btn-read-fault", function () {
             $(document).on("click", ".btn-read-fault", function () {
-                var customValue = $('.simNum1 option:selected').text();
+                var customValue = $('.simNum1 option:selected').attr('seat');
                 if(customValue=='请选择'){
                 if(customValue=='请选择'){
                     Layer.alert('选择设备编号');
                     Layer.alert('选择设备编号');
                     return;
                     return;