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.
131 lines
4.0 KiB
131 lines
4.0 KiB
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 |
|
}
|
|
|