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 }