diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 4157ce3..46066d3 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -2428,28 +2428,13 @@ func init() { var err error err = proto.Unmarshal(params, msg) - if err != nil || msg.Snid <= 0 { + if err != nil { pack.Tag = webapiproto.TagCode_FAILED pack.Msg = "参数错误" return common.ResponseTag_ParamError, pack } logger.Logger.Tracef("/api/player/delete %v", msg) - // 踢掉玩家 - p := PlayerMgrSington.GetPlayerBySnId(msg.GetSnid()) - if p != nil { - ls := LoginStateMgrSington.GetLoginStateBySid(p.sid) - if ls != nil { - if ls.als != nil && ls.als.acc != nil { - ls.als.acc.State = time.Now().AddDate(0, 0, 1).Unix() - } - } - - p.Kick(common.KickReason_Freeze) - PlayerMgrSington.DelPlayer(p.SnId) - LoginStateMgrSington.DelAccountByAccid(p.AccountId) - } - task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { if msg.GetFaceBookId() != "" { fb, err := model.GetByFaceBookId(msg.GetFaceBookId()) @@ -2462,54 +2447,81 @@ func init() { msg.Platform = fb.Platform msg.Snid = fb.SnId } - - pd, _ := model.GetPlayerDataBySnId(msg.Platform, msg.Snid, false, false) - if pd == nil || pd.SnId == 0 { - err = errors.New("player not found") - return nil - } - // 冻结 - err = model.FreezeAccount(pd.Platform, pd.AccountId, 24*60) - if err != nil { - return nil - } - // 备份账号 - var account *model.Account - account, err = model.GetAccount(pd.Platform, pd.AccountId) - if err != nil { - return nil - } - err = model.SaveToDelBackupAccount(account) - if err != nil { - return nil - } - //if !model.SaveDelBackupPlayerData(pd) { - // err = errors.New("SaveDelBackupPlayerData failed") - // return nil - //} - // 删除账号 - err = model.RemoveAccount(pd.Platform, pd.AccountId) - if err != nil { - return nil - } - err = model.ResetPlayer(pd.Platform, pd.SnId) - if err != nil { - return nil - } return nil }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { if err != nil { logger.Logger.Errorf("player delete %v err: %v", msg, err) pack.Tag = webapiproto.TagCode_FAILED pack.Msg = "删除失败" - } else { - pack.Tag = webapiproto.TagCode_SUCCESS - pack.Msg = "删除成功" + tNode.TransRep.RetFiels = pack + tNode.Resume() + logger.Logger.Tracef("player delete %v ret: %v", msg.GetSnid(), pack) + return } - tNode.TransRep.RetFiels = pack - tNode.Resume() - logger.Logger.Tracef("player delete %v ret: %v", msg.GetSnid(), pack) - })).StartByExecutor(fmt.Sprint(msg.GetSnid())) + // 踢掉玩家 + p := PlayerMgrSington.GetPlayerBySnId(msg.GetSnid()) + if p != nil { + ls := LoginStateMgrSington.GetLoginStateBySid(p.sid) + if ls != nil { + if ls.als != nil && ls.als.acc != nil { + ls.als.acc.State = time.Now().AddDate(0, 0, 1).Unix() + } + } + + p.Kick(common.KickReason_Freeze) + PlayerMgrSington.DelPlayer(p.SnId) + LoginStateMgrSington.DelAccountByAccid(p.AccountId) + } + + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + pd, _ := model.GetPlayerDataBySnId(msg.Platform, msg.Snid, false, false) + if pd == nil || pd.SnId == 0 { + err = errors.New("player not found") + return nil + } + // 冻结 + err = model.FreezeAccount(pd.Platform, pd.AccountId, 24*60) + if err != nil { + return nil + } + // 备份账号 + var account *model.Account + account, err = model.GetAccount(pd.Platform, pd.AccountId) + if err != nil { + return nil + } + err = model.SaveToDelBackupAccount(account) + if err != nil { + return nil + } + //if !model.SaveDelBackupPlayerData(pd) { + // err = errors.New("SaveDelBackupPlayerData failed") + // return nil + //} + // 删除账号 + err = model.RemoveAccount(pd.Platform, pd.AccountId) + if err != nil { + return nil + } + err = model.ResetPlayer(pd.Platform, pd.SnId) + if err != nil { + return nil + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + if err != nil { + logger.Logger.Errorf("player delete %v err: %v", msg, err) + pack.Tag = webapiproto.TagCode_FAILED + pack.Msg = "删除失败" + } else { + pack.Tag = webapiproto.TagCode_SUCCESS + pack.Msg = "删除成功" + } + tNode.TransRep.RetFiels = pack + tNode.Resume() + logger.Logger.Tracef("player delete %v ret: %v", msg.GetSnid(), pack) + }), "player_delete").StartByExecutor(fmt.Sprint(msg.GetSnid())) + }), "player_delete").StartByExecutor(fmt.Sprint(msg.GetSnid())) return common.ResponseTag_TransactYield, pack }))