animeic пре 2 година
родитељ
комит
95eb34ca40

BIN
oilseal-train/.~发动机附件油封台.xlsx


+ 52 - 17
oilseal-train/api/bank.go

@@ -7,6 +7,7 @@ import (
 	"oilseal-train/db/repo"
 	"oilseal-train/log"
 	"os"
+	"strings"
 	"time"
 
 	"github.com/gin-gonic/gin"
@@ -265,14 +266,14 @@ func BankExportXls(c *gin.Context, apictx *ApiSession) (interface{}, error) {
 		{
 
 			Style:  center,
-			Width:  20,
+			Width:  10,
 			Header: "答案",
 			Key:    "formatAnswer",
 		},
 		{
 
 			Style:  center,
-			Width:  40,
+			Width:  30,
 			Header: "解析",
 			Key:    "analyze",
 		},
@@ -365,11 +366,11 @@ func BankImportXls(c *gin.Context, apictx *ApiSession) (interface{}, error) {
 	if err != nil {
 		return nil, err
 	}
-	// _id := c.PostForm("id")
-	// id, err = primitive.ObjectIDFromHex(_id)
-	// if err != nil {
-	// 	return nil, err
-	// }
+	_id := c.PostForm("id")
+	id, err := primitive.ObjectIDFromHex(_id)
+	if err != nil {
+		return nil, err
+	}
 	file, _, err := c.Request.FormFile("file")
 	if err != nil {
 		return nil, errors.New("文件错误")
@@ -380,24 +381,58 @@ func BankImportXls(c *gin.Context, apictx *ApiSession) (interface{}, error) {
 	}
 	excelIndex := excel.GetActiveSheetIndex()
 	sheetName := excel.GetSheetName(excelIndex)
-	users, err := excel.GetRows(sheetName)
+	tests, err := excel.GetRows(sheetName)
 	if err != nil {
 		return nil, err
 	}
-	return users, nil
+	// return tests, nil
 	errors := []string{}
-	if len(users) > 0 {
-		for index, user := range users {
+
+	if len(tests) > 0 {
+		for index, ts := range tests {
+			// 标题行
 			if index == 0 {
 				continue
 			}
-			rowNum := index + 1
-			addUser, err := formatUser(user, rowNum)
-			if err != nil {
-				errors = append(errors, err.Error())
-				continue
+			test := &model.Test{}
+			test.Question = ts[0]
+			if ts[1] == "选择题" {
+				test.Type = 1
+
+				test.AnswerItem = &model.AnswerItem{
+					A: ts[2],
+					B: ts[3],
+					C: ts[4],
+					D: ts[5],
+				}
+				// 答案 ts[8]
+				test.Answer = strings.Split(ts[8], ",")
 			}
-			_, err = repo.RepoAddDoc(apictx.CreateRepoCtx(), repo.CollectionUser, addUser)
+			if ts[1] == "判断题" {
+				test.Type = 2
+
+				test.AnswerItem = &model.AnswerItem{
+					True:  ts[6],
+					False: ts[7],
+				}
+				// 答案 ts[8]
+				if ts[8] == "正确" {
+					test.Answer = append(test.Answer, "true")
+				}
+				if ts[8] == "错误" {
+					test.Answer = append(test.Answer, "false")
+				}
+			}
+			test.BankId = id
+			if len(ts) > 9 {
+				test.Analyze = ts[9]
+			}
+			test.State = 1
+			test.CreateTime = time.Now()
+			test.UpdateTime = time.Now()
+
+			rowNum := index + 1
+			_, err = repo.RepoAddDoc(apictx.CreateRepoCtx(), repo.CollectionTest, test)
 			if err != nil {
 				errors = append(errors, fmt.Sprintf("第%d行错误: %s", rowNum, "保存数据失败"))
 				log.Error(err)

+ 4 - 1
oilseal-train/api/test_print.go

@@ -1,10 +1,13 @@
 package api
 
 import (
+	"strings"
+
 	"github.com/gin-gonic/gin"
 )
 
 func Printr(c *gin.Context, apictx *ApiSession) (interface{}, error) {
+	str := "B,C"
 
-	return "success", nil
+	return strings.Split(str, ","), nil
 }

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

@@ -1,12 +0,0 @@
-{
-  "bankId": "6397f71e94ab390229bb866e",
-  "question": "辅助存储器用于存储当前不参与运行或需要长久保存的程序和数据。其特点是存储容量大、价格低,但与主存储器相比,其存取速度较慢。",
-  "answerItem": {
-    "true": "正确",
-    "false": "错误"
-  },
-  "answer": [
-    "true"
-  ],
-  "type": 2
-}

BIN
oilseal-train/发动机附件油封台.xlsx