Commit 537b64ea1ca93f95f61096d18be84f9bcc56f7a7

Authored by 陆恒
1 parent 87f77056
Exists in master

提交接口

src/HttpServer/logic/constdef.go
... ... @@ -59,6 +59,8 @@ const (
59 59 SDKOPGOLD_TYPEWE = 302 //微转发金币类型
60 60 GUANGOLDNUMLIMIT = 900 //存钱罐金币上限
61 61 LUCKYBAGDAYLIMIT = 10 //每日福袋次数
  62 + FREETICKETCOUNT = 1 //免费抽奖次数
  63 + TICKETCOUNT = 5 //看视频抽奖次数
62 64 )
63 65  
64 66 const (
... ...
src/HttpServer/logic/datadef.go
... ... @@ -62,6 +62,8 @@ type SyncuserdataData struct {
62 62 Sumloginday int `json:"sumloginday"`
63 63 Nowtime int `json:"nowtime"`
64 64 Luckbaglefttime int `json:"luckbaglefttime"`
  65 + Leftfreeticket int `json:"leftfreeticket"`
  66 + Leftticket int `json:"leftticket"`
65 67 }
66 68  
67 69 type SyncuserdataResp struct {
... ... @@ -250,6 +252,17 @@ type QueryrankinfoResp struct {
250 252 Data QueryrankinfoData `json:"data"`
251 253 }
252 254  
  255 +type QuerydrawrewardData struct {
  256 + Getgold int `json:"getgold"`
  257 + Walletgold int `json:"walletgold"`
  258 +}
  259 +
  260 +type QuerydrawrewardResp struct {
  261 + Code int `json:"code"`
  262 + Message string `json:"message"`
  263 + Data QuerydrawrewardData `json:"data"`
  264 +}
  265 +
253 266 type GetcashReq struct {
254 267 Gameid string `json:"gameid"`
255 268 Channel string `json:"channel"`
... ... @@ -498,6 +511,8 @@ type UserData struct {
498 511 LastUpdateTime int //上一次同步时间
499 512 OfflineGold int //离线金币数量
500 513 HighScore int64 //玩家历史最高分
  514 + FreeTicket int //免费抽奖次数
  515 + Ticket int //看视频抽奖次数
501 516 WithDraw WithDrawInfo //提现记录信息
502 517 Task TaskInfo //玩家任务完成相关信息
503 518 Achieve AchieveMentInfo //玩家成就完成相关数据
... ...
src/HttpServer/logic/function.go
... ... @@ -82,6 +82,8 @@ func (u *UserData) HandlePassDay(uuid int, channel string) {
82 82 u.Task.PlaySmall = 0
83 83 u.RedBagFetchIdlist = u.RedBagFetchIdlist[:0]
84 84 u.LuckyBagLeftTimes = LUCKYBAGDAYLIMIT
  85 + u.FreeTicket = FREETICKETCOUNT
  86 + u.Ticket = TICKETCOUNT
85 87  
86 88 err := InitTaskAndAchievement(uuid, channel)
87 89 if err != nil {
... ... @@ -397,6 +399,8 @@ func InitUserInfo(resp *UserLoginResp, uniqueuid, gameid, channel string, uuid i
397 399 initdata.HeadUrl = "1"
398 400 initdata.RegTime = int(time.Now().Unix())
399 401 initdata.LuckyBagLeftTimes = LUCKYBAGDAYLIMIT
  402 + initdata.FreeTicket = FREETICKETCOUNT
  403 + initdata.Ticket = TICKETCOUNT
400 404  
401 405 for _, val := range jsonconf.GetJsonConf().RmbConfig {
402 406 var tmp WithDrawDesc
... ... @@ -539,6 +543,40 @@ func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype in
539 543 return resp.Data.Mycoin, nil
540 544 }
541 545  
  546 +//计算转盘抽奖
  547 +func CalcTurnTableNum() int {
  548 + rtnum := 0
  549 +
  550 + sumrate := 0
  551 + tmprate := 0
  552 + idx := -1
  553 + rand.Seed(time.Now().UnixNano())
  554 + randnum := rand.Intn(100)
  555 + cflist := jsonconf.GetJsonConf().TrunTableConfig
  556 + for _, vv := range cflist {
  557 + sumrate += vv.Rate
  558 + }
  559 + logger.Info("CalcTurnTableNum sumrate=%v,randnum=%v,cflist=%+v", sumrate, randnum, cflist)
  560 + for k, v := range cflist {
  561 + tmprate += int(v.Rate * 100 / sumrate)
  562 + logger.Info("CalcTurnTableNum tmprate=%v", tmprate)
  563 + if tmprate >= randnum {
  564 + idx = k
  565 + break
  566 + }
  567 + }
  568 +
  569 + if idx == -1 {
  570 + if len(cflist) > 0 {
  571 + rtnum = cflist[0].Desc
  572 + }
  573 + } else {
  574 + rtnum = cflist[idx].Desc
  575 + }
  576 +
  577 + return rtnum
  578 +}
  579 +
542 580 //计算福袋金额
543 581 func CalcLuckYBagNum() int {
544 582 rtnum := 0
... ...
src/HttpServer/logic/httpserver.go
... ... @@ -58,9 +58,10 @@ func startServerHttpServe() {
58 58 http.HandleFunc("/russiaxiaoxiao/fetchoffliengold", Fetchoffliengold) //请求领取离线金币
59 59 http.HandleFunc("/russiaxiaoxiao/uploadhigestscore", Uploadhigestscore) //上报玩家历史最高分
60 60 http.HandleFunc("/russiaxiaoxiao/queryrankinfo", Queryrankinfo) //查询排行榜
  61 + http.HandleFunc("/russiaxiaoxiao/querydrawreward", Querydrawreward) //请求抽奖
61 62  
62 63 //..........................................
63   - http.HandleFunc("/eliminatestar/getuserdata", Getuserdata) //获取玩家数据
  64 + /*http.HandleFunc("/eliminatestar/getuserdata", Getuserdata) //获取玩家数据
64 65 http.HandleFunc("/eliminatestar/watchads", Watchads) //观看激励视频
65 66 http.HandleFunc("/eliminatestar/queryguaninfo", Queryguaninfo) //获取存钱罐数据
66 67 //http.HandleFunc("/eliminatestar/getguangold", Getguangold) //获取金币到存钱罐
... ... @@ -75,10 +76,10 @@ func startServerHttpServe() {
75 76 http.HandleFunc("/eliminatestar/getnewlevelreward", Getnewlevelreward) //领取任务或者成就奖励
76 77 http.HandleFunc("/eliminatestar/querysigndata", Querysigndata) //获取签到数据
77 78 http.HandleFunc("/eliminatestar/usersign", Usersign) //玩家签到
78   - //
79   - http.HandleFunc("/eliminatestar/readNumUpload", ReadNumUpload) //阅读量上报
80   - http.HandleFunc("/eliminatestar/queryreadgold", QueryReadGold) //获取微转发金币数
81   - http.HandleFunc("/eliminatestar/fetchreadgold", Fetchreadgold) //领取微转发金币数
  79 + //*/
  80 + http.HandleFunc("/russiaxiaoxiao/readNumUpload", ReadNumUpload) //阅读量上报
  81 + http.HandleFunc("/russiaxiaoxiao/queryreadgold", QueryReadGold) //获取微转发金币数
  82 + http.HandleFunc("/russiaxiaoxiao/fetchreadgold", Fetchreadgold) //领取微转发金币数
82 83  
83 84 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil)
84 85 CheckErr(err)
... ... @@ -487,6 +488,34 @@ func Querdrawinfo(w http.ResponseWriter, r *http.Request) {
487 488 //HandlerQuerdrawinfo(w, s, Uuid)
488 489 }
489 490  
  491 +func Querydrawreward(w http.ResponseWriter, r *http.Request) {
  492 +
  493 + gameid := ""
  494 + channel := ""
  495 + uniqueid := ""
  496 + Uuid := 0
  497 + if len(r.Header) > 0 {
  498 + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))
  499 + gameid = r.Header.Get("Gameid")
  500 + channel = r.Header.Get("Channel")
  501 + uniqueid = r.Header.Get("Uuid") + r.Header.Get("Channel")
  502 + }
  503 +
  504 + if Uuid == 0 {
  505 + SetHeader(w)
  506 + logger.Error("Uuid is nil!")
  507 + return
  508 + }
  509 + result, _ := ioutil.ReadAll(r.Body)
  510 + r.Body.Close()
  511 +
  512 + s := string(result)
  513 + logger.Info("Querydrawreward , body:%v,uuid=%v", s, uniqueid)
  514 +
  515 + HandlerQuerydrawreward(w, s, uniqueid, gameid, channel, Uuid)
  516 +
  517 +}
  518 +
490 519 func Queryrankinfo(w http.ResponseWriter, r *http.Request) {
491 520  
492 521 gameid := ""
... ...
src/HttpServer/logic/logic.go
... ... @@ -38,6 +38,8 @@ func HandlerSyncuserdata(w http.ResponseWriter, data string, uniqueuuid, gameid,
38 38 resp.Data.Sumloginday = uinfo.SumLoginDay
39 39 resp.Data.Nowtime = int(time.Now().Unix())
40 40 resp.Data.Luckbaglefttime = uinfo.LuckyBagLeftTimes
  41 + resp.Data.Leftfreeticket = uinfo.FreeTicket
  42 + resp.Data.Leftticket = uinfo.Ticket
41 43 break
42 44 }
43 45  
... ... @@ -117,6 +119,67 @@ func HandlerUploaduserbasicinfo(w http.ResponseWriter, data string, uniqueuuid s
117 119 fmt.Fprint(w, string(respstr))
118 120 }
119 121  
  122 +func HandlerQuerydrawreward(w http.ResponseWriter, data string, uniqueuuid, gameid, channel string, uuid int) {
  123 + SetHeader(w)
  124 + var resp QuerydrawrewardResp
  125 + resp.Code = 0
  126 + resp.Message = "success"
  127 +
  128 + for {
  129 +
  130 + uinfo, err := GetUserInfo(uniqueuuid)
  131 + if err != nil {
  132 + logger.Info("GetUserInfo HandlerQuerydrawreward data failed:%v,for:%v", err, data)
  133 + resp.Message = "GetUserInfo failed"
  134 + resp.Code = 1
  135 + break
  136 + }
  137 +
  138 + if uinfo.FreeTicket == 0 && uinfo.Ticket == 0 {
  139 + //已经没有抽奖次数了
  140 + logger.Info("GetUserInfo HandlerQuerydrawreward data failed:%v,for:%v", err, data)
  141 + resp.Message = "已经没有抽奖次数了"
  142 + resp.Code = 1
  143 + break
  144 + }
  145 +
  146 + addgold := CalcTurnTableNum()
  147 +
  148 + if addgold == 0 {
  149 + logger.Info("GetUserInfo HandlerQuerydrawreward data failed:%v,for:%v", err, data)
  150 + resp.Message = "CalcTurnTableNumfaile"
  151 + resp.Code = 1
  152 + break
  153 + }
  154 +
  155 + realgold, err := AddCoinToSdk(uuid, addgold, gameid, channel, REDBAGTYPE_106)
  156 + if err != nil {
  157 + logger.Info("GetUserInfo HandlerQuerydrawreward data failed:%v,for:%v", err, data)
  158 + resp.Message = "后台加金币失败了"
  159 + resp.Code = 1
  160 + break
  161 + }
  162 +
  163 + uinfo.RealGold = realgold
  164 + if uinfo.FreeTicket > 0 {
  165 + uinfo.FreeTicket--
  166 + } else {
  167 + uinfo.Ticket--
  168 + }
  169 +
  170 + SaveUserInfo(uinfo, uniqueuuid)
  171 + resp.Data.Getgold = addgold
  172 + resp.Data.Walletgold = uinfo.RealGold
  173 +
  174 + resp.Code = ERROR_OK
  175 + break
  176 + }
  177 +
  178 + //回包
  179 + respstr, _ := json.Marshal(&resp)
  180 + fmt.Fprint(w, string(respstr))
  181 +}
  182 +
120 183 func HandlerQueryrankinfo(w http.ResponseWriter, data string, uniqueuuid, gameid, channel string, uuid int) {
121 184 SetHeader(w)
122 185 var resp QueryrankinfoResp
... ...