You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.6 KiB
93 lines
2.6 KiB
package serviceGame |
|
|
|
import ( |
|
"context" |
|
"github.com/gogf/gf/v2/frame/g" |
|
"tyj_admin/api/v1/game" |
|
"tyj_admin/internal/dao" |
|
"tyj_admin/internal/model/do" |
|
"tyj_admin/internal/model/entity" |
|
"tyj_admin/internal/serviceGame/internal" |
|
"tyj_admin/library/liberr" |
|
) |
|
|
|
type IChannel interface { |
|
GetChannel(ctx context.Context, req *game.GetChannelReq) (res *game.GetChannelRes, err error) |
|
AddChannel(ctx context.Context, req *game.AddChannelReq) (res *game.AddChannelRes, err error) |
|
DelChannel(ctx context.Context, req *game.DelChannelReq) (res *game.DelChannelRes, err error) |
|
GetAllChannel(ctx context.Context, req *game.GetAllChannelReq) (res *game.GetAllChannelRes, err error) |
|
} |
|
|
|
type channelImpl struct { |
|
} |
|
|
|
var channelService = channelImpl{} |
|
|
|
func Channel() IChannel { |
|
return &channelService |
|
} |
|
|
|
func (c *channelImpl) GetChannel(ctx context.Context, req *game.GetChannelReq) (res *game.GetChannelRes, err error) { |
|
g.Try(ctx, func(ctx context.Context) { |
|
res = new(game.GetChannelRes) |
|
model := dao.GameChannelList.Ctx(ctx) |
|
res.Total, err = model.Count() |
|
liberr.ErrIsNil(ctx, err, "mysql err") |
|
model = model.OrderAsc("sort").Page(req.PageNum, req.PageSize) |
|
err = model.Scan(&res.List) |
|
}) |
|
return |
|
} |
|
|
|
func (c *channelImpl) AddChannel(ctx context.Context, req *game.AddChannelReq) (res *game.AddChannelRes, err error) { |
|
res = new(game.AddChannelRes) |
|
err = g.Try(ctx, func(ctx context.Context) { |
|
server := []entity.GameChannelList{} |
|
model := dao.GameChannelList.Ctx(ctx) |
|
model.WherePri(req.Id).Scan(&server) |
|
if len(server) > 0 { |
|
data := g.Map{ |
|
dao.GameLoginUrl.Columns().Id: req.Id, |
|
} |
|
if req.Channel != "" { |
|
data[dao.GameChannelList.Columns().Value] = req.Channel |
|
} |
|
if req.Name != "" { |
|
data[dao.GameChannelList.Columns().Label] = req.Name |
|
} |
|
if req.Sort != "" { |
|
data[dao.GameChannelList.Columns().Sort] = req.Sort |
|
} |
|
_, err = model.WherePri(req.Id).Update(data) |
|
} else { |
|
_, err = model.Insert(do.GameChannelList{ |
|
Label: req.Name, |
|
Value: req.Channel, |
|
Sort: req.Sort, |
|
}) |
|
} |
|
}) |
|
return |
|
} |
|
|
|
func (c *channelImpl) DelChannel(ctx context.Context, req *game.DelChannelReq) (res *game.DelChannelRes, err error) { |
|
err = g.Try(ctx, func(ctx context.Context) { |
|
if req.Id == 0 { |
|
liberr.ErrIsNil(ctx, err, "错误的id") |
|
} |
|
_, e := dao.GameChannelList.Ctx(ctx).Where("id=", req.Id).Delete() |
|
if e != nil { |
|
liberr.ErrIsNil(ctx, e, "删除失败") |
|
} |
|
}) |
|
|
|
return |
|
} |
|
|
|
func (c *channelImpl) GetAllChannel(ctx context.Context, req *game.GetAllChannelReq) (res *game.GetAllChannelRes, err error) { |
|
g.Try(ctx, func(ctx context.Context) { |
|
res = new(game.GetAllChannelRes) |
|
res.List = internal.ChannelList |
|
}) |
|
return |
|
}
|
|
|