animeic 2 years ago
parent
commit
9a19c773ef
2 changed files with 156 additions and 31 deletions
  1. 38 19
      oilseal-train/api/test.go
  2. 118 12
      oilseal-train/api/tmp.json

+ 38 - 19
oilseal-train/api/test.go

@@ -91,12 +91,10 @@ func TestList(c *gin.Context, apictx *ApiSession) (interface{}, error) {
 	return result, err
 }
 
-// 获取随机试题
+// 获取随机试题 客户端接口
 func TestRandList(c *gin.Context, apictx *ApiSession) (interface{}, error) {
-	// bankId number type map
 	_bankId := c.Query("bankId")
 	_number := c.Query("number")
-	_type := c.Query("type")
 
 	bankId, err := primitive.ObjectIDFromHex(_bankId)
 	if err != nil {
@@ -107,35 +105,56 @@ func TestRandList(c *gin.Context, apictx *ApiSession) (interface{}, error) {
 	if err != nil {
 		number = 10
 	}
-	fmt.Println(number)
-
-	tsType, err := strconv.Atoi(_type)
-	if err != nil {
-		return nil, errors.New("题型错误")
-	}
 	tests := []*model.Test{}
 	repo.RepoDocsSearch(apictx.CreateRepoCtx(), &repo.PageSearchOptions{
 		CollectName: repo.CollectionTest,
-		Query:       repo.Map{"bankId": bankId, "type": tsType, "state": 1},
+		Query:       repo.Map{"bankId": bankId, "state": 1},
 	}, &tests)
-	if len(tests) <= number {
-		return tests, nil
+	if len(tests) < 1 {
+		return map[string]interface{}{
+			"list1": []interface{}{},
+			"list2": []interface{}{},
+		}, nil
 	}
 	// 放入map中,利用map特性随机得到试题
-	sets := make(map[primitive.ObjectID]*model.Test)
+	type1Sets := make(map[primitive.ObjectID]*model.Test)
+	type2Sets := make(map[primitive.ObjectID]*model.Test)
 	for _, ts := range tests {
-		sets[ts.Id] = ts
+		if ts.Type == 1 {
+			type1Sets[ts.Id] = ts
+
+		}
+		if ts.Type == 2 {
+			type2Sets[ts.Id] = ts
+		}
+
+	}
+	list1 := []*model.Test{}
+	list2 := []*model.Test{}
+	fmt.Println("type1----------------")
+	for _, ts1 := range type1Sets {
+		if len(list1) < number {
+			fmt.Println(ts1.Id)
+			list1 = append(list1, ts1)
+		} else {
+			break
+		}
 	}
-	list := []*model.Test{}
-	for _, ts := range sets {
-		if len(list) < number {
-			list = append(list, ts)
+	fmt.Println("type2------------------")
+	for _, ts2 := range type2Sets {
+		if len(list2) < number {
+
+			fmt.Println(ts2.Id)
+			list2 = append(list2, ts2)
 		} else {
 			break
 		}
 	}
 
-	return list, nil
+	return map[string]interface{}{
+		"list1": list1,
+		"list2": list2,
+	}, nil
 }
 
 // 更新

+ 118 - 12
oilseal-train/api/tmp.json

@@ -1,15 +1,121 @@
 {
-  "bankId": "6397f71e94ab390229bb866e",
-  "question": "下列哪个不属于CRF模型对于HMM和MEMM模型的优势",
-  "answerItem": {
-    "A": "特征灵活",
-    "B": "速度快",
-    "C": "可容纳较多上下文信息",
-    "D": "全局最优"
+  "errorNo": 200,
+  "result": {
+    "list1": [
+      {
+        "_id": "639939b5333d64a81fbdd3e6",
+        "bankId": "6397f71e94ab390229bb866e",
+        "question": "下列哪个不属于CRF模型对于HMM和MEMM模型的优势",
+        "answerItem": {
+          "A": "特征灵活",
+          "B": "速度快",
+          "C": "可容纳较多上下文信息",
+          "D": "全局最优"
+        },
+        "answer": [
+          "B"
+        ],
+        "analyze": "CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活与ME一样",
+        "type": 1,
+        "state": 1,
+        "createTime": "2022-12-14T02:49:25.885Z",
+        "updateTime": "2022-12-14T02:49:25.885Z"
+      },
+      {
+        "_id": "63a2b0c240546830a2017fb2",
+        "bankId": "6397f71e94ab390229bb866e",
+        "question": "下列哪个不属于CRF模型对于HMM和MEMM模型的优势",
+        "answerItem": {
+          "A": "特征灵活",
+          "B": "速度快",
+          "C": "可容纳较多上下文信息",
+          "D": "全局最优"
+        },
+        "answer": [
+          "B"
+        ],
+        "analyze": "CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活与ME一样",
+        "type": 1,
+        "state": 1,
+        "createTime": "2022-12-14T02:49:25.885Z",
+        "updateTime": "2022-12-14T02:49:25.885Z"
+      },
+      {
+        "_id": "63a2b0c540546830a2017fb3",
+        "bankId": "6397f71e94ab390229bb866e",
+        "question": "下列哪个不属于CRF模型对于HMM和MEMM模型的优势",
+        "answerItem": {
+          "A": "特征灵活",
+          "B": "速度快",
+          "C": "可容纳较多上下文信息",
+          "D": "全局最优"
+        },
+        "answer": [
+          "B"
+        ],
+        "analyze": "CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活与ME一样",
+        "type": 1,
+        "state": 1,
+        "createTime": "2022-12-14T02:49:25.885Z",
+        "updateTime": "2022-12-14T02:49:25.885Z"
+      },
+      {
+        "_id": "63a2b0c640546830a2017fb4",
+        "bankId": "6397f71e94ab390229bb866e",
+        "question": "下列哪个不属于CRF模型对于HMM和MEMM模型的优势",
+        "answerItem": {
+          "A": "特征灵活",
+          "B": "速度快",
+          "C": "可容纳较多上下文信息",
+          "D": "全局最优"
+        },
+        "answer": [
+          "B"
+        ],
+        "analyze": "CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活与ME一样",
+        "type": 1,
+        "state": 1,
+        "createTime": "2022-12-14T02:49:25.885Z",
+        "updateTime": "2022-12-14T02:49:25.885Z"
+      },
+      {
+        "_id": "63a2b0c740546830a2017fb5",
+        "bankId": "6397f71e94ab390229bb866e",
+        "question": "下列哪个不属于CRF模型对于HMM和MEMM模型的优势",
+        "answerItem": {
+          "A": "特征灵活",
+          "B": "速度快",
+          "C": "可容纳较多上下文信息",
+          "D": "全局最优"
+        },
+        "answer": [
+          "B"
+        ],
+        "analyze": "CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活与ME一样",
+        "type": 1,
+        "state": 1,
+        "createTime": "2022-12-14T02:49:25.885Z",
+        "updateTime": "2022-12-14T02:49:25.885Z"
+      }
+    ],
+    "list2": [
+      {
+        "_id": "639939b5333d64a81fbdd3e5",
+        "bankId": "6397f71e94ab390229bb866e",
+        "question": "辅助存储器用于存储当前不参与运行或需要长久保存的程序和数据。其特点是存储容量大、价格低,但与主存储器相比,其存取速度较慢。",
+        "answerItem": {
+          "true": "正确",
+          "false": "错误"
+        },
+        "answer": [
+          "true"
+        ],
+        "type": 2,
+        "state": 1,
+        "createTime": "2022-12-14T02:49:25.845Z",
+        "updateTime": "2022-12-14T02:49:25.845Z"
+      }
+    ]
   },
-  "answer": [
-    "B"
-  ],
-  "analyze": "CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活与ME一样",
-  "type": 1
+  "errorDesc": ""
 }