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.

104 lines
3.1 KiB

package serviceGame
import (
"context"
"encoding/json"
"github.com/gogf/gf/v2/crypto/gmd5"
"github.com/gogf/gf/v2/errors/gerror"
"tyj_admin/api/v1/game"
"tyj_admin/internal/serviceGame/internal"
)
type IGameManage interface {
ChangeGm(ctx context.Context, req *game.ChangeGmReq) (res *game.ChangeGmRes, err error)
ChangePwd(ctx context.Context, req *game.ResetPwdReq) (res *game.ResetPwdRes, err error)
MigrateRole(ctx context.Context, req *game.MigrateReq) (res *game.MigrateRes, err error)
SearchGm(ctx context.Context, req *game.SearchGmReq) (res *game.SearchGmRes, err error)
GetStatistics(ctx context.Context, req *game.StatisticsReq) (res *game.StatisticsRes, err error)
}
type gameManageImpl struct {
}
var gameManageService = gameManageImpl{}
func GameManage() IGameManage {
return &gameManageService
}
func (g *gameManageImpl) ChangePwd(ctx context.Context, req *game.ResetPwdReq) (res *game.ResetPwdRes, err error) {
pwd := gmd5.MustEncryptString(req.Pwd + "sdsd")
res, err = internal.ChangePwd(ctx, req.Account, pwd)
return
}
func (g *gameManageImpl) MigrateRole(ctx context.Context, req *game.MigrateReq) (res *game.MigrateRes, err error) {
res = new(game.MigrateRes)
res, err = internal.MigrateRole(ctx, req.SrcServerId, req.SrcUid, req.DesServerId, req.DesUid)
return
}
func (g *gameManageImpl) MigrateSearch(ctx context.Context, req *game.MigrateSearchReq) (res *game.MigrateSearchRes, err error) {
res = new(game.MigrateSearchRes)
srcRole, srcErr := internal.GetRoleDetail(ctx, req.SrcUid, req.SrcServerId)
if srcErr != nil {
err = srcErr
return
}
res.RoleList = append(res.RoleList, srcRole)
desRole, desErr := internal.GetRoleDetail(ctx, req.SrcUid, req.SrcServerId)
if desErr != nil {
err = desErr
return
}
res.RoleList = append(res.RoleList, desRole)
return
}
func (g *gameManageImpl) SearchGm(ctx context.Context, req *game.SearchGmReq) (res *game.SearchGmRes, err error) {
res = new(game.SearchGmRes)
res.Gm, err = internal.SearchGm(ctx, req.ServerId, req.Account)
return
}
func (g *gameManageImpl) ChangeGm(ctx context.Context, req *game.ChangeGmReq) (res *game.ChangeGmRes, err error) {
res = new(game.ChangeGmRes)
if req.ServerId == 0 {
res, err = internal.ChangeGm(ctx, req.Account, req.ChangeValue)
} else {
mqttGm := internal.MqttGm{}
mqttGm.Body.Uid = req.Account
mqttGm.Body.Gm = "gm"
mqttGm.Body.ModuleType = "changeGM"
mqttGm.ModuleId = "webadmin"
mqttGm.ReqId = 1
var js []byte
js, err = json.Marshal(mqttGm)
connectCh := make(chan bool)
server := "192.168.2.100:3005"
defer close(connectCh)
internal.SendMqtt(js, connectCh, server)
var result bool
for {
select {
case result = <-connectCh:
if result == false {
err = gerror.New("失败")
return
} else {
return
}
}
}
}
return
}
func (g *gameManageImpl) GetStatistics(ctx context.Context, req *game.StatisticsReq) (res *game.StatisticsRes, err error) {
res = new(game.StatisticsRes)
res.RegisterNum, err = internal.GetRegisterNum(ctx, req.LowTime, req.UpTime)
internal.GetDeposit(ctx, req.LowTime, req.UpTime)
return
}