| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -116,7 +116,8 @@ func (m *Manager) reportItem(ctx context.Context, tx *gorm.DB, item ReportReq, w
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							model.DefaultUserGradeLevel,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							model.DefaultUserGradeStar,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							0,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							item.Score)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							item.Score,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							item.Position)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						dbModel.Grade = int64(grade.Grade)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						dbModel.Level = int64(grade.Level)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						dbModel.Star = int64(grade.Star)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -142,7 +143,8 @@ func (m *Manager) reportItem(ctx context.Context, tx *gorm.DB, item ReportReq, w
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						dbModel.Level,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						dbModel.Star,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						dbModel.BravePoint,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						item.Score)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						item.Score,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						item.Position)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					dbModel.Grade = int64(grade.Grade)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					dbModel.Level = int64(grade.Level)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					dbModel.Star = int64(grade.Star)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -164,7 +166,7 @@ func (m *Manager) reportItem(ctx context.Context, tx *gorm.DB, item ReportReq, w
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					return resp, nil
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				func (m *Manager) calcRank(win bool, userCountSatisfied bool, grade, level, star, bravePoint int64, score float32) (g pb.Grade, result pb.StatPvPReportResp_GradeResult, reason pb.StatPvPReportResp_GradeReason) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				func (m *Manager) calcRank(win bool, userCountSatisfied bool, grade, level, star, bravePoint int64, score float32, position int32) (g pb.Grade, result pb.StatPvPReportResp_GradeResult, reason pb.StatPvPReportResp_GradeReason) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					g.Grade = int32(grade)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					g.Level = int32(level)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					g.Star = int32(star)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -208,6 +210,26 @@ func (m *Manager) calcRank(win bool, userCountSatisfied bool, grade, level, star
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					} else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						// 大段位保护
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if grade <= m.config.Grade.ProtectedGradeThreshold {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							g.Grade = int32(grade)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							g.Level = int32(level)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							g.Star = int32(star)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							g.BravePoint = bravePoint
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							reason = pb.StatPvPReportResp_Lost
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							result = pb.StatPvPReportResp_Keep
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						// 名次保护
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if position <= m.config.Grade.ProtectedGradeLost {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							g.Grade = int32(grade)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							g.Level = int32(level)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							g.Star = int32(star)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							g.BravePoint = bravePoint
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							reason = pb.StatPvPReportResp_Lost
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							result = pb.StatPvPReportResp_Keep
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						// 段位的骁勇分减扣规则
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						bravePointCost := m.config.Grade.BravePointCost[grade]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if bravePoint >= bravePointCost {
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |