Commit 4877c269 authored by haoyanbin's avatar haoyanbin

赛事管理

parent 754b285d
......@@ -2,6 +2,8 @@ package apis
import (
"fmt"
"strconv"
"strings"
"github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/sdk/api"
......@@ -80,11 +82,91 @@ func (e OrgMatch) Get(c *gin.Context) {
p := actions.GetPermissionFromContext(c)
err = s.Get(&req, p, &object)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取比赛失败,\r\n失败信息 %s", err.Error()))
//e.Error(500, err, fmt.Sprintf("获取比赛失败,\r\n失败信息 %s", err.Error()))
//return
}
//联赛级别列表
sOrgLeague := service.OrgLeague{}
listOrgLeague := make([]models.OrgLeague, 0)
var countOrgLeague int64 = 0
err = e.MakeContext(c).MakeOrm().MakeService(&sOrgLeague.Service).Errors
reqOrgLeague := new(dto.OrgLeagueGetPageReq)
reqOrgLeague.PageIndex = 1
reqOrgLeague.PageSize = 999
err = sOrgLeague.GetPage(reqOrgLeague, p, &listOrgLeague, &countOrgLeague)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取联赛 失败,\r\n失败信息 %s", err.Error()))
return
}
//赛季列表
sOrgSeason := service.OrgSeason{}
listOrgSeason := make([]models.OrgSeason, 0)
var countOrgSeason int64 = 0
err = e.MakeContext(c).MakeOrm().MakeService(&sOrgSeason.Service).Errors
reqOrgSeason := new(dto.OrgSeasonGetPageReq)
reqOrgSeason.PageIndex = 1
reqOrgSeason.PageSize = 999
err = sOrgSeason.GetPage(reqOrgSeason, p, &listOrgSeason, &countOrgSeason)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取联赛 失败,\r\n失败信息 %s", err.Error()))
return
}
//赛区列表
sOrgDivision := service.OrgDivision{}
listOrgDivision := make([]models.OrgDivision, 0)
var countOrgDivision int64 = 0
err = e.MakeContext(c).MakeOrm().MakeService(&sOrgDivision.Service).Errors
reqOrgDivision := new(dto.OrgDivisionGetPageReq)
reqOrgDivision.PageIndex = 1
reqOrgDivision.PageSize = 999
err = sOrgDivision.GetPage(reqOrgDivision, p, &listOrgDivision, &countOrgDivision)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取联赛 失败,\r\n失败信息 %s", err.Error()))
return
}
//球队列表
sOrgTeam := service.OrgTeam{}
listOrgTeam := make([]models.OrgTeam, 0)
var countOrgTeam int64 = 0
err = e.MakeContext(c).MakeOrm().MakeService(&sOrgTeam.Service).Errors
reqOrgTeam := new(dto.OrgTeamGetPageReq)
reqOrgTeam.PageIndex = 1
reqOrgTeam.PageSize = 999
err = sOrgTeam.GetPage(reqOrgTeam, p, &listOrgTeam, &countOrgTeam)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取联赛 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( object, "查询成功")
reply := dto.OrgMatchGetReply{
OrgMatch: object,
OrgLeagueList: listOrgLeague,
OrgSeasonList: listOrgSeason,
OrgDivisionList: listOrgDivision,
OrgTeamList: listOrgTeam,
}
e.OK(reply, "查询成功")
}
// Insert <赛事>创建比赛
......@@ -153,7 +235,7 @@ func (e OrgMatch) Update(c *gin.Context) {
e.Error(500, err, fmt.Sprintf("修改比赛 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( req.GetId(), "修改成功")
e.OK(req.GetId(), "修改成功")
}
// Delete <赛事>删除比赛
......@@ -186,21 +268,20 @@ func (e OrgMatch) Delete(c *gin.Context) {
e.Error(500, err, fmt.Sprintf("删除比赛失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( req.GetId(), "删除成功")
e.OK(req.GetId(), "删除成功")
}
// Get <赛事>获取比赛所有球员
// @Summary <赛事>获取比赛所有球员
// @Description <赛事>获取比赛所有球员
// @Tags <赛事>比赛
// @Param id path string false "id"
// @Success 200 {string} string {data=models.OrgMatch} "{"code": 200, "data": [...]}"
// @Router /api/v1/org-match/get-players/{id} [get]
// @Router /api/v1/org-match/get-player/{id} [get]
// @Security Bearer
func (e OrgMatch) GetPlayers(c *gin.Context) {
req := dto.OrgMatchGetReq{}
s := service.OrgMatch{}
func (e OrgMatch) GetPlayer(c *gin.Context) {
req := dto.OrgPlayerGetPageReq{}
s := service.OrgPlayer{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
......@@ -211,16 +292,21 @@ func (e OrgMatch) GetPlayers(c *gin.Context) {
e.Error(500, err, err.Error())
return
}
var object models.OrgMatch
p := actions.GetPermissionFromContext(c)
err = s.Get(&req, p, &object)
list := make([]models.OrgPlayer, 0)
var count int64
req.PageIndex = 1
req.PageSize = 999
err = s.GetPage(&req, p, &list, &count)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取比赛失败,\r\n失败信息 %s", err.Error()))
e.Error(500, err, fmt.Sprintf("获取球员 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( object, "查询成功")
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
}
// Get <赛事>获取比赛已设置球员
......@@ -229,11 +315,11 @@ func (e OrgMatch) GetPlayers(c *gin.Context) {
// @Tags <赛事>比赛
// @Param id path string false "id"
// @Success 200 {string} string {data=models.OrgMatch} "{"code": 200, "data": [...]}"
// @Router /api/v1/org-match/get-players-is-set/{id} [get]
// @Router /api/v1/org-match/get-player-is-set/{id} [get]
// @Security Bearer
func (e OrgMatch) GetPlayersIsSet(c *gin.Context) {
req := dto.OrgMatchGetReq{}
s := service.OrgMatch{}
func (e OrgMatch) GetPlayerIsSet(c *gin.Context) {
req := dto.OrgMatchTeamPlayerGetPageReq{}
s := service.OrgMatchTeamPlayer{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
......@@ -244,16 +330,21 @@ func (e OrgMatch) GetPlayersIsSet(c *gin.Context) {
e.Error(500, err, err.Error())
return
}
var object models.OrgMatch
p := actions.GetPermissionFromContext(c)
err = s.Get(&req, p, &object)
list := make([]models.OrgMatchTeamPlayer, 0)
var count int64
req.PageIndex = 1
req.PageSize = 999
err = s.GetPage(&req, p, &list, &count)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取比赛失败,\r\n失败信息 %s", err.Error()))
e.Error(500, err, fmt.Sprintf("获取比赛球员数据 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( object, "查询成功")
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
}
// Update <赛事>修改比赛球员
......@@ -262,13 +353,13 @@ func (e OrgMatch) GetPlayersIsSet(c *gin.Context) {
// @Tags <赛事>比赛
// @Accept application/json
// @Product application/json
// @Param data body dto.OrgMatchUpdateReq true "body"
// @Param data body dto.UpdateOrgMatchTeamPlayerReq true "body"
// @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
// @Router /api/v1/org-match/update-players/{id} [put]
// @Router /api/v1/org-match/update-player/{id} [put]
// @Security Bearer
func (e OrgMatch) UpdatePlayers(c *gin.Context) {
req := dto.OrgMatchUpdateReq{}
s := service.OrgMatch{}
func (e OrgMatch) UpdatePlayer(c *gin.Context) {
req := dto.UpdateOrgMatchTeamPlayerReq{}
s := service.OrgMatchTeamPlayer{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
......@@ -279,15 +370,55 @@ func (e OrgMatch) UpdatePlayers(c *gin.Context) {
e.Error(500, err, err.Error())
return
}
req.SetUpdateBy(user.GetUserId(c))
playersIds := strings.Split(req.PlayersIds, ",")
sOrgPlayer := service.OrgPlayer{}
err = e.MakeContext(c).MakeOrm().MakeService(&s.Service).Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
p := actions.GetPermissionFromContext(c)
err = s.Update(&req, p)
for _, v := range playersIds {
var orgPlayer models.OrgPlayer
id, _ := strconv.Atoi(v)
err = sOrgPlayer.Get(&dto.OrgPlayerGetReq{Id: id}, p, &orgPlayer)
if err != nil {
e.Error(500, err, fmt.Sprintf("修改比赛 失败,\r\n失败信息 %s", err.Error()))
orgMatchPlayer := dto.OrgMatchTeamPlayerInsertReq{
MatchId: req.MatchId,
ClubId: orgPlayer.ClubId,
TeamId: orgPlayer.TeamId,
PlayerName: orgPlayer.PlayerName,
PlayerNumber: orgPlayer.PlayerNumber,
Position: orgPlayer.Position,
}
err = s.Insert(&orgMatchPlayer)
if err != nil {
e.Error(500, err, fmt.Sprintf("创建比赛球员数据 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( req.GetId(), "修改成功")
} else {
orgMatchPlayer := dto.OrgMatchTeamPlayerUpdateReq{
MatchId: req.MatchId,
ClubId: orgPlayer.ClubId,
TeamId: orgPlayer.TeamId,
PlayerName: orgPlayer.PlayerName,
PlayerNumber: orgPlayer.PlayerNumber,
Position: orgPlayer.Position,
}
err = s.Update(&orgMatchPlayer, p)
if err != nil {
e.Error(500, err, fmt.Sprintf("创建比赛球员数据 失败,\r\n失败信息 %s", err.Error()))
return
}
}
}
e.OK(1, "修改成功")
}
// Update <赛事>修改比赛球员数据
......@@ -296,13 +427,13 @@ func (e OrgMatch) UpdatePlayers(c *gin.Context) {
// @Tags <赛事>比赛
// @Accept application/json
// @Product application/json
// @Param data body dto.OrgMatchUpdateReq true "body"
// @Param data body dto.OrgMatchTeamPlayerUpdateReq true "body"
// @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
// @Router /api/v1/org-match/update-players-data/{id} [put]
// @Router /api/v1/org-match/update-player-data/{id} [put]
// @Security Bearer
func (e OrgMatch) UpdatePlayersData(c *gin.Context) {
req := dto.OrgMatchUpdateReq{}
s := service.OrgMatch{}
func (e OrgMatch) UpdatePlayerData(c *gin.Context) {
req := dto.OrgMatchTeamPlayerUpdateReq{}
s := service.OrgMatchTeamPlayer{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
......@@ -318,8 +449,8 @@ func (e OrgMatch) UpdatePlayersData(c *gin.Context) {
err = s.Update(&req, p)
if err != nil {
e.Error(500, err, fmt.Sprintf("修改比赛 失败,\r\n失败信息 %s", err.Error()))
e.Error(500, err, fmt.Sprintf("修改比赛球员数据 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( req.GetId(), "修改成功")
e.OK(req.GetId(), "修改成功")
}
......@@ -2,7 +2,6 @@ package apis
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/sdk/api"
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
......@@ -65,11 +64,7 @@ func (e OrgSeason) GetPage(c *gin.Context) {
func (e OrgSeason) Get(c *gin.Context) {
req := dto.OrgSeasonGetReq{}
s := service.OrgSeason{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
err := e.MakeContext(c).MakeOrm().Bind(&req).MakeService(&s.Service).Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
......@@ -80,11 +75,31 @@ func (e OrgSeason) Get(c *gin.Context) {
p := actions.GetPermissionFromContext(c)
err = s.Get(&req, p, &object)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取赛季失败,\r\n失败信息 %s", err.Error()))
//e.Error(500, err, fmt.Sprintf("获取赛季失败,\r\n失败信息 %s", err.Error()))
//return
}
//联赛级别列表
sOrgLeague := service.OrgLeague{}
listOrgLeague := make([]models.OrgLeague, 0)
var countOrgLeague int64 = 0
err = e.MakeContext(c).MakeOrm().MakeService(&sOrgLeague.Service).Errors
reqOrgLeague := new(dto.OrgLeagueGetPageReq)
reqOrgLeague.PageIndex = 1
reqOrgLeague.PageSize = 999
err = sOrgLeague.GetPage(reqOrgLeague, p, &listOrgLeague, &countOrgLeague)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取联赛 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( object, "查询成功")
reply := dto.OrgSeasonGetReply{OrgLeagueList: listOrgLeague, OrgSeason: object}
e.OK(reply, "查询成功")
}
// Insert <赛事>创建赛季
......@@ -153,7 +168,7 @@ func (e OrgSeason) Update(c *gin.Context) {
e.Error(500, err, fmt.Sprintf("修改赛季 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( req.GetId(), "修改成功")
e.OK(req.GetId(), "修改成功")
}
// Delete 删除赛季
......@@ -186,5 +201,5 @@ func (e OrgSeason) Delete(c *gin.Context) {
e.Error(500, err, fmt.Sprintf("删除赛季失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK( req.GetId(), "删除成功")
e.OK(req.GetId(), "删除成功")
}
......@@ -8,7 +8,6 @@ import (
type OrgMatchTeamPlayer struct {
models.Model
MatchId string `json:"matchId" gorm:"type:bigint(20);comment:MatchId"`
ClubId string `json:"clubId" gorm:"type:bigint(20);comment:ClubId"`
TeamId string `json:"teamId" gorm:"type:bigint(20);comment:TeamId"`
......
......@@ -22,9 +22,9 @@ func registerOrgMatchRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddl
r.POST("", api.Insert)
r.PUT("/:id", api.Update)
r.DELETE("", api.Delete)
r.GET("/get-players/:id", api.GetPlayers)
r.GET("/get-players-is-set/:id", api.GetPlayersIsSet)
r.PUT("/update-players/:id", api.UpdatePlayers)
r.PUT("/update-players-date/:id", api.UpdatePlayersData)
r.GET("/get-player/:id", api.GetPlayer)
r.GET("/get-player-is-set/:id", api.GetPlayerIsSet)
r.PUT("/update-player/:id", api.UpdatePlayer)
r.PUT("/update-player-data/:id", api.UpdatePlayerData)
}
}
......@@ -12,7 +12,16 @@ type OrgMatchGetPageReq struct {
OrgMatchOrder
}
type OrgMatchOrder struct {Id int `form:"idOrder" search:"type:order;column:id;table:org_match"`
type OrgMatchGetReply struct {
OrgMatch models.OrgMatch `form:"orgMatch"`
OrgLeagueList []models.OrgLeague `form:"orgLeagueList"`
OrgSeasonList []models.OrgSeason `form:"orgSeasonList"`
OrgDivisionList []models.OrgDivision `form:"orgDivisionList"`
OrgTeamList []models.OrgTeam `form:"orgTeamList"`
}
type OrgMatchOrder struct {
Id int `form:"idOrder" search:"type:order;column:id;table:org_match"`
LeagueId string `form:"leagueIdOrder" search:"type:order;column:league_id;table:org_match"`
DivisionId string `form:"divisionIdOrder" search:"type:order;column:division_id;table:org_match"`
SeasonId string `form:"seasonIdOrder" search:"type:order;column:season_id;table:org_match"`
......@@ -34,7 +43,6 @@ type OrgMatchOrder struct {Id int `form:"idOrder" search:"type:order;column:id;
CreatedAt time.Time `form:"createdAtOrder" search:"type:order;column:created_at;table:org_match"`
UpdatedAt time.Time `form:"updatedAtOrder" search:"type:order;column:updated_at;table:org_match"`
DeletedAt time.Time `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:org_match"`
}
func (m *OrgMatchGetPageReq) GetNeedSearch() interface{} {
......@@ -64,7 +72,7 @@ type OrgMatchInsertReq struct {
func (s *OrgMatchInsertReq) Generate(model *models.OrgMatch) {
if s.Id == 0 {
model.Model = common.Model{ Id: s.Id }
model.Model = common.Model{Id: s.Id}
}
model.LeagueId = s.LeagueId
model.DivisionId = s.DivisionId
......@@ -111,7 +119,7 @@ type OrgMatchUpdateReq struct {
func (s *OrgMatchUpdateReq) Generate(model *models.OrgMatch) {
if s.Id == 0 {
model.Model = common.Model{ Id: s.Id }
model.Model = common.Model{Id: s.Id}
}
model.LeagueId = s.LeagueId
model.DivisionId = s.DivisionId
......@@ -139,6 +147,7 @@ func (s *OrgMatchUpdateReq) GetId() interface{} {
type OrgMatchGetReq struct {
Id int `uri:"id"`
}
func (s *OrgMatchGetReq) GetId() interface{} {
return s.Id
}
......
......@@ -11,8 +11,13 @@ type OrgMatchTeamPlayerGetPageReq struct {
dto.Pagination `search:"-"`
OrgMatchTeamPlayerOrder
}
type UpdateOrgMatchTeamPlayerReq struct {
MatchId string `json:"matchId" gorm:"type:bigint(20);comment:MatchId"`
PlayersIds string `form:"playersIds"`
}
type OrgMatchTeamPlayerOrder struct {Id int `form:"idOrder" search:"type:order;column:id;table:org_match_team_player"`
type OrgMatchTeamPlayerOrder struct {
Id int `form:"idOrder" search:"type:order;column:id;table:org_match_team_player"`
MatchId string `form:"matchIdOrder" search:"type:order;column:match_id;table:org_match_team_player"`
ClubId string `form:"clubIdOrder" search:"type:order;column:club_id;table:org_match_team_player"`
TeamId string `form:"teamIdOrder" search:"type:order;column:team_id;table:org_match_team_player"`
......@@ -33,7 +38,6 @@ type OrgMatchTeamPlayerOrder struct {Id int `form:"idOrder" search:"type:order;
CreatedAt time.Time `form:"createdAtOrder" search:"type:order;column:created_at;table:org_match_team_player"`
UpdatedAt time.Time `form:"updatedAtOrder" search:"type:order;column:updated_at;table:org_match_team_player"`
DeletedAt time.Time `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:org_match_team_player"`
}
func (m *OrgMatchTeamPlayerGetPageReq) GetNeedSearch() interface{} {
......@@ -62,7 +66,7 @@ type OrgMatchTeamPlayerInsertReq struct {
func (s *OrgMatchTeamPlayerInsertReq) Generate(model *models.OrgMatchTeamPlayer) {
if s.Id == 0 {
model.Model = common.Model{ Id: s.Id }
model.Model = common.Model{Id: s.Id}
}
model.MatchId = s.MatchId
model.ClubId = s.ClubId
......@@ -107,7 +111,7 @@ type OrgMatchTeamPlayerUpdateReq struct {
func (s *OrgMatchTeamPlayerUpdateReq) Generate(model *models.OrgMatchTeamPlayer) {
if s.Id == 0 {
model.Model = common.Model{ Id: s.Id }
model.Model = common.Model{Id: s.Id}
}
model.MatchId = s.MatchId
model.ClubId = s.ClubId
......@@ -134,6 +138,7 @@ func (s *OrgMatchTeamPlayerUpdateReq) GetId() interface{} {
type OrgMatchTeamPlayerGetReq struct {
Id int `uri:"id"`
}
func (s *OrgMatchTeamPlayerGetReq) GetId() interface{} {
return s.Id
}
......
......@@ -12,6 +12,11 @@ type OrgSeasonGetPageReq struct {
OrgSeasonOrder
}
type OrgSeasonGetReply struct {
OrgSeason models.OrgSeason `form:"orgSeason"`
OrgLeagueList []models.OrgLeague `form:"orgLeagueList"`
}
type OrgSeasonOrder struct {Id int `form:"idOrder" search:"type:order;column:id;table:org_season"`
LeagueId string `form:"leagueIdOrder" search:"type:order;column:league_id;table:org_season"`
DivisionId string `form:"divisionIdOrder" search:"type:order;column:division_id;table:org_season"`
......
......@@ -107,3 +107,24 @@ func (e *OrgMatchTeamPlayer) Remove(d *dto.OrgMatchTeamPlayerDeleteReq, p *actio
}
return nil
}
// Insert 创建OrgMatchTeamPlayer对象
func (e *OrgMatchTeamPlayer) IsBeing(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
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment