member.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package survey_mechanism
  2. import (
  3. "surveyService/response"
  4. "surveyService/service/survey_mechanism"
  5. "surveyService/util"
  6. "surveyService/util/constants"
  7. "surveyService/validators"
  8. "github.com/gin-gonic/gin"
  9. "gogs.uu.mdfitnesscao.com/cuiguohai/sdk"
  10. )
  11. // 获取问卷基本信息
  12. func DetailForMember(c *gin.Context) {
  13. type Validator struct {
  14. ID string `json:"id" form:"id" binding:"required"`
  15. }
  16. var validator Validator
  17. if validateErr := c.ShouldBindQuery(&validator); validateErr != nil {
  18. response.FailValidator(c, validateErr)
  19. return
  20. }
  21. mechanismId, _ := util.GetFromGinContext[string](c, constants.MemberMechanismIDKey)
  22. member, _ := util.GetFromGinContext[*sdk.AuthMember](c, constants.MemberCacheKey)
  23. surveyTokenData, _ := util.GetFromGinContext[*validators.SurveyToken](c, constants.SurveyTokenDataCacheKey)
  24. surveyId := validator.ID
  25. if surveyTokenData != nil {
  26. surveyId = surveyTokenData.SurveyId
  27. }
  28. survey, findErr := survey_mechanism.InitMember(member, mechanismId).Detail(surveyId)
  29. if findErr != nil {
  30. response.Fail(c, findErr)
  31. return
  32. }
  33. response.Success(c, map[string]any{
  34. "detail": survey_mechanism.InitMember(member, mechanismId).FormatSurvey(survey),
  35. })
  36. }
  37. // 获取问卷题目列表
  38. func DetailQuestionsForMember(c *gin.Context) {
  39. type Validator struct {
  40. ID string `json:"id" form:"id" binding:"required"`
  41. }
  42. var validator Validator
  43. if validateErr := c.ShouldBindQuery(&validator); validateErr != nil {
  44. response.FailValidator(c, validateErr)
  45. return
  46. }
  47. mechanismId, _ := util.GetFromGinContext[string](c, constants.MemberMechanismIDKey)
  48. member, _ := util.GetFromGinContext[*sdk.AuthMember](c, constants.MemberCacheKey)
  49. surveyTokenData, _ := util.GetFromGinContext[*validators.SurveyToken](c, constants.SurveyTokenDataCacheKey)
  50. surveyId := validator.ID
  51. if surveyTokenData != nil {
  52. surveyId = surveyTokenData.SurveyId
  53. }
  54. surveyQuestions, err := survey_mechanism.InitMember(member, mechanismId).DetailSurveyQuestions(surveyId)
  55. if err != nil {
  56. response.Fail(c, err)
  57. return
  58. }
  59. response.Success(c, map[string]any{
  60. "questions": surveyQuestions,
  61. })
  62. }
  63. // 获取问卷列表
  64. func ListForMember(c *gin.Context) {
  65. type Validator struct {
  66. Type int64 `json:"type" form:"type" binding:"omitempty"`
  67. }
  68. var validator Validator
  69. if validateErr := c.ShouldBindQuery(&validator); validateErr != nil {
  70. response.FailValidator(c, validateErr)
  71. return
  72. }
  73. mechanismId, _ := util.GetFromGinContext[string](c, constants.MemberMechanismIDKey)
  74. member, _ := util.GetFromGinContext[*sdk.AuthMember](c, constants.MemberCacheKey)
  75. // if validator.Type == 0 {
  76. // validator.Type = 1
  77. // }
  78. surveyMechanismList := survey_mechanism.InitMember(member, mechanismId).List(
  79. validator.Type,
  80. )
  81. var list []*validators.SurveyMechanism = make([]*validators.SurveyMechanism, 0)
  82. for _, surveyMechanism := range surveyMechanismList {
  83. list = append(list, survey_mechanism.InitMember(member, mechanismId).FormatSurvey(surveyMechanism))
  84. }
  85. response.Success(c, map[string]any{
  86. "list": list,
  87. })
  88. }