mechanism.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package survey_result
  2. import (
  3. "surveyService/response"
  4. "surveyService/service/survey_result"
  5. "surveyService/util"
  6. "surveyService/util/constants"
  7. "surveyService/validators"
  8. "github.com/gin-gonic/gin"
  9. "gogs.uu.mdfitnesscao.com/hys/sdk"
  10. )
  11. // 获取详情
  12. func Detail(c *gin.Context) {
  13. type Validator struct {
  14. ID string `json:"id" form:"id" binding:"required"`
  15. }
  16. var validator Validator
  17. validateErr := c.ShouldBindQuery(&validator)
  18. if validateErr != nil {
  19. response.FailValidator(c, validateErr)
  20. return
  21. }
  22. authMechanism, _ := util.GetFromGinContext[*sdk.AuthMechanism](c, constants.MechanismCacheKey)
  23. surveyResult, err := survey_result.InitMechanism(authMechanism).Detail(validator.ID)
  24. if err != nil {
  25. response.Fail(c, err)
  26. return
  27. }
  28. response.Success(c, map[string]any{
  29. "detail": survey_result.Format(surveyResult, true),
  30. })
  31. }
  32. // 获取列表
  33. func Paginate(c *gin.Context) {
  34. var validator validators.SurveyResultPaginate
  35. validateErr := c.ShouldBindQuery(&validator)
  36. if validateErr != nil {
  37. response.FailValidator(c, validateErr)
  38. return
  39. }
  40. authMechanism, _ := util.GetFromGinContext[*sdk.AuthMechanism](c, constants.MechanismCacheKey)
  41. surveyResultList, total, err := survey_result.InitMechanism(authMechanism).Paginate(validator)
  42. if err != nil {
  43. response.Fail(c, err)
  44. return
  45. }
  46. var list = make([]*validators.SurveyResult, 0)
  47. for _, surveyResult := range surveyResultList {
  48. list = append(list, survey_result.Format(surveyResult, false))
  49. }
  50. response.Success(c, map[string]any{
  51. "list": list,
  52. "total": total,
  53. })
  54. }