external.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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 List(c *gin.Context) {
  13. // type Validator struct {
  14. // Key string `json:"key" form:"key" binding:"omitempty"`
  15. // Status int `json:"status" form:"status" binding:"omitempty,min=1,max=2"`
  16. // }
  17. // var validator Validator
  18. // validateErr := c.ShouldBind(&validator)
  19. // if validateErr != nil {
  20. // response.FailValidator(c, validateErr)
  21. // return
  22. // }
  23. mechanismInfo, _ := util.GetFromGinContext[*sdk.AuthMechanism](c, constants.MechanismOpenAPICacheKey)
  24. surveyMechanisms := survey_mechanism.InitMechanism(mechanismInfo).List(0, "")
  25. var list []*validators.SurveyMechanism = make([]*validators.SurveyMechanism, 0)
  26. for _, surveyMechanism := range surveyMechanisms {
  27. list = append(list, survey_mechanism.Format(surveyMechanism, nil, false))
  28. }
  29. response.Success(c, map[string]any{
  30. "list": list,
  31. })
  32. }
  33. // 通过某个问卷编号获取H5端问卷答题地址
  34. func GetLinkBySurveyId(c *gin.Context) {
  35. type Validator struct {
  36. Extra string `json:"extra" form:"extra" binding:"required"` // 自定义参数
  37. SurveyId string `json:"surveyId" form:"surveyId" binding:"required"` // 问卷编号
  38. }
  39. var validator Validator
  40. if err := c.ShouldBind(&validator); err != nil {
  41. response.FailValidator(c, err)
  42. return
  43. }
  44. mechanismInfo, _ := util.GetFromGinContext[*sdk.AuthMechanism](c, constants.MechanismOpenAPICacheKey)
  45. link, expiredIn, linkErr := survey_mechanism.InitMechanism(mechanismInfo).GetSurveyVisitLink(validator.SurveyId, validator.Extra)
  46. if linkErr != nil {
  47. response.Fail(c, linkErr)
  48. return
  49. }
  50. response.Success(c, map[string]any{
  51. "link": link,
  52. "linkExpiredIn": expiredIn,
  53. })
  54. }