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.
132 lines
4.0 KiB
132 lines
4.0 KiB
|
1 day ago
|
package serviceGame
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"github.com/gogf/gf/v2/frame/g"
|
||
|
|
"github.com/gogf/gf/v2/os/gtime"
|
||
|
|
"tyj_admin/api/v1/game"
|
||
|
|
"tyj_admin/internal/dao"
|
||
|
|
"tyj_admin/internal/model/do"
|
||
|
|
"tyj_admin/internal/model/entity"
|
||
|
|
"tyj_admin/library/liberr"
|
||
|
|
)
|
||
|
|
|
||
|
|
type IGameActivity interface {
|
||
|
|
GetGameActivity(ctx context.Context, req *game.GetActivityConfigsReq) (res *game.GetActivityConfigsRes, err error)
|
||
|
|
AddGameActivity(ctx context.Context, req *game.AddActivityConfigReq) (res *game.AddActivityConfigRes, err error)
|
||
|
|
DelGameActivity(ctx context.Context, req *game.DelActivityConfigReq) (res *game.DelActivityConfigRes, err error)
|
||
|
|
GetAllGameActivity(ctx context.Context, req *game.GetAllGameActivityReq) (res *game.GetAllGameActivityRes, err error)
|
||
|
|
}
|
||
|
|
|
||
|
|
type gameActivityImpl struct {
|
||
|
|
}
|
||
|
|
|
||
|
|
var gameActivityService = gameActivityImpl{}
|
||
|
|
|
||
|
|
func GameActivity() IGameActivity {
|
||
|
|
return &gameActivityService
|
||
|
|
}
|
||
|
|
|
||
|
|
func (c *gameActivityImpl) GetGameActivity(ctx context.Context, req *game.GetActivityConfigsReq) (res *game.GetActivityConfigsRes, err error) {
|
||
|
|
g.Try(ctx, func(ctx context.Context) {
|
||
|
|
res = new(game.GetActivityConfigsRes)
|
||
|
|
model := dao.GameActivityTime.Ctx(ctx)
|
||
|
|
res.Total, err = model.Count()
|
||
|
|
liberr.ErrIsNil(ctx, err, "mysql err")
|
||
|
|
model = model.OrderAsc("config_id").Page(req.PageNum, req.PageSize)
|
||
|
|
if req.ServerId != 0 {
|
||
|
|
model = model.Where("server_id=?", req.ServerId)
|
||
|
|
}
|
||
|
|
err = model.Scan(&res.List)
|
||
|
|
})
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
func (c *gameActivityImpl) AddGameActivity(ctx context.Context, req *game.AddActivityConfigReq) (res *game.AddActivityConfigRes, err error) {
|
||
|
|
res = new(game.AddActivityConfigRes)
|
||
|
|
err = g.Try(ctx, func(ctx context.Context) {
|
||
|
|
server := []entity.GameActivityTime{}
|
||
|
|
model := dao.GameActivityTime.Ctx(ctx)
|
||
|
|
model.WherePri(req.Id).Scan(&server)
|
||
|
|
if len(server) > 0 {
|
||
|
|
data := g.Map{
|
||
|
|
dao.GameActivityTime.Columns().Id: req.Id,
|
||
|
|
}
|
||
|
|
if req.CloseTime != "" {
|
||
|
|
data[dao.GameActivityTime.Columns().CloseTime] = req.CloseTime
|
||
|
|
}
|
||
|
|
if req.EndTime != "" {
|
||
|
|
data[dao.GameActivityTime.Columns().EndTime] = req.EndTime
|
||
|
|
}
|
||
|
|
if req.PreviewTime != "" {
|
||
|
|
data[dao.GameActivityTime.Columns().PreviewTime] = req.PreviewTime
|
||
|
|
}
|
||
|
|
if req.StartTime != "" {
|
||
|
|
data[dao.GameActivityTime.Columns().StartTime] = req.StartTime
|
||
|
|
}
|
||
|
|
if req.Remark != "" {
|
||
|
|
data[dao.GameActivityTime.Columns().Remark] = req.Remark
|
||
|
|
}
|
||
|
|
if req.ConfigId != 0 {
|
||
|
|
data[dao.GameActivityTime.Columns().ConfigId] = req.ConfigId
|
||
|
|
}
|
||
|
|
if req.ServerId != 0 {
|
||
|
|
data[dao.GameActivityTime.Columns().ServerId] = req.ServerId
|
||
|
|
}
|
||
|
|
_, err = model.WherePri(req.Id).Update(data)
|
||
|
|
} else {
|
||
|
|
_, err = model.Insert(do.GameActivityTime{
|
||
|
|
ServerId: req.ServerId,
|
||
|
|
StartTime: gtime.NewFromStr(req.StartTime),
|
||
|
|
PreviewTime: gtime.NewFromStr(req.PreviewTime),
|
||
|
|
EndTime: gtime.NewFromStr(req.EndTime),
|
||
|
|
CloseTime: gtime.NewFromStr(req.CloseTime),
|
||
|
|
ConfigId: req.ConfigId,
|
||
|
|
Remark: req.Remark,
|
||
|
|
})
|
||
|
|
}
|
||
|
|
})
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
func (c *gameActivityImpl) DelGameActivity(ctx context.Context, req *game.DelActivityConfigReq) (res *game.DelActivityConfigRes, err error) {
|
||
|
|
err = g.Try(ctx, func(ctx context.Context) {
|
||
|
|
if req.Id == 0 {
|
||
|
|
liberr.ErrIsNil(ctx, err, "错误的id")
|
||
|
|
}
|
||
|
|
_, e := dao.GameActivityTime.Ctx(ctx).Where("id=", req.Id).Delete()
|
||
|
|
if e != nil {
|
||
|
|
liberr.ErrIsNil(ctx, e, "删除失败")
|
||
|
|
}
|
||
|
|
})
|
||
|
|
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
func (c *gameActivityImpl) GetAllGameActivity(ctx context.Context, req *game.GetAllGameActivityReq) (res *game.GetAllGameActivityRes, err error) {
|
||
|
|
g.Try(ctx, func(ctx context.Context) {
|
||
|
|
res = new(game.GetAllGameActivityRes)
|
||
|
|
|
||
|
|
model := dao.GameActivityTime.Ctx(ctx)
|
||
|
|
serverConfigs := []entity.GameActivityTime{}
|
||
|
|
err = model.Where("server_id=?", req.ServerId).Scan(&serverConfigs)
|
||
|
|
if err != nil {
|
||
|
|
return
|
||
|
|
}
|
||
|
|
err = model.Where("server_id=?", 0).Scan(&res.List)
|
||
|
|
if err != nil {
|
||
|
|
return
|
||
|
|
}
|
||
|
|
configs := map[int]entity.GameActivityTime{}
|
||
|
|
for _, v := range serverConfigs {
|
||
|
|
configs[v.ConfigId] = v
|
||
|
|
}
|
||
|
|
for k, v := range res.List {
|
||
|
|
if configs[v.ConfigId].Id > 0 {
|
||
|
|
res.List[k] = configs[v.ConfigId]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
})
|
||
|
|
return
|
||
|
|
}
|