router.go 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package router
  2. import (
  3. "net/http"
  4. "surveyService/controller/callback"
  5. "surveyService/controller/questionnaire_subject"
  6. "surveyService/controller/questionnaire_survey"
  7. "surveyService/controller/questionnaire_template"
  8. "surveyService/controller/survey"
  9. "surveyService/controller/survey_mechanism"
  10. "surveyService/controller/survey_result"
  11. "surveyService/middleware"
  12. "github.com/gin-gonic/gin"
  13. "gogs.uu.mdfitnesscao.com/hys/sdk/constants"
  14. )
  15. func Init() *gin.Engine {
  16. router := gin.Default()
  17. router.Use(middleware.Cors())
  18. router.GET("/ping", func(c *gin.Context) {
  19. c.String(http.StatusOK, "The Server is Running")
  20. })
  21. // 后台API
  22. backendApiRouter := router.Group("/backend")
  23. backendApiRouter.Use(middleware.Authorize())
  24. {
  25. // |------ 问卷管理
  26. // 获取问卷列表
  27. backendApiRouter.GET("/survey/list", survey.List)
  28. // 创建问卷
  29. backendApiRouter.POST("/survey/updateOrCreate", middleware.PermissionCheck(constants.UserPermissionSurveyEdit), survey.UpdateOrCreate)
  30. // 获取问卷详情
  31. backendApiRouter.GET("/survey/detail", middleware.PermissionCheck(constants.UserPermissionSurveyView), survey.Detail)
  32. // 获取问卷列表(分页)
  33. backendApiRouter.GET("/survey/paginate", middleware.PermissionCheck(constants.UserPermissionSurveyView), survey.Paginate)
  34. // 修改问卷备注
  35. backendApiRouter.POST("/survey/update/remark", middleware.PermissionCheck(constants.UserPermissionSurveyEdit), survey.UpdateRemark)
  36. // 修改问卷状态
  37. backendApiRouter.POST("/survey/update/status", middleware.PermissionCheck(constants.UserPermissionSurveyEdit), survey.UpdateStatus)
  38. // |------ 问卷授权管理
  39. // 创建问卷授权
  40. backendApiRouter.POST("/surveyAuthorize/create", middleware.PermissionCheck(constants.UserPermissionSurveyAuthorizeEdit), survey_mechanism.CreateForManage)
  41. // 获取问卷已被授权的机构列表
  42. backendApiRouter.GET("/surveyAuthorize/listMechanismIds", middleware.PermissionCheck(constants.UserPermissionSurveyAuthorizeView), survey_mechanism.ListMechanismIdsForSurveyForManage)
  43. // 获取授权列表
  44. backendApiRouter.GET("/surveyAuthorize/paginate", middleware.PermissionCheck(constants.UserPermissionSurveyAuthorizeView), survey_mechanism.PaginateForManage)
  45. // 修改授权状态
  46. backendApiRouter.POST("/surveyAuthorize/update/status", middleware.PermissionCheck(constants.UserPermissionSurveyAuthorizeEdit), survey_mechanism.UpdateAuthorizeStatusForManage)
  47. // |------ 问卷结果管理
  48. // 获取问卷结果列表
  49. backendApiRouter.GET("/surveyResult/paginate", middleware.PermissionCheck(constants.UserPermissionSurveyResultView), survey_result.PaginateForManage)
  50. // 获取问卷结果详情
  51. backendApiRouter.GET("/surveyResult/detail", middleware.PermissionCheck(constants.UserPermissionSurveyResultView), survey_result.DetailForManage)
  52. // 重新执行一次算法
  53. backendApiRouter.POST("/surveyResult/run", middleware.PermissionCheck(constants.UserPermissionSurveyResultEdit), survey_result.RunForManage)
  54. // |------基础问卷管理
  55. // 获取问卷列表(不要权限)
  56. backendApiRouter.GET("/questionnaireSurvey/list", questionnaire_survey.List)
  57. // 获取问题模板列表
  58. backendApiRouter.GET("/algor/questionnaireTemplate/list", questionnaire_template.List)
  59. // 获取问题库列表
  60. backendApiRouter.GET("/algor/questionnaireSubject/list", questionnaire_subject.List)
  61. // 将问题库和问题模板缓存到Redis
  62. backendApiRouter.GET("/algor/questionnaire/cache", questionnaire_survey.CacheList)
  63. }
  64. // 机构API
  65. mechanismApiRouter := router.Group("/mechanism")
  66. mechanismApiRouter.Use(middleware.AuthorizeMechanism())
  67. {
  68. // |------ 问卷管理
  69. // 获取问卷列表
  70. mechanismApiRouter.GET("/survey/paginate", middleware.PermissionCheckStaff(constants.MechanismStaffPermissionSurveyView), survey_mechanism.Paginate)
  71. // 修改问卷状态
  72. mechanismApiRouter.POST("/survey/update/status", middleware.PermissionCheckStaff(constants.MechanismStaffPermissionSurveyEdit), survey_mechanism.UpdateStatus)
  73. // 修改问卷信息
  74. mechanismApiRouter.POST("/survey/update", middleware.PermissionCheckStaff(constants.MechanismStaffPermissionSurveyEdit), survey_mechanism.Update)
  75. // 获取问卷详情
  76. mechanismApiRouter.GET("/survey/detail", middleware.PermissionCheckStaff(constants.MechanismStaffPermissionSurveyView), survey_mechanism.Detail)
  77. // 获取问卷详情(转译系统)
  78. mechanismApiRouter.GET("/survey/detail/config", middleware.PermissionCheckStaff(constants.MechanismStaffPermissionSurveyView), survey_mechanism.DetailSurveyConfig)
  79. // |------ 问卷结果管理
  80. // 获取问卷结果列表
  81. mechanismApiRouter.GET("/surveyResult/paginate", middleware.PermissionCheckStaff(constants.MechanismStaffPermissionSurveyResultView), survey_result.Paginate)
  82. // 获取问卷结果详情
  83. mechanismApiRouter.GET("/surveyResult/detail", middleware.PermissionCheckStaff(constants.MechanismStaffPermissionSurveyResultView), survey_result.Detail)
  84. // |------基础问卷管理
  85. // 获取问卷列表(不要权限)
  86. mechanismApiRouter.GET("/questionnaireSurvey/list", questionnaire_survey.List)
  87. // 获取问题模板列表
  88. mechanismApiRouter.GET("/algor/questionnaireTemplate/list", questionnaire_template.List)
  89. // 获取问题库列表
  90. mechanismApiRouter.GET("/algor/questionnaireSubject/list", questionnaire_subject.List)
  91. }
  92. memberApiRouter := router.Group("/member")
  93. memberApiRouter.Use(middleware.MemberMechanism(), middleware.AuthorizeMember())
  94. {
  95. // |------ 问卷
  96. // 获取问卷列表
  97. memberApiRouter.GET("/survey/list", survey_mechanism.ListForMember)
  98. // 获取我的评测记录
  99. memberApiRouter.GET("/surveyResult/paginate", survey_result.PaginateForMember)
  100. }
  101. // 下面的接口支持用户端使用,支持第三方凭证使用
  102. // 鉴于middleware的执行顺序,AuthorizeMember必须放在AuthorizeSurveyToken后面,否则会导致AuthorizeSurveyToken校验无效
  103. memberApiRouter.Use(middleware.MemberMechanism(), middleware.AuthorizeSurveyToken(), middleware.AuthorizeMember())
  104. {
  105. // |------ 问卷
  106. // 获取问卷详情
  107. memberApiRouter.GET("/survey/detail", survey_mechanism.DetailForMember)
  108. // 获取问卷题目列表
  109. memberApiRouter.GET("/survey/detail/questions", survey_mechanism.DetailQuestionsForMember)
  110. // 创建答题结果
  111. memberApiRouter.POST("/surveyResult/create", survey_result.CreateSurveyResultForMember)
  112. // 提交答题结果
  113. memberApiRouter.POST("/surveyResult/submit", survey_result.SubmitSurveyResultForMember)
  114. // 创建答题结果
  115. memberApiRouter.POST("/surveyResult/createAndSubmit", survey_result.CreateAndSubmitSurveyResultForMember)
  116. // 获取问卷结果
  117. memberApiRouter.GET("/surveyResult/detail", survey_result.DetailSurveyResultForMember)
  118. // 获取最后一份问卷结果
  119. memberApiRouter.GET("/surveyResult/detail/last", survey_result.DetailLastSurveyResultForMember)
  120. }
  121. callbackApiRouter := router.Group("/callback")
  122. // 问卷结果回调
  123. callbackApiRouter.POST("/survey/result", callback.CallbackSurveyResult)
  124. callbackApiRouter.POST("/survey/sync", callback.CallbackSurveySync)
  125. // 外部开发接口
  126. externalOpenApiRouter := router.Group("/external/openapi")
  127. // 新增机构ID拦截
  128. externalOpenApiRouter.Use(middleware.AuthorizeMechanismByAppKey())
  129. {
  130. // 获取已授权的问卷列表
  131. externalOpenApiRouter.POST("/survey/list", survey_mechanism.List)
  132. // 通过某个问卷编号获取H5端问卷答题地址
  133. externalOpenApiRouter.POST("/survey/link", survey_mechanism.GetLinkBySurveyId)
  134. // 通过某个问卷结果编号获取H5端结果页地址
  135. externalOpenApiRouter.POST("/survey/result/link", survey_result.GetLinkBySurveyResultId)
  136. }
  137. // 内部开放接口
  138. openApiRouter := router.Group("/openapi")
  139. // 获取问题模板列表
  140. openApiRouter.POST("/questionnaireTemplate/list", questionnaire_template.List)
  141. // 获取问题库列表
  142. openApiRouter.POST("/questionnaireSubject/list", questionnaire_subject.List)
  143. return router
  144. }