Преглед изворни кода

工程师题库接口新增

dongxiaoqin пре 1 година
родитељ
комит
e7d107d7e6

+ 8 - 0
app/common/model/master_worker/MasterWorkerQuestion.php

@@ -0,0 +1,8 @@
+<?php
+namespace app\common\model\master_worker;
+use app\common\model\BaseModel;
+
+class MasterWorkerQuestion extends BaseModel
+{
+    protected $name = 'master_worker_question';
+}

+ 7 - 1
app/workerapi/controller/MasterWorkerController.php

@@ -13,7 +13,7 @@ use app\workerapi\validate\MasterWokerValidate;
 
 class MasterWorkerController extends BaseApiController
 {
-    public array $notNeedLogin = ['customerPhone','interview'];
+    public array $notNeedLogin = ['customerPhone','interview','getQuestion'];
 
     /**
      * @notes 修改密码
@@ -160,4 +160,10 @@ class MasterWorkerController extends BaseApiController
         $result = MasterWorkerLogic::getInterview($this->userId);
         return $this->data($result);
     }
+    public function getQuestion()
+    {
+        $params = (new MasterWokerValidate())->post()->goCheck('question');
+        $result = MasterWorkerLogic::getQuestion($params);
+        return $this->data($result);
+    }
 }

+ 47 - 0
app/workerapi/logic/MasterWorkerLogic.php

@@ -12,6 +12,7 @@ use app\common\enum\worker\WorkerAccountLogEnum;
 use app\common\model\master_worker\MasterWorker;
 use app\common\model\master_worker\MasterWorkerInfo;
 use app\common\model\master_worker\MasterWorkerAgree;
+use app\common\model\master_worker\MasterWorkerQuestion;
 use app\common\model\master_worker\MasterWorkerInterview;
 use app\common\model\master_worker\MasterWorkerAccountLog;
 
@@ -283,5 +284,51 @@ class MasterWorkerLogic extends  BaseLogic
             return false;
         }
     }
+
+    /**
+     * 查询工程师面试题库
+     */
+    public static function getQuestion(array $params)
+    {
+        if ($params['type'] == 1 || $params['type'] == 2) {
+
+            $cagegory = trim($params['category']);
+            $cagegory = str_replace(',', ',', $cagegory);
+            $cagegory = explode(',', $cagegory);
+            $cagegory = array_slice($cagegory, 0, 5);
+            $list = MasterWorkerQuestion::where('type',$params['type'])
+                        ->whereRaw('FIND_IN_SET(' . $cagegory . ', category)')
+                        ->where('type',$params['type'])
+                        ->limit(100)
+                        ->toArray();
+            // 按 category 分组
+            $grouped = [];
+            foreach ($list as $item) {
+                $category = $item['category'];
+                if (!isset($grouped[$category])) {
+                    $grouped[$category] = [];
+                }
+                $grouped[$category][] = $item;
+            }
+
+            // 从每组中随机取 5 个元素
+            $result = [];
+            foreach ($grouped as $category => $items) {
+                $randomItems = [];
+                $count = count($items);
+                if ($count <= 5) {
+                    $randomItems = $items;
+                } else {
+                    $keys = array_rand($items, 5);
+                    foreach ($keys as $key) {
+                        $randomItems[] = $items[$key];
+                    }
+                }
+                $result[$category] = $randomItems;
+            }
+            return array_values($result);
+        } 
+        return false;
+    }
     
 }

+ 5 - 0
app/workerapi/validate/MasterWokerValidate.php

@@ -73,4 +73,9 @@ class MasterWokerValidate  extends BaseValidate
     {
         return $this->only(['sys_uuid', 'worker_id','nickname','status','start_answer','answer','answer1','answer2','answer3','answer4','answer5','answer6','answer7','answer8','answer9','answer10','class','class1','class2','question','question_answer']);
     }
+
+    public function sceneQuestion()
+    {
+        return $this->only(['category']);
+    }
 }