router-exam.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package router
  2. import (
  3. "exam_system/dao"
  4. "exam_system/entity"
  5. "exam_system/result"
  6. "exam_system/utils"
  7. "github.com/gin-gonic/gin"
  8. "strings"
  9. )
  10. func Exam(router *RouterPlus) {
  11. // 查看个人考试列表
  12. router.GET("/exam/list",ExamInfoList)
  13. r := router.Group("/admin")
  14. {
  15. // 添加考试
  16. r.POST("/exam", AdminAddExam)
  17. // 获取考试
  18. r.GET("/exam/:id", AdminGetExam)
  19. // 获取考试列表
  20. r.GET("/exam/list", AdminExamList)
  21. // 修改考试
  22. r.PUT("/exam", AdminUpdateExam)
  23. // 删除考试
  24. r.DELETE("/exam/:ids", AdminDeleteExam)
  25. }
  26. }
  27. func ExamInfoList(c *gin.Context)*result.Result{
  28. page, size, sort, query, err := utils.Page(c)
  29. if err!=nil{
  30. return result.PARAM_ERROR
  31. }
  32. uid, exists := c.Get("id")
  33. if !exists{
  34. return result.UNAUTHORIZED
  35. }
  36. return dao.ExamInfoList(page,size,sort,query,uid.(int))
  37. }
  38. func AdminAddExam(c *gin.Context) *result.Result {
  39. var exam entity.Exam
  40. err := c.ShouldBindJSON(&exam)
  41. if err != nil || exam.StartAt.IsZero() || exam.EndAt.IsZero() || exam.PublishAt.IsZero() || exam.Duration == 0 || exam.ClassIds == "" || exam.TpId == 0 {
  42. return result.PARAM_ERROR
  43. }
  44. return dao.AddExam(&exam)
  45. }
  46. func AdminGetExam(c *gin.Context) *result.Result {
  47. id := c.Param("id")
  48. if id == "" {
  49. return result.UNKNOW_ERROR
  50. }
  51. return dao.ExamDetail(id)
  52. }
  53. func AdminExamList(c *gin.Context) *result.Result {
  54. page, size, sort, query, err := utils.Page(c)
  55. if err != nil {
  56. return result.PARAM_ERROR
  57. }
  58. return dao.ExamList(page, size, sort, query)
  59. }
  60. func AdminUpdateExam(c *gin.Context) *result.Result {
  61. var exam entity.Exam
  62. err := c.ShouldBindJSON(&exam)
  63. if err != nil || exam.Id == 0 || exam.StartAt.IsZero() || exam.PublishAt.IsZero() || exam.EndAt.IsZero() || exam.Duration == 0 || exam.ClassIds == "" || exam.TpId == 0 {
  64. return result.PARAM_ERROR
  65. }
  66. return dao.UpdateExam(&exam)
  67. }
  68. func AdminDeleteExam(c *gin.Context) *result.Result {
  69. idStr := c.Param("ids")
  70. if idStr == "" {
  71. return result.PARAM_ERROR
  72. }
  73. ids := strings.Split(idStr, ",")
  74. return dao.DeleteExams(ids)
  75. }