diff --git a/src/HttpServer/logic/logic.go b/src/HttpServer/logic/logic.go index 545e75f..6371599 100644 --- a/src/HttpServer/logic/logic.go +++ b/src/HttpServer/logic/logic.go @@ -62,12 +62,118 @@ func HandlerSettlement(w http.ResponseWriter, data string, uuid int) { uinfo, err := GetUserInfo(strconv.Itoa(uuid)) if err != nil || uinfo == nil { - logger.Error("HandlerTestaddCat getuserinfo failed=%v", err) + logger.Error("HandlerSettlement getuserinfo failed=%v", err) resp.Code = 1 resp.Message = "get userinfo failed" break } + //先判断一下待开奖列表 + iexis, err := redishandler.GetRedisClient().HExists(redis.CAIPIAOKAIJIANGWAIT_KEY, strconv.Itoa(rdata.Round)) + if err == nil && iexis { + //开奖 + idx := -1 + list := GetWaitCaiCatList() + for k, val := range list { + if val.CurRound == rdata.Round { + idx = k + break + } + } + + if idx != -1 { + list[idx].RewardNum = rdata.RewardNum + for _, vval := range list[idx].List { + uinfo, err := GetUserInfo(strconv.Itoa(vval.UserId)) + if err != nil || uinfo == nil { + continue + } + var tmp UserCaiPiaoHistory + tmp.RewardNum = rdata.RewardNum + tmp.CatId = 48 + tmp.Round = rdata.Round + tmp.Cnum = vval.ChooseNum + uinfo.CaiPiaoInfo = append(uinfo.CaiPiaoInfo, tmp) + + if vval.ChooseNum == rdata.RewardNum { + list[idx].RewardUser = vval.UserId + + //给这个玩家发奖 + cfg := jsonconf.GetRedCatConfig(48) + if cfg != nil { + + uinfo.AddRedPackect(cfg.Money, 100) + } + + } + + } + + //需要把这一条记录删除 + redishandler.GetRedisClient().HDel(redis.CAIPIAOKAIJIANGWAIT_KEY, strconv.Itoa(rdata.Round)) + + var tmp AlreadyDuboCatList + tmp.CurRound = rdata.Round + tmp.RewardNum = rdata.RewardNum + tmp.List = append(tmp.List, list[idx].List...) + tmp.RewardUser = list[idx].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)) + } + } + } else { + //从当前未满彩池查看 + curr := GetCurCaiCatList() + rewarduser := 0 + if curr.CurRound == rdata.Round { + for _, vval := range curr.List { + uinfo, err := GetUserInfo(strconv.Itoa(vval.UserId)) + if err != nil || uinfo == nil { + continue + } + var tmp UserCaiPiaoHistory + tmp.RewardNum = rdata.RewardNum + tmp.CatId = 48 + tmp.Round = rdata.Round + tmp.Cnum = vval.ChooseNum + uinfo.CaiPiaoInfo = append(uinfo.CaiPiaoInfo, tmp) + if vval.ChooseNum == rdata.RewardNum { + rewarduser = vval.UserId + + //给这个玩家发奖 + cfg := jsonconf.GetRedCatConfig(48) + if cfg != nil { + + uinfo.AddRedPackect(cfg.Money, 100) + } + + } + + } + + var tmp AlreadyDuboCatList + tmp.CurRound = rdata.Round + tmp.RewardNum = rdata.RewardNum + tmp.List = append(tmp.List, curr.List...) + tmp.RewardUser = 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)) + } + + NewCaiPiaoRound(0, 200, 200, curr.CurRound+1) + + } else { + logger.Error("HandlerSettlement paramfailed failed=%v", err) + resp.Code = 1 + resp.Message = "参数不正确" + break + } + } + SaveUserInfo(uinfo, strconv.Itoa(uuid)) break } -- libgit2 0.21.0