package questionnaire_template import ( "surveyService/response" "surveyService/service/questionnaire_template" "surveyService/validators" "github.com/gin-gonic/gin" ) // 修改或创建 func UpdateOrCreate(c *gin.Context) { var validator validators.QuestionnaireTemplate err := c.ShouldBind(&validator) if err != nil { response.FailValidator(c, err) return } var updateErr *response.ErrCode if validator.ID > 0 { updateErr = questionnaire_template.Update(&validator) } else { updateErr = questionnaire_template.Create(&validator) } if updateErr != nil { response.Fail(c, updateErr) return } response.Success(c, map[string]any{}) } // 分页获取列表 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,max=100"` Key string `json:"key" form:"key" binding:"omitempty"` } var validator Validator err := c.ShouldBindQuery(&validator) if err != nil { response.FailValidator(c, err) return } subjects, total := questionnaire_template.Paginate(validator.Page, validator.PageSize, validator.Key) var list []*validators.QuestionnaireTemplate = make([]*validators.QuestionnaireTemplate, 0) for _, item := range subjects { list = append(list, questionnaire_template.Format(item)) } response.Success(c, map[string]any{ "list": list, "total": total, }) } // 分页获取列表 func Detail(c *gin.Context) { type Validator struct { ID int64 `json:"id" form:"id" binding:"required"` } var validator Validator err := c.ShouldBindQuery(&validator) if err != nil { response.FailValidator(c, err) return } subject, errCode := questionnaire_template.Find(validator.ID) if errCode != nil { response.Fail(c, errCode) return } response.Success(c, map[string]any{ "detail": questionnaire_template.Format(subject), }) } // 获取全部列表 func List(c *gin.Context) { type Validator struct { Key string `json:"key" form:"key" binding:"omitempty"` } var validator Validator err := c.ShouldBindQuery(&validator) if err != nil { response.FailValidator(c, err) return } subjects := questionnaire_template.List(validator.Key) var list []*validators.QuestionnaireTemplate = make([]*validators.QuestionnaireTemplate, 0) for _, item := range subjects { list = append(list, questionnaire_template.Format(item)) } response.Success(c, map[string]any{ "list": list, }) } // 删除 func Delete(c *gin.Context) { type Validator struct { ID int64 `json:"id" form:"id" binding:"required"` } var validator Validator err := c.ShouldBind(&validator) if err != nil { response.FailValidator(c, err) return } deleteErr := questionnaire_template.Delete(validator.ID) if deleteErr != nil { response.Fail(c, deleteErr) return } response.Success(c, map[string]any{}) } // 删除 func UpdatePeg(c *gin.Context) { type Validator struct { ID int64 `json:"id" form:"id" binding:"required"` Peg string `json:"peg" form:"peg" binding:"required"` } var validator Validator err := c.ShouldBind(&validator) if err != nil { response.FailValidator(c, err) return } updateErr := questionnaire_template.UpdatePeg(validator.ID, validator.Peg) if updateErr != nil { response.Fail(c, updateErr) return } response.Success(c, map[string]any{}) } // 获取关联的问题库列表 func ListQuestionnaireSubject(c *gin.Context) { type Validator struct { ID int64 `json:"id" form:"id" binding:"required"` } var validator Validator err := c.ShouldBind(&validator) if err != nil { response.FailValidator(c, err) return } subjects := questionnaire_template.ListSubjects(validator.ID) var list []*validators.QuestionnaireTemplateSubject for _, subject := range subjects { list = append(list, questionnaire_template.FormatTemplateSubject(subject)) } response.Success(c, map[string]any{ "list": list, }) } // 批量添加关联的问题库 func AddQuestionnaireSubject(c *gin.Context) { type Validator struct { ID int64 `json:"id" form:"id" binding:"required"` SubjectIds []int64 `json:"subjectIds" form:"subjectIds" binding:"required"` } var validator Validator err := c.ShouldBind(&validator) if err != nil { response.FailValidator(c, err) return } addErr := questionnaire_template.AddSubject(validator.ID, validator.SubjectIds) if addErr != nil { response.Fail(c, addErr) return } response.Success(c, map[string]any{}) } // 移除关联的问题库 func DeleteQuestionnaireSubject(c *gin.Context) { type Validator struct { ID int64 `json:"id" form:"id" binding:"required"` SubjectIds []int64 `json:"subjectIds" form:"subjectIds" binding:"required"` } var validator Validator err := c.ShouldBind(&validator) if err != nil { response.FailValidator(c, err) return } removeErr := questionnaire_template.DeleteSubject(validator.ID, validator.SubjectIds) if removeErr != nil { response.Fail(c, removeErr) return } response.Success(c, map[string]any{}) } // 批量修改关联问题库的排序 func UpdateQuestionnaireSubjectSort(c *gin.Context) { type Validator struct { ID int64 `json:"id" form:"id" binding:"required"` SubjectIds []int64 `json:"subjectIds" form:"subjectIds" binding:"required"` } var validator Validator err := c.ShouldBind(&validator) if err != nil { response.FailValidator(c, err) return } updateErr := questionnaire_template.UpdateSort(validator.ID, validator.SubjectIds) if updateErr != nil { response.Fail(c, updateErr) return } response.Success(c, map[string]any{}) }