mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Backport #31447 by kiatt210 Fix #29065 Remove status filtering from GetUIDsAndNotificationCounts sql. Co-authored-by: kiatt210 <40639725+kiatt210@users.noreply.github.com> Co-authored-by: kiatt210 <kiatt210@github.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		@@ -286,13 +286,14 @@ type UserIDCount struct {
 | 
				
			|||||||
	Count  int64
 | 
						Count  int64
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetUIDsAndNotificationCounts between the two provided times
 | 
					// GetUIDsAndNotificationCounts returns the unread counts for every user between the two provided times.
 | 
				
			||||||
 | 
					// It must return all user IDs which appear during the period, including count=0 for users who have read all.
 | 
				
			||||||
func GetUIDsAndNotificationCounts(ctx context.Context, since, until timeutil.TimeStamp) ([]UserIDCount, error) {
 | 
					func GetUIDsAndNotificationCounts(ctx context.Context, since, until timeutil.TimeStamp) ([]UserIDCount, error) {
 | 
				
			||||||
	sql := `SELECT user_id, count(*) AS count FROM notification ` +
 | 
						sql := `SELECT user_id, sum(case when status= ? then 1 else 0 end) AS count FROM notification ` +
 | 
				
			||||||
		`WHERE user_id IN (SELECT user_id FROM notification WHERE updated_unix >= ? AND ` +
 | 
							`WHERE user_id IN (SELECT user_id FROM notification WHERE updated_unix >= ? AND ` +
 | 
				
			||||||
		`updated_unix < ?) AND status = ? GROUP BY user_id`
 | 
							`updated_unix < ?) GROUP BY user_id`
 | 
				
			||||||
	var res []UserIDCount
 | 
						var res []UserIDCount
 | 
				
			||||||
	return res, db.GetEngine(ctx).SQL(sql, since, until, NotificationStatusUnread).Find(&res)
 | 
						return res, db.GetEngine(ctx).SQL(sql, NotificationStatusUnread, since, until).Find(&res)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SetIssueReadBy sets issue to be read by given user.
 | 
					// SetIssueReadBy sets issue to be read by given user.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user