refactor: replace standard log with zap logger and optimize code patterns

- Migrate all log.Printf/log.Println calls to structured zap logging
- Use cmp.Or for cleaner default value handling
- Replace manual loops with slices.ContainsFunc/IndexFunc
- Add batch query methods (IsLikedBatch, IsFavoritedBatch) to solve N+1 problem
- Update JSON tags from omitempty to omitzero for numeric fields
- Use errgroup-style wg.Go for worker goroutines
- Remove duplicate casbin/v2 dependency (keeping v3)
- Add plans/ to gitignore
This commit is contained in:
lafay
2026-03-17 00:47:17 +08:00
parent b028f7e1d3
commit 5d6c982c9c
38 changed files with 2256 additions and 290 deletions

View File

@@ -2,10 +2,11 @@ package service
import (
"context"
"log"
"strings"
"carrot_bbs/internal/pkg/openai"
"go.uber.org/zap"
)
// PostModerationRejectedError 帖子审核拒绝错误
@@ -73,7 +74,9 @@ func (s *PostAIService) ModeratePost(ctx context.Context, title, content string,
if s.openAIClient.Config().StrictModeration {
return err
}
log.Printf("[WARN] AI moderation failed, fallback allow: %v", err)
zap.L().Warn("AI moderation failed, fallback allow",
zap.Error(err),
)
return nil
}
if !approved {
@@ -93,7 +96,9 @@ func (s *PostAIService) ModerateComment(ctx context.Context, content string, ima
if s.openAIClient.Config().StrictModeration {
return err
}
log.Printf("[WARN] AI comment moderation failed, fallback allow: %v", err)
zap.L().Warn("AI comment moderation failed, fallback allow",
zap.Error(err),
)
return nil
}
if !approved {