// @Tilte 我的统计数据 // @router /echart [get] func (this *ViewStudentController) Echart() { // get the term list term_list, err := models.GetTermListByStudentCourse(this.Data["student"].(*models.Student).Id) if err != nil { this.Redirect("/error", 302) this.StopRun() } // get all student course for k, _ := range term_list { term_list[k].Orgs = make(map[string]interface{}) if s_courses, err := models.GetStudentCourseByTerm(term_list[k], this.Data["student"].(*models.Student).Id); err == nil { s_courses = models.FilterRepeat(s_courses).([]*models.StudentCourse) // get the score for k, v := range s_courses { if score, err := models.SearchStudentGrade(v.Id); err == nil { score.StudentCourse = nil s_courses[k].TeacherCourse.Term = nil s_courses[k].Score = score } else { continue } if s_homeworks, err := models.GetStudentHomeworkByStudentCourse(v, this.Data["student"].(*models.Student).Id); err == nil { s_courses[k].Orgs = make(map[string]interface{}) s_courses[k].Orgs["s_homeworks"] = s_homeworks } else { continue } if s_checks, err := models.GetStudentChecksByTeacherCourseAndStudent(v.TeacherCourse, this.Data["student"].(*models.Student).Id); err == nil { s_courses[k].Orgs["s_checks"] = s_checks } else { continue } } term_list[k].Orgs["s_course"] = s_courses } } this.Data["term_list"] = models.RankingTerm(term_list) this.Layout = "student/base.html" this.LayoutSections = make(map[string]string) this.LayoutSections["Head_html"] = "student/head/info_head.html" this.LayoutSections["Scripts"] = "student/scripts/echart_scripts.html" this.TplNames = "student/echart.html" }
// @Tilte 我的成绩 // @router /studentScore [get] func (this *ViewStudentController) StudentScore() { // get the term list term_list, err := models.GetTermListByStudentCourse(this.Data["student"].(*models.Student).Id) if err != nil { this.Redirect("/error", 302) this.StopRun() } var term *models.Term xnd := this.GetString("xnd") if len(xnd) > 0 { xqd, _ := this.GetInt("xqd") arr := strings.Split(xnd, "-") if len(arr) != 2 { this.Redirect("/error", 302) this.StopRun() } startYear, _ := strconv.Atoi(arr[0]) endYear, _ := strconv.Atoi(arr[1]) term, err = models.SearchTerm(xqd, startYear, endYear) if err != nil { this.Redirect("/error", 302) this.StopRun() } } else { // get the now term term, err = models.GetTermByTimeNow() if err != nil { this.Redirect("/error", 302) this.StopRun() } } this.Data["term"] = term // get the student course if s_courses, err := models.GetStudentCourseByTerm(term, this.Data["student"].(*models.Student).Id); err == nil { s_courses = models.FilterRepeat(s_courses).([]*models.StudentCourse) // get the score for k, v := range s_courses { if score, err := models.SearchStudentGrade(v.Id); err == nil { s_courses[k].Score = score } else { continue } } this.Data["s_courses"] = s_courses for k, v := range term_list { if term.Id == v.Id { term_list[k].Orgs = make(map[string]interface{}) for k1, _ := range s_courses { s_courses[k1].TeacherCourse.Term = nil s_courses[k1].Score.StudentCourse = nil } term_list[k].Orgs["s_course"] = s_courses } } } else { this.Redirect("/error", 302) this.StopRun() } // get all student course for k, v := range term_list { if term.Id != v.Id { term_list[k].Orgs = make(map[string]interface{}) if s_courses, err := models.GetStudentCourseByTerm(term_list[k], this.Data["student"].(*models.Student).Id); err == nil { s_courses = models.FilterRepeat(s_courses).([]*models.StudentCourse) // get the score for k, v := range s_courses { if score, err := models.SearchStudentGrade(v.Id); err == nil { score.StudentCourse = nil s_courses[k].TeacherCourse.Term = nil s_courses[k].Score = score } else { continue } } term_list[k].Orgs["s_course"] = s_courses } } } this.Data["term_list"] = models.RankingTerm(term_list) this.Layout = "student/base.html" this.LayoutSections = make(map[string]string) this.LayoutSections["Head_html"] = "student/head/score_head.html" this.LayoutSections["Scripts"] = "student/scripts/score_scripts.html" this.TplNames = "student/score.html" }