org_team_match.go 3.07 KB
Newer Older
haoyanbin's avatar
1  
haoyanbin committed
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
package service

import (
	"errors"

	"github.com/go-admin-team/go-admin-core/sdk/service"
	"gorm.io/gorm"

	"go-admin/app/operate/models"
	"go-admin/app/operate/service/dto"
	"go-admin/common/actions"
	cDto "go-admin/common/dto"
)

type OrgTeamMatch struct {
	service.Service
}

// GetPage 获取OrgMatch列表
func (e *OrgTeamMatch) GetPage(c *dto.OrgTeamMatchGetPageReq, p *actions.DataPermission, list *[]dto.OrgTeamMatchGetPageReply, count *int64) error {
	var err error
	var data models.OrgMatch

	err = e.Orm.Table("org_match as om").
		Select("om.id, ol.league_name, od.division_name, os.season_name,om.grouping,"+
			"om.rounds, om.match_start_time, om.match_end_time, om.status,"+
haoyanbin's avatar
haoyanbin committed
27
			"ota.team_name as team_a_name, om.team_a_id, om.team_b_id, otb.team_name as team_b_name").
haoyanbin's avatar
1  
haoyanbin committed
28 29 30 31 32 33 34 35 36
		Joins("left join org_league as ol on ol.id = om.league_id").
		Joins("left join org_division as od on od.id = om.division_id").
		Joins("left join org_season as os on os.id = om.season_id").
		Joins("left join org_team as ota on ota.id = om.team_a_id").
		Joins("left join org_team as otb on otb.id = om.team_b_id").
		Scopes(
			cDto.MakeCondition(c.GetNeedSearch()),
			cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
			actions.Permission(data.TableName(), p),
haoyanbin's avatar
1  
haoyanbin committed
37
			cDto.PassDel("om"),
haoyanbin's avatar
haoyanbin committed
38
			cDto.SetWhereForMatch(c.TeamId, c.TeamIds),
haoyanbin's avatar
1  
haoyanbin committed
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
		).
		Find(list).Limit(-1).Offset(-1).
		Count(count).Error
	if err != nil {
		e.Log.Errorf("OrgMatchService GetPage error:%s \r\n", err)
		return err
	}
	return nil
}

// GetPage 获取OrgMatch列表
func (e *OrgTeamMatch) GetPageForTeam(c *dto.OrgMatchGetPageReq, p *actions.DataPermission, list *[]models.OrgMatchTeamPlayer, count *int64) error {
	var err error
	var data models.OrgMatch

	err = e.Orm.Table("org_match as om").
		Select("om.id, ol.league_name, od.division_name, os.season_name,om.grouping,"+
			"om.rounds, om.match_start_time, om.match_end_time, om.status,"+
			"ota.team_name as team_a_name, otb.team_name as team_b_name").
		Joins("left join org_league as ol on ol.id = om.league_id").
		Joins("left join org_division as od on od.id = om.division_id").
		Joins("left join org_season as os on os.id = om.season_id").
		Joins("left join org_team as ota on ota.id = om.team_a_id").
		Joins("left join org_team as otb on otb.id = om.team_b_id").
		Scopes(
			cDto.MakeCondition(c.GetNeedSearch()),
			cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
			actions.Permission(data.TableName(), p),
		).
		Find(list).Limit(-1).Offset(-1).
		Count(count).Error
	if err != nil {
		e.Log.Errorf("OrgMatchService GetPage error:%s \r\n", err)
		return err
	}
	return nil
}

// Get 获取OrgMatch对象
func (e *OrgTeamMatch) Get(id string, p *actions.DataPermission, model *models.OrgMatch) error {
	var data models.OrgMatch

	err := e.Orm.Model(&data).
		Scopes(
			actions.Permission(data.TableName(), p),
		).
		First(model, id).Error
	if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
		err = errors.New("查看对象不存在或无权查看")
		e.Log.Errorf("Service GetOrgMatch error:%s \r\n", err)
		return err
	}
	if err != nil {
		e.Log.Errorf("db error:%s", err)
		return err
	}
	return nil
}