|
|
|
@@ -439,32 +439,32 @@ func cleanText(text string) string {
|
|
|
|
|
|
|
|
|
|
// SubmitWorkAnswers 提交作业答案
|
|
|
|
|
func (c *XuexitongCourse) SubmitWorkAnswers(ctx context.Context, workDto *entity.WorkDto, isSave bool) (string, error) {
|
|
|
|
|
formData := url.Values{}
|
|
|
|
|
|
|
|
|
|
pyFlag := ""
|
|
|
|
|
if isSave {
|
|
|
|
|
pyFlag = "1"
|
|
|
|
|
}
|
|
|
|
|
formData.Set("pyFlag", pyFlag)
|
|
|
|
|
formData.Set("courseId", workDto.CourseId)
|
|
|
|
|
formData.Set("classId", workDto.ClassId)
|
|
|
|
|
formData.Set("api", workDto.Api)
|
|
|
|
|
formData.Set("workAnswerId", workDto.WorkAnswerId)
|
|
|
|
|
formData.Set("answerId", workDto.AnswerId)
|
|
|
|
|
formData.Set("totalQuestionNum", workDto.TotalQuestionNum)
|
|
|
|
|
formData.Set("fullScore", workDto.FullScore)
|
|
|
|
|
formData.Set("knowledgeid", workDto.KnowledgeId)
|
|
|
|
|
formData.Set("oldSchoolId", workDto.OldSchoolId)
|
|
|
|
|
formData.Set("oldWorkId", workDto.OldWorkId)
|
|
|
|
|
formData.Set("jobid", workDto.JobId)
|
|
|
|
|
formData.Set("workRelationId", workDto.WorkRelationId)
|
|
|
|
|
formData.Set("enc", "")
|
|
|
|
|
formData.Set("enc_work", workDto.EncWork)
|
|
|
|
|
formData.Set("userId", workDto.UserId)
|
|
|
|
|
formData.Set("cpi", workDto.Cpi)
|
|
|
|
|
formData.Set("workTimesEnc", "")
|
|
|
|
|
formData.Set("randomOptions", "false")
|
|
|
|
|
formData.Set("isAccessibleCustomFid", "0")
|
|
|
|
|
|
|
|
|
|
formMap := map[string]string{
|
|
|
|
|
"pyFlag": pyFlag,
|
|
|
|
|
"courseId": workDto.CourseId,
|
|
|
|
|
"classId": workDto.ClassId,
|
|
|
|
|
"api": workDto.Api,
|
|
|
|
|
"mooc": "0",
|
|
|
|
|
"workAnswerId": workDto.WorkAnswerId,
|
|
|
|
|
"answerId": "",
|
|
|
|
|
"totalQuestionNum": workDto.TotalQuestionNum,
|
|
|
|
|
"fullScore": workDto.FullScore,
|
|
|
|
|
"knowledgeid": workDto.KnowledgeId,
|
|
|
|
|
"oldSchoolId": workDto.OldSchoolId,
|
|
|
|
|
"oldWorkId": workDto.OldWorkId,
|
|
|
|
|
"jobid": workDto.JobId,
|
|
|
|
|
"workRelationId": workDto.WorkRelationId,
|
|
|
|
|
"enc_work": workDto.EncWork,
|
|
|
|
|
"isphone": "true",
|
|
|
|
|
"userId": workDto.UserId,
|
|
|
|
|
"workTimesEnc": "",
|
|
|
|
|
"isAccessibleCustomFid": "0",
|
|
|
|
|
}
|
|
|
|
|
answerwqbid := ""
|
|
|
|
|
for _, q := range workDto.Questions {
|
|
|
|
|
if q.Qid != "" {
|
|
|
|
@@ -474,24 +474,24 @@ func (c *XuexitongCourse) SubmitWorkAnswers(ctx context.Context, workDto *entity
|
|
|
|
|
switch q.Type {
|
|
|
|
|
case entity.QuestionTypeSingleChoice:
|
|
|
|
|
answer := strings.Join(q.Answers, "")
|
|
|
|
|
formData.Set("answer"+q.Qid, answer)
|
|
|
|
|
formData.Set("answertype"+q.Qid, "0")
|
|
|
|
|
formMap["answer"+q.Qid] = answer
|
|
|
|
|
formMap["answertype"+q.Qid] = "0"
|
|
|
|
|
|
|
|
|
|
case entity.QuestionTypeMultipleChoice:
|
|
|
|
|
answer := strings.Join(q.Answers, "")
|
|
|
|
|
formData.Set("answer"+q.Qid, answer)
|
|
|
|
|
formData.Set("answertype"+q.Qid, "1")
|
|
|
|
|
formMap["answer"+q.Qid] = answer
|
|
|
|
|
formMap["answertype"+q.Qid] = "1"
|
|
|
|
|
|
|
|
|
|
case entity.QuestionTypeFillBlank:
|
|
|
|
|
for key, val := range q.BlankAnswer {
|
|
|
|
|
re := regexp.MustCompile(`\d+`)
|
|
|
|
|
numbers := re.FindAllString(key, -1)
|
|
|
|
|
if len(numbers) > 0 {
|
|
|
|
|
formData.Set("answer"+q.Qid+numbers[0], val)
|
|
|
|
|
formMap["answer"+q.Qid+numbers[0]] = val
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
formData.Set("tiankongsize"+q.Qid, strconv.Itoa(q.BlankCount))
|
|
|
|
|
formData.Set("answertype"+q.Qid, "2")
|
|
|
|
|
formMap["tiankongsize"+q.Qid] = strconv.Itoa(q.BlankCount)
|
|
|
|
|
formMap["answertype"+q.Qid] = "2"
|
|
|
|
|
|
|
|
|
|
case entity.QuestionTypeTrueFalse:
|
|
|
|
|
answer := ""
|
|
|
|
@@ -504,16 +504,16 @@ func (c *XuexitongCourse) SubmitWorkAnswers(ctx context.Context, workDto *entity
|
|
|
|
|
answer = a
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
formData.Set("answer"+q.Qid, answer)
|
|
|
|
|
formData.Set("answertype"+q.Qid, "3")
|
|
|
|
|
formMap["answer"+q.Qid] = answer
|
|
|
|
|
formMap["answertype"+q.Qid] = "3"
|
|
|
|
|
|
|
|
|
|
case entity.QuestionTypeShortAnswer:
|
|
|
|
|
answer := strings.Join(q.Answers, "")
|
|
|
|
|
formData.Set("answer"+q.Qid, answer)
|
|
|
|
|
formData.Set("answertype"+q.Qid, "4")
|
|
|
|
|
formMap["answer"+q.Qid] = answer
|
|
|
|
|
formMap["answertype"+q.Qid] = "4"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
formData.Set("answerwqbid", answerwqbid)
|
|
|
|
|
formMap["answerwqbid"] = answerwqbid
|
|
|
|
|
|
|
|
|
|
urlStr := fmt.Sprintf("%s?_classId=%s&courseid=%s&token=%s&totalQuestionNum=%s&ua=pc&formType=post&saveStatus=1&version=1&tempsave=1",
|
|
|
|
|
ApiWorkSubmit, workDto.ClassId, workDto.CourseId, workDto.EncWork, workDto.TotalQuestionNum)
|
|
|
|
@@ -523,7 +523,7 @@ func (c *XuexitongCourse) SubmitWorkAnswers(ctx context.Context, workDto *entity
|
|
|
|
|
resp, err := c.client.R().SetHeaders(map[string]string{
|
|
|
|
|
"User-Agent": GetUA("mobile"),
|
|
|
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
|
|
|
}).SetBody(formData.Encode()).Post(urlStr)
|
|
|
|
|
}).SetFormData(formMap).Post(urlStr)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|