|
@@ -7,6 +7,7 @@ import (
|
|
"oilseal-train/db/repo"
|
|
"oilseal-train/db/repo"
|
|
"oilseal-train/log"
|
|
"oilseal-train/log"
|
|
"os"
|
|
"os"
|
|
|
|
+ "strings"
|
|
"time"
|
|
"time"
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gin-gonic/gin"
|
|
@@ -265,14 +266,14 @@ func BankExportXls(c *gin.Context, apictx *ApiSession) (interface{}, error) {
|
|
{
|
|
{
|
|
|
|
|
|
Style: center,
|
|
Style: center,
|
|
- Width: 20,
|
|
|
|
|
|
+ Width: 10,
|
|
Header: "答案",
|
|
Header: "答案",
|
|
Key: "formatAnswer",
|
|
Key: "formatAnswer",
|
|
},
|
|
},
|
|
{
|
|
{
|
|
|
|
|
|
Style: center,
|
|
Style: center,
|
|
- Width: 40,
|
|
|
|
|
|
+ Width: 30,
|
|
Header: "解析",
|
|
Header: "解析",
|
|
Key: "analyze",
|
|
Key: "analyze",
|
|
},
|
|
},
|
|
@@ -365,11 +366,11 @@ func BankImportXls(c *gin.Context, apictx *ApiSession) (interface{}, error) {
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, err
|
|
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")
|
|
file, _, err := c.Request.FormFile("file")
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, errors.New("文件错误")
|
|
return nil, errors.New("文件错误")
|
|
@@ -380,24 +381,58 @@ func BankImportXls(c *gin.Context, apictx *ApiSession) (interface{}, error) {
|
|
}
|
|
}
|
|
excelIndex := excel.GetActiveSheetIndex()
|
|
excelIndex := excel.GetActiveSheetIndex()
|
|
sheetName := excel.GetSheetName(excelIndex)
|
|
sheetName := excel.GetSheetName(excelIndex)
|
|
- users, err := excel.GetRows(sheetName)
|
|
|
|
|
|
+ tests, err := excel.GetRows(sheetName)
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
- return users, nil
|
|
|
|
|
|
+ // return tests, nil
|
|
errors := []string{}
|
|
errors := []string{}
|
|
- if len(users) > 0 {
|
|
|
|
- for index, user := range users {
|
|
|
|
|
|
+
|
|
|
|
+ if len(tests) > 0 {
|
|
|
|
+ for index, ts := range tests {
|
|
|
|
+ // 标题行
|
|
if index == 0 {
|
|
if index == 0 {
|
|
continue
|
|
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 {
|
|
if err != nil {
|
|
errors = append(errors, fmt.Sprintf("第%d行错误: %s", rowNum, "保存数据失败"))
|
|
errors = append(errors, fmt.Sprintf("第%d行错误: %s", rowNum, "保存数据失败"))
|
|
log.Error(err)
|
|
log.Error(err)
|