diff --git a/internal/handler/admin/miniapp/miniapp_handler.go b/internal/handler/admin/miniapp/miniapp_handler.go index cffe2fe..c6870b4 100644 --- a/internal/handler/admin/miniapp/miniapp_handler.go +++ b/internal/handler/admin/miniapp/miniapp_handler.go @@ -104,11 +104,11 @@ func (h *Handler) UpdateStatus(c *gin.Context) { return } var req miniappsvc.StatusReq - if err := c.ShouldBindJSON(&req); err != nil { + if err := c.ShouldBindJSON(&req); err != nil || req.Status == nil { c.Error(errors.ErrBadRequest) return } - m, err := h.svc.UpdateStatus(c.Request.Context(), id, req.Status) + m, err := h.svc.UpdateStatus(c.Request.Context(), id, *req.Status) if err != nil { c.Error(err) return diff --git a/internal/service/admin/miniapp/miniapp_service.go b/internal/service/admin/miniapp/miniapp_service.go index 5c5c894..f58b924 100644 --- a/internal/service/admin/miniapp/miniapp_service.go +++ b/internal/service/admin/miniapp/miniapp_service.go @@ -118,8 +118,9 @@ func (s *Service) Delete(ctx context.Context, id uint64) error { } // StatusReq 更新小程序状态请求。状态仅允许 0(禁用)或 1(启用)。 +// 使用 *int8 以区分「未提供」与「置为 0」,避免整型零值被 required 误判为缺参。 type StatusReq struct { - Status int8 `json:"status" binding:"required,oneof=0 1"` + Status *int8 `json:"status" binding:"required,oneof=0 1"` } // UpdateStatus 按 ID 更新小程序状态(0 禁用、1 启用),返回更新后的小程序。