package survey import ( "surveyService/response" "surveyService/service/survey" "surveyService/validators" "github.com/gin-gonic/gin" ) // 创建问卷 func UpdateOrCreate(c *gin.Context) { var validator *validators.Survey validateErr := c.ShouldBind(&validator) if validateErr != nil { response.FailValidator(c, validateErr) return } err := survey.UpdateOrCreate(validator) if err != nil { response.Fail(c, err) return } response.Success(c, map[string]any{}) } // 获取问卷基本信息 func Detail(c *gin.Context) { type Validator struct { ID string `json:"id" form:"id" binding:"required"` } var validator Validator validateErr := c.ShouldBind(&validator) if validateErr != nil { response.FailValidator(c, validateErr) return } surveyModel, err := survey.FindBySn(validator.ID) if err != nil { response.Fail(c, err) return } response.Success(c, map[string]any{ "detail": survey.Format(surveyModel), }) } // 获取问卷列表 func List(c *gin.Context) { type Validator struct { Key string `json:"key" form:"key" binding:"omitempty"` SurveyCode string `json:"surveyCode" form:"surveyCode" binding:"omitempty"` Status int `json:"status" form:"status" binding:"omitempty,min=1,max=2"` } var validator Validator validateErr := c.ShouldBind(&validator) if validateErr != nil { response.FailValidator(c, validateErr) return } surveys := survey.List(validator.Key, validator.SurveyCode, validator.Status) formatedSurveys := make([]*validators.Survey, 0) for _, surveyModel := range surveys { formatedSurveys = append(formatedSurveys, survey.Format(surveyModel)) } response.Success(c, map[string]any{ "list": formatedSurveys, }) } // 分页获取问卷列表 func Paginate(c *gin.Context) { type Validator struct { Page int `json:"page" form:"page" binding:"omitempty,min=1"` PageSize int `json:"pageSize" form:"pageSize" binding:"omitempty,min=1"` Key string `json:"key" form:"key" binding:"omitempty"` SurveyCode string `json:"surveyCode" form:"surveyCode" binding:"omitempty"` Status int `json:"status" form:"status" binding:"omitempty,min=1,max=2"` } var validator Validator validateErr := c.ShouldBind(&validator) if validateErr != nil { response.FailValidator(c, validateErr) return } surveys, total := survey.Paginate(validator.Page, validator.PageSize, validator.Key, validator.SurveyCode, validator.Status) formatedSurveys := make([]*validators.Survey, 0) for _, surveyModel := range surveys { formatedSurveys = append(formatedSurveys, survey.Format(surveyModel)) } response.Success(c, map[string]any{ "list": formatedSurveys, "total": total, }) } // 修改备注 func UpdateRemark(c *gin.Context) { type Validator struct { ID string `json:"id" form:"id" binding:"required"` Remark string `json:"remark" form:"remark" binding:"required"` } var validator Validator validateErr := c.ShouldBind(&validator) if validateErr != nil { response.FailValidator(c, validateErr) return } err := survey.UpdateRemark(validator.ID, validator.Remark) if err != nil { response.Fail(c, err) return } response.Success(c, map[string]any{}) } // 修改状态 func UpdateStatus(c *gin.Context) { type Validator struct { ID string `json:"id" form:"id" binding:"required"` Status int `json:"status" form:"status" binding:"required,min=1,max=2"` } var validator Validator validateErr := c.ShouldBind(&validator) if validateErr != nil { response.FailValidator(c, validateErr) return } err := survey.UpdateStatus(validator.ID, validator.Status) if err != nil { response.Fail(c, err) return } response.Success(c, map[string]any{}) }