Commit db30a4ee7c08818ebc085a7b9c628da819d9df35
1 parent
ef8fdc0a
Exists in
master
增加抽奖功能
Showing
4 changed files
with
90 additions
and
0 deletions
Show diff stats
src/HttpServer/logic/datadef.go
... | ... | @@ -26,6 +26,7 @@ type UserLoginData struct { |
26 | 26 | IsNew int `json:"isnew"` |
27 | 27 | Issignshow int `json:"issignshow"` |
28 | 28 | Leftredbagnum int `json:"leftredbagnum"` |
29 | + Curtime int `json:"curtime"` | |
29 | 30 | } |
30 | 31 | |
31 | 32 | type UserLoginResp struct { |
... | ... | @@ -470,6 +471,23 @@ type WithDrawDesc struct { |
470 | 471 | Day int `json:"day"` |
471 | 472 | } |
472 | 473 | |
474 | +type TurntablebagReq struct { | |
475 | + Num int `json:"num"` | |
476 | + Gameid string `json:"gameid"` | |
477 | + Channel string `json:"channel"` | |
478 | +} | |
479 | + | |
480 | +type TurntablebagData struct { | |
481 | + Getgoldnum int `json:"getgoldnum"` | |
482 | + Walletgold int `json:"walletgold"` | |
483 | +} | |
484 | + | |
485 | +type TurntablebagResp struct { | |
486 | + Code int `json:"code"` | |
487 | + Message string `json:"message"` | |
488 | + Data TurntablebagData `json:"data"` | |
489 | +} | |
490 | + | |
473 | 491 | //玩家数据 |
474 | 492 | type UserData struct { |
475 | 493 | Userid int //玩家id | ... | ... |
src/HttpServer/logic/function.go
... | ... | @@ -688,6 +688,7 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int, uniqueuid s |
688 | 688 | resp.Data.IsNew = initdata.IsNew |
689 | 689 | resp.Data.Issignshow = initdata.SignShow |
690 | 690 | resp.Data.Leftredbagnum = DAILYFETCHREDBAGNUMLIMIT - initdata.FetchRdBagNum |
691 | + resp.Data.Curtime = int(time.Now().Unix()) | |
691 | 692 | |
692 | 693 | err := SaveUserInfo(&initdata, uniqueuid) |
693 | 694 | logger.Info("InitUserInfoddddd uinfo=%+v", initdata) |
... | ... | @@ -982,6 +983,7 @@ func GetUserData(uuid int, uniqueuid string, req *UserLoginReq, resp *UserLoginR |
982 | 983 | resp.Data.IsNew = data.IsNew |
983 | 984 | resp.Data.Issignshow = data.SignShow |
984 | 985 | resp.Data.Leftredbagnum = DAILYFETCHREDBAGNUMLIMIT - data.FetchRdBagNum |
986 | + resp.Data.Curtime = int(time.Now().Unix()) | |
985 | 987 | return nil |
986 | 988 | } |
987 | 989 | ... | ... |
src/HttpServer/logic/httpserver.go
... | ... | @@ -77,6 +77,7 @@ func startServerHttpServe() { |
77 | 77 | http.HandleFunc("/sixstar/getdata", Getdata) //获取数据 |
78 | 78 | http.HandleFunc("/sixstar/uploadscore", Uploadscore) //上报当天积分 |
79 | 79 | http.HandleFunc("/sixstar/queryrankinfo", Queryrankinfo) //获取排行榜信息 |
80 | + http.HandleFunc("/sixstar/turntablebag", Turntablebag) //转盘红包 | |
80 | 81 | |
81 | 82 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) |
82 | 83 | CheckErr(err) |
... | ... | @@ -153,6 +154,27 @@ func Savadata(w http.ResponseWriter, r *http.Request) { |
153 | 154 | HandlerSavadata(w, s, Uuid) |
154 | 155 | } |
155 | 156 | |
157 | +func Turntablebag(w http.ResponseWriter, r *http.Request) { | |
158 | + | |
159 | + Uuid := 0 | |
160 | + if len(r.Header) > 0 { | |
161 | + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | |
162 | + } | |
163 | + | |
164 | + if Uuid == 0 { | |
165 | + SetHeader(w) | |
166 | + //logger.Error("Uuid is nil!") | |
167 | + return | |
168 | + } | |
169 | + result, _ := ioutil.ReadAll(r.Body) | |
170 | + r.Body.Close() | |
171 | + | |
172 | + s := string(result) | |
173 | + logger.Info("Turntablebag , body:%v,uuid=%v", s, Uuid) | |
174 | + | |
175 | + HandlerTurntablebag(w, s, Uuid) | |
176 | +} | |
177 | + | |
156 | 178 | func Queryrankinfo(w http.ResponseWriter, r *http.Request) { |
157 | 179 | |
158 | 180 | Uuid := 0 | ... | ... |
src/HttpServer/logic/logic.go
... | ... | @@ -800,6 +800,54 @@ func HandlerUploadscore(w http.ResponseWriter, data string, uuid int) { |
800 | 800 | fmt.Fprint(w, string(respstr)) |
801 | 801 | } |
802 | 802 | |
803 | +func HandlerTurntablebag(w http.ResponseWriter, data string, uuid int) { | |
804 | + SetHeader(w) | |
805 | + var resp TurntablebagResp | |
806 | + resp.Code = 0 | |
807 | + resp.Message = "success" | |
808 | + var rdata TurntablebagReq | |
809 | + err := json.Unmarshal([]byte(data), &rdata) | |
810 | + for { | |
811 | + if err != nil { | |
812 | + logger.Info("json decode HandlerTurntablebag data failed:%v,for:%v", err, data) | |
813 | + resp.Message = "网络错误" | |
814 | + resp.Code = ERROR_JSONUNMASH_ERROR | |
815 | + break | |
816 | + } | |
817 | + | |
818 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | |
819 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | |
820 | + uinfo, err := GetUserInfo(uniqueuuid) | |
821 | + if err != nil || uinfo == nil { | |
822 | + logger.Error("redis failed err=%v", err) | |
823 | + resp.Message = "服务器错误" | |
824 | + resp.Code = ERROR_SRV_ERROR | |
825 | + break | |
826 | + } | |
827 | + | |
828 | + goldnum, _, err := AddCoinToSdk(uuid, rdata.Num, rdata.Gameid, rdata.Channel, 104) | |
829 | + if err != nil { | |
830 | + logger.Error("AddCoinToSdk failed rdata=%v", rdata) | |
831 | + resp.Message = "网络错误" | |
832 | + resp.Code = ERROR_SRV_ERROR | |
833 | + break | |
834 | + } | |
835 | + uinfo.RealGold = goldnum | |
836 | + | |
837 | + resp.Data.Walletgold = goldnum | |
838 | + resp.Data.Getgoldnum = rdata.Num | |
839 | + //加入排行榜 | |
840 | + SaveUserInfo(uinfo, uniqueuuid) | |
841 | + | |
842 | + resp.Code = ERROR_OK | |
843 | + break | |
844 | + } | |
845 | + | |
846 | + //回包 | |
847 | + respstr, _ := json.Marshal(&resp) | |
848 | + fmt.Fprint(w, string(respstr)) | |
849 | +} | |
850 | + | |
803 | 851 | func HandlerSavadata(w http.ResponseWriter, data string, uuid int) { |
804 | 852 | SetHeader(w) |
805 | 853 | var resp SavadataResp | ... | ... |