Commit 048f6f517d91d34858e11c5b61afabd7fd094439
1 parent
ff521f50
Exists in
master
and in
4 other branches
提交
Showing
4 changed files
with
194 additions
and
72 deletions
Show diff stats
src/HttpServer/logic/datadef.go
| @@ -76,7 +76,9 @@ type QueryguaninfoResp struct { | @@ -76,7 +76,9 @@ type QueryguaninfoResp struct { | ||
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | type GetguangoldReq struct { | 78 | type GetguangoldReq struct { |
| 79 | - Goldnum int `json:"goldnum"` | 79 | + Goldnum int `json:"goldnum"` |
| 80 | + Gameid string `json:"gameid"` | ||
| 81 | + Channel string `json:"channel"` | ||
| 80 | } | 82 | } |
| 81 | 83 | ||
| 82 | type GetguangoldData struct { | 84 | type GetguangoldData struct { |
| @@ -123,6 +125,11 @@ type GetcashReq struct { | @@ -123,6 +125,11 @@ type GetcashReq struct { | ||
| 123 | Ver string `json:"ver"` | 125 | Ver string `json:"ver"` |
| 124 | } | 126 | } |
| 125 | 127 | ||
| 128 | +type CommReq struct { | ||
| 129 | + Gameid string `json:"gameid"` | ||
| 130 | + Channel string `json:"channel"` | ||
| 131 | +} | ||
| 132 | + | ||
| 126 | type GetcashData struct { | 133 | type GetcashData struct { |
| 127 | Walletgold int `json:"walletgold"` | 134 | Walletgold int `json:"walletgold"` |
| 128 | } | 135 | } |
| @@ -149,8 +156,10 @@ type OnlinentfResp struct { | @@ -149,8 +156,10 @@ type OnlinentfResp struct { | ||
| 149 | } | 156 | } |
| 150 | 157 | ||
| 151 | type UpdatetaskReq struct { | 158 | type UpdatetaskReq struct { |
| 152 | - Tasktype int `json:"tasktype"` | ||
| 153 | - Value int `json:"value"` | 159 | + Tasktype int `json:"tasktype"` |
| 160 | + Value int `json:"value"` | ||
| 161 | + Gameid string `json:"gameid"` | ||
| 162 | + Channel string `json:"channel"` | ||
| 154 | } | 163 | } |
| 155 | 164 | ||
| 156 | type UpdatetaskResp struct { | 165 | type UpdatetaskResp struct { |
| @@ -159,7 +168,9 @@ type UpdatetaskResp struct { | @@ -159,7 +168,9 @@ type UpdatetaskResp struct { | ||
| 159 | } | 168 | } |
| 160 | 169 | ||
| 161 | type QuerytaskinfoReq struct { | 170 | type QuerytaskinfoReq struct { |
| 162 | - Tasktype int `json:"tasktype"` | 171 | + Tasktype int `json:"tasktype"` |
| 172 | + Gameid string `json:"gameid"` | ||
| 173 | + Channel string `json:"channel"` | ||
| 163 | } | 174 | } |
| 164 | 175 | ||
| 165 | type QuerytaskinfoResp struct { | 176 | type QuerytaskinfoResp struct { |
| @@ -290,7 +301,7 @@ type WithDrawDesc struct { | @@ -290,7 +301,7 @@ type WithDrawDesc struct { | ||
| 290 | 301 | ||
| 291 | //玩家数据 | 302 | //玩家数据 |
| 292 | type UserData struct { | 303 | type UserData struct { |
| 293 | - Userid int //玩家id | 304 | + Userid string //玩家id |
| 294 | Lv int //玩家当前等级 | 305 | Lv int //玩家当前等级 |
| 295 | LvRewardGet int //当前等级奖励是否已经领取 1未领取 2普通领取 3双倍领取 | 306 | LvRewardGet int //当前等级奖励是否已经领取 1未领取 2普通领取 3双倍领取 |
| 296 | Exp int //玩家当前经验值 | 307 | Exp int //玩家当前经验值 |
src/HttpServer/logic/function.go
| @@ -45,14 +45,14 @@ func SaveUserInfo(data *UserData) error { | @@ -45,14 +45,14 @@ func SaveUserInfo(data *UserData) error { | ||
| 45 | return err | 45 | return err |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | - err = redishandler.GetRedisClient().HSet(redis.USER_DATA_KEY, strconv.Itoa(data.Userid), string(savestr)) | 48 | + err = redishandler.GetRedisClient().HSet(redis.USER_DATA_KEY, data.Userid, string(savestr)) |
| 49 | 49 | ||
| 50 | return err | 50 | return err |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | -func GetUserInfo(uuid int) (*UserData, error) { | 53 | +func GetUserInfo(uniqueid string) (*UserData, error) { |
| 54 | 54 | ||
| 55 | - data, err := redishandler.GetRedisClient().HGet(redis.USER_DATA_KEY, strconv.Itoa(uuid)) | 55 | + data, err := redishandler.GetRedisClient().HGet(redis.USER_DATA_KEY, uniqueid) |
| 56 | if err != nil { | 56 | if err != nil { |
| 57 | return nil, err | 57 | return nil, err |
| 58 | } | 58 | } |
| @@ -276,7 +276,7 @@ func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList { | @@ -276,7 +276,7 @@ func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList { | ||
| 276 | return newlist | 276 | return newlist |
| 277 | } | 277 | } |
| 278 | 278 | ||
| 279 | -func SaveTaskInfo(uuid, tasktype int, list *TaskList) error { | 279 | +func SaveTaskInfo(uuid string, tasktype int, list *TaskList) error { |
| 280 | savestr, err := json.Marshal(list) | 280 | savestr, err := json.Marshal(list) |
| 281 | if err != nil { | 281 | if err != nil { |
| 282 | logger.Error("SaveTaskInfo err =%v", err) | 282 | logger.Error("SaveTaskInfo err =%v", err) |
| @@ -284,9 +284,9 @@ func SaveTaskInfo(uuid, tasktype int, list *TaskList) error { | @@ -284,9 +284,9 @@ func SaveTaskInfo(uuid, tasktype int, list *TaskList) error { | ||
| 284 | } | 284 | } |
| 285 | 285 | ||
| 286 | if tasktype == 1 { | 286 | if tasktype == 1 { |
| 287 | - err = redishandler.GetRedisClient().HSet(redis.USER_TASKINFO_LIST, strconv.Itoa(uuid), string(savestr)) | 287 | + err = redishandler.GetRedisClient().HSet(redis.USER_TASKINFO_LIST, uuid, string(savestr)) |
| 288 | } else if tasktype == 2 { | 288 | } else if tasktype == 2 { |
| 289 | - err = redishandler.GetRedisClient().HSet(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid), string(savestr)) | 289 | + err = redishandler.GetRedisClient().HSet(redis.USER_ACHIEVEMENTINFO_LIST, uuid, string(savestr)) |
| 290 | //logger.Info("SaveTaskInfo savestr=%v", string(savestr)) | 290 | //logger.Info("SaveTaskInfo savestr=%v", string(savestr)) |
| 291 | } else { | 291 | } else { |
| 292 | logger.Error("tasktype invalid") | 292 | logger.Error("tasktype invalid") |
| @@ -295,13 +295,28 @@ func SaveTaskInfo(uuid, tasktype int, list *TaskList) error { | @@ -295,13 +295,28 @@ func SaveTaskInfo(uuid, tasktype int, list *TaskList) error { | ||
| 295 | return err | 295 | return err |
| 296 | } | 296 | } |
| 297 | 297 | ||
| 298 | -func GetTaskInfo(uuid, tasktype int) (*TaskList, error) { | 298 | +func GetTaskInfo(uuid int, tasktype int, channel string) (*TaskList, error) { |
| 299 | + unqiueuuid := strconv.Itoa(uuid) + channel | ||
| 299 | var data string | 300 | var data string |
| 300 | var err error | 301 | var err error |
| 301 | if tasktype == 1 { | 302 | if tasktype == 1 { |
| 302 | - data, err = redishandler.GetRedisClient().HGet(redis.USER_TASKINFO_LIST, strconv.Itoa(uuid)) | 303 | + data, err = redishandler.GetRedisClient().HGet(redis.USER_TASKINFO_LIST, unqiueuuid) |
| 303 | } else if tasktype == 2 { | 304 | } else if tasktype == 2 { |
| 304 | - data, err = redishandler.GetRedisClient().HGet(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid)) | 305 | + data, err = redishandler.GetRedisClient().HGet(redis.USER_ACHIEVEMENTINFO_LIST, unqiueuuid) |
| 306 | + //成就这一块需要兼容老的数据 | ||
| 307 | + if err != nil { | ||
| 308 | + //没有读到数据 则去读取一下老的id | ||
| 309 | + olddata, err := redishandler.GetRedisClient().HGet(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid)) | ||
| 310 | + if err == nil { | ||
| 311 | + err = redishandler.GetRedisClient().HSet(redis.USER_ACHIEVEMENTINFO_LIST, unqiueuuid, olddata) | ||
| 312 | + if err == nil { | ||
| 313 | + //删除老的数据 以后都走新的数据 | ||
| 314 | + err = redishandler.GetRedisClient().HDel(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid)) | ||
| 315 | + | ||
| 316 | + } | ||
| 317 | + data, err = redishandler.GetRedisClient().HGet(redis.USER_ACHIEVEMENTINFO_LIST, unqiueuuid) | ||
| 318 | + } | ||
| 319 | + } | ||
| 305 | } else { | 320 | } else { |
| 306 | logger.Error("tasktype invalid") | 321 | logger.Error("tasktype invalid") |
| 307 | return nil, errors.New("tasktype invalid") | 322 | return nil, errors.New("tasktype invalid") |
| @@ -322,7 +337,7 @@ func GetTaskInfo(uuid, tasktype int) (*TaskList, error) { | @@ -322,7 +337,7 @@ func GetTaskInfo(uuid, tasktype int) (*TaskList, error) { | ||
| 322 | } | 337 | } |
| 323 | 338 | ||
| 324 | //处理领取任务 | 339 | //处理领取任务 |
| 325 | -func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *GettaskrewardResp, list *TaskList) error { | 340 | +func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *GettaskrewardResp, list *TaskList, uuid int) error { |
| 326 | isfind := false | 341 | isfind := false |
| 327 | index := -1 | 342 | index := -1 |
| 328 | var taskdesc *TaskListDesc | 343 | var taskdesc *TaskListDesc |
| @@ -385,7 +400,7 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *Gettaskr | @@ -385,7 +400,7 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *Gettaskr | ||
| 385 | for i := 0; i < sub; i++ { | 400 | for i := 0; i < sub; i++ { |
| 386 | rtype := cfg.Reward[i*2] | 401 | rtype := cfg.Reward[i*2] |
| 387 | rnum := cfg.Reward[i*2+1] | 402 | rnum := cfg.Reward[i*2+1] |
| 388 | - r1, r2, r3, r4, r5, r6, r7 := uinfo.RewardUser(rtype, rnum, req.Gameid, req.Channel) | 403 | + r1, r2, r3, r4, r5, r6, r7 := uinfo.RewardUser(rtype, rnum, req.Gameid, req.Channel, uuid) |
| 389 | if resp.Data.Lv != r1 { | 404 | if resp.Data.Lv != r1 { |
| 390 | resp.Data.Lv = r1 | 405 | resp.Data.Lv = r1 |
| 391 | resp.Data.Costtime = uinfo.UpLvCostTime / 3600 | 406 | resp.Data.Costtime = uinfo.UpLvCostTime / 3600 |
| @@ -401,7 +416,7 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *Gettaskr | @@ -401,7 +416,7 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *Gettaskr | ||
| 401 | return nil | 416 | return nil |
| 402 | } | 417 | } |
| 403 | 418 | ||
| 404 | -func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel string) (int, int, int, int, int, int, int) { | 419 | +func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel string, uuid int) (int, int, int, int, int, int, int) { |
| 405 | logger.Info("RewardUser rtype=%v,num=%v", rtype, num) | 420 | logger.Info("RewardUser rtype=%v,num=%v", rtype, num) |
| 406 | switch rtype { | 421 | switch rtype { |
| 407 | case REWARDTYPE_STAR: | 422 | case REWARDTYPE_STAR: |
| @@ -422,7 +437,7 @@ func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel str | @@ -422,7 +437,7 @@ func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel str | ||
| 422 | return 0, 0, 0, 0, 0, 0, 0 | 437 | return 0, 0, 0, 0, 0, 0, 0 |
| 423 | } | 438 | } |
| 424 | case REWARDTYPE_GOLD: | 439 | case REWARDTYPE_GOLD: |
| 425 | - goldnum, err := AddCoinToSdk(uinfo.Userid, num, gameid, channel, 102) | 440 | + goldnum, err := AddCoinToSdk(uuid, num, gameid, channel, 102) |
| 426 | if err != nil { | 441 | if err != nil { |
| 427 | logger.Error("RewardUser failer err=%v", err) | 442 | logger.Error("RewardUser failer err=%v", err) |
| 428 | } | 443 | } |
| @@ -435,13 +450,13 @@ func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel str | @@ -435,13 +450,13 @@ func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel str | ||
| 435 | return 0, 0, 0, 0, 0, 0, 0 | 450 | return 0, 0, 0, 0, 0, 0, 0 |
| 436 | } | 451 | } |
| 437 | 452 | ||
| 438 | -func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error { | 453 | +func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int, uniqueuid string) error { |
| 439 | 454 | ||
| 440 | var initdata UserData | 455 | var initdata UserData |
| 441 | initdata.Lv = 1 | 456 | initdata.Lv = 1 |
| 442 | initdata.LvRewardGet = 1 | 457 | initdata.LvRewardGet = 1 |
| 443 | initdata.Exp = 0 | 458 | initdata.Exp = 0 |
| 444 | - initdata.Userid = uuid | 459 | + initdata.Userid = uniqueuid //加上渠道的唯一id |
| 445 | initdata.ContinueLoginDay = 1 | 460 | initdata.ContinueLoginDay = 1 |
| 446 | initdata.GetFromGuanCnt = 0 | 461 | initdata.GetFromGuanCnt = 0 |
| 447 | initdata.GuanGold = 0 | 462 | initdata.GuanGold = 0 |
| @@ -483,7 +498,7 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error { | @@ -483,7 +498,7 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error { | ||
| 483 | } | 498 | } |
| 484 | 499 | ||
| 485 | //初始化一下玩家的任务与成就数据数据 | 500 | //初始化一下玩家的任务与成就数据数据 |
| 486 | - err = InitTaskAndAchievement(uuid) | 501 | + err = InitTaskAndAchievement(uuid, data.Channel) |
| 487 | 502 | ||
| 488 | return err | 503 | return err |
| 489 | } | 504 | } |
| @@ -497,9 +512,10 @@ func (t *TaskList) IsInTaskList(id int) bool { | @@ -497,9 +512,10 @@ func (t *TaskList) IsInTaskList(id int) bool { | ||
| 497 | return false | 512 | return false |
| 498 | } | 513 | } |
| 499 | 514 | ||
| 500 | -func InitTaskAndAchievement(uuid int) error { | 515 | +func InitTaskAndAchievement(uuid int, channel string) error { |
| 516 | + unqiueid := strconv.Itoa(uuid) + channel | ||
| 501 | //先初始化任务 | 517 | //先初始化任务 |
| 502 | - tlist, err := GetTaskInfo(uuid, 1) | 518 | + tlist, err := GetTaskInfo(uuid, 1, channel) |
| 503 | if tlist == nil { | 519 | if tlist == nil { |
| 504 | tasklist := new(TaskList) | 520 | tasklist := new(TaskList) |
| 505 | for _, val := range jsonconf.GetJsonConf().TaskConfig { | 521 | for _, val := range jsonconf.GetJsonConf().TaskConfig { |
| @@ -510,7 +526,7 @@ func InitTaskAndAchievement(uuid int) error { | @@ -510,7 +526,7 @@ func InitTaskAndAchievement(uuid int) error { | ||
| 510 | tasklist.Taskdata = append(tasklist.Taskdata, tmp) | 526 | tasklist.Taskdata = append(tasklist.Taskdata, tmp) |
| 511 | } | 527 | } |
| 512 | 528 | ||
| 513 | - err := SaveTaskInfo(uuid, 1, tasklist) | 529 | + err := SaveTaskInfo(unqiueid, 1, tasklist) |
| 514 | if err != nil { | 530 | if err != nil { |
| 515 | logger.Error("InitTaskAndAchievement err=%v", err) | 531 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 516 | //return err | 532 | //return err |
| @@ -532,7 +548,7 @@ func InitTaskAndAchievement(uuid int) error { | @@ -532,7 +548,7 @@ func InitTaskAndAchievement(uuid int) error { | ||
| 532 | 548 | ||
| 533 | } | 549 | } |
| 534 | 550 | ||
| 535 | - err := SaveTaskInfo(uuid, 1, tlist) | 551 | + err := SaveTaskInfo(unqiueid, 1, tlist) |
| 536 | if err != nil { | 552 | if err != nil { |
| 537 | logger.Error("InitTaskAndAchievement err=%v", err) | 553 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 538 | //return err | 554 | //return err |
| @@ -540,7 +556,7 @@ func InitTaskAndAchievement(uuid int) error { | @@ -540,7 +556,7 @@ func InitTaskAndAchievement(uuid int) error { | ||
| 540 | } | 556 | } |
| 541 | 557 | ||
| 542 | //成就 | 558 | //成就 |
| 543 | - alist, err := GetTaskInfo(uuid, 2) | 559 | + alist, err := GetTaskInfo(uuid, 2, channel) |
| 544 | if alist == nil { | 560 | if alist == nil { |
| 545 | achievelist := new(TaskList) | 561 | achievelist := new(TaskList) |
| 546 | for _, val := range jsonconf.GetJsonConf().AchieventConfig { | 562 | for _, val := range jsonconf.GetJsonConf().AchieventConfig { |
| @@ -551,7 +567,7 @@ func InitTaskAndAchievement(uuid int) error { | @@ -551,7 +567,7 @@ func InitTaskAndAchievement(uuid int) error { | ||
| 551 | achievelist.Taskdata = append(achievelist.Taskdata, tmp) | 567 | achievelist.Taskdata = append(achievelist.Taskdata, tmp) |
| 552 | } | 568 | } |
| 553 | 569 | ||
| 554 | - err = SaveTaskInfo(uuid, 2, achievelist) | 570 | + err = SaveTaskInfo(unqiueid, 2, achievelist) |
| 555 | if err != nil { | 571 | if err != nil { |
| 556 | logger.Error("InitTaskAndAchievement err=%v", err) | 572 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 557 | return err | 573 | return err |
| @@ -567,7 +583,7 @@ func InitTaskAndAchievement(uuid int) error { | @@ -567,7 +583,7 @@ func InitTaskAndAchievement(uuid int) error { | ||
| 567 | } | 583 | } |
| 568 | } | 584 | } |
| 569 | 585 | ||
| 570 | - err = SaveTaskInfo(uuid, 2, alist) | 586 | + err = SaveTaskInfo(unqiueid, 2, alist) |
| 571 | if err != nil { | 587 | if err != nil { |
| 572 | logger.Error("InitTaskAndAchievement err=%v", err) | 588 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 573 | return err | 589 | return err |
| @@ -596,7 +612,7 @@ func (u *UserData) CalcTotalCnt() int { | @@ -596,7 +612,7 @@ func (u *UserData) CalcTotalCnt() int { | ||
| 596 | return usertime | 612 | return usertime |
| 597 | } | 613 | } |
| 598 | 614 | ||
| 599 | -func (u *UserData) HandlePassDay() { | 615 | +func (u *UserData) HandlePassDay(uuid int, channel string) { |
| 600 | isdiffday := false | 616 | isdiffday := false |
| 601 | nowtime := time.Now() | 617 | nowtime := time.Now() |
| 602 | lasttime := time.Unix(int64(u.LastLoginTime), 0) | 618 | lasttime := time.Unix(int64(u.LastLoginTime), 0) |
| @@ -663,7 +679,7 @@ func (u *UserData) HandlePassDay() { | @@ -663,7 +679,7 @@ func (u *UserData) HandlePassDay() { | ||
| 663 | if err != nil { | 679 | if err != nil { |
| 664 | logger.Error("InitTaskAndAchievement err=%v", err) | 680 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 665 | }*/ | 681 | }*/ |
| 666 | - err := InitTaskAndAchievement(u.Userid) | 682 | + err := InitTaskAndAchievement(uuid, channel) |
| 667 | if err != nil { | 683 | if err != nil { |
| 668 | logger.Error("InitTaskAndAchievement err=%v", err) | 684 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 669 | } | 685 | } |
| @@ -682,8 +698,8 @@ func (u *UserData) HandlePassDay() { | @@ -682,8 +698,8 @@ func (u *UserData) HandlePassDay() { | ||
| 682 | SaveUserInfo(u) | 698 | SaveUserInfo(u) |
| 683 | } | 699 | } |
| 684 | 700 | ||
| 685 | -func GetUserData(uuid int, req *UserLoginReq, resp *UserLoginResp) error { | ||
| 686 | - data, err := GetUserInfo(uuid) | 701 | +func GetUserData(uuid int, uniqueuid string, req *UserLoginReq, resp *UserLoginResp) error { |
| 702 | + data, err := GetUserInfo(uniqueuid) | ||
| 687 | if err != nil || data == nil { | 703 | if err != nil || data == nil { |
| 688 | resp.Code = ERROR_SRV_ERROR | 704 | resp.Code = ERROR_SRV_ERROR |
| 689 | resp.Message = "ERROR_SRV_ERROR" | 705 | resp.Message = "ERROR_SRV_ERROR" |
| @@ -691,7 +707,7 @@ func GetUserData(uuid int, req *UserLoginReq, resp *UserLoginResp) error { | @@ -691,7 +707,7 @@ func GetUserData(uuid int, req *UserLoginReq, resp *UserLoginResp) error { | ||
| 691 | } | 707 | } |
| 692 | 708 | ||
| 693 | //此处要处理一下跨天逻辑 | 709 | //此处要处理一下跨天逻辑 |
| 694 | - data.HandlePassDay() | 710 | + data.HandlePassDay(uuid, req.Channel) |
| 695 | 711 | ||
| 696 | //此处处理一下从sdk拉取钱包金币数量 | 712 | //此处处理一下从sdk拉取钱包金币数量 |
| 697 | gold, err := GetCoinFromSdk(uuid, req.Gameid, req.Channel) | 713 | gold, err := GetCoinFromSdk(uuid, req.Gameid, req.Channel) |
src/HttpServer/logic/httpserver.go
| @@ -137,9 +137,11 @@ func Querysigndata(w http.ResponseWriter, r *http.Request) { | @@ -137,9 +137,11 @@ func Querysigndata(w http.ResponseWriter, r *http.Request) { | ||
| 137 | func Addcoin(w http.ResponseWriter, r *http.Request) { | 137 | func Addcoin(w http.ResponseWriter, r *http.Request) { |
| 138 | SetHeader(w) | 138 | SetHeader(w) |
| 139 | query := r.URL.Query() | 139 | query := r.URL.Query() |
| 140 | - uuid := query.Get("uuid") | 140 | + uuid := query.Get("uuid") //需要加上渠道号 460012 |
| 141 | + channel := query.Get("channel") | ||
| 141 | uuidnum, _ := strconv.Atoi(uuid) | 142 | uuidnum, _ := strconv.Atoi(uuid) |
| 142 | - uinfo, err := GetUserInfo(uuidnum) | 143 | + uniqueuuid := uuid + channel |
| 144 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 143 | if err != nil || uinfo == nil { | 145 | if err != nil || uinfo == nil { |
| 144 | logger.Error("redis failed err=%v", err) | 146 | logger.Error("redis failed err=%v", err) |
| 145 | fmt.Fprint(w, "failed") | 147 | fmt.Fprint(w, "failed") |
| @@ -187,7 +189,9 @@ func Testapi(w http.ResponseWriter, r *http.Request) { | @@ -187,7 +189,9 @@ func Testapi(w http.ResponseWriter, r *http.Request) { | ||
| 187 | return | 189 | return |
| 188 | } | 190 | } |
| 189 | 191 | ||
| 190 | - uinfo, err := GetUserInfo(Uuid) | 192 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 |
| 193 | + uniqueuuid := strconv.Itoa(Uuid) + rdata.Channel | ||
| 194 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 191 | if err != nil || uinfo == nil { | 195 | if err != nil || uinfo == nil { |
| 192 | logger.Error("redis failed err=%v", err) | 196 | logger.Error("redis failed err=%v", err) |
| 193 | fmt.Fprint(w, "failed") | 197 | fmt.Fprint(w, "failed") |
src/HttpServer/logic/logic.go
| @@ -9,15 +9,24 @@ import ( | @@ -9,15 +9,24 @@ import ( | ||
| 9 | "fmt" | 9 | "fmt" |
| 10 | "net/http" | 10 | "net/http" |
| 11 | "strconv" | 11 | "strconv" |
| 12 | - "time" | ||
| 13 | ) | 12 | ) |
| 14 | 13 | ||
| 15 | func HandlerQueryguaninfo(w http.ResponseWriter, data string, uuid int) { | 14 | func HandlerQueryguaninfo(w http.ResponseWriter, data string, uuid int) { |
| 16 | SetHeader(w) | 15 | SetHeader(w) |
| 17 | var resp QueryguaninfoResp | 16 | var resp QueryguaninfoResp |
| 18 | resp.Code = 0 | 17 | resp.Code = 0 |
| 18 | + var rdata CommReq | ||
| 19 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 19 | for { | 20 | for { |
| 20 | - uinfo, err := GetUserInfo(uuid) | 21 | + if err != nil { |
| 22 | + logger.Info("json decode HandlerDrawguangold data failed:%v,for:%v", err, data) | ||
| 23 | + resp.Message = "json解析错误" | ||
| 24 | + resp.Code = ERROR_JSONUNMASH_ERROR | ||
| 25 | + break | ||
| 26 | + } | ||
| 27 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
| 28 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 29 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 21 | if err != nil || uinfo == nil { | 30 | if err != nil || uinfo == nil { |
| 22 | logger.Error("redis failed err=%v", err) | 31 | logger.Error("redis failed err=%v", err) |
| 23 | resp.Message = "服务器错误" | 32 | resp.Message = "服务器错误" |
| @@ -25,7 +34,7 @@ func HandlerQueryguaninfo(w http.ResponseWriter, data string, uuid int) { | @@ -25,7 +34,7 @@ func HandlerQueryguaninfo(w http.ResponseWriter, data string, uuid int) { | ||
| 25 | break | 34 | break |
| 26 | } | 35 | } |
| 27 | 36 | ||
| 28 | - uinfo.HandlePassDay() | 37 | + uinfo.HandlePassDay(uuid, rdata.Channel) |
| 29 | 38 | ||
| 30 | //获取存钱罐等级配置 | 39 | //获取存钱罐等级配置 |
| 31 | mcfg := jsonconf.GetMoneyBoxCfg(uinfo.Lv) | 40 | mcfg := jsonconf.GetMoneyBoxCfg(uinfo.Lv) |
| @@ -59,7 +68,7 @@ func HandlerWatchads(w http.ResponseWriter, data string, uuid int) { | @@ -59,7 +68,7 @@ func HandlerWatchads(w http.ResponseWriter, data string, uuid int) { | ||
| 59 | var resp WatchadsResp | 68 | var resp WatchadsResp |
| 60 | resp.Code = 0 | 69 | resp.Code = 0 |
| 61 | 70 | ||
| 62 | - for { | 71 | + /*for { |
| 63 | uinfo, err := GetUserInfo(uuid) | 72 | uinfo, err := GetUserInfo(uuid) |
| 64 | if err != nil || uinfo == nil { | 73 | if err != nil || uinfo == nil { |
| 65 | logger.Error("redis failed err=%v", err) | 74 | logger.Error("redis failed err=%v", err) |
| @@ -91,7 +100,7 @@ func HandlerWatchads(w http.ResponseWriter, data string, uuid int) { | @@ -91,7 +100,7 @@ func HandlerWatchads(w http.ResponseWriter, data string, uuid int) { | ||
| 91 | 100 | ||
| 92 | //回包 | 101 | //回包 |
| 93 | respstr, _ := json.Marshal(&resp) | 102 | respstr, _ := json.Marshal(&resp) |
| 94 | - fmt.Fprint(w, string(respstr)) | 103 | + fmt.Fprint(w, string(respstr))*/ |
| 95 | } | 104 | } |
| 96 | 105 | ||
| 97 | func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | 106 | func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { |
| @@ -112,7 +121,9 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | @@ -112,7 +121,9 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | ||
| 112 | rdata.Ver = "2.0.0" | 121 | rdata.Ver = "2.0.0" |
| 113 | }*/ | 122 | }*/ |
| 114 | 123 | ||
| 115 | - uinfo, err := GetUserInfo(uuid) | 124 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 |
| 125 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 126 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 116 | if err != nil || uinfo == nil { | 127 | if err != nil || uinfo == nil { |
| 117 | logger.Error("redis failed err=%v", err) | 128 | logger.Error("redis failed err=%v", err) |
| 118 | resp.Message = "服务器错误" | 129 | resp.Message = "服务器错误" |
| @@ -186,16 +197,16 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | @@ -186,16 +197,16 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | ||
| 186 | } | 197 | } |
| 187 | 198 | ||
| 188 | //需要保存一下提现记录 | 199 | //需要保存一下提现记录 |
| 189 | - sdata := new(WithDrawRecord) | ||
| 190 | - sdata.Coin = int(rdata.Money * 100) | ||
| 191 | - sdata.Create_time = int(time.Now().Unix()) | ||
| 192 | - err = AddWithDrawList(uuid, sdata) | ||
| 193 | - if err != nil { | ||
| 194 | - logger.Error("AddWithDrawList failed err=%v", err) | ||
| 195 | - /*resp.Message = "网络错误" | ||
| 196 | - resp.Code = ERROR_SRV_ERROR | ||
| 197 | - break*/ | ||
| 198 | - } | 200 | + /* sdata := new(WithDrawRecord) |
| 201 | + sdata.Coin = int(rdata.Money * 100) | ||
| 202 | + sdata.Create_time = int(time.Now().Unix()) | ||
| 203 | + err = AddWithDrawList(uuid, sdata) | ||
| 204 | + if err != nil { | ||
| 205 | + logger.Error("AddWithDrawList failed err=%v", err) | ||
| 206 | + resp.Message = "网络错误" | ||
| 207 | + resp.Code = ERROR_SRV_ERROR | ||
| 208 | + break | ||
| 209 | + }*/ | ||
| 199 | 210 | ||
| 200 | if info.Isnew == 1 { | 211 | if info.Isnew == 1 { |
| 201 | uinfo.WithDraw.Cashdata[index].Isnew = 0 | 212 | uinfo.WithDraw.Cashdata[index].Isnew = 0 |
| @@ -221,10 +232,19 @@ func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) { | @@ -221,10 +232,19 @@ func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) { | ||
| 221 | SetHeader(w) | 232 | SetHeader(w) |
| 222 | var resp QuerysigndataResp | 233 | var resp QuerysigndataResp |
| 223 | resp.Code = 0 | 234 | resp.Code = 0 |
| 224 | - | 235 | + var rdata CommReq |
| 236 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 225 | for { | 237 | for { |
| 226 | 238 | ||
| 227 | - uinfo, err := GetUserInfo(uuid) | 239 | + if err != nil { |
| 240 | + logger.Info("json decode HandlerDrawguangold data failed:%v,for:%v", err, data) | ||
| 241 | + resp.Message = "json解析错误" | ||
| 242 | + resp.Code = ERROR_JSONUNMASH_ERROR | ||
| 243 | + break | ||
| 244 | + } | ||
| 245 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
| 246 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 247 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 228 | if err != nil || uinfo == nil { | 248 | if err != nil || uinfo == nil { |
| 229 | logger.Error("redis failed err=%v", err) | 249 | logger.Error("redis failed err=%v", err) |
| 230 | resp.Message = "服务器错误" | 250 | resp.Message = "服务器错误" |
| @@ -233,7 +253,7 @@ func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) { | @@ -233,7 +253,7 @@ func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) { | ||
| 233 | } | 253 | } |
| 234 | 254 | ||
| 235 | //此处要处理一下跨天逻辑 | 255 | //此处要处理一下跨天逻辑 |
| 236 | - uinfo.HandlePassDay() | 256 | + uinfo.HandlePassDay(uuid, rdata.Channel) |
| 237 | 257 | ||
| 238 | resp.Data.Continuessign = uinfo.SignSum | 258 | resp.Data.Continuessign = uinfo.SignSum |
| 239 | resp.Data.IssignToday = uinfo.IsSignToday | 259 | resp.Data.IssignToday = uinfo.IsSignToday |
| @@ -263,7 +283,9 @@ func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) { | @@ -263,7 +283,9 @@ func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) { | ||
| 263 | resp.Code = ERROR_JSONUNMASH_ERROR | 283 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 264 | break | 284 | break |
| 265 | } | 285 | } |
| 266 | - uinfo, err := GetUserInfo(uuid) | 286 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 |
| 287 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 288 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 267 | if err != nil || uinfo == nil { | 289 | if err != nil || uinfo == nil { |
| 268 | logger.Error("redis failed err=%v", err) | 290 | logger.Error("redis failed err=%v", err) |
| 269 | resp.Message = "服务器错误" | 291 | resp.Message = "服务器错误" |
| @@ -339,7 +361,10 @@ func HandlerUsersign(w http.ResponseWriter, data string, uuid int) { | @@ -339,7 +361,10 @@ func HandlerUsersign(w http.ResponseWriter, data string, uuid int) { | ||
| 339 | resp.Code = ERROR_JSONUNMASH_ERROR | 361 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 340 | break | 362 | break |
| 341 | } | 363 | } |
| 342 | - uinfo, err := GetUserInfo(uuid) | 364 | + |
| 365 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
| 366 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 367 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 343 | if err != nil || uinfo == nil { | 368 | if err != nil || uinfo == nil { |
| 344 | logger.Error("redis failed err=%v", err) | 369 | logger.Error("redis failed err=%v", err) |
| 345 | resp.Message = "服务器错误" | 370 | resp.Message = "服务器错误" |
| @@ -415,7 +440,10 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { | @@ -415,7 +440,10 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { | ||
| 415 | resp.Code = ERROR_JSONUNMASH_ERROR | 440 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 416 | break | 441 | break |
| 417 | } | 442 | } |
| 418 | - uinfo, err := GetUserInfo(uuid) | 443 | + |
| 444 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
| 445 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 446 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 419 | if err != nil || uinfo == nil { | 447 | if err != nil || uinfo == nil { |
| 420 | logger.Error("redis failed err=%v", err) | 448 | logger.Error("redis failed err=%v", err) |
| 421 | resp.Message = "服务器错误" | 449 | resp.Message = "服务器错误" |
| @@ -426,7 +454,7 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { | @@ -426,7 +454,7 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { | ||
| 426 | //需要先计算出任务或者成就 | 454 | //需要先计算出任务或者成就 |
| 427 | var tasklist *TaskList | 455 | var tasklist *TaskList |
| 428 | //先查询一下当前的任务数据 | 456 | //先查询一下当前的任务数据 |
| 429 | - tasklist, err = GetTaskInfo(uuid, rdata.Tasktype) | 457 | + tasklist, err = GetTaskInfo(uuid, rdata.Tasktype, rdata.Channel) |
| 430 | if err != nil || tasklist == nil { | 458 | if err != nil || tasklist == nil { |
| 431 | logger.Error("GetTaskInfo failed err=%v", err) | 459 | logger.Error("GetTaskInfo failed err=%v", err) |
| 432 | resp.Message = "服务器错误" | 460 | resp.Message = "服务器错误" |
| @@ -434,7 +462,7 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { | @@ -434,7 +462,7 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { | ||
| 434 | break | 462 | break |
| 435 | } | 463 | } |
| 436 | 464 | ||
| 437 | - err = uinfo.HandleGetTaskReward(&rdata, &resp, tasklist) | 465 | + err = uinfo.HandleGetTaskReward(&rdata, &resp, tasklist, uuid) |
| 438 | logger.Info("HandlerGettaskreward tasklist=%v", tasklist) | 466 | logger.Info("HandlerGettaskreward tasklist=%v", tasklist) |
| 439 | logger.Info("HandlerGettaskreward uinfo=%v", uinfo) | 467 | logger.Info("HandlerGettaskreward uinfo=%v", uinfo) |
| 440 | if err != nil { | 468 | if err != nil { |
| @@ -471,7 +499,9 @@ func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { | @@ -471,7 +499,9 @@ func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { | ||
| 471 | resp.Code = ERROR_JSONUNMASH_ERROR | 499 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 472 | break | 500 | break |
| 473 | } | 501 | } |
| 474 | - uinfo, err := GetUserInfo(uuid) | 502 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 |
| 503 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 504 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 475 | if err != nil || uinfo == nil { | 505 | if err != nil || uinfo == nil { |
| 476 | logger.Error("redis failed err=%v", err) | 506 | logger.Error("redis failed err=%v", err) |
| 477 | resp.Message = "服务器错误" | 507 | resp.Message = "服务器错误" |
| @@ -479,12 +509,12 @@ func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { | @@ -479,12 +509,12 @@ func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { | ||
| 479 | break | 509 | break |
| 480 | } | 510 | } |
| 481 | 511 | ||
| 482 | - uinfo.HandlePassDay() | 512 | + uinfo.HandlePassDay(uuid, rdata.Channel) |
| 483 | 513 | ||
| 484 | //需要先计算出任务或者成就 | 514 | //需要先计算出任务或者成就 |
| 485 | var tasklist *TaskList | 515 | var tasklist *TaskList |
| 486 | //先查询一下当前的任务数据 | 516 | //先查询一下当前的任务数据 |
| 487 | - tasklist, err = GetTaskInfo(uuid, rdata.Tasktype) | 517 | + tasklist, err = GetTaskInfo(uuid, rdata.Tasktype, rdata.Channel) |
| 488 | if err != nil || tasklist == nil { | 518 | if err != nil || tasklist == nil { |
| 489 | logger.Error("redis failed err=%v", err) | 519 | logger.Error("redis failed err=%v", err) |
| 490 | resp.Message = "服务器错误" | 520 | resp.Message = "服务器错误" |
| @@ -534,7 +564,9 @@ func HandlerUpdatetaskandachieve(w http.ResponseWriter, data string, uuid int) { | @@ -534,7 +564,9 @@ func HandlerUpdatetaskandachieve(w http.ResponseWriter, data string, uuid int) { | ||
| 534 | resp.Code = ERROR_JSONUNMASH_ERROR | 564 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 535 | break | 565 | break |
| 536 | } | 566 | } |
| 537 | - uinfo, err := GetUserInfo(uuid) | 567 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 |
| 568 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 569 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 538 | if err != nil || uinfo == nil { | 570 | if err != nil || uinfo == nil { |
| 539 | logger.Error("redis failed err=%v", err) | 571 | logger.Error("redis failed err=%v", err) |
| 540 | resp.Message = "服务器错误" | 572 | resp.Message = "服务器错误" |
| @@ -577,9 +609,19 @@ func HandlerOnlinentf(w http.ResponseWriter, data string, uuid int) { | @@ -577,9 +609,19 @@ func HandlerOnlinentf(w http.ResponseWriter, data string, uuid int) { | ||
| 577 | SetHeader(w) | 609 | SetHeader(w) |
| 578 | var resp OnlinentfResp | 610 | var resp OnlinentfResp |
| 579 | resp.Code = 0 | 611 | resp.Code = 0 |
| 612 | + var rdata CommReq | ||
| 613 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 580 | for { | 614 | for { |
| 581 | 615 | ||
| 582 | - uinfo, err := GetUserInfo(uuid) | 616 | + if err != nil { |
| 617 | + logger.Info("json decode HandlerOnlinentf data failed:%v,for:%v", err, data) | ||
| 618 | + resp.Message = "json解析错误" | ||
| 619 | + resp.Code = ERROR_JSONUNMASH_ERROR | ||
| 620 | + break | ||
| 621 | + } | ||
| 622 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
| 623 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 624 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 583 | if err != nil || uinfo == nil { | 625 | if err != nil || uinfo == nil { |
| 584 | logger.Error("redis failed err=%v", err) | 626 | logger.Error("redis failed err=%v", err) |
| 585 | resp.Message = "服务器错误" | 627 | resp.Message = "服务器错误" |
| @@ -646,8 +688,19 @@ func HandlerQuerdrawinfo(w http.ResponseWriter, data string, uuid int) { | @@ -646,8 +688,19 @@ func HandlerQuerdrawinfo(w http.ResponseWriter, data string, uuid int) { | ||
| 646 | SetHeader(w) | 688 | SetHeader(w) |
| 647 | var resp QuerdrawinfoResp | 689 | var resp QuerdrawinfoResp |
| 648 | resp.Code = 0 | 690 | resp.Code = 0 |
| 691 | + var rdata CommReq | ||
| 692 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 649 | for { | 693 | for { |
| 650 | - uinfo, err := GetUserInfo(uuid) | 694 | + |
| 695 | + if err != nil { | ||
| 696 | + logger.Info("json decode HandlerQuerdrawinfo data failed:%v,for:%v", err, data) | ||
| 697 | + resp.Message = "json解析错误" | ||
| 698 | + resp.Code = ERROR_JSONUNMASH_ERROR | ||
| 699 | + break | ||
| 700 | + } | ||
| 701 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
| 702 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 703 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 651 | if err != nil || uinfo == nil { | 704 | if err != nil || uinfo == nil { |
| 652 | logger.Error("redis failed err=%v", err) | 705 | logger.Error("redis failed err=%v", err) |
| 653 | resp.Message = "服务器错误" | 706 | resp.Message = "服务器错误" |
| @@ -682,7 +735,9 @@ func HandlerDrawguangold(w http.ResponseWriter, data string, uuid int) { | @@ -682,7 +735,9 @@ func HandlerDrawguangold(w http.ResponseWriter, data string, uuid int) { | ||
| 682 | break | 735 | break |
| 683 | } | 736 | } |
| 684 | 737 | ||
| 685 | - uinfo, err := GetUserInfo(uuid) | 738 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 |
| 739 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 740 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 686 | if err != nil || uinfo == nil { | 741 | if err != nil || uinfo == nil { |
| 687 | logger.Error("redis failed err=%v", err) | 742 | logger.Error("redis failed err=%v", err) |
| 688 | resp.Message = "服务器错误" | 743 | resp.Message = "服务器错误" |
| @@ -767,7 +822,9 @@ func HandlerGetguangold(w http.ResponseWriter, data string, uuid int) { | @@ -767,7 +822,9 @@ func HandlerGetguangold(w http.ResponseWriter, data string, uuid int) { | ||
| 767 | break | 822 | break |
| 768 | } | 823 | } |
| 769 | 824 | ||
| 770 | - uinfo, err := GetUserInfo(uuid) | 825 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 |
| 826 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 827 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 771 | if err != nil || uinfo == nil { | 828 | if err != nil || uinfo == nil { |
| 772 | logger.Error("redis failed err=%v", err) | 829 | logger.Error("redis failed err=%v", err) |
| 773 | resp.Message = "服务器错误" | 830 | resp.Message = "服务器错误" |
| @@ -818,7 +875,9 @@ func HandlerGetuserdata(w http.ResponseWriter, data string, uuid int) { | @@ -818,7 +875,9 @@ func HandlerGetuserdata(w http.ResponseWriter, data string, uuid int) { | ||
| 818 | break | 875 | break |
| 819 | } | 876 | } |
| 820 | 877 | ||
| 821 | - data, err := GetUserInfo(uuid) | 878 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 |
| 879 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 880 | + data, err := GetUserInfo(uniqueuuid) | ||
| 822 | if err != nil || data == nil { | 881 | if err != nil || data == nil { |
| 823 | resp.Code = ERROR_SRV_ERROR | 882 | resp.Code = ERROR_SRV_ERROR |
| 824 | resp.Message = "ERROR_SRV_ERROR" | 883 | resp.Message = "ERROR_SRV_ERROR" |
| @@ -854,6 +913,7 @@ func HandlerGetuserdata(w http.ResponseWriter, data string, uuid int) { | @@ -854,6 +913,7 @@ func HandlerGetuserdata(w http.ResponseWriter, data string, uuid int) { | ||
| 854 | 913 | ||
| 855 | func HandlerLogin(w http.ResponseWriter, data string, uuid int) { | 914 | func HandlerLogin(w http.ResponseWriter, data string, uuid int) { |
| 856 | SetHeader(w) | 915 | SetHeader(w) |
| 916 | + | ||
| 857 | var resp UserLoginResp | 917 | var resp UserLoginResp |
| 858 | resp.Code = 0 | 918 | resp.Code = 0 |
| 859 | var rdata UserLoginReq | 919 | var rdata UserLoginReq |
| @@ -866,8 +926,11 @@ func HandlerLogin(w http.ResponseWriter, data string, uuid int) { | @@ -866,8 +926,11 @@ func HandlerLogin(w http.ResponseWriter, data string, uuid int) { | ||
| 866 | break | 926 | break |
| 867 | } | 927 | } |
| 868 | 928 | ||
| 929 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
| 930 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 931 | + //此处需要做一下数据兼容 先判断uuid+channel的key是否存在 | ||
| 869 | //先判断一下是否是新用户 | 932 | //先判断一下是否是新用户 |
| 870 | - isexist, err := redishandler.GetRedisClient().HExists(redis.USER_DATA_KEY, strconv.Itoa(uuid)) | 933 | + isexist, err := redishandler.GetRedisClient().HExists(redis.USER_DATA_KEY, uniqueuuid) |
| 871 | if err != nil { | 934 | if err != nil { |
| 872 | logger.Error("redis failed err=%v", err) | 935 | logger.Error("redis failed err=%v", err) |
| 873 | resp.Message = "服务器错误" | 936 | resp.Message = "服务器错误" |
| @@ -878,10 +941,38 @@ func HandlerLogin(w http.ResponseWriter, data string, uuid int) { | @@ -878,10 +941,38 @@ func HandlerLogin(w http.ResponseWriter, data string, uuid int) { | ||
| 878 | if !isexist { | 941 | if !isexist { |
| 879 | //不存在 | 942 | //不存在 |
| 880 | //属于新登录的玩家数据 | 943 | //属于新登录的玩家数据 |
| 881 | - err = InitUserInfo(&rdata, &resp, uuid) | 944 | + //需要判断是否存在老的版本的数据 |
| 945 | + isexist, err = redishandler.GetRedisClient().HExists(redis.USER_DATA_KEY, strconv.Itoa(uuid)) | ||
| 946 | + if err == nil && isexist { | ||
| 947 | + //如果存在老的数据 做数据迁移 | ||
| 948 | + oldstr, err := redishandler.GetRedisClient().HGet(redis.USER_DATA_KEY, strconv.Itoa(uuid)) | ||
| 949 | + if err != nil { | ||
| 950 | + logger.Error("HandlerLogin redis failed err=%v,uuid=%v", err, uuid) | ||
| 951 | + resp.Message = "服务器错误" | ||
| 952 | + resp.Code = ERROR_SRV_ERROR | ||
| 953 | + break | ||
| 954 | + } | ||
| 955 | + err = redishandler.GetRedisClient().HSet(redis.USER_DATA_KEY, uniqueuuid, oldstr) | ||
| 956 | + if err != nil { | ||
| 957 | + logger.Error("HandlerLogin redis failed err=%v,uuid=%v", err, uuid) | ||
| 958 | + resp.Message = "服务器错误" | ||
| 959 | + resp.Code = ERROR_SRV_ERROR | ||
| 960 | + break | ||
| 961 | + } | ||
| 962 | + err = GetUserData(uuid, uniqueuuid, &rdata, &resp) | ||
| 963 | + if err == nil { | ||
| 964 | + //删除老的数据 | ||
| 965 | + redishandler.GetRedisClient().HDel(redis.USER_DATA_KEY, strconv.Itoa(uuid)) | ||
| 966 | + } | ||
| 967 | + } else { | ||
| 968 | + //不存在老的数据 之间走新号流程 | ||
| 969 | + err = InitUserInfo(&rdata, &resp, uuid, uniqueuuid) | ||
| 970 | + } | ||
| 971 | + | ||
| 882 | } else { | 972 | } else { |
| 973 | + //已经迁移过的数据之间返回 | ||
| 883 | //已经登陆过了 需要获取玩家数据 | 974 | //已经登陆过了 需要获取玩家数据 |
| 884 | - err = GetUserData(uuid, &rdata, &resp) | 975 | + err = GetUserData(uuid, uniqueuuid, &rdata, &resp) |
| 885 | } | 976 | } |
| 886 | 977 | ||
| 887 | if err != nil { | 978 | if err != nil { |