commit ci file
continuous-integration/drone/push Build is failing Details

master
loser 2 years ago
parent c011fe69c8
commit 05f8043672

@ -1,17 +1,24 @@
FROM golang:1.18 as builder FROM golang:1.18 as builder
# 启用go module
ENV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct
WORKDIR /builder WORKDIR /builder
COPY . . COPY . .
RUN go mod download && go build -o app && upx -9 app RUN go mod download && go build -o app && upx -9 app
RUN ls -lh && chmod +x ./app RUN ls -lh && chmod +x ./app
COPY . .
# 指定OS等并go build
RUN GOOS=linux GOARCH=amd64 go build .
# 运行阶段指定scratch作为基础镜像
FROM alpine
# 指定创建的基础镜像
FROM alpine as runner
# 替换阿里云的源
RUN echo "http://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories
RUN echo "http://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories
WORKDIR /app WORKDIR /app
COPY --from=builder /builder/app ./app COPY --from=builder /builder/app ./app
CMD ./app CMD ./app
ENTRYPOINT ["./app"]

@ -1,6 +1,5 @@
package main package main
import "C"
import ( import (
"docDemo/router" "docDemo/router"
"fmt" "fmt"

@ -1,69 +0,0 @@
package main
import (
"docDemo/client"
"docDemo/model"
"encoding/json"
"fmt"
"github.com/xuri/excelize/v2"
"strings"
"testing"
)
var AZ = []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
func TestMap(t *testing.T) {
file, err := excelize.OpenFile("result.xlsx")
if err != nil {
return
}
rows, err := file.GetRows("Sheet1")
if err != nil {
return
}
for _, row := range rows[1:3] {
if row[0] == "" {
break
}
var ques []map[string]string
for i := range row[2:] {
ques = append(ques, map[string]string{AZ[i]: row[2:][i]})
}
awssJson, err := json.Marshal(ques)
if err != nil {
return
}
var Questions model.Question
Questions.Content = row[1]
Questions.Answer = string(awssJson)
Questions.Analysis = "A"
Questions.CorrectAnswer = "A"
Questions.Subject = "大学语文"
if strings.Contains(row[0], "单选") || strings.Contains(row[0], "单项") {
Questions.SubjectType = "single"
}
if strings.Contains(row[0], "多选") || strings.Contains(row[0], "多项") {
Questions.SubjectType = "mutil"
}
if strings.Contains(row[0], "判断") {
Questions.SubjectType = "judge"
}
if strings.Contains(row[0], "应用") || strings.Contains(row[0], "简答") {
Questions.SubjectType = "application"
}
err = client.MySQL.Table("sys_question_bank").Create(&Questions).Error
if err != nil {
fmt.Println("导入题库失败:", err)
}
}
}

@ -1,62 +0,0 @@
package utils
import (
"docDemo/model"
"errors"
"fmt"
"gitee.ltd/lxh/logger/log"
"github.com/xuri/excelize/v2"
"strings"
)
var AZ = []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
type excel struct{}
func ExcelUtils() *excel {
return &excel{}
}
// ParseQuestion 转换Excel为量表问题答案信息
func (e excel) ParseQuestion(ef *excelize.File) (es []model.Question, err error) {
// 获取指定sheet
rows, err := ef.GetRows("question")
if err != nil {
return
}
log.Debugf("读取成功,共%d行%d列数据", len(rows), len(rows[0]))
// 循环行,处理为结构体,不处理第一行,因为是标题
for i, row := range rows[1:] {
// 如果问题出现空行,终止解析
if row[0] == "" {
break
}
// 创建一个问题结构体
var q model.Question
q.QuestionSerial = i + 1
q.Question = row[0]
// 开始解析答案
var answers []model.AnswerEntity
for j, a := range row[1:] {
// 如果答案出现空行,终止解析
if a == "" {
break
}
// 拆开答案,获取答案和分值
if !strings.Contains(a, "|") {
log.Errorf("异常数据: %v", a)
err = errors.New(fmt.Sprintf("模板文件格式错误(%v行%v列),答案和分值必须以|隔开", i+2, j+2))
return
}
answerInfo := strings.Split(a, "|")
answers = append(answers, model.AnswerEntity{
Code: AZ[j],
Answer: answerInfo[0],
Score: StrToInt(answerInfo[1]),
})
}
q.Answers = answers
es = append(es, q)
}
return
}
Loading…
Cancel
Save