package handlers import ( "github.com/gin-gonic/gin" "gorm.io/gorm" "soda-api/backend/internal/models" "soda-api/backend/internal/utils" ) type MemberHandler struct { db *gorm.DB } func NewMemberHandler(db *gorm.DB) *MemberHandler { return &MemberHandler{db: db} } func (h *MemberHandler) List(c *gin.Context) { var members []models.Member if err := h.db.Find(&members).Error; err != nil { utils.JSONError(c, 500, "获取会员失败") return } utils.JSONSuccess(c, members) } func (h *MemberHandler) Create(c *gin.Context) { var member models.Member if err := c.ShouldBindJSON(&member); err != nil { utils.JSONError(c, 400, "请填写完整的会员信息") return } if err := h.db.Create(&member).Error; err != nil { utils.JSONError(c, 500, "创建会员失败") return } utils.JSONSuccess(c, member) } func (h *MemberHandler) Update(c *gin.Context) { var member models.Member if err := h.db.First(&member, c.Param("id")).Error; err != nil { utils.JSONError(c, 404, "会员不存在") return } if err := c.ShouldBindJSON(&member); err != nil { utils.JSONError(c, 400, "数据无效") return } if err := h.db.Save(&member).Error; err != nil { utils.JSONError(c, 500, "更新失败") return } utils.JSONSuccess(c, member) } func (h *MemberHandler) Delete(c *gin.Context) { if err := h.db.Delete(&models.Member{}, c.Param("id")).Error; err != nil { utils.JSONError(c, 500, "删除失败") return } utils.JSONSuccess(c, gin.H{"message": "删除成功"}) }