diff --git a/apis/cache.go b/apis/cache.go index 2fc8bec..d21ea4c 100644 --- a/apis/cache.go +++ b/apis/cache.go @@ -227,8 +227,6 @@ LOAD_FILES: GlobalQuestionConfig.Lock() GlobalQuestionConfig.Questions = newQuestions GlobalQuestionConfig.CurrentVersion = newQuestionCurrentVersion - jsonQuestions, _ := json.Marshal(GlobalQuestionConfig.Questions) - log.Debug().Msgf("questionsResponse: %s", string(jsonQuestions)) GlobalQuestionConfig.Unlock() return nil diff --git a/apis/question.go b/apis/question.go index 5179b2d..01eb2d1 100644 --- a/apis/question.go +++ b/apis/question.go @@ -77,6 +77,10 @@ func RetrieveQuestions(c *fiber.Ctx) (err error) { return common.InternalServerError("[retrieve questions]: number of campus questions invalid") } + if number == 0 { + return common.InternalServerError("[retrieve questions]: number of questions too small") + } + var questionsResponse = QuestionConfig{ Version: version, Spec: QuestionSpec{ @@ -89,25 +93,8 @@ func RetrieveQuestions(c *fiber.Ctx) (err error) { questionsResponse.Questions = make([]Question, number) tmpQuestions := make([]*Question, 0, number) - - if number == 0 { - return common.InternalServerError("[retrieve questions]: number of questions too small") - } - tmpQuestions = append(tmpQuestions, requiredQuestions...) - jsonTmpQuestions, _ := json.Marshal(questionConfig) - log.Debug().Msgf("questionsResponse: %s", string(jsonTmpQuestions)) - - jsonTmpQuestions, _ = json.Marshal(tmpQuestions) - log.Debug().Msgf("questionsResponse: %s", string(jsonTmpQuestions)) - - // for i, question := range requiredQuestions { - // tmpQuestions[i] = question - // // questionsResponse.Questions[i] = *question - // } - - // questionConfig.Questions = append(questionConfig.Questions, optionalQuestions...) if numberOfOptionalQuestions == -1 { // send all opntional questions tmpQuestions = append(tmpQuestions, optionalQuestions...) @@ -136,9 +123,6 @@ func RetrieveQuestions(c *fiber.Ctx) (err error) { tmpQuestions = append(tmpQuestions, chosenCampusQuestions[:numberOfCampusQuestions]...) } - jsonTmpQuestions, _ = json.Marshal(tmpQuestions) - log.Debug().Msgf("questionsResponse: %s", string(jsonTmpQuestions)) - if !inOrder { rand.Shuffle(len(tmpQuestions), func(i, j int) { tmpQuestions[i], tmpQuestions[j] = tmpQuestions[j], tmpQuestions[i] @@ -149,9 +133,6 @@ func RetrieveQuestions(c *fiber.Ctx) (err error) { }) } - jsonTmpQuestions, _ = json.Marshal(tmpQuestions) - log.Debug().Msgf("questionsResponse: %s", string(jsonTmpQuestions)) - for i, question := range tmpQuestions { questionsResponse.Questions[i] = *question } diff --git a/apis/schemas.go b/apis/schemas.go index f9234e0..22a9b62 100644 --- a/apis/schemas.go +++ b/apis/schemas.go @@ -132,16 +132,19 @@ type Question struct { // QuestionSpec 题库的发题、判题的规格 schema type QuestionSpec struct { + // 总题目数量 + // Deprecated NumberOfQuestions int `json:"number_of_questions" yaml:"number_of_questions"` - // 表示可选题的题目数量。 - // 发送题目时,题库中的必做题都会发送,可选题会根据题目数量随机发送。 - // 如果总的题目数量小于题库中的必做题数量,将会在解析时返回错误。 - // 如果设置为 0 或者不设置,则题库中的所有题目都会发送 - // 如果设置为 -1,则题库中的必做题都会发送,可选题不会发送 + // 可选题的题目数量 + // 发送题目时,题库中的必做题都会发送,可选题会根据题目数量随机发送 + // 如果可选题的题目数量大于题库中的可选题数量,将会在解析时返回错误 + // 如果设置为 0 或者不设置,可选题不会发送 + // 如果设置为 -1,则题库中的可选题都会发送 NumberOfOptionalQuestions int `json:"number_of_optional_questions" yaml:"number_of_optional_questions"` // 校园题的数量 + // 其余规则同可选题 NumberOfCampusQuestions int `json:"number_of_campus_questions" yaml:"number_of_campus_questions"` // 表示是否由题目声明顺序由上到下顺序出题,默认为 false,即乱序出题