org_match.go 4.22 KB
Newer Older
haoyanbin's avatar
1  
haoyanbin committed
1 2 3 4 5
package service

import (
	"errors"

haoyanbin's avatar
haoyanbin committed
6
	"github.com/go-admin-team/go-admin-core/sdk/service"
haoyanbin's avatar
1  
haoyanbin committed
7 8
	"gorm.io/gorm"

haoyanbin's avatar
1  
haoyanbin committed
9 10
	"go-admin/app/operate/models"
	"go-admin/app/operate/service/dto"
haoyanbin's avatar
1  
haoyanbin committed
11 12 13 14 15 16 17 18 19
	"go-admin/common/actions"
	cDto "go-admin/common/dto"
)

type OrgMatch struct {
	service.Service
}

// GetPage 获取OrgMatch列表
haoyanbin's avatar
haoyanbin committed
20
func (e *OrgMatch) GetPage(c *dto.OrgMatchGetPageReq, p *actions.DataPermission, list *[]dto.OrgMatchGetPageReply, count *int64) error {
haoyanbin's avatar
1  
haoyanbin committed
21 22 23
	var err error
	var data models.OrgMatch

haoyanbin's avatar
haoyanbin committed
24 25 26
	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
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
		).
		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 *OrgMatch) 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").
haoyanbin's avatar
1  
haoyanbin committed
62 63 64
		Scopes(
			cDto.MakeCondition(c.GetNeedSearch()),
			cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
haoyanbin's avatar
1  
haoyanbin committed
65
			cDto.PassDel("om"),
haoyanbin's avatar
1  
haoyanbin committed
66 67 68 69 70 71 72 73 74 75 76 77
			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对象
haoyanbin's avatar
haoyanbin committed
78
func (e *OrgMatch) Get(id string, p *actions.DataPermission, model *models.OrgMatch) error {
haoyanbin's avatar
1  
haoyanbin committed
79 80 81 82 83 84
	var data models.OrgMatch

	err := e.Orm.Model(&data).
		Scopes(
			actions.Permission(data.TableName(), p),
		).
haoyanbin's avatar
haoyanbin committed
85
		First(model, id).Error
haoyanbin's avatar
1  
haoyanbin committed
86 87 88 89 90 91 92 93 94 95 96 97 98 99
	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
}

// Insert 创建OrgMatch对象
func (e *OrgMatch) Insert(c *dto.OrgMatchInsertReq) error {
haoyanbin's avatar
haoyanbin committed
100 101 102
	var err error
	var data models.OrgMatch
	c.Generate(&data)
haoyanbin's avatar
1  
haoyanbin committed
103 104 105 106 107 108 109 110 111 112
	err = e.Orm.Create(&data).Error
	if err != nil {
		e.Log.Errorf("OrgMatchService Insert error:%s \r\n", err)
		return err
	}
	return nil
}

// Update 修改OrgMatch对象
func (e *OrgMatch) Update(c *dto.OrgMatchUpdateReq, p *actions.DataPermission) error {
haoyanbin's avatar
haoyanbin committed
113 114 115 116 117 118
	var err error
	var data = models.OrgMatch{}
	e.Orm.Scopes(
		actions.Permission(data.TableName(), p),
	).First(&data, c.GetId())
	c.Generate(&data)
haoyanbin's avatar
1  
haoyanbin committed
119

haoyanbin's avatar
haoyanbin committed
120
	db := e.Orm.Updates(&data)
haoyanbin's avatar
haoyanbin committed
121 122 123 124 125 126 127 128
	if db.Error != nil {
		e.Log.Errorf("OrgMatchService Save error:%s \r\n", err)
		return err
	}
	if db.RowsAffected == 0 {
		return errors.New("无权更新该数据")
	}
	return nil
haoyanbin's avatar
1  
haoyanbin committed
129 130 131 132 133 134 135 136 137 138 139
}

// Remove 删除OrgMatch
func (e *OrgMatch) Remove(d *dto.OrgMatchDeleteReq, p *actions.DataPermission) error {
	var data models.OrgMatch

	db := e.Orm.Model(&data).
		Scopes(
			actions.Permission(data.TableName(), p),
		).Delete(&data, d.GetId())
	if err := db.Error; err != nil {
haoyanbin's avatar
haoyanbin committed
140 141 142 143 144 145
		e.Log.Errorf("Service RemoveOrgMatch error:%s \r\n", err)
		return err
	}
	if db.RowsAffected == 0 {
		return errors.New("无权删除该数据")
	}
haoyanbin's avatar
1  
haoyanbin committed
146
	return nil
haoyanbin's avatar
haoyanbin committed
147
}