From e0bc4350664c3b8fd6886a3496dac9c5568f19f1 Mon Sep 17 00:00:00 2001 From: 陆恒 Date: Tue, 29 Sep 2020 10:00:30 +0800 Subject: [PATCH] 提交 --- src/HttpServer/logic/datadef.go | 19 +++++++++++++++++++ src/HttpServer/logic/function.go | 2 ++ src/HttpServer/logic/httpserver.go | 23 +++++++++++++++++++++++ src/HttpServer/logic/logic.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+), 0 deletions(-) diff --git a/src/HttpServer/logic/datadef.go b/src/HttpServer/logic/datadef.go index 327d2bc..c10e3af 100644 --- a/src/HttpServer/logic/datadef.go +++ b/src/HttpServer/logic/datadef.go @@ -25,6 +25,7 @@ type UserLoginData struct { Shakeleftcnt int `json:"shakeleftcnt"` IsNew int `json:"isnew"` Issignshow int `json:"issignshow"` + Curtime int `json:"curtime"` //Leftredbagnum int `json:"leftredbagnum"` } @@ -470,6 +471,24 @@ type WithDrawDesc struct { Day int `json:"day"` } + +type TurntablebagReq struct { + Num int `json:"num"` + Gameid string `json:"gameid"` + Channel string `json:"channel"` +} + +type TurntablebagData struct { + Getgoldnum int `json:"getgoldnum"` + Walletgold int `json:"walletgold"` +} + +type TurntablebagResp struct { + Code int `json:"code"` + Message string `json:"message"` + Data TurntablebagData `json:"data"` +} + //玩家数据 type UserData struct { Userid int //玩家id diff --git a/src/HttpServer/logic/function.go b/src/HttpServer/logic/function.go index 10b3436..3b48c71 100644 --- a/src/HttpServer/logic/function.go +++ b/src/HttpServer/logic/function.go @@ -697,6 +697,7 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int, uniqueuid s resp.Data.Shakeleftcnt = initdata.ShakeTime resp.Data.IsNew = initdata.IsNew resp.Data.Issignshow = initdata.SignShow + resp.Data.Curtime = int(time.Now().Unix()) //resp.Data.Leftredbagnum = DAILYFETCHREDBAGNUMLIMIT - initdata.FetchRdBagNum err := SaveUserInfo(&initdata, uniqueuid) @@ -990,6 +991,7 @@ func GetUserData(uuid int, uniqueuid string, req *UserLoginReq, resp *UserLoginR resp.Data.Shakeleftcnt = data.ShakeTime resp.Data.IsNew = data.IsNew resp.Data.Issignshow = data.SignShow + resp.Data.Curtime = int(time.Now().Unix()) //resp.Data.Leftredbagnum = DAILYFETCHREDBAGNUMLIMIT - data.FetchRdBagNum return nil } diff --git a/src/HttpServer/logic/httpserver.go b/src/HttpServer/logic/httpserver.go index 4c35c28..43f8611 100644 --- a/src/HttpServer/logic/httpserver.go +++ b/src/HttpServer/logic/httpserver.go @@ -77,6 +77,7 @@ func startServerHttpServe() { http.HandleFunc("/guessge/getdata", Getdata) //获取数据 http.HandleFunc("/guessge/uploadsong", Uploadsong) //上报猜歌数据 http.HandleFunc("/guessge/queryrankinfo", Queryrankinfo) //获取排行榜信息 + http.HandleFunc("/guessge/turntablebag", Turntablebag) //转盘红包 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) CheckErr(err) @@ -153,6 +154,28 @@ func Savadata(w http.ResponseWriter, r *http.Request) { HandlerSavadata(w, s, Uuid) } + +func Turntablebag(w http.ResponseWriter, r *http.Request) { + + Uuid := 0 + if len(r.Header) > 0 { + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) + } + + if Uuid == 0 { + SetHeader(w) + //logger.Error("Uuid is nil!") + return + } + result, _ := ioutil.ReadAll(r.Body) + r.Body.Close() + + s := string(result) + logger.Info("Turntablebag , body:%v,uuid=%v", s, Uuid) + + HandlerTurntablebag(w, s, Uuid) +} + func Queryrankinfo(w http.ResponseWriter, r *http.Request) { Uuid := 0 diff --git a/src/HttpServer/logic/logic.go b/src/HttpServer/logic/logic.go index 1845f15..2034a4b 100644 --- a/src/HttpServer/logic/logic.go +++ b/src/HttpServer/logic/logic.go @@ -795,6 +795,57 @@ func HandlerUploadsong(w http.ResponseWriter, data string, uuid int) { fmt.Fprint(w, string(respstr)) } + + +func HandlerTurntablebag(w http.ResponseWriter, data string, uuid int) { + SetHeader(w) + var resp TurntablebagResp + resp.Code = 0 + resp.Message = "success" + var rdata TurntablebagReq + err := json.Unmarshal([]byte(data), &rdata) + for { + if err != nil { + logger.Info("json decode HandlerTurntablebag data failed:%v,for:%v", err, data) + resp.Message = "网络错误" + resp.Code = ERROR_JSONUNMASH_ERROR + break + } + + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel + uinfo, err := GetUserInfo(uniqueuuid) + if err != nil || uinfo == nil { + logger.Error("redis failed err=%v", err) + resp.Message = "服务器错误" + resp.Code = ERROR_SRV_ERROR + break + } + + goldnum, _, err := AddCoinToSdk(uuid, rdata.Num, rdata.Gameid, rdata.Channel, 104) + if err != nil { + logger.Error("AddCoinToSdk failed rdata=%v", rdata) + resp.Message = "网络错误" + resp.Code = ERROR_SRV_ERROR + break + } + uinfo.RealGold = goldnum + + resp.Data.Walletgold = goldnum + resp.Data.Getgoldnum = rdata.Num + //加入排行榜 + SaveUserInfo(uinfo, uniqueuuid) + + resp.Code = ERROR_OK + break + } + + //回包 + respstr, _ := json.Marshal(&resp) + fmt.Fprint(w, string(respstr)) +} + + func HandlerSavadata(w http.ResponseWriter, data string, uuid int) { SetHeader(w) var resp SavadataResp -- libgit2 0.21.0