From 0138a3fb9c2d43732d3de80f715aa3e1d11e3b37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E8=BF=9B?= Date: Sat, 7 Nov 2026 22:50:37 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BB=B6=E6=9C=9F=E8=B5=84=E6=A0=BC?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=A5=97=E9=A4=90=E5=90=8D=E7=A7=B0=E3=80=81?= =?UTF-8?q?=E8=B5=84=E4=BA=A7=E3=80=81=E8=AE=A2=E8=B4=AD=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E3=80=81=E5=88=B0=E6=9C=9F=E6=97=B6=E9=97=B4=E4=B8=8E=E6=B2=89?= =?UTF-8?q?=E9=BB=98=E6=9C=9F=E6=88=AA=E6=AD=A2=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packagesilence/extension_service.go | 16 +++++++++++++++- internal/model/dto/package_silence_dto.go | 6 ++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/internal/application/packagesilence/extension_service.go b/internal/application/packagesilence/extension_service.go index 7b1e71b7..c6e6b9f5 100644 --- a/internal/application/packagesilence/extension_service.go +++ b/internal/application/packagesilence/extension_service.go @@ -270,7 +270,21 @@ func (s *ExtensionService) Eligibility(ctx context.Context, usageID uint, scope if err != nil { return nil, err } - return eligibilityResponse(facts), nil + resp := eligibilityResponse(facts) + // 办理延期时一并展示套餐订购时间、到期时间与沉默期截止时间 + resp.PackageName = usage.PackageName + resp.PurchasedAt = usage.SilenceStartAt + if resp.PurchasedAt == nil { + createdAt := usage.CreatedAt + resp.PurchasedAt = &createdAt + } + resp.ActivatedAt = usage.ActivatedAt + resp.ExpiresAt = usage.ExpiresAt + resp.SilenceDeadlineAt = usage.SilenceDeadlineAt + if identifier, idErr := assetIdentifier(ctx, s.db, usage); idErr == nil { + resp.AssetIdentifier = identifier + } + return resp, nil } // Quote 按输入天数试算付费延期。 diff --git a/internal/model/dto/package_silence_dto.go b/internal/model/dto/package_silence_dto.go index f410d940..f62474dd 100644 --- a/internal/model/dto/package_silence_dto.go +++ b/internal/model/dto/package_silence_dto.go @@ -115,6 +115,12 @@ type SilenceExtensionOption struct { // SilenceEligibilityResponse 延期资格(技术方案 §12.2),金额与月数全部由后端计算。 type SilenceEligibilityResponse struct { PackageUsageID uint `json:"package_usage_id" description:"套餐记录 ID"` + PackageName string `json:"package_name,omitempty" description:"套餐名称"` + AssetIdentifier string `json:"asset_identifier,omitempty" description:"资产标识"` + PurchasedAt *time.Time `json:"purchased_at,omitempty" description:"套餐订购时间(购买支付成功时间)"` + ActivatedAt *time.Time `json:"activated_at,omitempty" description:"套餐生效时间(未实名激活时为空)"` + ExpiresAt *time.Time `json:"expires_at,omitempty" description:"套餐到期时间(未实名激活时为空)"` + SilenceDeadlineAt *time.Time `json:"silence_deadline_at,omitempty" description:"沉默期截止时间(截止日 23:59:59)"` SilenceStatus string `json:"silence_status" description:"沉默期状态(待实名但已到期的先判定为过期)"` CanExtend bool `json:"can_extend" description:"能否办理付费延期"` SpecialExtensionAvailable bool `json:"special_extension_available" description:"能否申请特殊延期(只要求套餐已过期)"`