From 2dc1387b59786d66c16de0c70157df60bd348cc9 Mon Sep 17 00:00:00 2001 From: feitianbubu Date: Thu, 18 Jun 2026 23:06:01 +0800 Subject: [PATCH] fix(promo): allow clearing promo code expiry on edit --- backend/internal/handler/admin/promo_handler.go | 2 +- backend/internal/service/promo_service.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/internal/handler/admin/promo_handler.go b/backend/internal/handler/admin/promo_handler.go index 77d5f17165..34a44a81f1 100644 --- a/backend/internal/handler/admin/promo_handler.go +++ b/backend/internal/handler/admin/promo_handler.go @@ -148,7 +148,7 @@ func (h *PromoHandler) Update(c *gin.Context) { if req.ExpiresAt != nil { if *req.ExpiresAt == 0 { // 0 表示清除过期时间 - input.ExpiresAt = nil + input.ExpiresAt = &time.Time{} } else { t := time.Unix(*req.ExpiresAt, 0) input.ExpiresAt = &t diff --git a/backend/internal/service/promo_service.go b/backend/internal/service/promo_service.go index 5ff63bdc50..b85f7e4808 100644 --- a/backend/internal/service/promo_service.go +++ b/backend/internal/service/promo_service.go @@ -236,6 +236,9 @@ func (s *PromoService) Update(ctx context.Context, id int64, input *UpdatePromoC promoCode.Status = *input.Status } if input.ExpiresAt != nil { + if input.ExpiresAt.IsZero() { + input.ExpiresAt = nil + } promoCode.ExpiresAt = input.ExpiresAt } if input.Notes != nil {