org_match_team_player.go 3.71 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 20 21 22 23 24 25 26 27 28
	"go-admin/common/actions"
	cDto "go-admin/common/dto"
)

type OrgMatchTeamPlayer struct {
	service.Service
}

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

	err = e.Orm.Model(&data).
		Scopes(
			cDto.MakeCondition(c.GetNeedSearch()),
			cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
			actions.Permission(data.TableName(), p),
haoyanbin's avatar
haoyanbin committed
29 30
			cDto.SetWhere("", "team_id", c.TeamId),
			cDto.SetWhere("", "match_id", c.MatchId),
haoyanbin's avatar
haoyanbin committed
31
			cDto.SetWhere("", "rounds", c.Rounds),
haoyanbin's avatar
1  
haoyanbin committed
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
		).
		Find(list).Limit(-1).Offset(-1).
		Count(count).Error
	if err != nil {
		e.Log.Errorf("OrgMatchTeamPlayerService GetPage error:%s \r\n", err)
		return err
	}
	return nil
}

// Get 获取OrgMatchTeamPlayer对象
func (e *OrgMatchTeamPlayer) Get(d *dto.OrgMatchTeamPlayerGetReq, p *actions.DataPermission, model *models.OrgMatchTeamPlayer) error {
	var data models.OrgMatchTeamPlayer

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

// Insert 创建OrgMatchTeamPlayer对象
func (e *OrgMatchTeamPlayer) Insert(c *dto.OrgMatchTeamPlayerInsertReq) error {
haoyanbin's avatar
haoyanbin committed
65 66 67
	var err error
	var data models.OrgMatchTeamPlayer
	c.Generate(&data)
haoyanbin's avatar
1  
haoyanbin committed
68 69 70 71 72 73 74 75 76 77
	err = e.Orm.Create(&data).Error
	if err != nil {
		e.Log.Errorf("OrgMatchTeamPlayerService Insert error:%s \r\n", err)
		return err
	}
	return nil
}

// Update 修改OrgMatchTeamPlayer对象
func (e *OrgMatchTeamPlayer) Update(c *dto.OrgMatchTeamPlayerUpdateReq, p *actions.DataPermission) error {
haoyanbin's avatar
haoyanbin committed
78 79 80 81 82 83
	var err error
	var data = models.OrgMatchTeamPlayer{}
	e.Orm.Scopes(
		actions.Permission(data.TableName(), p),
	).First(&data, c.GetId())
	c.Generate(&data)
haoyanbin's avatar
1  
haoyanbin committed
84

haoyanbin's avatar
haoyanbin committed
85
	db := e.Orm.Updates(&data)
haoyanbin's avatar
haoyanbin committed
86 87 88 89 90 91 92 93
	if db.Error != nil {
		e.Log.Errorf("OrgMatchTeamPlayerService Save error:%s \r\n", err)
		return err
	}
	if db.RowsAffected == 0 {
		return errors.New("无权更新该数据")
	}
	return nil
haoyanbin's avatar
1  
haoyanbin committed
94 95 96 97 98 99 100 101 102
}

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

	db := e.Orm.Model(&data).
		Scopes(
			actions.Permission(data.TableName(), p),
haoyanbin's avatar
haoyanbin committed
103 104 105 106 107
			cDto.SetWhere("", "match_id", d.MatchId),
			cDto.SetWhere("", "rounds", d.Rounds),
			cDto.SetWhere("", "team_id", d.TeamId),
			cDto.SetWhereNotIn("", "player_id", d.Ids),
		).Delete(&data)
haoyanbin's avatar
1  
haoyanbin committed
108
	if err := db.Error; err != nil {
haoyanbin's avatar
haoyanbin committed
109 110 111 112 113 114
		e.Log.Errorf("Service RemoveOrgMatchTeamPlayer error:%s \r\n", err)
		return err
	}
	if db.RowsAffected == 0 {
		return errors.New("无权删除该数据")
	}
haoyanbin's avatar
1  
haoyanbin committed
115
	return nil
haoyanbin's avatar
haoyanbin committed
116 117 118
}

// Insert 创建OrgMatchTeamPlayer对象
haoyanbin's avatar
haoyanbin committed
119
func (e *OrgMatchTeamPlayer) IsBeing(matchId string, rounds string, playerId string) (error, int) {
haoyanbin's avatar
haoyanbin committed
120 121 122
	var data models.OrgMatchTeamPlayer

	err := e.Orm.Model(&data).
haoyanbin's avatar
haoyanbin committed
123 124 125 126
		Where("match_id=?", matchId).
		Where("rounds=?", rounds).
		Where("player_id=?", playerId).
		First(&data).Error
haoyanbin's avatar
haoyanbin committed
127 128 129
	if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
		err = errors.New("查看对象不存在或无权查看")
		e.Log.Errorf("Service GetOrgMatchTeamPlayer error:%s \r\n", err)
haoyanbin's avatar
haoyanbin committed
130
		return err, 0
haoyanbin's avatar
haoyanbin committed
131 132 133
	}
	if err != nil {
		e.Log.Errorf("db error:%s", err)
haoyanbin's avatar
haoyanbin committed
134
		return err, 0
haoyanbin's avatar
haoyanbin committed
135
	}
haoyanbin's avatar
haoyanbin committed
136
	return nil, data.Id
haoyanbin's avatar
haoyanbin committed
137
}