Compare commits

..

No commits in common. "aa3a713699a786fd1f35186d62bd642da2df9b12" and "5be9e98ae021856bdb44ecb033c9afee33d6860d" have entirely different histories.

6 changed files with 163 additions and 185 deletions

View File

@ -59,11 +59,6 @@ func (svc *AccountSvc) AccountIsExist(args *model.AccIsExistArg, ret *model.AccR
} }
acc := &model.Account{} acc := &model.Account{}
defer func() {
// 修改旧数据
// 补充渠道信息
svc.setParam(acc)
}()
switch args.LoginType { switch args.LoginType {
case common.LoginTypeGuest: case common.LoginTypeGuest:
@ -234,35 +229,6 @@ func (svc *AccountSvc) AccountIsExist(args *model.AccIsExistArg, ret *model.AccR
return nil return nil
} }
func (svc *AccountSvc) setParam(acc *model.Account) {
if acc == nil || (acc.Channel != "" && acc.Channel != "0") {
return
}
c := PlayerDataCollection(acc.Platform)
if c == nil {
return
}
p := new(model.PlayerData)
err := c.Find(bson.M{"snid": acc.SnId}).One(p)
if err != nil {
logger.Logger.Errorf("setChannel error:%v", err)
return
}
c = AccountCollection(acc.Platform)
if c == nil {
return
}
acc.Channel = p.Channel
if acc.Channel != "" {
err = c.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"channel", acc.Channel}}}})
if err != nil {
logger.Logger.Errorf("setChannel error:%v", err)
}
}
}
func (svc *AccountSvc) AccountTelIsRegiste(args *model.AccIsExistArg, exist *bool) error { func (svc *AccountSvc) AccountTelIsRegiste(args *model.AccIsExistArg, exist *bool) error {
caccounts := AccountCollection(args.Platform) caccounts := AccountCollection(args.Platform)
if caccounts != nil { if caccounts != nil {
@ -480,22 +446,22 @@ func (svc *AccountSvc) EditAccountPwd(acc *model.Account, ret *model.AccRet) err
return caccounts.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"backpassword", acc.TelPassWord}, {"telpassword", hashsum}}}}) return caccounts.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"backpassword", acc.TelPassWord}, {"telpassword", hashsum}}}})
} }
//func (svc *AccountSvc) ResetBackAccountPwd(args *model.AccIdArg, ret *model.AccRet) error { func (svc *AccountSvc) ResetBackAccountPwd(args *model.AccIdArg, ret *model.AccRet) error {
// caccounts := AccountCollection(args.Platform) caccounts := AccountCollection(args.Platform)
// if caccounts == nil { if caccounts == nil {
// return ErrAccDBNotOpen return ErrAccDBNotOpen
// } }
//
// var acc model.Account var acc model.Account
// err := caccounts.Find(bson.M{"_id": bson.ObjectIdHex(args.AccId)}).One(&acc) err := caccounts.Find(bson.M{"_id": bson.ObjectIdHex(args.AccId)}).One(&acc)
// if err != nil { if err != nil {
// return err return err
// } }
// if len(acc.BackPassWord) > 0 { if len(acc.BackPassWord) > 0 {
// return caccounts.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"telpassword", acc.BackPassWord}}}}) return caccounts.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"telpassword", acc.BackPassWord}}}})
// } }
// return nil return nil
//} }
/* /*
* 修改帐号密码 * 修改帐号密码
@ -540,7 +506,7 @@ func (svc *AccountSvc) UpdateAccountPlatformInfo(acc *model.Account, ret *model.
return caccounts.Update(bson.M{"_id": acc.AccountId}, return caccounts.Update(bson.M{"_id": acc.AccountId},
bson.D{{"$set", bson.M{"platform": acc.Platform, bson.D{{"$set", bson.M{"platform": acc.Platform,
"channel": acc.Channel, "packegetag": acc.PackegeTag}}}) "channel": acc.Channel, "promoter": acc.Promoter, "inviterid": acc.InviterId, "packegetag": acc.PackegeTag, "promotertree": acc.PromoterTree}}})
} }
func (svc *AccountSvc) GetRobotAccounts(limit int, accs *[]model.Account) error { func (svc *AccountSvc) GetRobotAccounts(limit int, accs *[]model.Account) error {

View File

@ -147,8 +147,8 @@ func (svc *PlayerDataSvc) GetPlayerData(args *model.GetPlayerDataArgs, ret *mode
name = "Guest" name = "Guest"
} }
pd = model.NewPlayerData(args.Acc, name, id, a.Channel, a.Platform, a.Params, pd = model.NewPlayerData(args.Acc, name, id, a.Channel, a.Platform, a.Promoter, a.InviterId, a.PromoterTree, a.Params,
a.Tel, a.PackegeTag, dataParams.Ip, 0, dataParams.UnionId, a.DeviceInfo, a.TagKey, a.AccountType) a.Tel, a.PackegeTag, dataParams.Ip, 0, dataParams.UnionId, a.DeviceInfo, a.SubPromoter, a.TagKey, a.AccountType)
if pd != nil { if pd != nil {
err = cplayerdata.Insert(pd) err = cplayerdata.Insert(pd)
if err != nil { if err != nil {
@ -222,8 +222,8 @@ func (svc *PlayerDataSvc) CreatePlayerDataByThird(args *model.CreatePlayer, ret
} }
var dataParams model.PlayerParams var dataParams model.PlayerParams
json.Unmarshal([]byte(a.Params), &dataParams) json.Unmarshal([]byte(a.Params), &dataParams)
pd = model.NewPlayerDataThird(acc, name, args.HeadUrl, id, a.Channel, a.Platform, a.Params, pd = model.NewPlayerDataThird(acc, name, args.HeadUrl, id, a.Channel, a.Platform, a.Promoter, a.InviterId,
a.Tel, a.PackegeTag, dataParams.Ip, a.TagKey, a.AccountType, a.DeviceOs) a.PromoterTree, a.Params, a.Tel, a.PackegeTag, dataParams.Ip, a.SubPromoter, a.TagKey, a.AccountType, a.DeviceOs)
if pd != nil { if pd != nil {
err = cplayerdata.Insert(pd) err = cplayerdata.Insert(pd)
if err != nil { if err != nil {
@ -292,8 +292,9 @@ func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg,
} }
var dataParams model.PlayerParams var dataParams model.PlayerParams
json.Unmarshal([]byte(a.Params), &dataParams) json.Unmarshal([]byte(a.Params), &dataParams)
pd = model.NewPlayerData(acc, name, id, a.Channel, a.Platform, a.Params, a.Tel, a.PackegeTag, pd = model.NewPlayerData(acc, name, id, a.Channel, a.Platform, a.Promoter, a.InviterId,
dataParams.Ip, int64(args.AddCoin), "", a.DeviceInfo, a.TagKey, a.AccountType) a.PromoterTree, a.Params, a.Tel, a.PackegeTag, dataParams.Ip, int64(args.AddCoin),
"", a.DeviceInfo, a.SubPromoter, a.TagKey, a.AccountType)
pd.HeadUrl = args.HeadUrl pd.HeadUrl = args.HeadUrl
if pd != nil { if pd != nil {
err = cplayerdata.Insert(pd) err = cplayerdata.Insert(pd)
@ -341,8 +342,8 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg
name = "Guest" name = "Guest"
} }
pd := model.NewPlayerData(a.AccountId.Hex(), name, a.SnId, a.Channel, a.Platform, a.Params, pd := model.NewPlayerData(a.AccountId.Hex(), name, a.SnId, a.Channel, a.Platform, a.Promoter, a.InviterId, a.PromoterTree, a.Params,
a.Tel, a.PackegeTag, dataParams.Ip, 0, dataParams.UnionId, a.DeviceInfo, a.TagKey, a.AccountType) a.Tel, a.PackegeTag, dataParams.Ip, 0, dataParams.UnionId, a.DeviceInfo, a.SubPromoter, a.TagKey, a.AccountType)
if pd != nil { if pd != nil {
err = cplayerdata.Insert(pd) err = cplayerdata.Insert(pd)
if err != nil { if err != nil {

View File

@ -23,8 +23,13 @@ type Account struct {
PassWord string //昵称密码 PassWord string //昵称密码
TelPassWord string //帐号密码 TelPassWord string //帐号密码
BackPassWord string //备份账号密码 BackPassWord string //备份账号密码
//VIP int32 //VIP帐号 等级
Platform string //平台 Platform string //平台
Channel string //渠道 Channel string //渠道
Promoter string //推广员
SubPromoter string //子推广员
InviterId int32 //邀请人ID
PromoterTree int32 //推广树ID
Tel string //电话号码 Tel string //电话号码
Params string //其他参数 Params string //其他参数
DeviceOs string //系统 DeviceOs string //系统
@ -123,7 +128,11 @@ func InsertAccount(userName, passWord, platform, channel, promoter, params, devi
acc.Platform = platform acc.Platform = platform
acc.Channel = channel acc.Channel = channel
acc.Params = params acc.Params = params
acc.SubPromoter = subPromoter
acc.DeviceOs = deviceOs acc.DeviceOs = deviceOs
acc.Promoter = promoter
acc.InviterId = inviterId
acc.PromoterTree = promoterTree
acc.LastLoginTime = tCur acc.LastLoginTime = tCur
acc.RegisteTime = tCur acc.RegisteTime = tCur
acc.LoginTimes = 1 acc.LoginTimes = 1
@ -157,7 +166,10 @@ func InsertTelAccount(userName, passWord, platform, channel, promoter, params st
acc.TelPassWord = telpassword acc.TelPassWord = telpassword
acc.Platform = platform acc.Platform = platform
acc.Channel = channel acc.Channel = channel
acc.Promoter = promoter
acc.Params = params acc.Params = params
acc.InviterId = inviterId
acc.PromoterTree = promoterTree
acc.LastLoginTime = tCur acc.LastLoginTime = tCur
acc.RegisteTime = tCur acc.RegisteTime = tCur
acc.LoginTimes = 1 acc.LoginTimes = 1
@ -484,6 +496,9 @@ func UpdateAccountPlatformInfo(account string, platform, channel, promoter, invi
AccountId: bson.ObjectIdHex(account), AccountId: bson.ObjectIdHex(account),
Platform: strconv.Itoa(int(platform)), Platform: strconv.Itoa(int(platform)),
Channel: strconv.Itoa(int(channel)), Channel: strconv.Itoa(int(channel)),
Promoter: strconv.Itoa(int(promoter)),
PromoterTree: promoterTree,
InviterId: inviterid,
PackegeTag: packTag, PackegeTag: packTag,
} }
ret := &AccRet{} ret := &AccRet{}

View File

@ -709,9 +709,9 @@ func (this *PlayerData) GetPlayerDataEncoder() (bytes.Buffer, error) {
return buf, err return buf, err
} }
func NewPlayerData(acc string, name string, id int32, channel, platform string, params, tel string, func NewPlayerData(acc string, name string, id int32, channel, platform, promoter string, inviterId,
packTag, ip string, addCoin int64, unionid, deviceInfo string, promoterTree int32, params, tel string, packTag, ip string, addCoin int64, unionid, deviceInfo string,
tagkey, accountType int32) *PlayerData { subPromoter string, tagkey, accountType int32) *PlayerData {
if len(name) == 0 { if len(name) == 0 {
logger.Logger.Trace("New player name is empty.") logger.Logger.Trace("New player name is empty.")
return nil return nil
@ -733,12 +733,16 @@ func NewPlayerData(acc string, name string, id int32, channel, platform string,
Channel: channel, Channel: channel,
Platform: platform, Platform: platform,
SnId: id, SnId: id,
InviterId: inviterId,
PromoterTree: promoterTree,
Head: rand.Int31n(common.HeadRange), Head: rand.Int31n(common.HeadRange),
//Coin: int64(GameParamData.NewPlayerCoin) + addCoin,
SafeBoxPassword: pwd, SafeBoxPassword: pwd,
Ip: ip, Ip: ip,
RegIp: ip, RegIp: ip,
Params: params, Params: params,
Tel: tel, Tel: tel,
SubBeUnderAgentCode: subPromoter,
AgentType: 0, AgentType: 0,
LastLoginTime: tNow.Local(), LastLoginTime: tNow.Local(),
LastLogoutTime: tNow.AddDate(0, 0, -1).Local(), LastLogoutTime: tNow.AddDate(0, 0, -1).Local(),
@ -749,6 +753,7 @@ func NewPlayerData(acc string, name string, id int32, channel, platform string,
CoinPayTotal: 0, CoinPayTotal: 0,
MoneyPayTotal: 0, MoneyPayTotal: 0,
IsRob: isRobot, IsRob: isRobot,
BeUnderAgentCode: promoter,
PackageID: packTag, PackageID: packTag,
WBLevel: 0, WBLevel: 0,
WBCoinTotalOut: 0, WBCoinTotalOut: 0,
@ -776,8 +781,8 @@ func NewPlayerData(acc string, name string, id int32, channel, platform string,
return pd return pd
} }
func NewPlayerDataThird(acc string, name, headUrl string, id int32, channel, platform string, params, tel string, func NewPlayerDataThird(acc string, name, headUrl string, id int32, channel, platform, promoter string, inviterId,
packTag, ip string, tagkey, accountType int32, deviceOS string) *PlayerData { promoterTree int32, params, tel string, packTag, ip string, subPromoter string, tagkey, accountType int32, deviceOS string) *PlayerData {
if len(name) == 0 { if len(name) == 0 {
logger.Logger.Trace("New player name is empty.") logger.Logger.Trace("New player name is empty.")
return nil return nil
@ -790,6 +795,8 @@ func NewPlayerDataThird(acc string, name, headUrl string, id int32, channel, pla
Channel: channel, Channel: channel,
Platform: platform, Platform: platform,
SnId: id, SnId: id,
InviterId: inviterId,
PromoterTree: promoterTree,
Head: rand.Int31n(common.HeadRange), Head: rand.Int31n(common.HeadRange),
HeadUrl: headUrl, HeadUrl: headUrl,
//Coin: int64(GameParamData.NewPlayerCoin), //Coin: int64(GameParamData.NewPlayerCoin),
@ -797,12 +804,14 @@ func NewPlayerDataThird(acc string, name, headUrl string, id int32, channel, pla
RegIp: ip, RegIp: ip,
Params: params, Params: params,
Tel: tel, Tel: tel,
SubBeUnderAgentCode: subPromoter,
LastLoginTime: tNow.Local(), LastLoginTime: tNow.Local(),
LastLogoutTime: tNow.AddDate(0, 0, -1).Local(), LastLogoutTime: tNow.AddDate(0, 0, -1).Local(),
CreateTime: tNow.Local(), CreateTime: tNow.Local(),
Ver: VER_PLAYER_MAX - 1, Ver: VER_PLAYER_MAX - 1,
HeadOutLine: 1, HeadOutLine: 1,
IsRob: false, IsRob: false,
BeUnderAgentCode: promoter,
PackageID: packTag, PackageID: packTag,
YesterdayGameData: NewPlayerGameCtrlData(), YesterdayGameData: NewPlayerGameCtrlData(),
TodayGameData: NewPlayerGameCtrlData(), TodayGameData: NewPlayerGameCtrlData(),

View File

@ -8,14 +8,11 @@ import (
) )
// GenerateOnline 在线统计 // GenerateOnline 在线统计
func GenerateOnline(online map[string]map[string]int) *RabbitMQData { func GenerateOnline(online map[string]int) *RabbitMQData {
m := map[string]map[int]int{} // 渠道:平台:真人数 m := map[int]int{} // 平台:真人数
for k, v := range online { for k, v := range online {
m[k] = map[int]int{} i, _ := strconv.Atoi(k)
for k1, v1 := range v { m[i] = v
pf, _ := strconv.Atoi(k1)
m[k][pf] = v1
}
} }
params := make(map[string]interface{}) params := make(map[string]interface{})
params["Online"] = m params["Online"] = m

View File

@ -7,11 +7,11 @@ import (
) )
var PlayerOnlineSington = &PlayerOnlineEvent{ var PlayerOnlineSington = &PlayerOnlineEvent{
OnlineCh: make(map[string]map[string]int), Online: make(map[string]int),
} }
type PlayerOnlineEvent struct { type PlayerOnlineEvent struct {
OnlineCh map[string]map[string]int Online map[string]int
Check bool Check bool
} }
@ -23,40 +23,30 @@ func (p *PlayerOnlineEvent) Init() {
} }
// 每五秒钟统计一次在线数据 // 每五秒钟统计一次在线数据
// 没有登录,登出,掉线情况不统计 // 没有登录,登出,掉线情况直接不统计
func (p *PlayerOnlineEvent) Update() { func (p *PlayerOnlineEvent) Update() {
if !p.Check { if !p.Check {
return return
} }
p.Check = false p.Check = false
onlineCh := map[string]map[string]int{} m := map[string]int{}
for _, player := range PlayerMgrSington.sidMap { for _, player := range PlayerMgrSington.sidMap {
if player != nil && !player.IsRob && player.IsOnLine() { if player != nil && !player.IsRob && player.IsOnLine() {
info, ok := onlineCh[player.Channel] m[player.Platform] = m[player.Platform] + 1
if !ok {
onlineCh[player.Channel] = map[string]int{}
info = onlineCh[player.Channel]
}
info[player.Platform] += 1
} }
} }
if len(onlineCh) == len(p.OnlineCh) { if len(m) == len(p.Online) {
for k, v := range onlineCh { for k, v := range m {
if len(v) != len(p.OnlineCh[k]) { if p.Online[k] != v {
goto here goto here
} }
for k1, v1 := range v {
if v1 != p.OnlineCh[k][k1] {
goto here
}
}
} }
return return
} }
here: here:
p.OnlineCh = onlineCh p.Online = m
LogChannelSingleton.WriteMQData(model.GenerateOnline(p.OnlineCh)) LogChannelSingleton.WriteMQData(model.GenerateOnline(p.Online))
} }
func (p *PlayerOnlineEvent) Shutdown() { func (p *PlayerOnlineEvent) Shutdown() {