github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/game/internal/user_circle.go (about) 1 package internal 2 3 import ( 4 "encoding/json" 5 "game/circle" 6 "msg" 7 8 "github.com/name5566/leaf/log" 9 ) 10 11 func (user *User) requestCircleID() { 12 if user.isRobot() || user.baseData.userData.CircleID > 0 { 13 return 14 } 15 temp := &struct { 16 Code string 17 CircleID int `json:"data"` 18 }{} 19 skeleton.Go(func() { 20 req := circle.NewCircleLoginRequest(&circle.CircleUserInfo{ 21 UnionID: user.baseData.userData.UnionID, 22 Nickname: user.baseData.userData.Nickname, 23 Headimgurl: user.baseData.userData.Headimgurl, 24 Sex: user.baseData.userData.Sex, 25 }) 26 data := circle.DoRequest(req.GatewayUrl, req.Method, req.Params) 27 // {"id":null,"code":"0","model":null,"message":"ok","data":174} 28 // log.Debug("%s", data) 29 err := json.Unmarshal(data, temp) 30 if err != nil || temp.Code != "0" { 31 temp = nil 32 return 33 } 34 }, func() { 35 if temp != nil { 36 user.baseData.userData.CircleID = temp.CircleID 37 } 38 }) 39 } 40 41 func (user *User) requestCircleLoginCode(successCb func(loginCode string), failCb func()) { 42 if user.baseData.userData.CircleID < 1 { 43 if failCb != nil { 44 failCb() 45 } 46 return 47 } 48 temp := &struct { 49 Code string 50 LoginCode string `json:"data"` 51 }{} 52 skeleton.Go(func() { 53 req := circle.NewCircleAuthorize(user.baseData.userData.CircleID) 54 data := circle.DoRequest(req.GatewayUrl, req.Method, req.Params) 55 // {"id":null,"code":"0","model":null,"message":"ok","data":"1730c016-01c7-4e15-85b8-986f5d812dd9"} 56 // log.Debug("%s", data) 57 err := json.Unmarshal(data, temp) 58 if err != nil || temp.Code != "0" { 59 temp = nil 60 return 61 } 62 }, func() { 63 if temp == nil { 64 if failCb != nil { 65 failCb() 66 } 67 } else { 68 if successCb != nil { 69 successCb(temp.LoginCode) 70 } 71 } 72 }) 73 } 74 75 func (user *User) requestCheckCircleUserBlack() { 76 if user.isRobot() || user.baseData.userData.CircleID < 0 { 77 return 78 } 79 temp := &struct { 80 Code string 81 Black bool `json:"data"` 82 }{} 83 skeleton.Go(func() { 84 req := circle.NewCircleCheckBlackRequest(user.baseData.userData.CircleID) 85 data := circle.DoRequest(req.GatewayUrl, req.Method, req.Params) 86 // {"id":null,"code":"0","model":null,"message":"ok","data":false} 87 // log.Debug("%s", data) 88 json.Unmarshal(data, temp) 89 }, func() { 90 if temp.Code == "0" && temp.Black { 91 user.baseData.userData.Role = roleBlack 92 user.WriteMsg(&msg.S2C_Close{ 93 Error: msg.S2C_Close_RoleBlack, 94 WeChatNumber: landlordConfigData.WeChatNumber, 95 }) 96 user.Close() 97 } 98 }) 99 } 100 101 // 请求生成一个圈圈红包 102 func (user *User) requestCircleRedPacket(redPacket float64, desc string, successCb func(), failCb func()) { 103 temp := &struct { 104 Code string 105 Data string 106 }{} 107 skeleton.Go(func() { 108 req := circle.NewCircleCreateRedPacketRequest(&circle.RedPacketInfo{ 109 UserID: user.baseData.userData.CircleID, 110 Sum: redPacket, 111 Desc: desc, 112 }) 113 data := circle.DoRequest(req.GatewayUrl, req.Method, req.Params) 114 // {"id":null,"code":"0","model":null,"message":"ok","data":"SUCCESS"} 115 // log.Debug("%s", data) 116 err := json.Unmarshal(data, temp) 117 if err != nil || temp.Code != "0" || temp.Data != "SUCCESS" { 118 log.Error("%s", data) 119 temp = nil 120 return 121 } 122 }, func() { 123 if temp == nil { 124 if failCb != nil { 125 failCb() 126 } 127 } else { 128 if successCb != nil { 129 successCb() 130 } 131 } 132 }) 133 }