From d7abe2b27eabd31027cc10178d95e5fa7ce169e6 Mon Sep 17 00:00:00 2001 From: 陆恒 Date: Fri, 12 Jun 2020 18:14:55 +0800 Subject: [PATCH] 欢乐招财猫 --- src/HttpServer/logic/datadef.go | 1 + src/HttpServer/logic/httpserver.go | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/HttpServer/logic/logic.go | 2 ++ src/HttpServer/main/main.go | 2 +- 4 files changed, 82 insertions(+), 1 deletion(-) diff --git a/src/HttpServer/logic/datadef.go b/src/HttpServer/logic/datadef.go index eede109..cbd84ca 100644 --- a/src/HttpServer/logic/datadef.go +++ b/src/HttpServer/logic/datadef.go @@ -778,6 +778,7 @@ type WaitDuboCatList struct { RewardNum int //开奖号码 List []UserCaiPiaoInfo //当期彩池人数 RewardUser int //中奖者ID 如果假中奖为0 + FakeNum int //当期不开奖号码 如果0表示当期真实开奖 } //已开奖列表 diff --git a/src/HttpServer/logic/httpserver.go b/src/HttpServer/logic/httpserver.go index 953b77b..82dbc6c 100644 --- a/src/HttpServer/logic/httpserver.go +++ b/src/HttpServer/logic/httpserver.go @@ -2,8 +2,14 @@ package logic import ( "HttpServer/conf" + "HttpServer/jsonconf" + "HttpServer/redishandler" "common/logger" + "common/redis" + "encoding/json" + "math/rand" "strconv" + "time" //"encoding/json" "fmt" @@ -12,6 +18,78 @@ import ( "net/http" ) +func StartHttpTicker() { + ticker := time.NewTicker(time.Second * time.Duration(30)) + + go func() { + for range ticker.C { + if time.Now().Hour() == 12 { + //处理开奖 + waits := GetWaitCaiCatList() + if waits != nil { + for k, val := range waits { + if val.FakeNum != 0 { + waits[k].RewardUser = 0 + waits[k].RewardNum = val.FakeNum + } else { + //否则从奖池里面选一个 + randnum := rand.Intn(len(val.List)) + waits[k].RewardNum = val.List[randnum].ChooseNum + waits[k].RewardUser = val.List[randnum].UserId + for _, vval := range val.List { + if vval.UserId == waits[k].RewardUser { + uinfo, err := GetUserInfo(strconv.Itoa(val.List[randnum].UserId)) + if err != nil || uinfo == nil { + continue + } + //给这个玩家发奖 + cfg := jsonconf.GetRedCatConfig(48) + if cfg != nil { + + uinfo.AddRedPackect(cfg.Money) + } + + var tmp UserCaiPiaoHistory + tmp.RewardNum = waits[k].RewardNum + tmp.CatId = 48 + tmp.Round = waits[k].CurRound + tmp.Cnum = vval.ChooseNum + uinfo.CaiPiaoInfo = append(uinfo.CaiPiaoInfo, tmp) + } + + } + + } + } + + //然后将开奖记录写入已开奖 + //将已开奖加入列表 + + for _, val := range waits { + var tmp AlreadyDuboCatList + tmp.CurRound = val.CurRound + tmp.RewardNum = val.RewardNum + tmp.List = append(tmp.List, val.List...) + tmp.RewardUser = val.RewardUser + tmp.TimeStr = int(time.Now().Unix()) + savestr, err := json.Marshal(&tmp) + if err == nil { + redishandler.GetRedisClient().HSet(redis.CAIPIAOKAIJIANGHISTORY_KEY, strconv.Itoa(tmp.CurRound), string(savestr)) + } + + } + + //最后清空待开奖类别 + redishandler.GetRedisClient().Delete(redis.CAIPIAOKAIJIANGWAIT_KEY) + + } + + } + + } + }() +} + func StartHttpServe() { startServerHttpServe() } diff --git a/src/HttpServer/logic/logic.go b/src/HttpServer/logic/logic.go index 2c26995..75d6492 100644 --- a/src/HttpServer/logic/logic.go +++ b/src/HttpServer/logic/logic.go @@ -1429,6 +1429,7 @@ func HandlerAutoChoose(w http.ResponseWriter, data string, uuid int) { waits.CurRound = curpool.CurRound waits.RewardNum = 0 waits.RewardUser = 0 + waits.FakeNum = curpool.FakeNum waits.List = append(waits.List, curpool.List...) savestr, _ := json.Marshal(&waits) @@ -1539,6 +1540,7 @@ func HandlerChooseNum(w http.ResponseWriter, data string, uuid int) { waits.CurRound = curpool.CurRound waits.RewardNum = 0 waits.RewardUser = 0 + waits.FakeNum = curpool.FakeNum waits.List = append(waits.List, curpool.List...) savestr, _ := json.Marshal(&waits) diff --git a/src/HttpServer/main/main.go b/src/HttpServer/main/main.go index f35ebb6..3d63521 100644 --- a/src/HttpServer/main/main.go +++ b/src/HttpServer/main/main.go @@ -59,7 +59,7 @@ func main() { logic.MyInit() go logic.StartHttpServe() - //go logic.StartHttpTicker() + go logic.StartHttpTicker() time.Sleep(time.Duration(2) * time.Second) //logic.Testsendhttp() -- libgit2 0.21.0