Merge branch 'frontend' of https://gitee.com/Ontheway520/open-ct into frontend
This commit is contained in:
commit
25860dd401
|
@ -3,21 +3,10 @@
|
|||
<component name="ChangeListManager">
|
||||
<list default="true" id="90d49d24-cd7e-4f14-b075-c6e5fe5ae2ce" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/casdoor/conf/app.conf" beforeDir="false" afterPath="$PROJECT_DIR$/casdoor/conf/app.conf" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/controllers/Administrator.go" beforeDir="false" afterPath="$PROJECT_DIR$/controllers/Administrator.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/controllers/score.go" beforeDir="false" afterPath="$PROJECT_DIR$/controllers/score.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/controllers/supervisor.go" beforeDir="false" afterPath="$PROJECT_DIR$/controllers/supervisor.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/frontend" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/lastupdate.tmp" beforeDir="false" afterPath="$PROJECT_DIR$/lastupdate.tmp" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/main.go" beforeDir="false" afterPath="$PROJECT_DIR$/main.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/models/scoreRecord.go" beforeDir="false" afterPath="$PROJECT_DIR$/models/scoreRecord.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/models/testPaper.go" beforeDir="false" afterPath="$PROJECT_DIR$/models/testPaper.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/models/topic.go" beforeDir="false" afterPath="$PROJECT_DIR$/models/topic.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/models/underCorrectedPaper.go" beforeDir="false" afterPath="$PROJECT_DIR$/models/underCorrectedPaper.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/models/user.go" beforeDir="false" afterPath="$PROJECT_DIR$/models/user.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/requests/admin.go" beforeDir="false" afterPath="$PROJECT_DIR$/requests/admin.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/requests/supervisor.go" beforeDir="false" afterPath="$PROJECT_DIR$/requests/supervisor.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/responses/supervisor.go" beforeDir="false" afterPath="$PROJECT_DIR$/responses/supervisor.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/routers/router.go" beforeDir="false" afterPath="$PROJECT_DIR$/routers/router.go" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
@ -195,9 +184,9 @@
|
|||
<breakpoint-manager>
|
||||
<breakpoints>
|
||||
<line-breakpoint enabled="true" type="DlvLineBreakpoint">
|
||||
<url>file://$PROJECT_DIR$/controllers/supervisor.go</url>
|
||||
<line>777</line>
|
||||
<option name="timeStamp" value="6" />
|
||||
<url>file://$PROJECT_DIR$/controllers/score.go</url>
|
||||
<line>159</line>
|
||||
<option name="timeStamp" value="8" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
|
|
|
@ -130,21 +130,8 @@ func UploadPic(name string,text []string)(src string) {
|
|||
func (c *AdminApiController) ReadExcel(){
|
||||
c.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", c.Ctx.Request.Header.Get("Origin"))
|
||||
defer c.ServeJSON()
|
||||
//var requestBody requests.ReadExcel
|
||||
var resp Response
|
||||
var err error
|
||||
|
||||
//err =json.Unmarshal(c.Ctx.Input.RequestBody, &requestBody)
|
||||
//if err!=nil {
|
||||
// log.Println(err)
|
||||
// resp = Response{"10001","cannot unmarshal",err}
|
||||
// c.Data["json"] = resp
|
||||
// return
|
||||
//}
|
||||
//supervisorId := requestBody.SupervisorId
|
||||
// filePath := requestBody.FilePath
|
||||
//bytes := requestBody.Excel
|
||||
//r := requests.ReadExcelBytes{}
|
||||
_, header, err := c.GetFile("excel")
|
||||
err = err
|
||||
if err != nil {
|
||||
|
@ -153,26 +140,8 @@ func (c *AdminApiController) ReadExcel(){
|
|||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//bytes := r.Excel
|
||||
|
||||
//----------------------------------------------------
|
||||
//bytes, err := os.ReadFile(filePath)
|
||||
//
|
||||
//
|
||||
//file, err := os.Create("excelFile")
|
||||
//if err!=nil {
|
||||
// log.Println(err)
|
||||
// resp = Response{"30000","excel 表导入错误",err}
|
||||
// c.Data["json"] = resp
|
||||
// return
|
||||
//}
|
||||
//_, err = file.Write(bytes)
|
||||
//if err!=nil {
|
||||
// log.Println(err)
|
||||
// resp = Response{"30000","excel 表导入错误",err}
|
||||
// c.Data["json"] = resp
|
||||
// return
|
||||
//}
|
||||
|
||||
f, err := excelize.OpenFile(header.Filename)
|
||||
if err != nil {
|
||||
|
@ -225,6 +194,7 @@ func (c *AdminApiController) ReadExcel(){
|
|||
if !has {
|
||||
testPaper.Test_id=testId
|
||||
testPaper.Question_id=questionId
|
||||
testPaper.Question_status=1
|
||||
testPaper.Candidate=name
|
||||
err = testPaper.Insert()
|
||||
if err != nil {
|
||||
|
@ -266,7 +236,261 @@ func (c *AdminApiController) ReadExcel(){
|
|||
}
|
||||
}
|
||||
|
||||
//err = file.Close()
|
||||
|
||||
if err!=nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = os.Remove("excelFile")
|
||||
if err!=nil {
|
||||
log.Println(err)
|
||||
}
|
||||
//------------------------------------------------
|
||||
data := make(map[string]interface{})
|
||||
data["data"] =nil
|
||||
resp = Response{"10000", "OK", data}
|
||||
c.Data["json"] = resp
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
2.样卷导入
|
||||
*/
|
||||
|
||||
func (c *AdminApiController) ReadExampleExcel(){
|
||||
c.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", c.Ctx.Request.Header.Get("Origin"))
|
||||
defer c.ServeJSON()
|
||||
var resp Response
|
||||
var err error
|
||||
_, header, err := c.GetFile("excel")
|
||||
err = err
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"10001","cannot unmarshal",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
//----------------------------------------------------
|
||||
|
||||
f, err := excelize.OpenFile(header.Filename)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30000","excel 表导入错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
// Get all the rows in the Sheet1.
|
||||
rows, err := f.GetRows("Sheet2")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30000","excel 表导入错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
for i:=1;i<len(rows);i++ {
|
||||
for j:=1;j<len(rows[i]);j++ {
|
||||
|
||||
if i>=1&&j>=3 {
|
||||
//准备数据
|
||||
testIdStr:=rows[i][0]
|
||||
testId, _ := strconv.ParseInt(testIdStr, 10, 64)
|
||||
questionIds := strings.Split(rows[0][j], "-")
|
||||
questionIdStr:=questionIds[0]
|
||||
questionId, _ := strconv.ParseInt(questionIdStr, 10, 64)
|
||||
questionDetailIdStr:=questionIds[3]
|
||||
questionDetailId, _ := strconv.ParseInt(questionDetailIdStr, 10, 64)
|
||||
name:=rows[i][2]
|
||||
//填充数据
|
||||
var testPaperInfo models.TestPaperInfo
|
||||
var testPaper models.TestPaper
|
||||
|
||||
testPaperInfo.Question_detail_id=questionDetailId
|
||||
s:=rows[i][j]
|
||||
split := strings.Split(s, "\n")
|
||||
src := UploadPic(rows[i][0]+rows[0][j], split)
|
||||
testPaperInfo.Pic_src=src
|
||||
//查看大题试卷是否已经导入
|
||||
has,err := testPaper.GetTestPaper(testId)
|
||||
if err!=nil {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
//导入大题试卷
|
||||
if !has {
|
||||
testPaper.Test_id=testId
|
||||
testPaper.Question_id=questionId
|
||||
testPaper.Question_status=6
|
||||
testPaper.Candidate=name
|
||||
err = testPaper.Insert()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30001","试卷大题导入错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
}
|
||||
//导入小题试卷
|
||||
testPaperInfo.Test_id=testId
|
||||
err = testPaperInfo.Insert()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30002","试卷小题导错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
//获取选项名 存导入试卷数
|
||||
for k:=3;k<len(rows[0]);k++ {
|
||||
questionIds := strings.Split(rows[0][k], "-")
|
||||
questionIdStr:=questionIds[0]
|
||||
questionId, _ := strconv.ParseInt(questionIdStr, 10, 64)
|
||||
var topic models.Topic
|
||||
topic.Question_id=questionId
|
||||
topic.Import_number=int64(len(rows)-1)
|
||||
err = topic.Update()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30003","大题导入试卷数更新错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if err!=nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = os.Remove("excelFile")
|
||||
if err!=nil {
|
||||
log.Println(err)
|
||||
}
|
||||
//------------------------------------------------
|
||||
data := make(map[string]interface{})
|
||||
data["data"] =nil
|
||||
resp = Response{"10000", "OK", data}
|
||||
c.Data["json"] = resp
|
||||
|
||||
|
||||
}
|
||||
func (c *AdminApiController) ReadAnswerExcel(){
|
||||
c.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", c.Ctx.Request.Header.Get("Origin"))
|
||||
defer c.ServeJSON()
|
||||
var resp Response
|
||||
var err error
|
||||
_, header, err := c.GetFile("excel")
|
||||
err = err
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"10001","cannot unmarshal",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
//----------------------------------------------------
|
||||
|
||||
f, err := excelize.OpenFile(header.Filename)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30000","excel 表导入错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
// Get all the rows in the Sheet1.
|
||||
rows, err := f.GetRows("Sheet2")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30000","excel 表导入错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
for i:=1;i<len(rows);i++ {
|
||||
for j:=1;j<len(rows[i]);j++ {
|
||||
|
||||
if i>=1&&j>=3 {
|
||||
//准备数据
|
||||
testIdStr:=rows[i][0]
|
||||
testId, _ := strconv.ParseInt(testIdStr, 10, 64)
|
||||
questionIds := strings.Split(rows[0][j], "-")
|
||||
questionIdStr:=questionIds[0]
|
||||
questionId, _ := strconv.ParseInt(questionIdStr, 10, 64)
|
||||
questionDetailIdStr:=questionIds[3]
|
||||
questionDetailId, _ := strconv.ParseInt(questionDetailIdStr, 10, 64)
|
||||
name:=rows[i][2]
|
||||
//填充数据
|
||||
var testPaperInfo models.TestPaperInfo
|
||||
var testPaper models.TestPaper
|
||||
|
||||
testPaperInfo.Question_detail_id=questionDetailId
|
||||
s:=rows[i][j]
|
||||
split := strings.Split(s, "\n")
|
||||
src := UploadPic(rows[i][0]+rows[0][j], split)
|
||||
testPaperInfo.Pic_src=src
|
||||
//查看大题试卷是否已经导入
|
||||
has,err := testPaper.GetTestPaper(testId)
|
||||
if err!=nil {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
//导入大题试卷
|
||||
if !has {
|
||||
testPaper.Test_id=testId
|
||||
testPaper.Question_id=questionId
|
||||
testPaper.Question_status=5
|
||||
testPaper.Candidate=name
|
||||
err = testPaper.Insert()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30001","试卷大题导入错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
}
|
||||
//导入小题试卷
|
||||
testPaperInfo.Test_id=testId
|
||||
err = testPaperInfo.Insert()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30002","试卷小题导错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
//获取选项名 存导入试卷数
|
||||
for k:=3;k<len(rows[0]);k++ {
|
||||
questionIds := strings.Split(rows[0][k], "-")
|
||||
questionIdStr:=questionIds[0]
|
||||
questionId, _ := strconv.ParseInt(questionIdStr, 10, 64)
|
||||
var topic models.Topic
|
||||
topic.Question_id=questionId
|
||||
topic.Import_number=int64(len(rows)-1)
|
||||
err = topic.Update()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
resp = Response{"30003","大题导入试卷数更新错误",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if err!=nil {
|
||||
log.Println(err)
|
||||
}
|
||||
|
|
|
@ -117,7 +117,9 @@ func (c *TestPaperApiController) List() {
|
|||
func (c *TestPaperApiController) Point() {
|
||||
defer c.ServeJSON()
|
||||
var requestBody requests.TestPoint
|
||||
err := json.Unmarshal(c.Ctx.Input.RequestBody, &requestBody)
|
||||
var resp Response
|
||||
var err error
|
||||
err = json.Unmarshal(c.Ctx.Input.RequestBody, &requestBody)
|
||||
if err != nil {
|
||||
resp := Response{"10001", "cannot unmarshal", err}
|
||||
c.Data["json"] = resp
|
||||
|
@ -131,18 +133,7 @@ func (c *TestPaperApiController) Point() {
|
|||
scores := strings.Split(scoresStr, "-")
|
||||
testDetailIds := strings.Split(testDetailIdStr, "-")
|
||||
//-------------------------------------------------------
|
||||
//score数组string转int
|
||||
var scoreArr []int64
|
||||
var sum int64 = 0
|
||||
var record models.ScoreRecord
|
||||
for _, i := range scores {
|
||||
j, err := strconv.ParseInt(i, 10, 64)
|
||||
sum += j
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
scoreArr = append(scoreArr, j)
|
||||
}
|
||||
|
||||
//获取该试卷大题 和抽象大题信息
|
||||
var test models.TestPaper
|
||||
var topic models.Topic
|
||||
|
@ -166,149 +157,414 @@ func (c *TestPaperApiController) Point() {
|
|||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
if underTest.Test_question_type==0 {
|
||||
standardError := topic.Standard_error
|
||||
|
||||
final := false
|
||||
//分三种情况
|
||||
if userId == test.Examiner_first_id {
|
||||
var sum int64
|
||||
//给试卷详情表打分
|
||||
for i := 0; i < len(testDetailIds); i++ {
|
||||
//取出小题试卷id,和小题分数
|
||||
var testInfo models.TestPaperInfo
|
||||
testDetailIdString:=testDetailIds[i]
|
||||
testDetailId, _ := strconv.ParseInt(testDetailIdString, 10, 64)
|
||||
scoreString:=scores[i]
|
||||
score, _ := strconv.ParseInt(scoreString, 10, 64)
|
||||
//------------------------------------------------
|
||||
|
||||
if topic.Score_type == 1 {
|
||||
test.Examiner_first_id = userId
|
||||
test.Examiner_first_score = sum
|
||||
final = true
|
||||
} else if underTest.Test_question_type == 2 && test.Examiner_first_id == "-1" {
|
||||
test.Examiner_first_id = userId
|
||||
test.Examiner_first_score = sum
|
||||
} else if underTest.Test_question_type == 2 && test.Examiner_second_id == "-1" {
|
||||
test.Examiner_second_id = userId
|
||||
test.Examiner_second_score = sum
|
||||
if math.Abs(float64(test.Examiner_second_score)-float64(test.Examiner_first_score)) <= float64(topic.Standard_error) {
|
||||
log.Println(math.Abs(float64(test.Examiner_second_score) - float64(test.Examiner_first_score)))
|
||||
sum = int64(math.Abs(float64(test.Examiner_second_score+test.Examiner_first_score)) / 2)
|
||||
final = true
|
||||
} else {
|
||||
newUnderTest := models.UnderCorrectedPaper{}
|
||||
//随机 抽一个 人
|
||||
|
||||
newUnderTest.User_id = models.FindNewUserId(test.Examiner_first_id, test.Examiner_second_id, test.Question_id)
|
||||
newUnderTest.Test_question_type = 3
|
||||
newUnderTest.Test_id = underTest.Test_id
|
||||
newUnderTest.Question_id = underTest.Question_id
|
||||
err = newUnderTest.Save()
|
||||
//查试卷小题
|
||||
err := testInfo.GetTestPaperInfo(testDetailId)
|
||||
if err != nil {
|
||||
resp := Response{"10008", "get testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//修改试卷详情表
|
||||
|
||||
|
||||
testInfo.Examiner_first_self_score=score
|
||||
|
||||
err = testInfo.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10009", "update testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
sum += score
|
||||
}
|
||||
//给试卷表打分
|
||||
|
||||
test.Examiner_first_self_score = sum
|
||||
err = test.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10005", "insert undertest fail", err}
|
||||
resp := Response{"10007", "update test fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
if underTest.Test_question_type == 0 {
|
||||
|
||||
test.Leader_id = userId
|
||||
test.Leader_score = sum
|
||||
final = true
|
||||
}
|
||||
if underTest.Test_question_type == 3 {
|
||||
test.Examiner_third_id = userId
|
||||
test.Examiner_third_score = sum
|
||||
first := math.Abs(float64(test.Examiner_third_score - test.Examiner_first_score))
|
||||
second := math.Abs(float64(test.Examiner_third_score - test.Examiner_second_score))
|
||||
var small float64
|
||||
if first <= second {
|
||||
small = first
|
||||
sum = (test.Examiner_third_score + test.Examiner_first_score) / 2
|
||||
} else {
|
||||
small = second
|
||||
sum = (test.Examiner_third_score + test.Examiner_second_score) / 2
|
||||
}
|
||||
if small <= float64(topic.Standard_error) {
|
||||
final = true
|
||||
} else {
|
||||
//删除试卷待批改表 ,增加试卷记录表
|
||||
var record models.ScoreRecord
|
||||
var underTest models.UnderCorrectedPaper
|
||||
|
||||
test.Question_status = 2
|
||||
|
||||
newUnderTest := models.UnderCorrectedPaper{}
|
||||
//阅卷组长类型默认 id 10000
|
||||
newUnderTest.User_id = "10000"
|
||||
newUnderTest.Test_question_type = 4
|
||||
newUnderTest.Test_id = underTest.Test_id
|
||||
newUnderTest.Question_id = underTest.Question_id
|
||||
err = newUnderTest.Save()
|
||||
if err != nil {
|
||||
resp := Response{"10006", "insert undertest fail", err}
|
||||
err = models.GetSelfScorePaperByTestQuestionTypeAndTestId(&underTest, testId,userId)
|
||||
if err!=nil {
|
||||
resp = Response{"20012","GetUnderCorrectedPaperByUserIdAndTestId fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
if final {
|
||||
test.Final_score = sum
|
||||
record.Test_finish=1
|
||||
}
|
||||
record.Score = sum
|
||||
record.Test_id = testId
|
||||
record.Test_record_type = underTest.Test_question_type
|
||||
record.User_id = userId
|
||||
record.Question_id=underTest.Question_id
|
||||
|
||||
err = record.Save()
|
||||
if err!=nil {
|
||||
resp = Response{"20013","Save fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
err = underTest.SelfMarkDelete()
|
||||
if err!=nil {
|
||||
resp = Response{"20014","Delete fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
if math.Abs(float64(sum-test.Examiner_first_score))>float64(standardError) {
|
||||
var newUnderTest models.UnderCorrectedPaper
|
||||
newUnderTest.User_id="10000"
|
||||
newUnderTest.Self_score_id=userId
|
||||
newUnderTest.Test_id=testId
|
||||
newUnderTest.Question_id=test.Question_id
|
||||
newUnderTest.Test_question_type=7
|
||||
newUnderTest.Save()
|
||||
}
|
||||
|
||||
}else if userId==test.Examiner_second_id {
|
||||
var sum int64
|
||||
//给试卷详情表打分
|
||||
for i := 0; i < len(testDetailIds); i++ {
|
||||
//取出小题试卷id,和小题分数
|
||||
var testInfo models.TestPaperInfo
|
||||
testDetailIdString:=testDetailIds[i]
|
||||
testDetailId, _ := strconv.ParseInt(testDetailIdString, 10, 64)
|
||||
scoreString:=scores[i]
|
||||
score, _ := strconv.ParseInt(scoreString, 10, 64)
|
||||
//------------------------------------------------
|
||||
|
||||
|
||||
//查试卷小题
|
||||
err := testInfo.GetTestPaperInfo(testDetailId)
|
||||
if err != nil {
|
||||
resp := Response{"10008", "get testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//修改试卷详情表
|
||||
|
||||
|
||||
testInfo.Examiner_second_self_score=score
|
||||
|
||||
err = testInfo.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10009", "update testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
sum += score
|
||||
}
|
||||
//给试卷表打分
|
||||
|
||||
test.Examiner_second_self_score = sum
|
||||
|
||||
err = test.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10007", "update test fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//删除试卷待批改表 ,增加试卷记录表
|
||||
var record models.ScoreRecord
|
||||
var underTest models.UnderCorrectedPaper
|
||||
|
||||
err = models.GetSelfScorePaperByTestQuestionTypeAndTestId(&underTest, testId,userId)
|
||||
if err!=nil {
|
||||
resp = Response{"20012","GetUnderCorrectedPaperByUserIdAndTestId fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
record.Score = sum
|
||||
record.Test_id = testId
|
||||
record.Test_record_type = underTest.Test_question_type
|
||||
record.User_id = userId
|
||||
record.Question_id=underTest.Question_id
|
||||
err = record.Save()
|
||||
if err!=nil {
|
||||
resp = Response{"20013","Save fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
err = underTest.SelfMarkDelete()
|
||||
if err!=nil {
|
||||
resp = Response{"20014","Delete fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
if math.Abs(float64(sum-test.Examiner_second_score))>float64(standardError) {
|
||||
var newUnderTest models.UnderCorrectedPaper
|
||||
newUnderTest.User_id="10000"
|
||||
newUnderTest.Test_id=testId
|
||||
newUnderTest.Self_score_id=userId
|
||||
newUnderTest.Question_id=test.Question_id
|
||||
newUnderTest.Test_question_type=7
|
||||
newUnderTest.Save()
|
||||
}
|
||||
|
||||
} else if userId ==test.Examiner_third_id {
|
||||
var sum int64
|
||||
//给试卷详情表打分
|
||||
for i := 0; i < len(testDetailIds); i++ {
|
||||
//取出小题试卷id,和小题分数
|
||||
var testInfo models.TestPaperInfo
|
||||
testDetailIdString:=testDetailIds[i]
|
||||
testDetailId, _ := strconv.ParseInt(testDetailIdString, 10, 64)
|
||||
scoreString:=scores[i]
|
||||
score, _ := strconv.ParseInt(scoreString, 10, 64)
|
||||
//------------------------------------------------
|
||||
|
||||
|
||||
//查试卷小题
|
||||
err := testInfo.GetTestPaperInfo(testDetailId)
|
||||
if err != nil {
|
||||
resp := Response{"10008", "get testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//修改试卷详情表
|
||||
|
||||
|
||||
testInfo.Examiner_third_self_score=score
|
||||
|
||||
err = testInfo.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10009", "update testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
sum += score
|
||||
}
|
||||
//给试卷表打分
|
||||
|
||||
test.Examiner_third_self_score = sum
|
||||
|
||||
err = test.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10007", "update test fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//删除试卷待批改表 ,增加试卷记录表
|
||||
var record models.ScoreRecord
|
||||
var underTest models.UnderCorrectedPaper
|
||||
|
||||
err = models.GetSelfScorePaperByTestQuestionTypeAndTestId(&underTest, testId,userId)
|
||||
if err!=nil {
|
||||
resp = Response{"20012","GetUnderCorrectedPaperByUserIdAndTestId fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
record.Score = sum
|
||||
record.Test_id = testId
|
||||
record.Test_record_type = underTest.Test_question_type
|
||||
record.User_id = userId
|
||||
record.Question_id=underTest.Question_id
|
||||
|
||||
err = record.Save()
|
||||
if err!=nil {
|
||||
resp = Response{"20013","Save fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
err = underTest.SelfMarkDelete()
|
||||
if err!=nil {
|
||||
resp = Response{"20014","Delete fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
if math.Abs(float64(sum-test.Examiner_third_score))>float64(standardError) {
|
||||
var newUnderTest models.UnderCorrectedPaper
|
||||
newUnderTest.User_id="10000"
|
||||
newUnderTest.Test_id=testId
|
||||
newUnderTest.Question_id=test.Question_id
|
||||
newUnderTest.Self_score_id=userId
|
||||
newUnderTest.Test_question_type=7
|
||||
newUnderTest.Save()
|
||||
}
|
||||
|
||||
err = underTest.Delete()
|
||||
if err != nil {
|
||||
resp := Response{"10006", "delete undertest fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
err = test.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10007", "update test fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
for i := 0; i < len(scores); i++ {
|
||||
score := scoreArr[i]
|
||||
var tempTest models.TestPaperInfo
|
||||
id, _ := strconv.ParseInt(testDetailIds[i], 10, 64)
|
||||
log.Println(id)
|
||||
err = tempTest.GetTestPaperInfo(id)
|
||||
if err != nil {
|
||||
resp := Response{"10008", "get testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
}else { //score数组string转int
|
||||
var scoreArr []int64
|
||||
var sum int64 = 0
|
||||
var record models.ScoreRecord
|
||||
for _, i := range scores {
|
||||
j, err := strconv.ParseInt(i, 10, 64)
|
||||
sum += j
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
scoreArr = append(scoreArr, j)
|
||||
}
|
||||
|
||||
final := false
|
||||
|
||||
if topic.Score_type == 1 {
|
||||
tempTest.Examiner_first_id = userId
|
||||
tempTest.Examiner_first_score = score
|
||||
} else if topic.Score_type == 2 && tempTest.Examiner_first_id == "-1" {
|
||||
tempTest.Examiner_first_id = userId
|
||||
tempTest.Examiner_first_score = score
|
||||
} else if topic.Score_type == 2 && tempTest.Examiner_second_id == "-1" {
|
||||
tempTest.Examiner_second_id = userId
|
||||
tempTest.Examiner_second_score = score
|
||||
test.Examiner_first_id = userId
|
||||
test.Examiner_first_score = sum
|
||||
final = true
|
||||
} else if underTest.Test_question_type == 2 && test.Examiner_first_id == "-1" {
|
||||
test.Examiner_first_id = userId
|
||||
test.Examiner_first_score = sum
|
||||
} else if underTest.Test_question_type == 2 && test.Examiner_second_id == "-1" {
|
||||
test.Examiner_second_id = userId
|
||||
test.Examiner_second_score = sum
|
||||
if math.Abs(float64(test.Examiner_second_score)-float64(test.Examiner_first_score)) <= float64(topic.Standard_error) {
|
||||
log.Println(math.Abs(float64(test.Examiner_second_score) - float64(test.Examiner_first_score)))
|
||||
sum = int64(math.Abs(float64(test.Examiner_second_score+test.Examiner_first_score)) / 2)
|
||||
final = true
|
||||
} else {
|
||||
newUnderTest := models.UnderCorrectedPaper{}
|
||||
//随机 抽一个 人
|
||||
|
||||
newUnderTest.User_id = models.FindNewUserId(test.Examiner_first_id, test.Examiner_second_id, test.Question_id)
|
||||
newUnderTest.Test_question_type = 3
|
||||
newUnderTest.Test_id = underTest.Test_id
|
||||
newUnderTest.Question_id = underTest.Question_id
|
||||
err = newUnderTest.Save()
|
||||
if err != nil {
|
||||
resp := Response{"10005", "insert undertest fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
if underTest.Test_question_type == 4 || underTest.Test_question_type == 5 {
|
||||
tempTest.Leader_id = userId
|
||||
tempTest.Leader_score = score
|
||||
} else if underTest.Test_question_type == 3 {
|
||||
tempTest.Examiner_third_id = userId
|
||||
tempTest.Examiner_third_score = score
|
||||
if underTest.Test_question_type == 0 {
|
||||
|
||||
test.Leader_id = userId
|
||||
test.Leader_score = sum
|
||||
final = true
|
||||
}
|
||||
if underTest.Test_question_type == 3 {
|
||||
test.Examiner_third_id = userId
|
||||
test.Examiner_third_score = sum
|
||||
first := math.Abs(float64(test.Examiner_third_score - test.Examiner_first_score))
|
||||
second := math.Abs(float64(test.Examiner_third_score - test.Examiner_second_score))
|
||||
var small float64
|
||||
if first <= second {
|
||||
small = first
|
||||
sum = (test.Examiner_third_score + test.Examiner_first_score) / 2
|
||||
} else {
|
||||
small = second
|
||||
sum = (test.Examiner_third_score + test.Examiner_second_score) / 2
|
||||
}
|
||||
if small <= float64(topic.Standard_error) {
|
||||
final = true
|
||||
} else {
|
||||
|
||||
test.Question_status = 2
|
||||
|
||||
newUnderTest := models.UnderCorrectedPaper{}
|
||||
//阅卷组长类型默认 id 10000
|
||||
newUnderTest.User_id = "10000"
|
||||
newUnderTest.Test_question_type = 4
|
||||
newUnderTest.Test_id = underTest.Test_id
|
||||
newUnderTest.Question_id = underTest.Question_id
|
||||
err = newUnderTest.Save()
|
||||
if err != nil {
|
||||
resp := Response{"10006", "insert undertest fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
if final {
|
||||
tempTest.Final_score = score
|
||||
|
||||
test.Final_score = sum
|
||||
record.Test_finish=1
|
||||
}
|
||||
err = tempTest.Update()
|
||||
|
||||
err = underTest.Delete()
|
||||
if err != nil {
|
||||
resp := Response{"10009", "update testPaper fail", err}
|
||||
resp := Response{"10006", "delete undertest fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
err = test.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10007", "update test fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
for i := 0; i < len(scores); i++ {
|
||||
score := scoreArr[i]
|
||||
var tempTest models.TestPaperInfo
|
||||
id, _ := strconv.ParseInt(testDetailIds[i], 10, 64)
|
||||
log.Println(id)
|
||||
err = tempTest.GetTestPaperInfo(id)
|
||||
if err != nil {
|
||||
resp := Response{"10008", "get testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
if topic.Score_type == 1 {
|
||||
tempTest.Examiner_first_id = userId
|
||||
tempTest.Examiner_first_score = score
|
||||
} else if topic.Score_type == 2 && tempTest.Examiner_first_id == "-1" {
|
||||
tempTest.Examiner_first_id = userId
|
||||
tempTest.Examiner_first_score = score
|
||||
} else if topic.Score_type == 2 && tempTest.Examiner_second_id == "-1" {
|
||||
tempTest.Examiner_second_id = userId
|
||||
tempTest.Examiner_second_score = score
|
||||
}
|
||||
if underTest.Test_question_type == 4 || underTest.Test_question_type == 5 {
|
||||
tempTest.Leader_id = userId
|
||||
tempTest.Leader_score = score
|
||||
} else if underTest.Test_question_type == 3 {
|
||||
tempTest.Examiner_third_id = userId
|
||||
tempTest.Examiner_third_score = score
|
||||
}
|
||||
if final {
|
||||
tempTest.Final_score = score
|
||||
|
||||
}
|
||||
err = tempTest.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10009", "update testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
record.Score = sum
|
||||
record.Question_id = topic.Question_id
|
||||
record.Test_id = testId
|
||||
record.Test_record_type = underTest.Test_question_type
|
||||
record.User_id = userId
|
||||
record.Score_time = time.Now()
|
||||
err = record.Save()
|
||||
if err != nil {
|
||||
resp := Response{"10010", "insert record fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
record.Score = sum
|
||||
record.Question_id = topic.Question_id
|
||||
record.Test_id = testId
|
||||
record.Test_record_type = underTest.Test_question_type
|
||||
record.User_id = userId
|
||||
record.Score_time = time.Now()
|
||||
err = record.Save()
|
||||
if err != nil {
|
||||
resp := Response{"10010", "insert record fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
resp := Response{"10000", "ok", err}
|
||||
resp = Response{"10000", "ok", err}
|
||||
c.Data["json"] = resp
|
||||
}
|
||||
|
||||
|
@ -702,291 +958,44 @@ func (c *TestPaperApiController) SelfScoreList() {
|
|||
c.Data["json"] = resp
|
||||
|
||||
}
|
||||
/**
|
||||
20.自评卷打分
|
||||
*/
|
||||
func (c *TestPaperApiController) SelfMarkPoint() {
|
||||
defer c.ServeJSON()
|
||||
var requestBody requests.TestPoint
|
||||
var resp Response
|
||||
var err error
|
||||
|
||||
err=json.Unmarshal(c.Ctx.Input.RequestBody, &requestBody)
|
||||
if err!=nil {
|
||||
resp = Response{"10001","cannot unmarshal",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
userId := requestBody.UserId
|
||||
testId := requestBody.TestId
|
||||
scoreStr:= requestBody.Scores
|
||||
testDetailIdStr:=requestBody.TestDetailId
|
||||
testDetailIds := strings.Split(testDetailIdStr, "-")
|
||||
scores := strings.Split(scoreStr, "-")
|
||||
|
||||
//---------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
//查找大题
|
||||
var test models.TestPaper
|
||||
_,err = test.GetTestPaper(testId)
|
||||
if err != nil || test.Test_id == 0 {
|
||||
resp := Response{"10002", "get test paper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
var topic models.Topic
|
||||
topic.GetTopic(test.Question_id)
|
||||
standardError := topic.Standard_error
|
||||
|
||||
//分三种情况
|
||||
if userId == test.Examiner_first_id {
|
||||
var sum int64
|
||||
//给试卷详情表打分
|
||||
for i := 0; i < len(testDetailIds); i++ {
|
||||
//取出小题试卷id,和小题分数
|
||||
var testInfo models.TestPaperInfo
|
||||
testDetailIdString:=testDetailIds[i]
|
||||
testDetailId, _ := strconv.ParseInt(testDetailIdString, 10, 64)
|
||||
scoreString:=scores[i]
|
||||
score, _ := strconv.ParseInt(scoreString, 10, 64)
|
||||
//------------------------------------------------
|
||||
|
||||
|
||||
//查试卷小题
|
||||
err := testInfo.GetTestPaperInfo(testDetailId)
|
||||
if err != nil {
|
||||
resp := Response{"10008", "get testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//修改试卷详情表
|
||||
|
||||
|
||||
testInfo.Examiner_first_self_score=score
|
||||
|
||||
err = testInfo.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10009", "update testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
sum += score
|
||||
}
|
||||
//给试卷表打分
|
||||
|
||||
test.Examiner_first_self_score = sum
|
||||
err = test.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10007", "update test fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
//删除试卷待批改表 ,增加试卷记录表
|
||||
var record models.ScoreRecord
|
||||
var underTest models.UnderCorrectedPaper
|
||||
|
||||
err = models.GetSelfScorePaperByTestQuestionTypeAndTestId(&underTest, testId,userId)
|
||||
if err!=nil {
|
||||
resp = Response{"20012","GetUnderCorrectedPaperByUserIdAndTestId fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
record.Score = sum
|
||||
record.Test_id = testId
|
||||
record.Test_record_type = underTest.Test_question_type
|
||||
record.User_id = userId
|
||||
record.Question_id=underTest.Question_id
|
||||
|
||||
err = record.Save()
|
||||
if err!=nil {
|
||||
resp = Response{"20013","Save fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
err = underTest.SelfMarkDelete()
|
||||
if err!=nil {
|
||||
resp = Response{"20014","Delete fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
|
||||
if math.Abs(float64(sum-test.Examiner_first_score))>float64(standardError) {
|
||||
var newUnderTest models.UnderCorrectedPaper
|
||||
newUnderTest.User_id="10000"
|
||||
newUnderTest.Self_score_id=userId
|
||||
newUnderTest.Test_id=testId
|
||||
newUnderTest.Question_id=test.Question_id
|
||||
newUnderTest.Test_question_type=7
|
||||
newUnderTest.Save()
|
||||
}
|
||||
|
||||
}else if userId==test.Examiner_second_id {
|
||||
var sum int64
|
||||
//给试卷详情表打分
|
||||
for i := 0; i < len(testDetailIds); i++ {
|
||||
//取出小题试卷id,和小题分数
|
||||
var testInfo models.TestPaperInfo
|
||||
testDetailIdString:=testDetailIds[i]
|
||||
testDetailId, _ := strconv.ParseInt(testDetailIdString, 10, 64)
|
||||
scoreString:=scores[i]
|
||||
score, _ := strconv.ParseInt(scoreString, 10, 64)
|
||||
//------------------------------------------------
|
||||
|
||||
|
||||
//查试卷小题
|
||||
err := testInfo.GetTestPaperInfo(testDetailId)
|
||||
if err != nil {
|
||||
resp := Response{"10008", "get testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//修改试卷详情表
|
||||
|
||||
|
||||
testInfo.Examiner_second_self_score=score
|
||||
|
||||
err = testInfo.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10009", "update testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
sum += score
|
||||
}
|
||||
//给试卷表打分
|
||||
|
||||
test.Examiner_second_self_score = sum
|
||||
|
||||
err = test.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10007", "update test fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//删除试卷待批改表 ,增加试卷记录表
|
||||
var record models.ScoreRecord
|
||||
var underTest models.UnderCorrectedPaper
|
||||
|
||||
err = models.GetSelfScorePaperByTestQuestionTypeAndTestId(&underTest, testId,userId)
|
||||
if err!=nil {
|
||||
resp = Response{"20012","GetUnderCorrectedPaperByUserIdAndTestId fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
record.Score = sum
|
||||
record.Test_id = testId
|
||||
record.Test_record_type = underTest.Test_question_type
|
||||
record.User_id = userId
|
||||
record.Question_id=underTest.Question_id
|
||||
err = record.Save()
|
||||
if err!=nil {
|
||||
resp = Response{"20013","Save fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
err = underTest.SelfMarkDelete()
|
||||
if err!=nil {
|
||||
resp = Response{"20014","Delete fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
if math.Abs(float64(sum-test.Examiner_second_score))>float64(standardError) {
|
||||
var newUnderTest models.UnderCorrectedPaper
|
||||
newUnderTest.User_id="10000"
|
||||
newUnderTest.Test_id=testId
|
||||
newUnderTest.Self_score_id=userId
|
||||
newUnderTest.Question_id=test.Question_id
|
||||
newUnderTest.Test_question_type=7
|
||||
newUnderTest.Save()
|
||||
}
|
||||
|
||||
} else if userId ==test.Examiner_third_id {
|
||||
var sum int64
|
||||
//给试卷详情表打分
|
||||
for i := 0; i < len(testDetailIds); i++ {
|
||||
//取出小题试卷id,和小题分数
|
||||
var testInfo models.TestPaperInfo
|
||||
testDetailIdString:=testDetailIds[i]
|
||||
testDetailId, _ := strconv.ParseInt(testDetailIdString, 10, 64)
|
||||
scoreString:=scores[i]
|
||||
score, _ := strconv.ParseInt(scoreString, 10, 64)
|
||||
//------------------------------------------------
|
||||
|
||||
|
||||
//查试卷小题
|
||||
err := testInfo.GetTestPaperInfo(testDetailId)
|
||||
if err != nil {
|
||||
resp := Response{"10008", "get testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//修改试卷详情表
|
||||
|
||||
|
||||
testInfo.Examiner_third_self_score=score
|
||||
|
||||
err = testInfo.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10009", "update testPaper fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
sum += score
|
||||
}
|
||||
//给试卷表打分
|
||||
|
||||
test.Examiner_third_self_score = sum
|
||||
|
||||
err = test.Update()
|
||||
if err != nil {
|
||||
resp := Response{"10007", "update test fail", err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
//删除试卷待批改表 ,增加试卷记录表
|
||||
var record models.ScoreRecord
|
||||
var underTest models.UnderCorrectedPaper
|
||||
|
||||
err = models.GetSelfScorePaperByTestQuestionTypeAndTestId(&underTest, testId,userId)
|
||||
if err!=nil {
|
||||
resp = Response{"20012","GetUnderCorrectedPaperByUserIdAndTestId fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
record.Score = sum
|
||||
record.Test_id = testId
|
||||
record.Test_record_type = underTest.Test_question_type
|
||||
record.User_id = userId
|
||||
record.Question_id=underTest.Question_id
|
||||
|
||||
err = record.Save()
|
||||
if err!=nil {
|
||||
resp = Response{"20013","Save fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
err = underTest.SelfMarkDelete()
|
||||
if err!=nil {
|
||||
resp = Response{"20014","Delete fail",err}
|
||||
c.Data["json"] = resp
|
||||
return
|
||||
}
|
||||
if math.Abs(float64(sum-test.Examiner_third_score))>float64(standardError) {
|
||||
var newUnderTest models.UnderCorrectedPaper
|
||||
newUnderTest.User_id="10000"
|
||||
newUnderTest.Test_id=testId
|
||||
newUnderTest.Question_id=test.Question_id
|
||||
newUnderTest.Self_score_id=userId
|
||||
newUnderTest.Test_question_type=7
|
||||
newUnderTest.Save()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------
|
||||
resp = Response{"10000", "OK", nil}
|
||||
c.Data["json"] = resp
|
||||
}
|
||||
///**
|
||||
//20.自评卷打分
|
||||
//*/
|
||||
//func (c *TestPaperApiController) SelfMarkPoint() {
|
||||
// defer c.ServeJSON()
|
||||
// var requestBody requests.TestPoint
|
||||
//
|
||||
//
|
||||
// err=json.Unmarshal(c.Ctx.Input.RequestBody, &requestBody)
|
||||
// if err!=nil {
|
||||
// resp = Response{"10001","cannot unmarshal",err}
|
||||
// c.Data["json"] = resp
|
||||
// return
|
||||
// }
|
||||
// userId := requestBody.UserId
|
||||
// testId := requestBody.TestId
|
||||
// scoreStr:= requestBody.Scores
|
||||
// testDetailIdStr:=requestBody.TestDetailId
|
||||
// testDetailIds := strings.Split(testDetailIdStr, "-")
|
||||
// scores := strings.Split(scoreStr, "-")
|
||||
//
|
||||
// //---------------------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
// //查找大题
|
||||
// var test models.TestPaper
|
||||
// _,err = test.GetTestPaper(testId)
|
||||
// if err != nil || test.Test_id == 0 {
|
||||
// resp := Response{"10002", "get test paper fail", err}
|
||||
// c.Data["json"] = resp
|
||||
// return
|
||||
// }
|
||||
// var topic models.Topic
|
||||
// topic.GetTopic(test.Question_id)
|
||||
//
|
||||
//
|
||||
//
|
||||
// //----------------------------------------
|
||||
// resp = Response{"10000", "OK", nil}
|
||||
// c.Data["json"] = resp
|
||||
//}
|
|
@ -1 +1 @@
|
|||
{"C:\\Users\\yang\\Desktop\\阅卷系统\\controllers":1632989080226348900}
|
||||
{"C:\\Users\\chen\\go\\src\\open-ct\\controllers":1633069342469615300}
|
|
@ -182,7 +182,7 @@ func FindProblemUnderCorrectedList(problemUnderCorrectedPaper *[] UnderCorrected
|
|||
return err
|
||||
}
|
||||
func GetDistributedTestIdPaperByUserId(id string, up *[]int64) error {
|
||||
err := x.Table("under_corrected_paper").Select("test_id").Where("user_id = ?", id).Where(" test_question_type=1 or test_question_type=2 or test_question_type=3").Find(up)
|
||||
err := x.Table("under_corrected_paper").Select("test_id").Where("user_id = ?", id).Where(" test_question_type=0 or test_question_type=1 or test_question_type=2 or test_question_type=3").Find(up)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
log.Println("could not find any paper")
|
||||
|
|
|
@ -22,7 +22,7 @@ func init() {
|
|||
beego.Router("/openct/marking/score/test/display", &controllers.TestPaperApiController{}, "post:Display")
|
||||
beego.Router("/openct/marking/score/test/list", &controllers.TestPaperApiController{}, "post:List")
|
||||
beego.Router("/openct/marking/score/self/list", &controllers.TestPaperApiController{}, "post:SelfScoreList")
|
||||
beego.Router("/openct/marking/score/self/point", &controllers.TestPaperApiController{}, "post:SelfMarkPoint")
|
||||
//beego.Router("/openct/marking/score/self/point", &controllers.TestPaperApiController{}, "post:SelfMarkPoint")
|
||||
beego.Router("/openct/marking/score/test/point", &controllers.TestPaperApiController{}, "post:Point")
|
||||
beego.Router("/openct/marking/score/test/problem", &controllers.TestPaperApiController{}, "post:Problem")
|
||||
beego.Router("/openct/marking/score/test/answer", &controllers.TestPaperApiController{}, "post:Answer")
|
||||
|
@ -58,6 +58,10 @@ func init() {
|
|||
//beego.Router("/openct/marking/admin/uploadPic",&controllers.AdminApiController{},"post:UploadPic")
|
||||
beego.Router("/openct/marking/admin/readExcel",&controllers.AdminApiController{},"post:ReadExcel")
|
||||
beego.Router("/openct/marking/admin/readExcel", &controllers.AdminApiController{}, "OPTIONS:ReadExcel")
|
||||
beego.Router("/openct/marking/admin/readExampleExcel",&controllers.AdminApiController{},"post:ReadExampleExcel")
|
||||
beego.Router("/openct/marking/admin/readExampleExcel", &controllers.AdminApiController{}, "OPTIONS:ReadExampleExcel")
|
||||
beego.Router("/openct/marking/admin/readAnswerExcel",&controllers.AdminApiController{},"post:ReadAnswerExcel")
|
||||
beego.Router("/openct/marking/admin/readAnswerExcel", &controllers.AdminApiController{}, "OPTIONS:ReadAnswerExcel")
|
||||
beego.Router("/openct/marking/admin/distribution",&controllers.AdminApiController{},"post:Distribution")
|
||||
beego.Router("/openct/marking/admin/distribution/info",&controllers.AdminApiController{},"post:DistributionInfo")
|
||||
beego.Router("/openct/marking/admin/questionBySubList",&controllers.AdminApiController{},"post:QuestionBySubList")
|
||||
|
|
Loading…
Reference in New Issue