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 { |