feat: Studio 概览/分析补上阅读量 + 详情页 meta 行改版
- StudioOverview 新增 TotalViews 字段,GetOverviewByUserID 查询含 SUM(views_count) - 新增 ViewTrendStore 接口和 AggregateViewsByAuthor,UNION ALL 合并已登录+访客阅读日志按日期聚合 - 数据分析页面新增阅读量趋势折线图(绿色,Chart.js) - 概览和数据分析页面新增总阅读量统计卡片 - 详情页 meta 行改为标签格式:作者/阅读/点赞/收藏/评论/发布时间 - 移除详情页公开状态徽章,已锁定+理由仅作者可见
This commit is contained in:
@ -12,6 +12,7 @@ type TrendResult struct {
|
||||
Comments []TrendPoint `json:"comments"`
|
||||
Likes []TrendPoint `json:"likes"`
|
||||
Favorites []TrendPoint `json:"favorites"`
|
||||
Views []TrendPoint `json:"views"`
|
||||
}
|
||||
|
||||
// TrendsService Studio 趋势分析服务
|
||||
@ -20,15 +21,17 @@ type TrendsService struct {
|
||||
commentRepo CommentTrendStore
|
||||
likeRepo LikeTrendStore
|
||||
favoriteRepo FavoriteTrendStore
|
||||
viewRepo ViewTrendStore
|
||||
}
|
||||
|
||||
// NewTrendsService 构造函数
|
||||
func NewTrendsService(energyRepo EnergyTrendStore, commentRepo CommentTrendStore, likeRepo LikeTrendStore, favoriteRepo FavoriteTrendStore) *TrendsService {
|
||||
func NewTrendsService(energyRepo EnergyTrendStore, commentRepo CommentTrendStore, likeRepo LikeTrendStore, favoriteRepo FavoriteTrendStore, viewRepo ViewTrendStore) *TrendsService {
|
||||
return &TrendsService{
|
||||
energyRepo: energyRepo,
|
||||
commentRepo: commentRepo,
|
||||
likeRepo: likeRepo,
|
||||
favoriteRepo: favoriteRepo,
|
||||
viewRepo: viewRepo,
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,6 +76,15 @@ func (s *TrendsService) GetTrends(userID uint, since string) (*TrendResult, erro
|
||||
return nil
|
||||
})
|
||||
|
||||
g.Go(func() error {
|
||||
var err error
|
||||
result.Views, err = s.viewRepo.AggregateViewsByAuthor(userID, since)
|
||||
if err != nil {
|
||||
return fmt.Errorf("查询阅读趋势: %w", err)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
if err := g.Wait(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user