1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package service
import (
"github.com/go-admin-team/go-admin-core/sdk/service"
cDto "go-admin/common/dto"
"go-admin/common/utils"
"sort"
"strconv"
"go-admin/app/mobile/service/dto"
"go-admin/common/actions"
)
type OrgTeamRank struct {
service.Service
}
// GetPage 获取OrgMatchEvaluate列表
func (e *OrgTeamRank) GetPage(c *dto.OrgPlayerRankGetPageReq, p *actions.DataPermission, list *[]dto.OrgPlayerRankGetPageReply, count *int64) error {
var err error
err = e.Orm.Table("org_match_team_player as omtp").
Select("ol.league_name, omtp.player_name, omtp.player_id as id, omtp.player_number,"+
"sum(omtp.scoring)as scoring,"+
"sum(omtp.rebound)as rebound,"+
"sum(omtp.assist)as assist,"+
"sum(omtp.steal)as steal,"+
"sum(omtp.free_throw)as free_throw,"+
"sum(omtp.block_shot)as block_shot,"+
"sum(omtp.foul)as foul,"+
"sum(omtp.two_point_shot)as two_point_shot,"+
"sum(omtp.three_point_shot)as three_point_shot").
Joins("left join org_team as ot on ot.id = omtp.team_id").
Joins("left join org_player as op on op.id = omtp.player_id").
Joins("left join org_match as om on omtp.match_id = om.id and omtp.rounds = om.rounds").
Joins("left join org_league as ol on ol.id = om.league_id").
Scopes(
cDto.MakeCondition(c.GetNeedSearch()),
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
actions.Permission("omtp", p),
cDto.PassDel("omtp"),
cDto.SetWhere("omtp", "league_id", c.LeagueId),
).
Group("omtp.player_id").
Find(list).Limit(-1).Offset(-1).
Count(count).Error
if err != nil {
e.Log.Errorf("OrgClubPlayer GetPage error:%s \r\n", err)
return err
}
if c.TypeName == "scoring" {
e.rankingScoring(list)
}
return nil
}
func (e *OrgTeamRank) rankingScoring(list *[]dto.OrgPlayerRankGetPageReply) {
listData := *list
sort.Slice(listData, func(i, j int) bool {
return utils.StringToFloat(listData[i].Scoring) > utils.StringToFloat(listData[j].Scoring)
})
for k := range listData {
listData[k].Rank = strconv.Itoa(k + 1)
}
}