123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- 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{})
- }
|