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 | 76 | } |
| 77 | 77 | |
| 78 | 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 | 84 | type GetguangoldData struct { |
| ... | ... | @@ -123,6 +125,11 @@ type GetcashReq struct { |
| 123 | 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 | 133 | type GetcashData struct { |
| 127 | 134 | Walletgold int `json:"walletgold"` |
| 128 | 135 | } |
| ... | ... | @@ -149,8 +156,10 @@ type OnlinentfResp struct { |
| 149 | 156 | } |
| 150 | 157 | |
| 151 | 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 | 165 | type UpdatetaskResp struct { |
| ... | ... | @@ -159,7 +168,9 @@ type UpdatetaskResp struct { |
| 159 | 168 | } |
| 160 | 169 | |
| 161 | 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 | 176 | type QuerytaskinfoResp struct { |
| ... | ... | @@ -290,7 +301,7 @@ type WithDrawDesc struct { |
| 290 | 301 | |
| 291 | 302 | //玩家数据 |
| 292 | 303 | type UserData struct { |
| 293 | - Userid int //玩家id | |
| 304 | + Userid string //玩家id | |
| 294 | 305 | Lv int //玩家当前等级 |
| 295 | 306 | LvRewardGet int //当前等级奖励是否已经领取 1未领取 2普通领取 3双倍领取 |
| 296 | 307 | Exp int //玩家当前经验值 | ... | ... |
src/HttpServer/logic/function.go
| ... | ... | @@ -45,14 +45,14 @@ func SaveUserInfo(data *UserData) error { |
| 45 | 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 | 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 | 56 | if err != nil { |
| 57 | 57 | return nil, err |
| 58 | 58 | } |
| ... | ... | @@ -276,7 +276,7 @@ func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList { |
| 276 | 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 | 280 | savestr, err := json.Marshal(list) |
| 281 | 281 | if err != nil { |
| 282 | 282 | logger.Error("SaveTaskInfo err =%v", err) |
| ... | ... | @@ -284,9 +284,9 @@ func SaveTaskInfo(uuid, tasktype int, list *TaskList) error { |
| 284 | 284 | } |
| 285 | 285 | |
| 286 | 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 | 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 | 290 | //logger.Info("SaveTaskInfo savestr=%v", string(savestr)) |
| 291 | 291 | } else { |
| 292 | 292 | logger.Error("tasktype invalid") |
| ... | ... | @@ -295,13 +295,28 @@ func SaveTaskInfo(uuid, tasktype int, list *TaskList) error { |
| 295 | 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 | 300 | var data string |
| 300 | 301 | var err error |
| 301 | 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 | 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 | 320 | } else { |
| 306 | 321 | logger.Error("tasktype invalid") |
| 307 | 322 | return nil, errors.New("tasktype invalid") |
| ... | ... | @@ -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 | 341 | isfind := false |
| 327 | 342 | index := -1 |
| 328 | 343 | var taskdesc *TaskListDesc |
| ... | ... | @@ -385,7 +400,7 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *Gettaskr |
| 385 | 400 | for i := 0; i < sub; i++ { |
| 386 | 401 | rtype := cfg.Reward[i*2] |
| 387 | 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 | 404 | if resp.Data.Lv != r1 { |
| 390 | 405 | resp.Data.Lv = r1 |
| 391 | 406 | resp.Data.Costtime = uinfo.UpLvCostTime / 3600 |
| ... | ... | @@ -401,7 +416,7 @@ func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *Gettaskr |
| 401 | 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 | 420 | logger.Info("RewardUser rtype=%v,num=%v", rtype, num) |
| 406 | 421 | switch rtype { |
| 407 | 422 | case REWARDTYPE_STAR: |
| ... | ... | @@ -422,7 +437,7 @@ func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel str |
| 422 | 437 | return 0, 0, 0, 0, 0, 0, 0 |
| 423 | 438 | } |
| 424 | 439 | case REWARDTYPE_GOLD: |
| 425 | - goldnum, err := AddCoinToSdk(uinfo.Userid, num, gameid, channel, 102) | |
| 440 | + goldnum, err := AddCoinToSdk(uuid, num, gameid, channel, 102) | |
| 426 | 441 | if err != nil { |
| 427 | 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 | 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 | 455 | var initdata UserData |
| 441 | 456 | initdata.Lv = 1 |
| 442 | 457 | initdata.LvRewardGet = 1 |
| 443 | 458 | initdata.Exp = 0 |
| 444 | - initdata.Userid = uuid | |
| 459 | + initdata.Userid = uniqueuid //加上渠道的唯一id | |
| 445 | 460 | initdata.ContinueLoginDay = 1 |
| 446 | 461 | initdata.GetFromGuanCnt = 0 |
| 447 | 462 | initdata.GuanGold = 0 |
| ... | ... | @@ -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 | 503 | return err |
| 489 | 504 | } |
| ... | ... | @@ -497,9 +512,10 @@ func (t *TaskList) IsInTaskList(id int) bool { |
| 497 | 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 | 519 | if tlist == nil { |
| 504 | 520 | tasklist := new(TaskList) |
| 505 | 521 | for _, val := range jsonconf.GetJsonConf().TaskConfig { |
| ... | ... | @@ -510,7 +526,7 @@ func InitTaskAndAchievement(uuid int) error { |
| 510 | 526 | tasklist.Taskdata = append(tasklist.Taskdata, tmp) |
| 511 | 527 | } |
| 512 | 528 | |
| 513 | - err := SaveTaskInfo(uuid, 1, tasklist) | |
| 529 | + err := SaveTaskInfo(unqiueid, 1, tasklist) | |
| 514 | 530 | if err != nil { |
| 515 | 531 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 516 | 532 | //return err |
| ... | ... | @@ -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 | 552 | if err != nil { |
| 537 | 553 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 538 | 554 | //return err |
| ... | ... | @@ -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 | 560 | if alist == nil { |
| 545 | 561 | achievelist := new(TaskList) |
| 546 | 562 | for _, val := range jsonconf.GetJsonConf().AchieventConfig { |
| ... | ... | @@ -551,7 +567,7 @@ func InitTaskAndAchievement(uuid int) error { |
| 551 | 567 | achievelist.Taskdata = append(achievelist.Taskdata, tmp) |
| 552 | 568 | } |
| 553 | 569 | |
| 554 | - err = SaveTaskInfo(uuid, 2, achievelist) | |
| 570 | + err = SaveTaskInfo(unqiueid, 2, achievelist) | |
| 555 | 571 | if err != nil { |
| 556 | 572 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 557 | 573 | return err |
| ... | ... | @@ -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 | 587 | if err != nil { |
| 572 | 588 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 573 | 589 | return err |
| ... | ... | @@ -596,7 +612,7 @@ func (u *UserData) CalcTotalCnt() int { |
| 596 | 612 | return usertime |
| 597 | 613 | } |
| 598 | 614 | |
| 599 | -func (u *UserData) HandlePassDay() { | |
| 615 | +func (u *UserData) HandlePassDay(uuid int, channel string) { | |
| 600 | 616 | isdiffday := false |
| 601 | 617 | nowtime := time.Now() |
| 602 | 618 | lasttime := time.Unix(int64(u.LastLoginTime), 0) |
| ... | ... | @@ -663,7 +679,7 @@ func (u *UserData) HandlePassDay() { |
| 663 | 679 | if err != nil { |
| 664 | 680 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 665 | 681 | }*/ |
| 666 | - err := InitTaskAndAchievement(u.Userid) | |
| 682 | + err := InitTaskAndAchievement(uuid, channel) | |
| 667 | 683 | if err != nil { |
| 668 | 684 | logger.Error("InitTaskAndAchievement err=%v", err) |
| 669 | 685 | } |
| ... | ... | @@ -682,8 +698,8 @@ func (u *UserData) HandlePassDay() { |
| 682 | 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 | 703 | if err != nil || data == nil { |
| 688 | 704 | resp.Code = ERROR_SRV_ERROR |
| 689 | 705 | resp.Message = "ERROR_SRV_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 | 712 | //此处处理一下从sdk拉取钱包金币数量 |
| 697 | 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 | 137 | func Addcoin(w http.ResponseWriter, r *http.Request) { |
| 138 | 138 | SetHeader(w) |
| 139 | 139 | query := r.URL.Query() |
| 140 | - uuid := query.Get("uuid") | |
| 140 | + uuid := query.Get("uuid") //需要加上渠道号 460012 | |
| 141 | + channel := query.Get("channel") | |
| 141 | 142 | uuidnum, _ := strconv.Atoi(uuid) |
| 142 | - uinfo, err := GetUserInfo(uuidnum) | |
| 143 | + uniqueuuid := uuid + channel | |
| 144 | + uinfo, err := GetUserInfo(uniqueuuid) | |
| 143 | 145 | if err != nil || uinfo == nil { |
| 144 | 146 | logger.Error("redis failed err=%v", err) |
| 145 | 147 | fmt.Fprint(w, "failed") |
| ... | ... | @@ -187,7 +189,9 @@ func Testapi(w http.ResponseWriter, r *http.Request) { |
| 187 | 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 | 195 | if err != nil || uinfo == nil { |
| 192 | 196 | logger.Error("redis failed err=%v", err) |
| 193 | 197 | fmt.Fprint(w, "failed") | ... | ... |
src/HttpServer/logic/logic.go
| ... | ... | @@ -9,15 +9,24 @@ import ( |
| 9 | 9 | "fmt" |
| 10 | 10 | "net/http" |
| 11 | 11 | "strconv" |
| 12 | - "time" | |
| 13 | 12 | ) |
| 14 | 13 | |
| 15 | 14 | func HandlerQueryguaninfo(w http.ResponseWriter, data string, uuid int) { |
| 16 | 15 | SetHeader(w) |
| 17 | 16 | var resp QueryguaninfoResp |
| 18 | 17 | resp.Code = 0 |
| 18 | + var rdata CommReq | |
| 19 | + err := json.Unmarshal([]byte(data), &rdata) | |
| 19 | 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 | 30 | if err != nil || uinfo == nil { |
| 22 | 31 | logger.Error("redis failed err=%v", err) |
| 23 | 32 | resp.Message = "服务器错误" |
| ... | ... | @@ -25,7 +34,7 @@ func HandlerQueryguaninfo(w http.ResponseWriter, data string, uuid int) { |
| 25 | 34 | break |
| 26 | 35 | } |
| 27 | 36 | |
| 28 | - uinfo.HandlePassDay() | |
| 37 | + uinfo.HandlePassDay(uuid, rdata.Channel) | |
| 29 | 38 | |
| 30 | 39 | //获取存钱罐等级配置 |
| 31 | 40 | mcfg := jsonconf.GetMoneyBoxCfg(uinfo.Lv) |
| ... | ... | @@ -59,7 +68,7 @@ func HandlerWatchads(w http.ResponseWriter, data string, uuid int) { |
| 59 | 68 | var resp WatchadsResp |
| 60 | 69 | resp.Code = 0 |
| 61 | 70 | |
| 62 | - for { | |
| 71 | + /*for { | |
| 63 | 72 | uinfo, err := GetUserInfo(uuid) |
| 64 | 73 | if err != nil || uinfo == nil { |
| 65 | 74 | logger.Error("redis failed err=%v", err) |
| ... | ... | @@ -91,7 +100,7 @@ func HandlerWatchads(w http.ResponseWriter, data string, uuid int) { |
| 91 | 100 | |
| 92 | 101 | //回包 |
| 93 | 102 | respstr, _ := json.Marshal(&resp) |
| 94 | - fmt.Fprint(w, string(respstr)) | |
| 103 | + fmt.Fprint(w, string(respstr))*/ | |
| 95 | 104 | } |
| 96 | 105 | |
| 97 | 106 | func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { |
| ... | ... | @@ -112,7 +121,9 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { |
| 112 | 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 | 127 | if err != nil || uinfo == nil { |
| 117 | 128 | logger.Error("redis failed err=%v", err) |
| 118 | 129 | resp.Message = "服务器错误" |
| ... | ... | @@ -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 | 211 | if info.Isnew == 1 { |
| 201 | 212 | uinfo.WithDraw.Cashdata[index].Isnew = 0 |
| ... | ... | @@ -221,10 +232,19 @@ func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) { |
| 221 | 232 | SetHeader(w) |
| 222 | 233 | var resp QuerysigndataResp |
| 223 | 234 | resp.Code = 0 |
| 224 | - | |
| 235 | + var rdata CommReq | |
| 236 | + err := json.Unmarshal([]byte(data), &rdata) | |
| 225 | 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 | 248 | if err != nil || uinfo == nil { |
| 229 | 249 | logger.Error("redis failed err=%v", err) |
| 230 | 250 | resp.Message = "服务器错误" |
| ... | ... | @@ -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 | 258 | resp.Data.Continuessign = uinfo.SignSum |
| 239 | 259 | resp.Data.IssignToday = uinfo.IsSignToday |
| ... | ... | @@ -263,7 +283,9 @@ func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) { |
| 263 | 283 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 264 | 284 | break |
| 265 | 285 | } |
| 266 | - uinfo, err := GetUserInfo(uuid) | |
| 286 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | |
| 287 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | |
| 288 | + uinfo, err := GetUserInfo(uniqueuuid) | |
| 267 | 289 | if err != nil || uinfo == nil { |
| 268 | 290 | logger.Error("redis failed err=%v", err) |
| 269 | 291 | resp.Message = "服务器错误" |
| ... | ... | @@ -339,7 +361,10 @@ func HandlerUsersign(w http.ResponseWriter, data string, uuid int) { |
| 339 | 361 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 340 | 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 | 368 | if err != nil || uinfo == nil { |
| 344 | 369 | logger.Error("redis failed err=%v", err) |
| 345 | 370 | resp.Message = "服务器错误" |
| ... | ... | @@ -415,7 +440,10 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { |
| 415 | 440 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 416 | 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 | 447 | if err != nil || uinfo == nil { |
| 420 | 448 | logger.Error("redis failed err=%v", err) |
| 421 | 449 | resp.Message = "服务器错误" |
| ... | ... | @@ -426,7 +454,7 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { |
| 426 | 454 | //需要先计算出任务或者成就 |
| 427 | 455 | var tasklist *TaskList |
| 428 | 456 | //先查询一下当前的任务数据 |
| 429 | - tasklist, err = GetTaskInfo(uuid, rdata.Tasktype) | |
| 457 | + tasklist, err = GetTaskInfo(uuid, rdata.Tasktype, rdata.Channel) | |
| 430 | 458 | if err != nil || tasklist == nil { |
| 431 | 459 | logger.Error("GetTaskInfo failed err=%v", err) |
| 432 | 460 | resp.Message = "服务器错误" |
| ... | ... | @@ -434,7 +462,7 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { |
| 434 | 462 | break |
| 435 | 463 | } |
| 436 | 464 | |
| 437 | - err = uinfo.HandleGetTaskReward(&rdata, &resp, tasklist) | |
| 465 | + err = uinfo.HandleGetTaskReward(&rdata, &resp, tasklist, uuid) | |
| 438 | 466 | logger.Info("HandlerGettaskreward tasklist=%v", tasklist) |
| 439 | 467 | logger.Info("HandlerGettaskreward uinfo=%v", uinfo) |
| 440 | 468 | if err != nil { |
| ... | ... | @@ -471,7 +499,9 @@ func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { |
| 471 | 499 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 472 | 500 | break |
| 473 | 501 | } |
| 474 | - uinfo, err := GetUserInfo(uuid) | |
| 502 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | |
| 503 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | |
| 504 | + uinfo, err := GetUserInfo(uniqueuuid) | |
| 475 | 505 | if err != nil || uinfo == nil { |
| 476 | 506 | logger.Error("redis failed err=%v", err) |
| 477 | 507 | resp.Message = "服务器错误" |
| ... | ... | @@ -479,12 +509,12 @@ func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { |
| 479 | 509 | break |
| 480 | 510 | } |
| 481 | 511 | |
| 482 | - uinfo.HandlePassDay() | |
| 512 | + uinfo.HandlePassDay(uuid, rdata.Channel) | |
| 483 | 513 | |
| 484 | 514 | //需要先计算出任务或者成就 |
| 485 | 515 | var tasklist *TaskList |
| 486 | 516 | //先查询一下当前的任务数据 |
| 487 | - tasklist, err = GetTaskInfo(uuid, rdata.Tasktype) | |
| 517 | + tasklist, err = GetTaskInfo(uuid, rdata.Tasktype, rdata.Channel) | |
| 488 | 518 | if err != nil || tasklist == nil { |
| 489 | 519 | logger.Error("redis failed err=%v", err) |
| 490 | 520 | resp.Message = "服务器错误" |
| ... | ... | @@ -534,7 +564,9 @@ func HandlerUpdatetaskandachieve(w http.ResponseWriter, data string, uuid int) { |
| 534 | 564 | resp.Code = ERROR_JSONUNMASH_ERROR |
| 535 | 565 | break |
| 536 | 566 | } |
| 537 | - uinfo, err := GetUserInfo(uuid) | |
| 567 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | |
| 568 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | |
| 569 | + uinfo, err := GetUserInfo(uniqueuuid) | |
| 538 | 570 | if err != nil || uinfo == nil { |
| 539 | 571 | logger.Error("redis failed err=%v", err) |
| 540 | 572 | resp.Message = "服务器错误" |
| ... | ... | @@ -577,9 +609,19 @@ func HandlerOnlinentf(w http.ResponseWriter, data string, uuid int) { |
| 577 | 609 | SetHeader(w) |
| 578 | 610 | var resp OnlinentfResp |
| 579 | 611 | resp.Code = 0 |
| 612 | + var rdata CommReq | |
| 613 | + err := json.Unmarshal([]byte(data), &rdata) | |
| 580 | 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 | 625 | if err != nil || uinfo == nil { |
| 584 | 626 | logger.Error("redis failed err=%v", err) |
| 585 | 627 | resp.Message = "服务器错误" |
| ... | ... | @@ -646,8 +688,19 @@ func HandlerQuerdrawinfo(w http.ResponseWriter, data string, uuid int) { |
| 646 | 688 | SetHeader(w) |
| 647 | 689 | var resp QuerdrawinfoResp |
| 648 | 690 | resp.Code = 0 |
| 691 | + var rdata CommReq | |
| 692 | + err := json.Unmarshal([]byte(data), &rdata) | |
| 649 | 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 | 704 | if err != nil || uinfo == nil { |
| 652 | 705 | logger.Error("redis failed err=%v", err) |
| 653 | 706 | resp.Message = "服务器错误" |
| ... | ... | @@ -682,7 +735,9 @@ func HandlerDrawguangold(w http.ResponseWriter, data string, uuid int) { |
| 682 | 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 | 741 | if err != nil || uinfo == nil { |
| 687 | 742 | logger.Error("redis failed err=%v", err) |
| 688 | 743 | resp.Message = "服务器错误" |
| ... | ... | @@ -767,7 +822,9 @@ func HandlerGetguangold(w http.ResponseWriter, data string, uuid int) { |
| 767 | 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 | 828 | if err != nil || uinfo == nil { |
| 772 | 829 | logger.Error("redis failed err=%v", err) |
| 773 | 830 | resp.Message = "服务器错误" |
| ... | ... | @@ -818,7 +875,9 @@ func HandlerGetuserdata(w http.ResponseWriter, data string, uuid int) { |
| 818 | 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 | 881 | if err != nil || data == nil { |
| 823 | 882 | resp.Code = ERROR_SRV_ERROR |
| 824 | 883 | resp.Message = "ERROR_SRV_ERROR" |
| ... | ... | @@ -854,6 +913,7 @@ func HandlerGetuserdata(w http.ResponseWriter, data string, uuid int) { |
| 854 | 913 | |
| 855 | 914 | func HandlerLogin(w http.ResponseWriter, data string, uuid int) { |
| 856 | 915 | SetHeader(w) |
| 916 | + | |
| 857 | 917 | var resp UserLoginResp |
| 858 | 918 | resp.Code = 0 |
| 859 | 919 | var rdata UserLoginReq |
| ... | ... | @@ -866,8 +926,11 @@ func HandlerLogin(w http.ResponseWriter, data string, uuid int) { |
| 866 | 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 | 934 | if err != nil { |
| 872 | 935 | logger.Error("redis failed err=%v", err) |
| 873 | 936 | resp.Message = "服务器错误" |
| ... | ... | @@ -878,10 +941,38 @@ func HandlerLogin(w http.ResponseWriter, data string, uuid int) { |
| 878 | 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 | 972 | } else { |
| 973 | + //已经迁移过的数据之间返回 | |
| 883 | 974 | //已经登陆过了 需要获取玩家数据 |
| 884 | - err = GetUserData(uuid, &rdata, &resp) | |
| 975 | + err = GetUserData(uuid, uniqueuuid, &rdata, &resp) | |
| 885 | 976 | } |
| 886 | 977 | |
| 887 | 978 | if err != nil { | ... | ... |