|
|
|
@ -2,6 +2,8 @@ package serviceGame
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"context" |
|
|
|
|
"fmt" |
|
|
|
|
"github.com/gogf/gf/v2/encoding/gcharset" |
|
|
|
|
"github.com/gogf/gf/v2/encoding/gjson" |
|
|
|
|
"github.com/gogf/gf/v2/frame/g" |
|
|
|
|
"log" |
|
|
|
@ -9,7 +11,6 @@ import (
|
|
|
|
|
"tyj_admin/api/v1/game" |
|
|
|
|
"tyj_admin/internal/consts" |
|
|
|
|
"tyj_admin/internal/dao" |
|
|
|
|
"tyj_admin/internal/model/do" |
|
|
|
|
"tyj_admin/internal/model/entity" |
|
|
|
|
"tyj_admin/internal/serviceGame/internal" |
|
|
|
|
"tyj_admin/library/libUtils" |
|
|
|
@ -28,6 +29,9 @@ type IGameLoginUrl interface {
|
|
|
|
|
ReConfigServer(ctx context.Context, req *game.ReConfigServerReq) (res *game.ReConfigServerRes, err error) |
|
|
|
|
GetAllChannel(ctx context.Context, req *game.GetAllChannelReq) (res *game.GetAllChannelRes, err error) |
|
|
|
|
GetAllCcdUrl(ctx context.Context, req *game.GetAllCcdUrlReq) (res *game.GetAllCcdUrlRes, err error) |
|
|
|
|
AddServerConfig(ctx context.Context, req *game.AddServerConfigReq) (res *game.AddServerConfigRes, err error) |
|
|
|
|
GetRouter(ctx context.Context, req *game.GetRouterReq) (res *game.GetRouterRes, err error) |
|
|
|
|
GetServerVersionList(ctx context.Context, req *game.GetServerVersionListReq) (res *game.GetServerVersionListRes, err error) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type gameLoginUrlImpl struct { |
|
|
|
@ -84,20 +88,18 @@ func (c *gameLoginUrlImpl) GetAllLoginUrl(ctx context.Context, req *game.GetAllL
|
|
|
|
|
|
|
|
|
|
func (c *gameLoginUrlImpl) AddLoginUrl(ctx context.Context, req *game.AddLoginUrlReq) (res *game.AddLoginUrlRes, err error) { |
|
|
|
|
res = new(game.AddLoginUrlRes) |
|
|
|
|
g.Try(ctx, func(ctx context.Context) { |
|
|
|
|
err = g.Try(ctx, func(ctx context.Context) { |
|
|
|
|
server := []entity.GameLoginUrl{} |
|
|
|
|
model := dao.GameLoginUrl.Ctx(ctx) |
|
|
|
|
model.WherePri(req.Id).Scan(&server) |
|
|
|
|
if len(server) > 0 { |
|
|
|
|
model.WherePri(req.Id).Update(g.Map{ |
|
|
|
|
_, err = model.WherePri(req.Id).Update(g.Map{ |
|
|
|
|
dao.GameLoginUrl.Columns().Id: req.Id, |
|
|
|
|
dao.GameLoginUrl.Columns().Host: req.Host, |
|
|
|
|
dao.GameLoginUrl.Columns().Port: req.Port, |
|
|
|
|
dao.GameLoginUrl.Columns().State: req.State, |
|
|
|
|
dao.GameLoginUrl.Columns().Recommend: req.Recommend, |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
_, err = model.Insert(&do.GameLoginUrl{Host: req.Host, Port: req.Port, Id: req.Id, State: req.State, Recommend: req.Recommend, Name: "", Difficulty: 1}) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
return |
|
|
|
@ -213,6 +215,7 @@ func (c *gameLoginUrlImpl) ReConfigServer(ctx context.Context, req *game.ReConfi
|
|
|
|
|
internal.InitServer(ctx) |
|
|
|
|
internal.InitRechargeServer(ctx) |
|
|
|
|
internal.InitChannel(ctx) |
|
|
|
|
internal.InitRouterServer(ctx) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -232,3 +235,101 @@ func (c *gameLoginUrlImpl) GetAllCcdUrl(ctx context.Context, req *game.GetAllCcd
|
|
|
|
|
}) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (c *gameLoginUrlImpl) GetRouter(ctx context.Context, req *game.GetRouterReq) (res *game.GetRouterRes, err error) { |
|
|
|
|
g.Try(ctx, func(ctx context.Context) { |
|
|
|
|
res = new(game.GetRouterRes) |
|
|
|
|
model := dao.GameRouter.Ctx(ctx) |
|
|
|
|
res.Total, err = model.Count() |
|
|
|
|
liberr.ErrIsNil(ctx, err, "mysql err") |
|
|
|
|
model = model.Page(req.PageNum, req.PageSize) |
|
|
|
|
err = model.Scan(&res.List) |
|
|
|
|
liberr.ErrIsNil(ctx, err, "mysql err") |
|
|
|
|
}) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (c *gameLoginUrlImpl) AddServerConfig(ctx context.Context, req *game.AddServerConfigReq) (res *game.AddServerConfigRes, err error) { |
|
|
|
|
res = new(game.AddServerConfigRes) |
|
|
|
|
err = g.Try(ctx, func(ctx context.Context) { |
|
|
|
|
server := []entity.GameLoginUrl{} |
|
|
|
|
model := dao.GameLoginUrl.Ctx(ctx) |
|
|
|
|
model.WherePri(req.Id).Scan(&server) |
|
|
|
|
if len(server) > 0 { |
|
|
|
|
_, err = model.WherePri(req.Id).Update(g.Map{ |
|
|
|
|
dao.GameLoginUrl.Columns().Id: req.Id, |
|
|
|
|
dao.GameLoginUrl.Columns().GameDbUrl: req.GameDbUrl, |
|
|
|
|
dao.GameLoginUrl.Columns().GameDbName: req.GameDbName, |
|
|
|
|
dao.GameLoginUrl.Columns().Platform: req.Platform, |
|
|
|
|
dao.GameLoginUrl.Columns().InnerIp: req.InnerIp, |
|
|
|
|
dao.GameLoginUrl.Columns().CreateTime: req.CreateTime, |
|
|
|
|
dao.GameLoginUrl.Columns().Difficulty: req.Difficulty, |
|
|
|
|
dao.GameLoginUrl.Columns().Channel: req.Channel, |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (c *gameLoginUrlImpl) updateRouter(ctx context.Context, req *game.AddRouterReq) (res *game.AddRouterRes, err error) { |
|
|
|
|
res = new(game.AddRouterRes) |
|
|
|
|
err = g.Try(ctx, func(ctx context.Context) { |
|
|
|
|
server := []entity.GameRouter{} |
|
|
|
|
model := dao.GameRouter.Ctx(ctx) |
|
|
|
|
model.WherePri(req.Id).Scan(&server) |
|
|
|
|
if len(server) > 0 { |
|
|
|
|
_, err = model.WherePri(req.Id).Update(g.Map{ |
|
|
|
|
dao.GameRouter.Columns().Id: req.Id, |
|
|
|
|
dao.GameRouter.Columns().RealmIp: req.RealmIp, |
|
|
|
|
dao.GameRouter.Columns().RealmPort: req.RealmPort, |
|
|
|
|
dao.GameRouter.Columns().RealmNum: req.RealmNum, |
|
|
|
|
dao.GameRouter.Columns().RealmStep: req.RealmStep, |
|
|
|
|
dao.GameRouter.Columns().RouterIp: req.RouterIp, |
|
|
|
|
dao.GameRouter.Columns().RouterPort: req.RouterPort, |
|
|
|
|
dao.GameRouter.Columns().RouterNum: req.RouterNum, |
|
|
|
|
dao.GameRouter.Columns().RouterStep: req.RouterStep, |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
_, err = model.Insert(g.Map{ |
|
|
|
|
dao.GameRouter.Columns().Id: req.Id, |
|
|
|
|
dao.GameRouter.Columns().RealmIp: req.RealmIp, |
|
|
|
|
dao.GameRouter.Columns().RealmPort: req.RealmPort, |
|
|
|
|
dao.GameRouter.Columns().RealmNum: req.RealmNum, |
|
|
|
|
dao.GameRouter.Columns().RealmStep: req.RealmStep, |
|
|
|
|
dao.GameRouter.Columns().RouterIp: req.RouterIp, |
|
|
|
|
dao.GameRouter.Columns().RouterPort: req.RouterPort, |
|
|
|
|
dao.GameRouter.Columns().RouterNum: req.RouterNum, |
|
|
|
|
dao.GameRouter.Columns().RouterStep: req.RouterStep, |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (c *gameLoginUrlImpl) GetServerVersionList(ctx context.Context, req *game.GetServerVersionListReq) (res *game.GetServerVersionListRes, err error) { |
|
|
|
|
res = new(game.GetServerVersionListRes) |
|
|
|
|
ip := internal.ServerConfig[fmt.Sprint(req.Server)] |
|
|
|
|
url := "http://" + ip + "/get_version" |
|
|
|
|
bytes := g.Client().GetBytes(ctx, url) |
|
|
|
|
//fmt.Println("GetOnlineList: ", url, bytes)
|
|
|
|
|
src := string(bytes) |
|
|
|
|
if g.IsEmpty(src) { |
|
|
|
|
res.Version = "获取失败" |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
srcCharset := "UTF-8" |
|
|
|
|
tmp, _ := gcharset.ToUTF8(srcCharset, src) |
|
|
|
|
json, err := gjson.DecodeToJson(tmp) |
|
|
|
|
if err != nil { |
|
|
|
|
res.Version = "获取失败" |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
//fmt.Println("GetOnlineList - json: ", tmp, gjson.MustEncodeString(json.Get("Accounts").Array()))
|
|
|
|
|
if json.Get("Error").Int() == 200 { |
|
|
|
|
res.Version = json.Get("Message").String() |
|
|
|
|
} else { |
|
|
|
|
res.Version = "获取失败" |
|
|
|
|
} |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|