Commit 26e94c6ce623cea4644e8cb4de0b53be30b0b0de

Authored by 陆恒
1 parent 72059f69
Exists in master

提交

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))
... ...