fix(systemconfig): 首页入口展示开关与发布选项编码修复

This commit is contained in:
yml2213
2026-10-22 20:25:57 +08:00
parent 51855a0e17
commit 2ce3320d5f
16 changed files with 591 additions and 54 deletions
@@ -3,11 +3,18 @@ package systemconfig
import (
"context"
"encoding/json"
"strconv"
"strings"
"hfb_sys/backend/internal/model"
)
const homeEntriesEnabledConfigKey = "mobile.home_entries_enabled"
func defaultHomeEntriesEnabledConfigValue() string {
return "false"
}
func (s *Service) HomeAnnouncements(ctx context.Context) (*HomeAnnouncementsDTO, error) {
if s.repo == nil {
return nil, ErrDependencyUnavailable
@@ -43,12 +50,17 @@ func (s *Service) HomeConfig(ctx context.Context, siteCode string) (*HomeConfigD
if err != nil {
return nil, err
}
homeEntriesEnabled, err := s.homeEntriesEnabled(ctx)
if err != nil {
return nil, err
}
config := &HomeConfigDTO{
Announcements: announcements,
Banners: banners,
PublishOptions: publishOptions,
AWRecycle: awRecycle,
CooperationFeedback: cooperationFeedback,
HomeEntriesEnabled: homeEntriesEnabled,
}
s.applySiteHomeOverrides(ctx, siteCode, config)
return config, nil
@@ -147,3 +159,16 @@ func (s *Service) cooperationFeedback(ctx context.Context) (CooperationFeedbackC
}
return normalizeCooperationFeedback(item), nil
}
func (s *Service) homeEntriesEnabled(ctx context.Context) (bool, error) {
value, err := s.repo.FindValue(ctx, homeEntriesEnabledConfigKey)
if err != nil {
return false, err
}
return parseHomeEntriesEnabled(value), nil
}
func parseHomeEntriesEnabled(value string) bool {
enabled, err := strconv.ParseBool(strings.TrimSpace(value))
return err == nil && enabled
}