[BugFix] ReviewCount: GetApprovalCounts func sorted wrong (#11086)
* FIX by simplify * code reformat and optimize
This commit is contained in:
		
							parent
							
								
									0040f8bf67
								
							
						
					
					
						commit
						a4cab2bbfa
					
				| 
						 | 
				
			
			@ -523,29 +523,27 @@ func (issues IssueList) GetApprovalCounts() (map[int64][]*ReviewCount, error) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
func (issues IssueList) getApprovalCounts(e Engine) (map[int64][]*ReviewCount, error) {
 | 
			
		||||
	rCounts := make([]*ReviewCount, 0, 6*len(issues))
 | 
			
		||||
	rCounts := make([]*ReviewCount, 0, 2*len(issues))
 | 
			
		||||
	ids := make([]int64, len(issues))
 | 
			
		||||
	for i, issue := range issues {
 | 
			
		||||
		ids[i] = issue.ID
 | 
			
		||||
	}
 | 
			
		||||
	sess := e.In("issue_id", ids)
 | 
			
		||||
	err := sess.Select("issue_id, type, count(id) as `count`").Where("official = ?", true).GroupBy("issue_id, type").OrderBy("issue_id").Table("review").Find(&rCounts)
 | 
			
		||||
	err := sess.Select("issue_id, type, count(id) as `count`").
 | 
			
		||||
		Where("official = ?", true).
 | 
			
		||||
		GroupBy("issue_id, type").
 | 
			
		||||
		OrderBy("issue_id").
 | 
			
		||||
		Table("review").
 | 
			
		||||
		Find(&rCounts)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	approvalCountMap := make(map[int64][]*ReviewCount, len(issues))
 | 
			
		||||
	if len(rCounts) > 0 {
 | 
			
		||||
		start := 0
 | 
			
		||||
		lastID := rCounts[0].IssueID
 | 
			
		||||
		for i, current := range rCounts[1:] {
 | 
			
		||||
			if lastID != current.IssueID {
 | 
			
		||||
				approvalCountMap[lastID] = rCounts[start:i]
 | 
			
		||||
				start = i
 | 
			
		||||
				lastID = current.IssueID
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		approvalCountMap[lastID] = rCounts[start:]
 | 
			
		||||
 | 
			
		||||
	for _, c := range rCounts {
 | 
			
		||||
		approvalCountMap[c.IssueID] = append(approvalCountMap[c.IssueID], c)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return approvalCountMap, nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue