feat(listing): 优化优质号主发布与极品专区体验

This commit is contained in:
yml2213
2026-11-04 15:59:53 +08:00
parent 98174c0e33
commit e9102026ae
22 changed files with 812 additions and 88 deletions
@@ -18,6 +18,9 @@ func (s *Service) Create(ctx context.Context, ownerID uint64, req CreateRequest,
if len(siteCode) > 0 {
effectiveSiteCode = strings.TrimSpace(siteCode[0])
}
if err := s.applyPublishEntitlements(ctx, ownerID, &req); err != nil {
return nil, err
}
delta, onDistribution := s.repo.resolveSiteReceiveCostDelta(ctx, 0, effectiveSiteCode)
if err := s.applyMainSiteReceivePricing(ctx, &req, 0, delta, onDistribution); err != nil {
return nil, err
@@ -32,9 +35,6 @@ func (s *Service) Create(ctx context.Context, ownerID uint64, req CreateRequest,
if err := validateRequiredOnlineTime(req); err != nil {
return nil, err
}
if err := s.applyPublishEntitlements(ctx, ownerID, &req); err != nil {
return nil, err
}
cooldown, err := s.publishCooldown(ctx)
if err != nil {
return nil, err
@@ -54,6 +54,9 @@ func (s *Service) Update(ctx context.Context, ownerID uint64, id uint64, req Upd
if len(siteCode) > 0 {
effectiveSiteCode = strings.TrimSpace(siteCode[0])
}
if err := s.applyPublishEntitlements(ctx, ownerID, &req); err != nil {
return nil, err
}
delta, onDistribution := s.repo.resolveSiteReceiveCostDelta(ctx, id, effectiveSiteCode)
if err := s.applyMainSiteReceivePricing(ctx, &req, 0, delta, onDistribution); err != nil {
return nil, err
@@ -68,9 +71,6 @@ func (s *Service) Update(ctx context.Context, ownerID uint64, id uint64, req Upd
if err := validateRequiredOnlineTime(req); err != nil {
return nil, err
}
if err := s.applyPublishEntitlements(ctx, ownerID, &req); err != nil {
return nil, err
}
reviewRequired, err := s.reviewRequired(ctx)
if err != nil {
return nil, err
@@ -94,6 +94,7 @@ func (s *Service) applyPublishEntitlements(ctx context.Context, ownerID uint64,
if req.IsPremium && !isQualityOwner {
return ErrPremiumOwnerRequired
}
req.OwnerIsQualityOwner = isQualityOwner
req.InsuranceFeeBps = 0
if req.CompensationPlan != CompensationPlanInsurance {