209 lines
7.5 KiB
Go
209 lines
7.5 KiB
Go
package model
|
|
|
|
import (
|
|
"log"
|
|
|
|
"xorm.io/builder"
|
|
)
|
|
|
|
type UnderCorrectedPaper struct {
|
|
UnderCorrectedId int64 `json:"under_corrected_id" xorm:"pk autoincr"`
|
|
UserId int64 `json:"user_id"`
|
|
TestId int64 `json:"test_id"`
|
|
QuestionId int64 `json:"question_id"`
|
|
TestQuestionType int64 `json:"test_question_type"`
|
|
ProblemType int64 `json:"problem_type" xorm:"default(-1)"`
|
|
ProblemMessage string `json:"test_message"`
|
|
SelfScoreId int64 `json:"self_score_id"`
|
|
}
|
|
|
|
func (u *UnderCorrectedPaper) GetUnderCorrectedPaper(userId int64, testId int64) error {
|
|
has, err := adapter.engine.Where("test_id=?", testId).Where("user_id =?", userId).Get(u)
|
|
if !has || err != nil {
|
|
log.Println("could not find under corrected paper")
|
|
log.Println(err)
|
|
}
|
|
return err
|
|
}
|
|
|
|
func (u *UnderCorrectedPaper) Delete() error {
|
|
code, err := adapter.engine.Where(builder.Eq{"test_id": u.TestId, "user_id": u.UserId}).Delete(u)
|
|
if code == 0 || err != nil {
|
|
log.Println("delete fail")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func DeleteUnderCorrectedPaperByUserId(userId int64) error {
|
|
_, err := adapter.engine.Delete(&UnderCorrectedPaper{UserId: userId})
|
|
return err
|
|
}
|
|
|
|
func (u *UnderCorrectedPaper) SupervisorDelete() error {
|
|
code, err := adapter.engine.Where(builder.Eq{"test_id": u.TestId}).Where(" test_question_type =4 or test_question_type =6 or test_question_type =7").Delete(u)
|
|
if code == 0 || err != nil {
|
|
log.Println("delete fail")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func (u *UnderCorrectedPaper) SelfMarkDelete() error {
|
|
code, err := adapter.engine.Where(builder.Eq{"test_id": u.TestId}).Where(" test_question_type =0 ").Delete(u)
|
|
if code == 0 || err != nil {
|
|
log.Println("delete fail")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func (u *UnderCorrectedPaper) Save() error {
|
|
code, err := adapter.engine.Insert(u)
|
|
if code == 0 || err != nil {
|
|
log.Println("insert paper fail")
|
|
log.Println(err)
|
|
}
|
|
return err
|
|
}
|
|
|
|
func (u *UnderCorrectedPaper) IsDuplicate() (bool, error) {
|
|
var temp UnderCorrectedPaper
|
|
has, err := adapter.engine.Where(builder.Eq{"test_id": u.TestId, "problem_type": u.ProblemType}).Get(&temp)
|
|
if !has || err != nil {
|
|
log.Println(err)
|
|
}
|
|
return has, err
|
|
}
|
|
|
|
func GetDistributedPaperByUserId(id string, up *[]UnderCorrectedPaper) error {
|
|
err := adapter.engine.Where("user_id = ?", id).Find(up)
|
|
if err != nil {
|
|
log.Println("could not find any paper")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func CountRemainingTestNumberByUserId(questionId int64, userId int64) (count int64, err error) {
|
|
underCorrectedPaper := new(UnderCorrectedPaper)
|
|
count, err1 := adapter.engine.Where("question_id = ?", questionId).Where("user_id=?", userId).Where("test_question_type=1 or test_question_type=2").Count(underCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("CountRemainingTestNumberByUserId err ")
|
|
}
|
|
return count, err1
|
|
}
|
|
|
|
func CountArbitramentUnFinishNumberByQuestionId(questionId int64) (count int64, err error) {
|
|
underCorrectedPaper := new(UnderCorrectedPaper)
|
|
count, err1 := adapter.engine.Where("question_id = ?", questionId).Where("test_question_type=4").Count(underCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("CountRemainingTestNumberByUserId err ")
|
|
}
|
|
return count, err1
|
|
}
|
|
|
|
func CountProblemUnFinishNumberByQuestionId(questionId int64) (count int64, err error) {
|
|
underCorrectedPaper := new(UnderCorrectedPaper)
|
|
count, err1 := adapter.engine.Where("question_id = ?", questionId).Where("test_question_type=6").Count(underCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("CountProblemUnFinishNumberByQuestionId err ")
|
|
}
|
|
return count, err1
|
|
}
|
|
|
|
func CountUnScoreTestNumberByQuestionId(questionId int64) (count int64, err error) {
|
|
underCorrectedPaper := new(UnderCorrectedPaper)
|
|
count, err1 := adapter.engine.Where("question_id = ?", questionId).Count(underCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("CountUnScoreTestNumberByQuestionId err ")
|
|
}
|
|
return count, err1
|
|
}
|
|
|
|
func GetUnderCorrectedPaperByUserIdAndTestId(underCorrectedPaper *UnderCorrectedPaper, userId int64, testId int64) error {
|
|
_, err := adapter.engine.Where("user_id=?", userId).Where("test_id =?", testId).Where(" test_question_type !=?", 0).Get(underCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("GetUnderCorrectedPaperByUserIdAndTestId err ")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func GetUnderCorrectedSupervisorPaperByTestQuestionTypeAndTestId(underCorrectedPaper *UnderCorrectedPaper, testId int64) error {
|
|
_, err := adapter.engine.Where("test_id =?", testId).Where(" test_question_type =4 or test_question_type =6 or test_question_type =7").Get(underCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("GetUnderCorrectedPaperByUserIdAndTestId err ")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func GetSelfScorePaperByTestQuestionTypeAndTestId(underCorrectedPaper *UnderCorrectedPaper, testId int64, userId int64) error {
|
|
_, err := adapter.engine.Where("test_id =?", testId).Where(" test_question_type =0").Where("user_Id = ?", userId).Get(underCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("GetSelfScorePaperByTestQuestionTypeAndTestId err ")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func FindArbitramentUnderCorrectedPaperByQuestionId(arbitramentUnderCorrectedPaper *[]UnderCorrectedPaper, questionId int64) error {
|
|
err := adapter.engine.Where("question_id=?", questionId).Where(" test_question_type =?", 4).Find(arbitramentUnderCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("FindArbitramentUnderCorrectedPaperByQuestionId err ")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func FindAllArbitramentUnderCorrectedPaper(arbitramentUnderCorrectedPaper *[]UnderCorrectedPaper, questionId int64) error {
|
|
err := adapter.engine.Where(" test_question_type =?", 4).Where("question_id= ?", questionId).Find(arbitramentUnderCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("FindAllArbitramentUnderCorrectedPaper err ")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func FindProblemUnderCorrectedPaperByQuestionId(problemUnderCorrectedPaper *[]UnderCorrectedPaper, questionId int64) error {
|
|
err := adapter.engine.Where("question_id=?", questionId).Where(" test_question_type =?", 6).Find(problemUnderCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("FindProblemUnderCorrectedPaperByQuestionId err ")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func FindSelfUnderCorrectedPaperByQuestionId(selfUnderCorrectedPaper *[]UnderCorrectedPaper, questionId int64) error {
|
|
err := adapter.engine.Where("question_id=?", questionId).Where(" test_question_type =?", 7).Find(selfUnderCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("FindSelfUnderCorrectedPaperByQuestionId err ")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func FindSelfMarkPaperByQuestionId(selfMarkUnderCorrectedPaper *[]UnderCorrectedPaper, questionId int64) error {
|
|
err := adapter.engine.Where("question_id=?", questionId).Where(" test_question_type =?", 7).Find(selfMarkUnderCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("FindSelfMarkPaperByQuestionId err ")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func FindProblemUnderCorrectedList(problemUnderCorrectedPaper *[]UnderCorrectedPaper) error {
|
|
err := adapter.engine.Where(" test_question_type =?", 6).Find(problemUnderCorrectedPaper)
|
|
if err != nil {
|
|
log.Println("FindProblemUnderCorrectedList err ")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func GetDistributedTestIdPaperByUserId(id int64, up *[]int64) error {
|
|
err := adapter.engine.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")
|
|
}
|
|
return err
|
|
}
|
|
|
|
func GetUnMarkSelfTestIdPaperByUserId(id int64, up *[]int64) error {
|
|
err := adapter.engine.Table("under_corrected_paper").Select("test_id").Where("user_id = ?", id).Where(" test_question_type=0 ").Find(up)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
log.Println("GetUnMarkSelfTestIdPaperByUserId")
|
|
}
|
|
return err
|
|
}
|