// Package controller 控制层 package controller import ( "server/common" "server/modules/yx/entity" "server/modules/yx/service" "strconv" "github.com/gin-gonic/gin" ) type YxVolunteerController struct { service *service.YxVolunteerService } func NewYxVolunteerController() *YxVolunteerController { return &YxVolunteerController{service: service.NewYxVolunteerService()} } // RegisterRoutes 注册路由 func (ctrl *YxVolunteerController) RegisterRoutes(rg *gin.RouterGroup) { group := rg.Group("/yx-volunteers") { group.GET("", ctrl.List) group.GET("/:id", ctrl.Get) group.POST("", ctrl.Create) group.PUT("/:id", ctrl.Update) group.DELETE("/:id", ctrl.Delete) } } // List 获取志愿列表 // @Summary 获取志愿列表 // @Tags 志愿 // @Param page query int false "页码" default(1) // @Param size query int false "每页数量" default(10) // @Success 200 {object} common.Response // @Router /yx-volunteers [get] func (ctrl *YxVolunteerController) List(c *gin.Context) { page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) size, _ := strconv.Atoi(c.DefaultQuery("size", "10")) items, total, err := ctrl.service.List(page, size) if err != nil { common.Error(c, 500, err.Error()) return } common.Success(c, gin.H{ "items": items, "total": total, }) } // Get 获取单个志愿 // @Summary 获取单个志愿 // @Tags 志愿 // @Param id path string true "ID" // @Success 200 {object} common.Response // @Router /yx-volunteers/{id} [get] func (ctrl *YxVolunteerController) Get(c *gin.Context) { id := c.Param("id") item, err := ctrl.service.GetByID(id) if err != nil { common.Error(c, 404, "未找到记录") return } common.Success(c, item) } // Create 创建志愿 // @Summary 创建志愿 // @Tags 志愿 // @Param item body entity.YxVolunteer true "志愿信息" // @Success 200 {object} common.Response // @Router /yx-volunteers [post] func (ctrl *YxVolunteerController) Create(c *gin.Context) { var item entity.YxVolunteer if err := c.ShouldBindJSON(&item); err != nil { common.Error(c, 400, "参数错误") return } if err := ctrl.service.Create(&item); err != nil { common.Error(c, 500, err.Error()) return } common.Success(c, item) } // Update 更新志愿 // @Summary 更新志愿 // @Tags 志愿 // @Param id path string true "ID" // @Param item body entity.YxVolunteer true "志愿信息" // @Success 200 {object} common.Response // @Router /yx-volunteers/{id} [put] func (ctrl *YxVolunteerController) Update(c *gin.Context) { var item entity.YxVolunteer if err := c.ShouldBindJSON(&item); err != nil { common.Error(c, 400, "参数错误") return } item.ID = c.Param("id") if err := ctrl.service.Update(&item); err != nil { common.Error(c, 500, err.Error()) return } common.Success(c, item) } // Delete 删除志愿 // @Summary 删除志愿 // @Tags 志愿 // @Param id path string true "ID" // @Success 200 {object} common.Response // @Router /yx-volunteers/{id} [delete] func (ctrl *YxVolunteerController) Delete(c *gin.Context) { id := c.Param("id") if err := ctrl.service.Delete(id); err != nil { common.Error(c, 500, err.Error()) return } common.Success(c, nil) }