123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- package v1
- import (
- "go-common/app/interface/live/lottery-interface/internal/service"
- xlottery "go-common/app/service/live/xlottery/api/grpc/v1"
- "go-common/library/log"
- "go-common/library/log/infoc"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/net/metadata"
- "net/http"
- "time"
- "go-common/library/net/http/blademaster/render"
- )
- //StormJoin StormJoin
- func StormJoin(c *bm.Context) {
- p := new(xlottery.JoinStormReq)
- if err := c.Bind(p); err != nil {
- c.JSON(nil, err)
- return
- }
- // if p.GetRoomid() == 0 {
- // c.Render(http.StatusOK, render.MapJSON{
- // "code": 400,
- // "msg": "参数错误",
- // })
- // return
- // }
- mid, _ := c.Get("mid")
- platform := c.Request.URL.Query().Get("platform")
- if platform == "" {
- platform = "web"
- }
- if p.Platform == "" {
- p.Platform = platform
- }
- log.Info("mid:%s platform:%s", mid, platform)
- p.Mid = mid.(int64)
- //反作弊打点
- lancer(c, p)
- resp, err := service.ServiceInstance.StormClient.Join(c, p)
- if err != nil {
- c.Render(http.StatusOK, render.MapJSON{
- "code": 400,
- "msg": "没抢到",
- "data": []int{},
- })
- return
- }
- switch resp.GetCode() {
- case 1005002:
- c.Render(http.StatusOK, render.MapJSON{
- "code": 429,
- "msg": resp.GetMsg(),
- })
- return
- case 1005001:
- c.Render(http.StatusOK, render.MapJSON{
- "code": 401,
- "msg": resp.GetMsg(),
- })
- return
- case 1005003, 1005004, 1005005, 1005016:
- c.Render(http.StatusOK, render.MapJSON{
- "code": 400,
- "msg": resp.GetMsg(),
- })
- return
- case 0:
- c.JSON(resp.GetJoin(), nil)
- return
- default:
- c.Render(http.StatusOK, render.MapJSON{
- "code": int(resp.GetCode()),
- "msg": resp.GetMsg(),
- })
- }
- }
- // StormCheck StormCheck 检查
- func StormCheck(c *bm.Context) {
- p := new(xlottery.CheckStormReq)
- if err := c.Bind(p); err != nil {
- c.JSON(nil, err)
- return
- }
- mid, isexit := c.Get("mid")
- if isexit {
- p.Uid = mid.(int64)
- log.Info("StormCheck uid = %s", mid)
- }
- resp, err := service.ServiceInstance.StormClient.Check(c, p)
- if err != nil {
- c.JSON(nil, err)
- return
- }
- if resp.GetCheck() != nil {
- c.JSON(resp.GetCheck(), nil)
- return
- }
- c.Render(http.StatusOK, render.MapJSON{
- "code": 0,
- "msg": "",
- "data": []int{},
- })
- }
- var lacnertype = "rhythmic"
- func lancer(c *bm.Context, req *xlottery.JoinStormReq) {
- uid := req.GetMid()
- roomid := req.GetRoomid()
- lotteryid := req.GetId()
- action := "join"
- ip := metadata.String(c, metadata.RemoteIP)
- ts := time.Now().Unix()
- platform := req.GetPlatform()
- clientver := c.Request.URL.Query().Get("version")
- buvid := c.Request.Header.Get("Buvid")
- ua := c.Request.Header.Get("User-Agent")
- referer := c.Request.Header.Get("Referer")
- cookie := getCookie(c.Request)
- abnoormal := 0
- requesturi := c.Request.RequestURI
- err := service.ServiceInstance.Infoc.Info(
- uid,
- roomid,
- lacnertype,
- lotteryid,
- action,
- ip,
- ts,
- platform,
- clientver,
- buvid,
- ua,
- referer,
- cookie,
- abnoormal,
- requesturi)
- if err != nil {
- if err != infoc.ErrFull {
- log.Error("Infoc.Info err: %s", err.Error())
- }
- }
- }
- func getCookie(req *http.Request) string {
- var cookie string
- for _, v := range req.Cookies() {
- if v.Name != "SESSDATA" {
- cookie = cookie + v.Name + "=" + v.Value + "; "
- }
- }
- return cookie
- }
|