package survey_mechanism import ( "surveyService/response" "surveyService/service/survey_mechanism" "surveyService/util" "surveyService/util/constants" "surveyService/validators" "github.com/gin-gonic/gin" "gogs.uu.mdfitnesscao.com/hys/sdk" ) // 获取问卷基本信息 func DetailForMember(c *gin.Context) { type Validator struct { ID string `json:"id" form:"id" binding:"required"` } var validator Validator if validateErr := c.ShouldBindQuery(&validator); validateErr != nil { response.FailValidator(c, validateErr) return } mechanismId, _ := util.GetFromGinContext[string](c, constants.MemberMechanismIDKey) member, _ := util.GetFromGinContext[*sdk.AuthMember](c, constants.MemberCacheKey) surveyTokenData, _ := util.GetFromGinContext[*validators.SurveyToken](c, constants.SurveyTokenDataCacheKey) surveyId := validator.ID if surveyTokenData != nil { surveyId = surveyTokenData.SurveyId } survey, findErr := survey_mechanism.InitMember(member, mechanismId).Detail(surveyId) if findErr != nil { response.Fail(c, findErr) return } response.Success(c, map[string]any{ "detail": survey_mechanism.InitMember(member, mechanismId).FormatSurvey(survey), }) } // 获取问卷题目列表 func DetailQuestionsForMember(c *gin.Context) { type Validator struct { ID string `json:"id" form:"id" binding:"required"` } var validator Validator if validateErr := c.ShouldBindQuery(&validator); validateErr != nil { response.FailValidator(c, validateErr) return } mechanismId, _ := util.GetFromGinContext[string](c, constants.MemberMechanismIDKey) member, _ := util.GetFromGinContext[*sdk.AuthMember](c, constants.MemberCacheKey) surveyTokenData, _ := util.GetFromGinContext[*validators.SurveyToken](c, constants.SurveyTokenDataCacheKey) surveyId := validator.ID if surveyTokenData != nil { surveyId = surveyTokenData.SurveyId } surveyQuestions, err := survey_mechanism.InitMember(member, mechanismId).DetailSurveyQuestions(surveyId) if err != nil { response.Fail(c, err) return } response.Success(c, map[string]any{ "questions": surveyQuestions, }) } // 获取问卷列表 func ListForMember(c *gin.Context) { type Validator struct { Type int64 `json:"type" form:"type" binding:"omitempty"` } var validator Validator if validateErr := c.ShouldBindQuery(&validator); validateErr != nil { response.FailValidator(c, validateErr) return } mechanismId, _ := util.GetFromGinContext[string](c, constants.MemberMechanismIDKey) member, _ := util.GetFromGinContext[*sdk.AuthMember](c, constants.MemberCacheKey) // if validator.Type == 0 { // validator.Type = 1 // } surveyMechanismList := survey_mechanism.InitMember(member, mechanismId).List( validator.Type, ) var list []*validators.SurveyMechanism = make([]*validators.SurveyMechanism, 0) for _, surveyMechanism := range surveyMechanismList { list = append(list, survey_mechanism.InitMember(member, mechanismId).FormatSurvey(surveyMechanism)) } response.Success(c, map[string]any{ "list": list, }) }