🐛 Fix wrongly count aggressive view counts
This commit is contained in:
		@@ -35,22 +35,22 @@ func FlushPostViews() {
 | 
			
		||||
	workingQueue := make([]models.PostView, len(postViewQueue))
 | 
			
		||||
	copy(workingQueue, postViewQueue)
 | 
			
		||||
	clear(postViewQueue)
 | 
			
		||||
	updateRequiredPost := make(map[uint]bool)
 | 
			
		||||
	updateRequiredPost := make(map[uint]int)
 | 
			
		||||
	for _, item := range workingQueue {
 | 
			
		||||
		updateRequiredPost[item.PostID] = true
 | 
			
		||||
		updateRequiredPost[item.PostID]++
 | 
			
		||||
	}
 | 
			
		||||
	workingQueue = lo.UniqBy(workingQueue, func(item models.PostView) string {
 | 
			
		||||
		return fmt.Sprintf("%d:%d", item.PostID, item.AccountID)
 | 
			
		||||
	})
 | 
			
		||||
	_ = database.C.Clauses(clause.OnConflict{DoNothing: true}).CreateInBatches(workingQueue, 1000).Error
 | 
			
		||||
	for k := range updateRequiredPost {
 | 
			
		||||
	for k, v := range updateRequiredPost {
 | 
			
		||||
		var count int64
 | 
			
		||||
		if err := database.C.Model(&models.PostView{}).Where("post_id = ?", k).Count(&count).Error; err != nil {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		database.C.Model(&models.Post{}).Where("id = ?", k).Updates(map[string]any{
 | 
			
		||||
			"total_views":            count,
 | 
			
		||||
			"total_aggressive_views": gorm.Expr("total_aggressive_views + ?", count),
 | 
			
		||||
			"total_aggressive_views": gorm.Expr("total_aggressive_views + ?", v),
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user