Commit b8745176833ba520df0842f98802097bcac11e0f
1 parent
81b07025
Exists in
master
提交
Showing
5 changed files
with
287 additions
and
68 deletions
Show diff stats
src/HttpServer/logic/constdef.go
src/HttpServer/logic/datadef.go
| ... | ... | @@ -331,10 +331,15 @@ type DoBuyCatResp struct { |
| 331 | 331 | Data DoBuyCatData `json:"data"` |
| 332 | 332 | } |
| 333 | 333 | |
| 334 | +type QueryWareHouseData struct { | |
| 335 | + CatList []int `json:"catList"` | |
| 336 | + CatCapacity int `json:"catCapacity"` | |
| 337 | +} | |
| 338 | + | |
| 334 | 339 | type QueryWareHouseResp struct { |
| 335 | - Code int `json:"code"` | |
| 336 | - Message string `json:"message"` | |
| 337 | - Data []DataDesc `json:"data"` | |
| 340 | + Code int `json:"code"` | |
| 341 | + Message string `json:"message"` | |
| 342 | + Data QueryWareHouseData `json:"data"` | |
| 338 | 343 | } |
| 339 | 344 | |
| 340 | 345 | type QueryAutomergeResp struct { |
| ... | ... | @@ -347,21 +352,24 @@ type QueryAutomergeResp struct { |
| 347 | 352 | } |
| 348 | 353 | |
| 349 | 354 | type PutWareHouseReq struct { |
| 350 | - Pos int `json:"pos"` | |
| 355 | + Position int `json:"position"` | |
| 356 | +} | |
| 357 | +type PutWareHouseData struct { | |
| 358 | + Coin DoBuyCatCoin `json:"coin"` | |
| 351 | 359 | } |
| 352 | 360 | type PutWareHouseResp struct { |
| 353 | - Code int `json:"code"` | |
| 354 | - Message string `json:"message"` | |
| 355 | - Warepos int `json:"warepos"` | |
| 361 | + Code int `json:"code"` | |
| 362 | + Message string `json:"message"` | |
| 363 | + Data PutWareHouseData `json:"data"` | |
| 356 | 364 | } |
| 357 | 365 | |
| 358 | 366 | type TakeWareHouseReq struct { |
| 359 | - Warepos int `json:"warepos"` | |
| 367 | + CatId int `json:"catId"` | |
| 360 | 368 | } |
| 361 | 369 | type TakeWareHouseResp struct { |
| 362 | - Code int `json:"code"` | |
| 363 | - Message string `json:"message"` | |
| 364 | - Pos int `json:"pos"` | |
| 370 | + Code int `json:"code"` | |
| 371 | + Message string `json:"message"` | |
| 372 | + Data PutWareHouseData `json:"data"` | |
| 365 | 373 | } |
| 366 | 374 | |
| 367 | 375 | type CatRoomDesc struct { |
| ... | ... | @@ -665,7 +673,10 @@ type UserData struct { |
| 665 | 673 | |
| 666 | 674 | //仓库数据详情 |
| 667 | 675 | type WareHouseDesc struct { |
| 668 | - Warelv int //红包猫等级 对应表id | |
| 676 | + Warelv int //红包猫等级 对应表id | |
| 677 | + RedPacket float32 | |
| 678 | + Time int | |
| 679 | + StartTime int | |
| 669 | 680 | } |
| 670 | 681 | |
| 671 | 682 | //玩家仓库数据 | ... | ... |
src/HttpServer/logic/function.go
| ... | ... | @@ -494,7 +494,7 @@ func MergeRedBagCat(uinfo *UserData, pos int) int { |
| 494 | 494 | tmprate += int(v.Rate * 100 / sumrate) |
| 495 | 495 | if tmprate >= randnum { |
| 496 | 496 | uinfo.PosInfo[pos].Position = pos |
| 497 | - uinfo.PosInfo[pos].Cat = 100 + v.Id | |
| 497 | + uinfo.PosInfo[pos].Cat = REDCATIDEXTRA + v.Id | |
| 498 | 498 | if v.Id == 13 { |
| 499 | 499 | uinfo.PosInfo[pos].Time = 10 * 60 |
| 500 | 500 | uinfo.PosInfo[pos].StartTime = int(time.Now().Unix()) |
| ... | ... | @@ -544,7 +544,7 @@ func (udata *UserData) CalcGoldRate() int64 { |
| 544 | 544 | return 0 |
| 545 | 545 | } |
| 546 | 546 | for _, v := range udata.PosInfo { |
| 547 | - if v.Cat > 0 && v.Cat < 100 { | |
| 547 | + if v.Cat > 0 && v.Cat < REDCATIDEXTRA { | |
| 548 | 548 | //有猫存在的要计算一下 |
| 549 | 549 | //非红包猫 |
| 550 | 550 | for _, vv := range jsonconf.GetJsonConf().CatConfig { |
| ... | ... | @@ -556,7 +556,7 @@ func (udata *UserData) CalcGoldRate() int64 { |
| 556 | 556 | } |
| 557 | 557 | } |
| 558 | 558 | |
| 559 | - if v.Cat > 100 { | |
| 559 | + if v.Cat > REDCATIDEXTRA { | |
| 560 | 560 | //红包猫 需要判断是否产金币 |
| 561 | 561 | rcfg := jsonconf.GetRedCatConfig(v.Cat) |
| 562 | 562 | if rcfg != nil { |
| ... | ... | @@ -585,14 +585,14 @@ func (udata *UserData) CalcGoldRate() int64 { |
| 585 | 585 | if v.Warelv == 0 { |
| 586 | 586 | continue |
| 587 | 587 | } |
| 588 | - rcfg := jsonconf.GetRedCatConfig(v.Warelv + 100) | |
| 588 | + rcfg := jsonconf.GetRedCatConfig(v.Warelv + REDCATIDEXTRA) | |
| 589 | 589 | if rcfg != nil { |
| 590 | 590 | if rcfg.Is_37 != 0 { |
| 591 | 591 | onerate, _ := strconv.ParseInt(cfg37.Gold_get, 10, 64) |
| 592 | 592 | sumrate += onerate |
| 593 | 593 | } |
| 594 | 594 | } else { |
| 595 | - logger.Error("GetRedCatConfig failed lv=%v", v.Warelv+100) | |
| 595 | + logger.Error("GetRedCatConfig failed lv=%v", v.Warelv+REDCATIDEXTRA) | |
| 596 | 596 | } |
| 597 | 597 | } |
| 598 | 598 | |
| ... | ... | @@ -631,7 +631,7 @@ func (u *UserData) CalcHigestCatName() string { |
| 631 | 631 | return "" |
| 632 | 632 | } |
| 633 | 633 | for _, val := range wdata.Info { |
| 634 | - reallv := val.Warelv + 100 | |
| 634 | + reallv := val.Warelv + REDCATIDEXTRA | |
| 635 | 635 | if higestlv < reallv { |
| 636 | 636 | higestlv = reallv |
| 637 | 637 | } |
| ... | ... | @@ -688,3 +688,30 @@ func (u *UserData) GetRedCatIdList() []int { |
| 688 | 688 | } |
| 689 | 689 | |
| 690 | 690 | } |
| 691 | + | |
| 692 | +//尝试将合成界面的猫放入仓库 返回位置索引 -1表示仓库已满放入失败 | |
| 693 | +func (u *UserData) tryPutToWareHouse(info *UserWareHouseData, pos int, uuid int) int { | |
| 694 | + rtval := -1 | |
| 695 | + for k, v := range info.Info { | |
| 696 | + if v.Warelv == 0 { | |
| 697 | + rtval = k | |
| 698 | + info.Info[k].Warelv = u.PosInfo[pos].Cat | |
| 699 | + info.Info[k].Time = u.PosInfo[pos].Time | |
| 700 | + info.Info[k].RedPacket = u.PosInfo[pos].RedPacket | |
| 701 | + info.Info[k].StartTime = u.PosInfo[pos].StartTime | |
| 702 | + //v.Warelv = lv | |
| 703 | + | |
| 704 | + break | |
| 705 | + } | |
| 706 | + } | |
| 707 | + if rtval != -1 { | |
| 708 | + wares, _ := json.Marshal(info) | |
| 709 | + redishandler.GetRedisClient().HSet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid), string(wares)) | |
| 710 | + } | |
| 711 | + return rtval | |
| 712 | +} | |
| 713 | + | |
| 714 | +//根据id获得仓位位置 | |
| 715 | +func (w *UserWareHouseData) GetWarePosById(cid int) int { | |
| 716 | + return -1 | |
| 717 | +} | ... | ... |
src/HttpServer/logic/httpserver.go
| ... | ... | @@ -23,30 +23,33 @@ func CheckErr(err error) { |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | func startServerHttpServe() { |
| 26 | - http.HandleFunc("/api/account/login", UserLogin) //登录 | |
| 27 | - http.HandleFunc("/api/home/buy", DoBuyCat) //购买猫 | |
| 28 | - http.HandleFunc("/api/home/synResource", GetUserData) //同步资源 | |
| 29 | - http.HandleFunc("/api/home/recvOfflineReward", GetOfflineReward) //领取离线奖励 | |
| 30 | - http.HandleFunc("/api/ranking/list", QueryPlayerRank) //排行榜 | |
| 31 | - http.HandleFunc("/api/home/index", GetMainPageInfo) //主页面 | |
| 32 | - http.HandleFunc("/api/home/adRate", AcclecteGold) //看广告加速 | |
| 33 | - http.HandleFunc("/api/home/shop", QueryBuyCat) //商店 | |
| 34 | - http.HandleFunc("/api/home/leftRateTimes", LeftRateTimes) //剩余看广告加速次数 | |
| 35 | - http.HandleFunc("/api/home/change", ExchangePos) //合成 | |
| 36 | - http.HandleFunc("/api/home/leftTimes", LeftTimes) //剩余看广告领取金币次数 | |
| 37 | - http.HandleFunc("/api/home/adCoin", WatchAdsGetGold) //看广告领取金币 | |
| 38 | - http.HandleFunc("/api/home/recvTimingReward", RecvTimingReward) //整点领取金币 | |
| 39 | - http.HandleFunc("/api/home/redCatList", RedCatList) //红包猫列表 此接口目前没有用到 暂时不实线 | |
| 40 | - http.HandleFunc("/api/home/recovery", Recovery) //回收猫 | |
| 41 | - http.HandleFunc("/api/home/compose", Compose) //五猫合成 | |
| 42 | - http.HandleFunc("/api/home/recvRedCat", RecvRedCat) //红包猫领取 | |
| 43 | - http.HandleFunc("/api/home/limitCatList", LimitCatList) //分红猫列表 | |
| 44 | - http.HandleFunc("/api/turntable/index", QueryTurntable) //转盘主页 | |
| 45 | - http.HandleFunc("/api/turntable/addTicket", AddTicket) //增加抽奖券 | |
| 46 | - http.HandleFunc("/api/turntable/multiple", Multiple) //增加倍数 | |
| 47 | - http.HandleFunc("/api/turntable/draw", DrawTable) //抽奖 | |
| 48 | - http.HandleFunc("/api/flop/leftTimes", QueryFlop) //剩余翻牌次数 | |
| 49 | - http.HandleFunc("/api/flop/flop", DoFlop) //进行翻牌 | |
| 26 | + http.HandleFunc("/api/account/login", UserLogin) //登录 | |
| 27 | + http.HandleFunc("/api/home/buy", DoBuyCat) //购买猫 | |
| 28 | + http.HandleFunc("/api/home/synResource", GetUserData) //同步资源 | |
| 29 | + http.HandleFunc("/api/home/recvOfflineReward", GetOfflineReward) //领取离线奖励 | |
| 30 | + http.HandleFunc("/api/ranking/list", QueryPlayerRank) //排行榜 | |
| 31 | + http.HandleFunc("/api/home/index", GetMainPageInfo) //主页面 | |
| 32 | + http.HandleFunc("/api/home/adRate", AcclecteGold) //看广告加速 | |
| 33 | + http.HandleFunc("/api/home/shop", QueryBuyCat) //商店 | |
| 34 | + http.HandleFunc("/api/home/leftRateTimes", LeftRateTimes) //剩余看广告加速次数 | |
| 35 | + http.HandleFunc("/api/home/change", ExchangePos) //合成 | |
| 36 | + http.HandleFunc("/api/home/leftTimes", LeftTimes) //剩余看广告领取金币次数 | |
| 37 | + http.HandleFunc("/api/home/adCoin", WatchAdsGetGold) //看广告领取金币 | |
| 38 | + http.HandleFunc("/api/home/recvTimingReward", RecvTimingReward) //整点领取金币 | |
| 39 | + http.HandleFunc("/api/home/redCatList", RedCatList) //红包猫列表 此接口目前没有用到 暂时不实线 | |
| 40 | + http.HandleFunc("/api/home/recovery", Recovery) //回收猫 | |
| 41 | + http.HandleFunc("/api/home/compose", Compose) //五猫合成 | |
| 42 | + http.HandleFunc("/api/home/recvRedCat", RecvRedCat) //红包猫领取 | |
| 43 | + http.HandleFunc("/api/home/limitCatList", LimitCatList) //分红猫列表 | |
| 44 | + http.HandleFunc("/api/turntable/index", QueryTurntable) //转盘主页 | |
| 45 | + http.HandleFunc("/api/turntable/addTicket", AddTicket) //增加抽奖券 | |
| 46 | + http.HandleFunc("/api/turntable/multiple", Multiple) //增加倍数 | |
| 47 | + http.HandleFunc("/api/turntable/draw", DrawTable) //抽奖 | |
| 48 | + http.HandleFunc("/api/flop/leftTimes", QueryFlop) //剩余翻牌次数 | |
| 49 | + http.HandleFunc("/api/flop/flop", DoFlop) //进行翻牌 | |
| 50 | + http.HandleFunc("/api/package/catList", QueryWareHouse) //背包列表 | |
| 51 | + http.HandleFunc("/api/package/putToPackage", PutCattoWareHouse) //加入背包 | |
| 52 | + http.HandleFunc("/api/package/getFromPackage", TakeCatoutfromWareHouse) //背包中取出 | |
| 50 | 53 | |
| 51 | 54 | /////---------------------------------------------------------------------old |
| 52 | 55 | http.HandleFunc("/happycat/exchangetwoPos", ExchangePos) //交换位置 |
| ... | ... | @@ -58,19 +61,19 @@ func startServerHttpServe() { |
| 58 | 61 | http.HandleFunc("/happycat/clickrandgift", ClickRandGift) //请求点击猫箱子 |
| 59 | 62 | //http.HandleFunc("/happycat/querybuycat", QueryBuyCat) //请求商店购买信息 |
| 60 | 63 | |
| 61 | - http.HandleFunc("/happycat/querwarehouse", QueryWareHouse) //请求仓库信息 | |
| 62 | - http.HandleFunc("/happycat/putcattowarehouse", PutCattoWareHouse) //将合成界面的猫放入仓库 | |
| 63 | - http.HandleFunc("/happycat/takecatoutfromwarehouse", TakeCatoutfromWareHouse) //将仓库的猫取出 | |
| 64 | - http.HandleFunc("/happycat/acclecteboxrate ", AcclecteBoxRate) //请求点击猫箱子 | |
| 65 | - http.HandleFunc("/happycat/queryautomergeinfo ", QueryAutomergeInfo) //请求点击猫箱子 | |
| 66 | - http.HandleFunc("/happycat/querycatroominfo ", QueryCatRoomInfo) //请求点击猫箱子 | |
| 67 | - http.HandleFunc("/happycat/buycatroom ", BuyCatRoom) //请求点击猫箱子 | |
| 68 | - http.HandleFunc("/happycat/upcattoroom ", UpCattoRoom) //请求点击猫箱子 | |
| 69 | - http.HandleFunc("/happycat/querycatshopinfo ", QueryCatShopInfo) //请求点击猫箱子 | |
| 70 | - http.HandleFunc("/happycat/catshoplay ", CatShoPlay) //请求点击猫箱子 | |
| 71 | - http.HandleFunc("/happycat/getcatshopreward ", GetCatShopReward) //请求点击猫箱子 | |
| 72 | - http.HandleFunc("/happycat/acclectecatstory ", AcclecteCatStory) //请求点击猫箱子 | |
| 73 | - http.HandleFunc("/chappycatat/updateuserinfo ", UpdateUserInfo) //请求点击猫箱子 | |
| 64 | + //http.HandleFunc("/happycat/querwarehouse", QueryWareHouse) //请求仓库信息 | |
| 65 | + //http.HandleFunc("/happycat/putcattowarehouse", PutCattoWareHouse) //将合成界面的猫放入仓库 | |
| 66 | + // http.HandleFunc("/happycat/takecatoutfromwarehouse", TakeCatoutfromWareHouse) //将仓库的猫取出 | |
| 67 | + http.HandleFunc("/happycat/acclecteboxrate ", AcclecteBoxRate) //请求点击猫箱子 | |
| 68 | + http.HandleFunc("/happycat/queryautomergeinfo ", QueryAutomergeInfo) //请求点击猫箱子 | |
| 69 | + http.HandleFunc("/happycat/querycatroominfo ", QueryCatRoomInfo) //请求点击猫箱子 | |
| 70 | + http.HandleFunc("/happycat/buycatroom ", BuyCatRoom) //请求点击猫箱子 | |
| 71 | + http.HandleFunc("/happycat/upcattoroom ", UpCattoRoom) //请求点击猫箱子 | |
| 72 | + http.HandleFunc("/happycat/querycatshopinfo ", QueryCatShopInfo) //请求点击猫箱子 | |
| 73 | + http.HandleFunc("/happycat/catshoplay ", CatShoPlay) //请求点击猫箱子 | |
| 74 | + http.HandleFunc("/happycat/getcatshopreward ", GetCatShopReward) //请求点击猫箱子 | |
| 75 | + http.HandleFunc("/happycat/acclectecatstory ", AcclecteCatStory) //请求点击猫箱子 | |
| 76 | + http.HandleFunc("/chappycatat/updateuserinfo ", UpdateUserInfo) //请求点击猫箱子 | |
| 74 | 77 | //http.HandleFunc("/happycat/queryplayerrank ", QueryPlayerRank) //请求点击猫箱子 |
| 75 | 78 | http.HandleFunc("/happycat/querycompletetask ", QueryCompleteTask) //请求点击猫箱子 |
| 76 | 79 | http.HandleFunc("/happycat/querycompleteachievement ", QueryCompleteAchievement) //请求点击猫箱子 |
| ... | ... | @@ -392,7 +395,7 @@ func QueryAutomergeInfo(w http.ResponseWriter, r *http.Request) { |
| 392 | 395 | func QueryWareHouse(w http.ResponseWriter, r *http.Request) { |
| 393 | 396 | Uuid := 0 |
| 394 | 397 | if len(r.Header) > 0 { |
| 395 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | |
| 398 | + Uuid, _ = strconv.Atoi(r.Header.Get("uid")) | |
| 396 | 399 | } |
| 397 | 400 | if Uuid == 0 { |
| 398 | 401 | SetHeader(w) |
| ... | ... | @@ -404,13 +407,13 @@ func QueryWareHouse(w http.ResponseWriter, r *http.Request) { |
| 404 | 407 | s := string(result) |
| 405 | 408 | logger.Info("QueryWareHouse , body:%v,uuid=%v", s, Uuid) |
| 406 | 409 | |
| 407 | - //HandlerQueryWareHouse(w, s, Uuid) | |
| 410 | + HandlerQueryWareHouse(w, s, Uuid) | |
| 408 | 411 | } |
| 409 | 412 | |
| 410 | 413 | func PutCattoWareHouse(w http.ResponseWriter, r *http.Request) { |
| 411 | 414 | Uuid := 0 |
| 412 | 415 | if len(r.Header) > 0 { |
| 413 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | |
| 416 | + Uuid, _ = strconv.Atoi(r.Header.Get("uid")) | |
| 414 | 417 | } |
| 415 | 418 | if Uuid == 0 { |
| 416 | 419 | SetHeader(w) |
| ... | ... | @@ -422,13 +425,13 @@ func PutCattoWareHouse(w http.ResponseWriter, r *http.Request) { |
| 422 | 425 | s := string(result) |
| 423 | 426 | logger.Info("PutCattoWareHouse , body:%v,uuid=%v", s, Uuid) |
| 424 | 427 | |
| 425 | - //HandlerPutCattoWareHouse(w, s, Uuid) | |
| 428 | + HandlerPutCattoWareHouse(w, s, Uuid) | |
| 426 | 429 | } |
| 427 | 430 | |
| 428 | 431 | func TakeCatoutfromWareHouse(w http.ResponseWriter, r *http.Request) { |
| 429 | 432 | Uuid := 0 |
| 430 | 433 | if len(r.Header) > 0 { |
| 431 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | |
| 434 | + Uuid, _ = strconv.Atoi(r.Header.Get("uid")) | |
| 432 | 435 | } |
| 433 | 436 | if Uuid == 0 { |
| 434 | 437 | SetHeader(w) |
| ... | ... | @@ -440,7 +443,7 @@ func TakeCatoutfromWareHouse(w http.ResponseWriter, r *http.Request) { |
| 440 | 443 | s := string(result) |
| 441 | 444 | logger.Info("TakeCatoutfromWareHouse , body:%v,uuid=%v", s, Uuid) |
| 442 | 445 | |
| 443 | - ///HandlerTakeCatoutfromWareHouse(w, s, Uuid) | |
| 446 | + HandlerTakeCatoutfromWareHouse(w, s, Uuid) | |
| 444 | 447 | } |
| 445 | 448 | |
| 446 | 449 | func DoBuyCat(w http.ResponseWriter, r *http.Request) { | ... | ... |
src/HttpServer/logic/logic.go
| ... | ... | @@ -784,19 +784,19 @@ func HandlerCompose(w http.ResponseWriter, data string, uuid int) { |
| 784 | 784 | break |
| 785 | 785 | } |
| 786 | 786 | v := uinfo.PosInfo[val] |
| 787 | - if v.Cat == 103 { | |
| 787 | + if v.Cat == 3+REDCATIDEXTRA { | |
| 788 | 788 | eastsum++ |
| 789 | 789 | } |
| 790 | - if v.Cat == 104 { | |
| 790 | + if v.Cat == 4+REDCATIDEXTRA { | |
| 791 | 791 | westsum++ |
| 792 | 792 | } |
| 793 | - if v.Cat == 105 { | |
| 793 | + if v.Cat == 5+REDCATIDEXTRA { | |
| 794 | 794 | southsum++ |
| 795 | 795 | } |
| 796 | - if v.Cat == 106 { | |
| 796 | + if v.Cat == 6+REDCATIDEXTRA { | |
| 797 | 797 | northsum++ |
| 798 | 798 | } |
| 799 | - if v.Cat == 107 { | |
| 799 | + if v.Cat == 7+REDCATIDEXTRA { | |
| 800 | 800 | middlesum++ |
| 801 | 801 | } |
| 802 | 802 | } |
| ... | ... | @@ -809,7 +809,7 @@ func HandlerCompose(w http.ResponseWriter, data string, uuid int) { |
| 809 | 809 | |
| 810 | 810 | //合成了五方猫 |
| 811 | 811 | //获取一天招财猫配置 |
| 812 | - cfg := jsonconf.GetRedCatConfig(100 + 2) | |
| 812 | + cfg := jsonconf.GetRedCatConfig(REDCATIDEXTRA + 2) | |
| 813 | 813 | if cfg == nil { |
| 814 | 814 | logger.Error("HandlerCompose getcfg failed=%v", err) |
| 815 | 815 | resp.Code = 1 |
| ... | ... | @@ -817,7 +817,7 @@ func HandlerCompose(w http.ResponseWriter, data string, uuid int) { |
| 817 | 817 | break |
| 818 | 818 | } |
| 819 | 819 | nowtime := int(time.Now().Unix()) |
| 820 | - uinfo.SetCatPos(rdata.PositionList[0], 2+100, 24*3600, cfg.Money, nowtime) | |
| 820 | + uinfo.SetCatPos(rdata.PositionList[0], 2+REDCATIDEXTRA, 24*3600, cfg.Money, nowtime) | |
| 821 | 821 | //清空其他位置的猫 |
| 822 | 822 | for k, v := range rdata.PositionList { |
| 823 | 823 | if k > 0 { |
| ... | ... | @@ -1266,3 +1266,180 @@ func HandlerExchangePos(w http.ResponseWriter, data string, uuid int) { |
| 1266 | 1266 | fmt.Fprint(w, string(respstr)) |
| 1267 | 1267 | |
| 1268 | 1268 | } |
| 1269 | + | |
| 1270 | +func HandlerQueryWareHouse(w http.ResponseWriter, data string, uuid int) { | |
| 1271 | + SetHeader(w) | |
| 1272 | + var resp QueryWareHouseResp | |
| 1273 | + resp.Code = 0 | |
| 1274 | + for { | |
| 1275 | + udatastr, err := redishandler.GetRedisClient().HGet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid)) | |
| 1276 | + if err != nil { | |
| 1277 | + logger.Info("HandlerQueryWareHouse failed err=%v", err) | |
| 1278 | + resp.Code = 1 | |
| 1279 | + resp.Message = "get redis failed" | |
| 1280 | + break | |
| 1281 | + } | |
| 1282 | + udata := new(UserWareHouseData) | |
| 1283 | + err = json.Unmarshal([]byte(udatastr), udata) | |
| 1284 | + if err != nil { | |
| 1285 | + logger.Error("HandlerQueryWareHouse Unmarshal redis failed ") | |
| 1286 | + resp.Code = 1 | |
| 1287 | + resp.Message = "Unmarshal redis failed" | |
| 1288 | + break | |
| 1289 | + } | |
| 1290 | + | |
| 1291 | + for _, v := range udata.Info { | |
| 1292 | + catlv := v.Warelv + REDCATIDEXTRA | |
| 1293 | + resp.Data.CatList = append(resp.Data.CatList, catlv) | |
| 1294 | + } | |
| 1295 | + | |
| 1296 | + resp.Data.CatCapacity = WAREHOUSELIMIT | |
| 1297 | + | |
| 1298 | + resp.Code = 0 | |
| 1299 | + break | |
| 1300 | + } | |
| 1301 | + //回包 | |
| 1302 | + respstr, _ := json.Marshal(&resp) | |
| 1303 | + fmt.Fprint(w, string(respstr)) | |
| 1304 | +} | |
| 1305 | + | |
| 1306 | +func HandlerPutCattoWareHouse(w http.ResponseWriter, data string, uuid int) { | |
| 1307 | + SetHeader(w) | |
| 1308 | + var resp PutWareHouseResp | |
| 1309 | + | |
| 1310 | + resp.Code = 0 | |
| 1311 | + var rdata PutWareHouseReq | |
| 1312 | + err := json.Unmarshal([]byte(data), &rdata) | |
| 1313 | + for { | |
| 1314 | + if err != nil { | |
| 1315 | + logger.Error("HandlerPutCattoWareHouse json unmarshal failed=%v", err) | |
| 1316 | + resp.Code = 1 | |
| 1317 | + resp.Message = "json failed" | |
| 1318 | + break | |
| 1319 | + } | |
| 1320 | + udatastr, err := redishandler.GetRedisClient().HGet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid)) | |
| 1321 | + if err != nil { | |
| 1322 | + logger.Info("HandlerPutCattoWareHouse failed err=%v", err) | |
| 1323 | + resp.Code = 1 | |
| 1324 | + resp.Message = "get redis failed" | |
| 1325 | + break | |
| 1326 | + } | |
| 1327 | + udata := new(UserWareHouseData) | |
| 1328 | + err = json.Unmarshal([]byte(udatastr), udata) | |
| 1329 | + if err != nil { | |
| 1330 | + logger.Error("HandlerPutCattoWareHouse Unmarshal redis failed ") | |
| 1331 | + resp.Code = 1 | |
| 1332 | + resp.Message = "Unmarshal redis failed" | |
| 1333 | + break | |
| 1334 | + } | |
| 1335 | + uinfo, err := GetUserInfo(strconv.Itoa(uuid)) | |
| 1336 | + if err != nil || uinfo == nil { | |
| 1337 | + logger.Error("HandlerPutCattoWareHouse getuserinfo failed=%v", err) | |
| 1338 | + resp.Code = 1 | |
| 1339 | + resp.Message = "get userinfo failed" | |
| 1340 | + break | |
| 1341 | + } | |
| 1342 | + | |
| 1343 | + if rdata.Position < 0 || rdata.Position >= len(uinfo.PosInfo) { | |
| 1344 | + logger.Error("HandlerPutCattoWareHouse posnotvalid failed=%v", err) | |
| 1345 | + resp.Code = 1 | |
| 1346 | + resp.Message = "posnotvalid" | |
| 1347 | + break | |
| 1348 | + } | |
| 1349 | + | |
| 1350 | + //合成界面红包猫的等级采用id+37的形式 | |
| 1351 | + rtval := uinfo.tryPutToWareHouse(udata, rdata.Position, uuid) | |
| 1352 | + if rtval == -1 { | |
| 1353 | + logger.Error("HandlerPutCattoWareHouse warehouse full failed=%v", err) | |
| 1354 | + resp.Code = 1 | |
| 1355 | + resp.Message = "warehouse full" | |
| 1356 | + break | |
| 1357 | + } | |
| 1358 | + | |
| 1359 | + uinfo.CleadPos(rdata.Position) | |
| 1360 | + uinfo.CalcGoldRate() | |
| 1361 | + SaveUserInfo(uinfo, strconv.Itoa(uuid)) | |
| 1362 | + | |
| 1363 | + resp.Data.Coin.UserId = uuid | |
| 1364 | + resp.Data.Coin.Coin = strconv.FormatInt(uinfo.Gold, 10) | |
| 1365 | + //accrate := uinfo.Goldrate * 3 | |
| 1366 | + resp.Data.Coin.IcomeRate = strconv.FormatInt(uinfo.Goldrate, 10) | |
| 1367 | + resp.Data.Coin.UpdateTime = int(time.Now().Unix()) | |
| 1368 | + resp.Code = 0 | |
| 1369 | + | |
| 1370 | + break | |
| 1371 | + } | |
| 1372 | + respstr, _ := json.Marshal(&resp) | |
| 1373 | + fmt.Fprint(w, string(respstr)) | |
| 1374 | +} | |
| 1375 | + | |
| 1376 | +func HandlerTakeCatoutfromWareHouse(w http.ResponseWriter, data string, uuid int) { | |
| 1377 | + SetHeader(w) | |
| 1378 | + var resp TakeWareHouseResp | |
| 1379 | + | |
| 1380 | + resp.Code = 0 | |
| 1381 | + var rdata TakeWareHouseReq | |
| 1382 | + err := json.Unmarshal([]byte(data), &rdata) | |
| 1383 | + for { | |
| 1384 | + if err != nil { | |
| 1385 | + logger.Error("HandlerTakeCatoutfromWareHouse json unmarshal failed=%v", err) | |
| 1386 | + resp.Code = 1 | |
| 1387 | + resp.Message = "json failed" | |
| 1388 | + break | |
| 1389 | + } | |
| 1390 | + udatastr, err := redishandler.GetRedisClient().HGet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid)) | |
| 1391 | + if err != nil { | |
| 1392 | + logger.Info("HandlerTakeCatoutfromWareHouse failed err=%v", err) | |
| 1393 | + resp.Code = 1 | |
| 1394 | + resp.Message = "get redis failed" | |
| 1395 | + break | |
| 1396 | + } | |
| 1397 | + udata := new(UserWareHouseData) | |
| 1398 | + err = json.Unmarshal([]byte(udatastr), udata) | |
| 1399 | + if err != nil { | |
| 1400 | + logger.Error("HandlerTakeCatoutfromWareHouse Unmarshal redis failed ") | |
| 1401 | + resp.Code = 1 | |
| 1402 | + resp.Message = "Unmarshal redis failed" | |
| 1403 | + break | |
| 1404 | + } | |
| 1405 | + | |
| 1406 | + uinfo, err := GetUserInfo(strconv.Itoa(uuid)) | |
| 1407 | + if err != nil || uinfo == nil { | |
| 1408 | + logger.Error("HandlerPutCattoWareHouse getuserinfo failed=%v", err) | |
| 1409 | + resp.Code = 1 | |
| 1410 | + resp.Message = "get userinfo failed" | |
| 1411 | + break | |
| 1412 | + } | |
| 1413 | + wpos := udata.GetWarePosById(rdata.CatId) | |
| 1414 | + if wpos == -1 { | |
| 1415 | + logger.Error("HandlerTakeCatoutfromWareHouse wpos failed=%v", err) | |
| 1416 | + resp.Code = 1 | |
| 1417 | + resp.Message = "wpos" | |
| 1418 | + break | |
| 1419 | + } | |
| 1420 | + winfo := udata.Info[wpos] | |
| 1421 | + | |
| 1422 | + uinfo.SetRedCatPos(winfo.Warelv+REDCATIDEXTRA, winfo.Time, winfo.RedPacket, winfo.StartTime) | |
| 1423 | + | |
| 1424 | + udata.Info[wpos].Warelv = 0 | |
| 1425 | + udata.Info[wpos].StartTime = 0 | |
| 1426 | + udata.Info[wpos].RedPacket = 0 | |
| 1427 | + udata.Info[wpos].Time = 0 | |
| 1428 | + | |
| 1429 | + wares, _ := json.Marshal(udata) | |
| 1430 | + redishandler.GetRedisClient().HSet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid), string(wares)) | |
| 1431 | + | |
| 1432 | + uinfo.CalcGoldRate() | |
| 1433 | + | |
| 1434 | + SaveUserInfo(uinfo, strconv.Itoa(uuid)) | |
| 1435 | + resp.Data.Coin.UserId = uuid | |
| 1436 | + resp.Data.Coin.Coin = strconv.FormatInt(uinfo.Gold, 10) | |
| 1437 | + resp.Data.Coin.IcomeRate = strconv.FormatInt(uinfo.Goldrate, 10) | |
| 1438 | + resp.Data.Coin.UpdateTime = int(time.Now().Unix()) | |
| 1439 | + resp.Code = 0 | |
| 1440 | + | |
| 1441 | + break | |
| 1442 | + } | |
| 1443 | + respstr, _ := json.Marshal(&resp) | |
| 1444 | + fmt.Fprint(w, string(respstr)) | |
| 1445 | +} | ... | ... |