Commit 26e94c6ce623cea4644e8cb4de0b53be30b0b0de
1 parent
72059f69
Exists in
master
提交
Showing
5 changed files
with
116 additions
and
66 deletions
Show diff stats
src/HttpServer/logic/constdef.go
... | ... | @@ -53,6 +53,8 @@ const ( |
53 | 53 | WATCH_ADD_DAY_LIMIT = 50 //当天获取红包次数限制 |
54 | 54 | ACCGOLDRATELIMIT = 3 //玩家每天看视频加速金币次数 |
55 | 55 | WATCHADSGOLDLIMIT = 15 //玩家每天看广告领金币限制次数 |
56 | + TIMEINGREWARDLIMIT = 15 //整点奖励限制次数 | |
57 | + OFFLINETIMESLIMIT = 10 //离线奖励领取次数限制 | |
56 | 58 | WATCHADSGOLDLRATE = 10800 //看广告领取金币的秒数 |
57 | 59 | ZHENGHOURMULT = 3600 //整点领取金币的秒数 |
58 | 60 | DRAWTICKETNUM = 5 //每日送的抽奖券次数 | ... | ... |
src/HttpServer/logic/datadef.go
... | ... | @@ -43,6 +43,7 @@ type GetUserDataReq struct { |
43 | 43 | type offlineRewardDesc struct { |
44 | 44 | OfflineTime int `json:"offlineTime"` |
45 | 45 | Income string `json:"income"` |
46 | + LeftTimes int `json:"leftTimes"` | |
46 | 47 | } |
47 | 48 | |
48 | 49 | type GetUserDataData struct { |
... | ... | @@ -838,60 +839,62 @@ type WithDrawInfo struct { |
838 | 839 | |
839 | 840 | //玩家数据 |
840 | 841 | type UserData struct { |
841 | - UserId int //玩家id | |
842 | - Gameid string //玩家Gameid | |
843 | - Channel string //玩家Channel | |
844 | - RegTime int //注册时间 | |
845 | - ContinueLoginDay int //连续登陆天数 | |
846 | - SumLoginDay int //累计登录天数 | |
847 | - Gold int64 //金币 | |
848 | - GoldSum int64 //玩家累计金币 | |
849 | - Love int64 //爱心值 | |
850 | - Goldrate int64 //金币生成速率 | |
851 | - Loverate int64 //爱心生产速率 | |
852 | - Highestlv int //当前最高猫等级 | |
853 | - InviteId int //邀请者uid | |
854 | - CurBoxLv int //当前猫箱子等级 | |
855 | - IsDouble int //当前加速标签 1表示3倍收益 0表示正常 | |
856 | - StartDoubleTime int //开始双倍时间 | |
857 | - DoubleLeftTimes int //剩余加速金币次数 | |
858 | - GetWatchAdsGoldTime int //看广告领金币次数 | |
859 | - DrawTicket int //抽奖券次数 | |
860 | - DrawTicketTimes int //剩余增加抽奖券次数 | |
861 | - DratMult int //下次抽奖的倍数 | |
862 | - DrawLastRewardId int //上一次的奖励ID | |
863 | - DrawTableCount int //当前抽奖次数 5次以后归零 | |
864 | - IsAuto int //当前是否自动合成 | |
865 | - IsBoxAcc int //是否处于加速生成箱子状态 | |
866 | - RandGiftNum int //当前剩余空投猫粮次数 | |
867 | - RandGiftDay int //记录当前猫粮日期,当日期变化则重置RandGiftNum | |
868 | - RandGiftTime int //记录上一次空投猫粮时间 | |
869 | - Redbag float32 //红包值 单位为分 | |
870 | - Head string //头像地址 | |
871 | - NickName string //昵称 | |
872 | - RealName string //实名 | |
873 | - IsFirstRedBgCat int //是否合成过红包猫 0表示否1表示是 | |
874 | - OfflineGold int64 //离线金币 | |
875 | - OfflineLove int64 //离线爱心 | |
876 | - LastLoginTime int //上次登陆时间 | |
877 | - LastTimingRewardHour int //上次领取整点奖励的时刻 | |
878 | - FlopCardCnt int //翻牌次数计数 | |
879 | - FlopCardLefCnt int //剩余翻拍次数 | |
880 | - TodayZhaocai float32 //当天招财猫收益 | |
881 | - IsNew int //是否需要引导 | |
882 | - RandRedBagLeftTime int //剩余随机红包次数 | |
883 | - SumRandRedBagTimes int //已领取的随机红包总次数 | |
884 | - StoreRandRedBag int //存储的随机红包个数 | |
885 | - FlyBoxNumTimes int //生意飞天宝箱次数 | |
886 | - CatShopInfo CatShopData //猫咖门店数据 | |
887 | - Taskinfo TaskData //任务数据 | |
888 | - AchieveMent AchieveMentData //成就数据 | |
889 | - PosInfo []CatPosInfo //位置信息 从0开始 | |
890 | - DuboCat []DuboCatInfo //赌博猫信息 | |
891 | - BuyCatInfo []BuyCatInfoData //商店购买猫数据 第一个元素为1级猫 第二个为2级猫以此类推 | |
892 | - CatRoomInfo []CatRoomData //猫咖店数据 | |
893 | - CaiPiaoInfo []UserCaiPiaoHistory //记录玩家参与过的赌博猫历史记录 | |
894 | - WithDraw WithDrawInfo //提现记录信息 | |
842 | + UserId int //玩家id | |
843 | + Gameid string //玩家Gameid | |
844 | + Channel string //玩家Channel | |
845 | + RegTime int //注册时间 | |
846 | + ContinueLoginDay int //连续登陆天数 | |
847 | + SumLoginDay int //累计登录天数 | |
848 | + Gold int64 //金币 | |
849 | + GoldSum int64 //玩家累计金币 | |
850 | + Love int64 //爱心值 | |
851 | + Goldrate int64 //金币生成速率 | |
852 | + Loverate int64 //爱心生产速率 | |
853 | + Highestlv int //当前最高猫等级 | |
854 | + InviteId int //邀请者uid | |
855 | + CurBoxLv int //当前猫箱子等级 | |
856 | + IsDouble int //当前加速标签 1表示3倍收益 0表示正常 | |
857 | + StartDoubleTime int //开始双倍时间 | |
858 | + DoubleLeftTimes int //剩余加速金币次数 | |
859 | + GetWatchAdsGoldTime int //看广告领金币次数 | |
860 | + DrawTicket int //抽奖券次数 | |
861 | + DrawTicketTimes int //剩余增加抽奖券次数 | |
862 | + DratMult int //下次抽奖的倍数 | |
863 | + DrawLastRewardId int //上一次的奖励ID | |
864 | + DrawTableCount int //当前抽奖次数 5次以后归零 | |
865 | + IsAuto int //当前是否自动合成 | |
866 | + IsBoxAcc int //是否处于加速生成箱子状态 | |
867 | + RandGiftNum int //当前剩余空投猫粮次数 | |
868 | + RandGiftDay int //记录当前猫粮日期,当日期变化则重置RandGiftNum | |
869 | + RandGiftTime int //记录上一次空投猫粮时间 | |
870 | + Redbag float32 //红包值 单位为分 | |
871 | + Head string //头像地址 | |
872 | + NickName string //昵称 | |
873 | + RealName string //实名 | |
874 | + IsFirstRedBgCat int //是否合成过红包猫 0表示否1表示是 | |
875 | + OfflineGold int64 //离线金币 | |
876 | + OfflineLove int64 //离线爱心 | |
877 | + LastLoginTime int //上次登陆时间 | |
878 | + LastTimingRewardHour int //当天领取整点奖励的次数 | |
879 | + LeftTimingRewardTimes int //剩余整点奖励次数 | |
880 | + FlopCardCnt int //翻牌次数计数 | |
881 | + FlopCardLefCnt int //剩余翻拍次数 | |
882 | + TodayZhaocai float32 //当天招财猫收益 | |
883 | + IsNew int //是否需要引导 | |
884 | + RandRedBagLeftTime int //剩余随机红包次数 | |
885 | + SumRandRedBagTimes int //已领取的随机红包总次数 | |
886 | + StoreRandRedBag int //存储的随机红包个数 | |
887 | + FlyBoxNumTimes int //生意飞天宝箱次数 | |
888 | + LeftOfflineTimes int //离线奖励剩余领取次数 | |
889 | + CatShopInfo CatShopData //猫咖门店数据 | |
890 | + Taskinfo TaskData //任务数据 | |
891 | + AchieveMent AchieveMentData //成就数据 | |
892 | + PosInfo []CatPosInfo //位置信息 从0开始 | |
893 | + DuboCat []DuboCatInfo //赌博猫信息 | |
894 | + BuyCatInfo []BuyCatInfoData //商店购买猫数据 第一个元素为1级猫 第二个为2级猫以此类推 | |
895 | + CatRoomInfo []CatRoomData //猫咖店数据 | |
896 | + CaiPiaoInfo []UserCaiPiaoHistory //记录玩家参与过的赌博猫历史记录 | |
897 | + WithDraw WithDrawInfo //提现记录信息 | |
895 | 898 | |
896 | 899 | } |
897 | 900 | ... | ... |
src/HttpServer/logic/function.go
... | ... | @@ -471,6 +471,11 @@ func (u *UserData) HandlePassDay() { |
471 | 471 | u.DrawTicketTimes = DRAWTICKETGETLIMIT |
472 | 472 | u.RandRedBagLeftTime = RANDGIFTLIMIT |
473 | 473 | u.FlyBoxNumTimes = FLYBOXNUMLIMIT |
474 | + u.LeftTimingRewardTimes = TIMEINGREWARDLIMIT | |
475 | + u.LeftOfflineTimes = OFFLINETIMESLIMIT | |
476 | + /*randint := rand.Intn(100) | |
477 | + floatval := float32(randint) / 100 | |
478 | + u.TodayZhaocai = 180 + floatval*/ | |
474 | 479 | } |
475 | 480 | |
476 | 481 | u.LastLoginTime = int(nowtime.Unix()) |
... | ... | @@ -546,6 +551,12 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) { |
546 | 551 | udata.SumLoginDay = 1 |
547 | 552 | udata.RandRedBagLeftTime = RANDGIFTLIMIT |
548 | 553 | udata.FlyBoxNumTimes = FLYBOXNUMLIMIT |
554 | + udata.LeftTimingRewardTimes = TIMEINGREWARDLIMIT | |
555 | + udata.LeftOfflineTimes = OFFLINETIMESLIMIT | |
556 | + /*randint := rand.Intn(100) | |
557 | + floatval := float32(randint) / 100 | |
558 | + udata.TodayZhaocai = 180 + floatval*/ | |
559 | + | |
549 | 560 | udata.SumRandRedBagTimes = 0 |
550 | 561 | udata.StoreRandRedBag = 0 |
551 | 562 | udata.Gameid = data.Gameid | ... | ... |
src/HttpServer/logic/httpserver.go
... | ... | @@ -18,11 +18,18 @@ import ( |
18 | 18 | "net/http" |
19 | 19 | ) |
20 | 20 | |
21 | +var G_randVal = float32(188.11) | |
22 | + | |
21 | 23 | func StartHttpTicker() { |
22 | 24 | ticker := time.NewTicker(time.Second * time.Duration(30)) |
23 | 25 | |
24 | 26 | go func() { |
25 | 27 | for range ticker.C { |
28 | + if time.Now().Hour() == 0 && time.Now().Minute() < 1 { | |
29 | + randint := rand.Intn(100) | |
30 | + floatval := float32(randint) / 100 | |
31 | + G_randVal = 180 + floatval | |
32 | + } | |
26 | 33 | if time.Now().Hour() == 12 { |
27 | 34 | //处理开奖 |
28 | 35 | waits := GetWaitCaiCatList() | ... | ... |
src/HttpServer/logic/logic.go
... | ... | @@ -752,7 +752,7 @@ func HandlerGetUserData(w http.ResponseWriter, data string, uuid int) { |
752 | 752 | |
753 | 753 | if nowtime-int64(lasttime) > 5*60 { |
754 | 754 | //算离线收益 |
755 | - resp.Data.TimingReward = false | |
755 | + | |
756 | 756 | offsec := nowtime - int64(lasttime) |
757 | 757 | if offsec > 2*3600 { |
758 | 758 | offsec = 2 * 3600 |
... | ... | @@ -764,6 +764,7 @@ func HandlerGetUserData(w http.ResponseWriter, data string, uuid int) { |
764 | 764 | resp.Data.Output = "0" |
765 | 765 | resp.Data.OfflineReward.OfflineTime = int(offsec) |
766 | 766 | resp.Data.OfflineReward.Income = strconv.FormatInt(uinfo.OfflineGold, 10) |
767 | + resp.Data.OfflineReward.LeftTimes = uinfo.LeftOfflineTimes | |
767 | 768 | } else { |
768 | 769 | //按费离线收益计算 |
769 | 770 | //先计算一下双倍时间是否过期了 |
... | ... | @@ -793,7 +794,7 @@ func HandlerGetUserData(w http.ResponseWriter, data string, uuid int) { |
793 | 794 | addgold = uinfo.Goldrate * offsec |
794 | 795 | } |
795 | 796 | |
796 | - resp.Data.TimingReward = true | |
797 | + //resp.Data.TimingReward = true | |
797 | 798 | resp.Data.Now = int(time.Now().Unix()) * 1000 |
798 | 799 | |
799 | 800 | uinfo.Gold += addgold |
... | ... | @@ -812,7 +813,16 @@ func HandlerGetUserData(w http.ResponseWriter, data string, uuid int) { |
812 | 813 | SaveUserInfo(uinfo, strconv.Itoa(uuid)) |
813 | 814 | } |
814 | 815 | |
815 | - resp.Data.TimingRewardTimes = uinfo.GetWatchAdsGoldTime | |
816 | + //计算一下整点奖励是否可以领取 | |
817 | + resp.Data.TimingReward = false | |
818 | + nowt := time.Now() | |
819 | + nowmin := nowt.Minute() + nowt.Hour()*60 | |
820 | + if nowmin/30 >= uinfo.LastTimingRewardHour { | |
821 | + resp.Data.TimingReward = true | |
822 | + } | |
823 | + | |
824 | + resp.Data.TimingReward = false | |
825 | + resp.Data.TimingRewardTimes = uinfo.LeftTimingRewardTimes | |
816 | 826 | |
817 | 827 | //保存此次计算时间 |
818 | 828 | nowtimestr := strconv.FormatInt(nowtime, 10) |
... | ... | @@ -851,6 +861,13 @@ func HandlerGetOfflineReward(w http.ResponseWriter, data string, uuid int) { |
851 | 861 | break |
852 | 862 | } |
853 | 863 | |
864 | + if uinfo.LeftOfflineTimes < 1 { | |
865 | + logger.Error("HandlerGetUserData LeftOfflineTimes failed=%v", err) | |
866 | + resp.Code = 1 | |
867 | + resp.Message = "离线奖励剩余领取次数为0" | |
868 | + break | |
869 | + } | |
870 | + | |
854 | 871 | addgold := uinfo.OfflineGold |
855 | 872 | |
856 | 873 | if rdata.Optype == 2 { |
... | ... | @@ -862,6 +879,7 @@ func HandlerGetOfflineReward(w http.ResponseWriter, data string, uuid int) { |
862 | 879 | uinfo.AddToRank() |
863 | 880 | |
864 | 881 | //此处todo 记录离线领取的次数 |
882 | + uinfo.LeftOfflineTimes-- | |
865 | 883 | |
866 | 884 | //领取过后将离线金币清零 |
867 | 885 | uinfo.OfflineGold = 0 |
... | ... | @@ -1016,7 +1034,8 @@ func HandlerGetMainPageInfo(w http.ResponseWriter, data string, uuid int) { |
1016 | 1034 | } |
1017 | 1035 | |
1018 | 1036 | resp.Data.Level = len(uinfo.BuyCatInfo) |
1019 | - resp.Data.TotalCashReward = uinfo.TodayZhaocai | |
1037 | + resp.Data.TotalCashReward = G_randVal | |
1038 | + | |
1020 | 1039 | resp.Data.Guide = true |
1021 | 1040 | if uinfo.IsNew == 0 { |
1022 | 1041 | resp.Data.Guide = false |
... | ... | @@ -1376,7 +1395,7 @@ func HandlerRecvRedCat(w http.ResponseWriter, data string, uuid int) { |
1376 | 1395 | uinfo.CleadPos(cpos) |
1377 | 1396 | |
1378 | 1397 | uinfo.CalcGoldRate() |
1379 | - uinfo.TodayZhaocai += addredpack | |
1398 | + //uinfo.TodayZhaocai += addredpack | |
1380 | 1399 | |
1381 | 1400 | SaveUserInfo(uinfo, strconv.Itoa(uuid)) |
1382 | 1401 | resp.Data.Num = addredpack |
... | ... | @@ -1572,16 +1591,23 @@ func HandlerRecvTimingReward(w http.ResponseWriter, data string, uuid int) { |
1572 | 1591 | } |
1573 | 1592 | |
1574 | 1593 | //判断一下领取的时间点是否正确 |
1575 | - nowt := time.Now() | |
1576 | - if nowt.Minute() < 50 && nowt.Minute() > 10 { | |
1594 | + if uinfo.LeftTimingRewardTimes < 1 { | |
1595 | + logger.Error("HandlerRecvTimingReward LeftTimingRewardTimes failed=%v", err) | |
1596 | + resp.Code = 1 | |
1597 | + resp.Message = "剩余领取次数为0" | |
1598 | + break | |
1599 | + } | |
1600 | + //nowt := time.Now() | |
1601 | + /*if nowt.Minute() < 50 && nowt.Minute() > 10 { | |
1577 | 1602 | logger.Error("HandlerRecvTimingReward time failed=%v", err) |
1578 | 1603 | resp.Code = 1 |
1579 | 1604 | resp.Message = "time failed" |
1580 | 1605 | break |
1581 | - } | |
1606 | + }*/ | |
1582 | 1607 | |
1583 | - nowh := 0 | |
1584 | - if nowt.Minute() >= 50 { | |
1608 | + //nowmin := nowt.Hour()*60+nowt.Minute() | |
1609 | + //if nowmin /30 < | |
1610 | + /*if nowt.Minute() >= 50 { | |
1585 | 1611 | //领取的是笑一个小时 |
1586 | 1612 | if nowt.Hour() < 23 { |
1587 | 1613 | if uinfo.LastTimingRewardHour >= nowt.Hour()+1 { |
... | ... | @@ -1615,11 +1641,12 @@ func HandlerRecvTimingReward(w http.ResponseWriter, data string, uuid int) { |
1615 | 1641 | break |
1616 | 1642 | } |
1617 | 1643 | nowh = nowt.Hour() |
1618 | - } | |
1644 | + }*/ | |
1619 | 1645 | |
1620 | 1646 | addgold := uinfo.Goldrate * ZHENGHOURMULT |
1621 | 1647 | uinfo.Gold += addgold |
1622 | - uinfo.LastTimingRewardHour = nowh | |
1648 | + uinfo.LastTimingRewardHour++ | |
1649 | + uinfo.LeftTimingRewardTimes-- | |
1623 | 1650 | //uinfo.GetWatchAdsGoldTime-- |
1624 | 1651 | |
1625 | 1652 | SaveUserInfo(uinfo, strconv.Itoa(uuid)) | ... | ... |