Pārlūkot izejas kodu

20250209 优化调整

贾小兵 2 nedēļas atpakaļ
vecāks
revīzija
3eaa228af1

+ 14 - 10
application/admin/controller/student/Collection.php

@@ -245,12 +245,12 @@ class Collection extends Backend
                 $fault_arr = [$fault_right_list[0]['fault_id'],$fault_right_list[1]['fault_id'],$fault_right_list[2]['fault_id']];
                 
                 //根据故障部位查找,匹配的排除方法
-                $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('pc_id');
+                $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr],'sim_type'=>$info['sim_type']])->column('pc_id');
                 //根据故障部位查找,匹配可能原因
-                $yy_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('yy_id');
+                $yy_arr = Report::where(['bw_id'=>['in',$fault_arr],'sim_type'=>$info['sim_type']])->column('yy_id');
 
                 //查找故障现象 数组
-                $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr]])->column('parent_fault_id');
+                $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr],'sim_type'=>$info['sim_type']])->column('parent_fault_id');
 
                 //获取数组
                 $other_report = json_decode($params['other_report'],true);
@@ -355,13 +355,17 @@ class Collection extends Backend
                 }
                 //循环作答的排除方法,,匹配固定的排除方法
                 foreach ($yuanyin_arr as $k32 =>$t32){
-                    if(!empty($t32) && !in_array($t32,$yy_arr)){
-                        $yuanyin_socre = 1+$yuanyin_socre;
-                        $yuanyin_content[] = [
-                            'cx_id'=>$t32,
-                            'cx_type'=>'错写',
-                            'cx_name'=>Fault::where(['fault_id'=>$t32])->value('name'),
-                        ];
+                    if(!empty($t32)){
+                        foreach(explode(',',$t32) as $k321 =>$t321){
+                            if(!in_array($t321,$yy_arr)){
+                                $yuanyin_socre = 1+$yuanyin_socre;
+                                $yuanyin_content[] = [
+                                    'cx_id'=>$t321,
+                                    'cx_type'=>'错写',
+                                    'cx_name'=>Fault::where(['fault_id'=>$t321])->value('name'),
+                                ];
+                            }
+                        }
                     }
                 }
                 //可能原因 end

+ 15 - 10
application/admin/controller/student/Exercise.php

@@ -225,11 +225,12 @@ class Exercise extends Backend
                 $fault_arr = [$fault_right_list[0]['fault_id'],$fault_right_list[1]['fault_id'],$fault_right_list[2]['fault_id']];
                 
                 //根据故障部位查找,匹配的排除方法
-                $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('pc_id');
+                $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr],'sim_type'=>$info['sim_type']])->column('pc_id');
                 //根据故障部位查找,匹配可能原因
-                $yy_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('yy_id');
+                $yy_arr = Report::where(['bw_id'=>['in',$fault_arr],'sim_type'=>$info['sim_type']])->column('yy_id');
 
-                $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr]])->column('parent_fault_id');
+                //查找故障现象 数组
+                $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr],'sim_type'=>$info['sim_type']])->column('parent_fault_id');
 
                 //获取数组
                 $other_report = json_decode($params['other_report'],true);
@@ -333,13 +334,17 @@ class Exercise extends Backend
                 }
                 //循环作答的排除方法,,匹配固定的排除方法
                 foreach ($yuanyin_arr as $k32 =>$t32){
-                    if(!empty($t32) && !in_array($t32,$yy_arr)){
-                        $yuanyin_socre = 1+$yuanyin_socre;
-                        $yuanyin_content[] = [
-                            'cx_id'=>$t32,
-                            'cx_type'=>'错写',
-                            'cx_name'=>Fault::where(['fault_id'=>$t32])->value('name'),
-                        ];
+                    if(!empty($t32)){
+                        foreach(explode(',',$t32) as $k321 =>$t321){
+                            if(!in_array($t321,$yy_arr)){
+                                $yuanyin_socre = 1+$yuanyin_socre;
+                                $yuanyin_content[] = [
+                                    'cx_id'=>$t321,
+                                    'cx_type'=>'错写',
+                                    'cx_name'=>Fault::where(['fault_id'=>$t321])->value('name'),
+                                ];
+                            }
+                        }
                     }
                 }
                 //可能原因 end

+ 15 - 10
application/admin/controller/student/Practice.php

@@ -258,11 +258,12 @@ class Practice extends Backend
                 $fault_arr = [$fault_right_list[0]['fault_id'],$fault_right_list[1]['fault_id'],$fault_right_list[2]['fault_id']];
                 
                 //根据故障部位查找,匹配的排除方法
-                $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('pc_id');
+                $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr],'sim_type'=>$info['sim_type']])->column('pc_id');
                 //根据故障部位查找,匹配可能原因
-                $yy_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('yy_id');
+                $yy_arr = Report::where(['bw_id'=>['in',$fault_arr],'sim_type'=>$info['sim_type']])->column('yy_id');
 
-                $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr]])->column('parent_fault_id');
+                //查找故障现象 数组
+                $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr],'sim_type'=>$info['sim_type']])->column('parent_fault_id');
 
                 //获取数组
                 $other_report = json_decode($params['other_report'],true);
@@ -366,13 +367,17 @@ class Practice extends Backend
                 }
                 //循环作答的排除方法,,匹配固定的排除方法
                 foreach ($yuanyin_arr as $k32 =>$t32){
-                    if(!empty($t32) && !in_array($t32,$yy_arr)){
-                        $yuanyin_socre = 1+$yuanyin_socre;
-                        $yuanyin_content[] = [
-                            'cx_id'=>$t32,
-                            'cx_type'=>'错写',
-                            'cx_name'=>Fault::where(['fault_id'=>$t32])->value('name'),
-                        ];
+                    if(!empty($t32)){
+                        foreach(explode(',',$t32) as $k321 =>$t321){
+                            if(!in_array($t321,$yy_arr)){
+                                $yuanyin_socre = 1+$yuanyin_socre;
+                                $yuanyin_content[] = [
+                                    'cx_id'=>$t321,
+                                    'cx_type'=>'错写',
+                                    'cx_name'=>Fault::where(['fault_id'=>$t321])->value('name'),
+                                ];
+                            }
+                        }
                     }
                 }
                 //可能原因 end