Commit e62063c8ab914fb99ec4e4b06acd8d2675459847
1 parent
4596c516
Exists in
master
提交相关接口
Showing
5 changed files
with
167 additions
and
1 deletions
Show diff stats
src/HttpServer/logic/datadef.go
| ... | ... | @@ -25,7 +25,8 @@ type GetAccessTokenResp struct { |
| 25 | 25 | //-------------------------------------------------------------------------- |
| 26 | 26 | |
| 27 | 27 | type GetcurpropertyReq struct { |
| 28 | - Openid string `json:"openid"` | |
| 28 | + Openid string `json:"openid"` | |
| 29 | + Device_id int `json:"device_id"` | |
| 29 | 30 | } |
| 30 | 31 | |
| 31 | 32 | type GetcurpropertyData struct { |
| ... | ... | @@ -33,6 +34,7 @@ type GetcurpropertyData struct { |
| 33 | 34 | Speed int64 `json:"speed"` |
| 34 | 35 | Curlevle int64 `json:"curlevle"` |
| 35 | 36 | Leftcnt int `json:"leftcnt"` |
| 37 | + Curgold int `json:"curgold"` | |
| 36 | 38 | } |
| 37 | 39 | |
| 38 | 40 | type GetcurpropertyResp struct { |
| ... | ... | @@ -59,6 +61,37 @@ type FetchproteryboxResp struct { |
| 59 | 61 | RetData FetchproteryboxData `json:"retData"` |
| 60 | 62 | } |
| 61 | 63 | |
| 64 | +type UploadgunlvReq struct { | |
| 65 | + Openid string `json:"openid"` | |
| 66 | + Maxlevel int `json:"maxlevel"` | |
| 67 | +} | |
| 68 | + | |
| 69 | +type UploadgunlvData struct { | |
| 70 | + Speed int64 `json:"speed"` | |
| 71 | +} | |
| 72 | + | |
| 73 | +type UploadgunlvResp struct { | |
| 74 | + ErrNum int `json:"errNum"` | |
| 75 | + RetMsg string `json:"retMsg"` | |
| 76 | + RetData UploadgunlvData `json:"retData"` | |
| 77 | +} | |
| 78 | + | |
| 79 | +type AddgoldReq struct { | |
| 80 | + Openid string `json:"openid"` | |
| 81 | + Device_id int `json:"device_id"` | |
| 82 | + Gold_num int `json:"gold_num"` | |
| 83 | +} | |
| 84 | + | |
| 85 | +type AddgoldData struct { | |
| 86 | + Taoalgoldnum int `json:"taoalgoldnum"` | |
| 87 | +} | |
| 88 | + | |
| 89 | +type AddgoldResp struct { | |
| 90 | + ErrNum int `json:"errNum"` | |
| 91 | + RetMsg string `json:"retMsg"` | |
| 92 | + RetData AddgoldData `json:"retData"` | |
| 93 | +} | |
| 94 | + | |
| 62 | 95 | //------------------------------------------------------------------------------------------------------ |
| 63 | 96 | |
| 64 | 97 | type UserData struct { |
| ... | ... | @@ -72,4 +105,5 @@ type UserData struct { |
| 72 | 105 | SingDay int //签到天数 |
| 73 | 106 | IsSign int //当天是否已经签到 |
| 74 | 107 | TodaySec int //当天零点时间戳,用于判断跨天 |
| 108 | + PassLvGold int //当天过关获得的金币 | |
| 75 | 109 | } | ... | ... |
src/HttpServer/logic/errordef.go
src/HttpServer/logic/function.go
| ... | ... | @@ -72,6 +72,7 @@ func (u *UserData) InitUserInfo(openid string) error { |
| 72 | 72 | u.MaxLevel = 1 |
| 73 | 73 | u.Property = 0 |
| 74 | 74 | u.SingDay = 0 |
| 75 | + u.PassLvGold = 0 | |
| 75 | 76 | u.TodaySec = int(time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 0, 0, 0, 0, nowtime.Location()).Unix()) |
| 76 | 77 | u.TotalFetchCnt = 0 //用于计算当前领取次数 |
| 77 | 78 | |
| ... | ... | @@ -135,6 +136,7 @@ func (u *UserData) CalcProperty() { |
| 135 | 136 | u.SingDay = 0 |
| 136 | 137 | u.SignRound++ |
| 137 | 138 | } |
| 139 | + u.PassLvGold = 0 | |
| 138 | 140 | } |
| 139 | 141 | } |
| 140 | 142 | //保存 | ... | ... |
src/HttpServer/logic/httpserver.go
| ... | ... | @@ -45,10 +45,32 @@ func startServerHttpServe() { |
| 45 | 45 | //---------------------------------------------------------------------------------------- |
| 46 | 46 | http.HandleFunc("/daycs/getcurproperty", Getcurproperty) //请求当前物资 |
| 47 | 47 | http.HandleFunc("/daycs/fetchproterybox", Fetchproterybox) //请求领取物资宝箱 |
| 48 | + http.HandleFunc("/daycs/uploadgunlv", Uploadgunlv) //上报当前枪支等级 | |
| 49 | + http.HandleFunc("/daycs/addgold", Addgold) //增加金币接口(过关加金币用) | |
| 48 | 50 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) |
| 49 | 51 | CheckErr(err) |
| 50 | 52 | } |
| 51 | 53 | |
| 54 | +func Addgold(w http.ResponseWriter, r *http.Request) { | |
| 55 | + result, _ := ioutil.ReadAll(r.Body) | |
| 56 | + r.Body.Close() | |
| 57 | + | |
| 58 | + s := string(result) | |
| 59 | + logger.Info("Addgold , body:%v", s) | |
| 60 | + | |
| 61 | + HandlerAddgold(w, s) | |
| 62 | +} | |
| 63 | + | |
| 64 | +func Uploadgunlv(w http.ResponseWriter, r *http.Request) { | |
| 65 | + result, _ := ioutil.ReadAll(r.Body) | |
| 66 | + r.Body.Close() | |
| 67 | + | |
| 68 | + s := string(result) | |
| 69 | + logger.Info("Uploadgunlv , body:%v", s) | |
| 70 | + | |
| 71 | + HandlerUploadgunlv(w, s) | |
| 72 | +} | |
| 73 | + | |
| 52 | 74 | func Fetchproterybox(w http.ResponseWriter, r *http.Request) { |
| 53 | 75 | result, _ := ioutil.ReadAll(r.Body) |
| 54 | 76 | r.Body.Close() | ... | ... |
src/HttpServer/logic/logic.go
| ... | ... | @@ -8,10 +8,110 @@ import ( |
| 8 | 8 | "net/http" |
| 9 | 9 | ) |
| 10 | 10 | |
| 11 | +func HandlerAddgold(w http.ResponseWriter, data string) { | |
| 12 | + SetHeader(w) | |
| 13 | + var resp AddgoldResp | |
| 14 | + resp.ErrNum = 0 | |
| 15 | + var rdata AddgoldReq | |
| 16 | + err := json.Unmarshal([]byte(data), &rdata) | |
| 17 | + for { | |
| 18 | + if err != nil { | |
| 19 | + logger.Info("json decode HandlerAddgold data failed:%v,for:%v", err, data) | |
| 20 | + resp.RetMsg = "json解析失败" | |
| 21 | + resp.ErrNum = ERROR_UNMASH_JSONFAILED | |
| 22 | + break | |
| 23 | + } | |
| 24 | + | |
| 25 | + uinfo, err := GetUserInfo(rdata.Openid) | |
| 26 | + if err != nil || uinfo == nil { | |
| 27 | + logger.Info(" HandlerAddgold getdata failed:%v,for:%v", err, data) | |
| 28 | + resp.RetMsg = "服务器读取数据失败" | |
| 29 | + resp.ErrNum = ERROR_SERVER_FAILED | |
| 30 | + break | |
| 31 | + } | |
| 32 | + | |
| 33 | + if uinfo.PassLvGold >= 100 { | |
| 34 | + logger.Info(" HandlerAddgold PassLvGold failed:%v,for:%v", err, data) | |
| 35 | + resp.RetMsg = "当日合成获得金币已达上限" | |
| 36 | + resp.ErrNum = ERROR_GOLD_LIMIT | |
| 37 | + break | |
| 38 | + } | |
| 39 | + | |
| 40 | + addnum, sumnum, err := AddCoinToTouTiao(rdata.Openid, rdata.Device_id, rdata.Gold_num, "闯关送金币", "other") | |
| 41 | + if err != nil { | |
| 42 | + logger.Info(" HandlerAddgold property failed:%v,for:%v", err, data) | |
| 43 | + resp.RetMsg = "调用头条接口失败" | |
| 44 | + resp.ErrNum = ERROR_TOUTIAOAPI_FAILED | |
| 45 | + break | |
| 46 | + } | |
| 47 | + | |
| 48 | + uinfo.PassLvGold += addnum | |
| 49 | + resp.RetData.Taoalgoldnum = sumnum | |
| 50 | + //保存 | |
| 51 | + err = SaveUserInfo(uinfo) | |
| 52 | + if err != nil { | |
| 53 | + logger.Error("HandlerFetchproterybox err=%v", err) | |
| 54 | + } | |
| 55 | + | |
| 56 | + break | |
| 57 | + } | |
| 58 | + //回包 | |
| 59 | + respstr, _ := json.Marshal(&resp) | |
| 60 | + fmt.Fprint(w, string(respstr)) | |
| 61 | +} | |
| 62 | + | |
| 63 | +func HandlerUploadgunlv(w http.ResponseWriter, data string) { | |
| 64 | + SetHeader(w) | |
| 65 | + var resp UploadgunlvResp | |
| 66 | + resp.ErrNum = 0 | |
| 67 | + resp.RetMsg = "success" | |
| 68 | + var rdata UploadgunlvReq | |
| 69 | + err := json.Unmarshal([]byte(data), &rdata) | |
| 70 | + for { | |
| 71 | + if err != nil { | |
| 72 | + logger.Info("json decode HandlerUploadgunlv data failed:%v,for:%v", err, data) | |
| 73 | + resp.RetMsg = "json解析失败" | |
| 74 | + resp.ErrNum = ERROR_UNMASH_JSONFAILED | |
| 75 | + break | |
| 76 | + } | |
| 77 | + | |
| 78 | + uinfo, err := GetUserInfo(rdata.Openid) | |
| 79 | + if err != nil || uinfo == nil { | |
| 80 | + logger.Info(" HandlerFetchproterybox getdata failed:%v,for:%v", err, data) | |
| 81 | + resp.RetMsg = "服务器读取数据失败" | |
| 82 | + resp.ErrNum = ERROR_SERVER_FAILED | |
| 83 | + break | |
| 84 | + } | |
| 85 | + | |
| 86 | + if rdata.Maxlevel < uinfo.MaxLevel { | |
| 87 | + logger.Info(" HandlerFetchproterybox MaxLevel failed:%v,for:%v", err, data) | |
| 88 | + resp.RetMsg = "等级参数不正确" | |
| 89 | + resp.ErrNum = ERROR_PARAM_INVALID | |
| 90 | + break | |
| 91 | + } | |
| 92 | + | |
| 93 | + uinfo.MaxLevel = rdata.Maxlevel | |
| 94 | + | |
| 95 | + resp.RetData.Speed = uinfo.CalcSpeed() | |
| 96 | + | |
| 97 | + //保存 | |
| 98 | + err = SaveUserInfo(uinfo) | |
| 99 | + if err != nil { | |
| 100 | + logger.Error("HandlerFetchproterybox err=%v", err) | |
| 101 | + } | |
| 102 | + | |
| 103 | + break | |
| 104 | + } | |
| 105 | + //回包 | |
| 106 | + respstr, _ := json.Marshal(&resp) | |
| 107 | + fmt.Fprint(w, string(respstr)) | |
| 108 | +} | |
| 109 | + | |
| 11 | 110 | func HandlerFetchproterybox(w http.ResponseWriter, data string) { |
| 12 | 111 | SetHeader(w) |
| 13 | 112 | var resp FetchproteryboxResp |
| 14 | 113 | resp.ErrNum = 0 |
| 114 | + resp.RetMsg = "success" | |
| 15 | 115 | var rdata FetchproteryboxReq |
| 16 | 116 | err := json.Unmarshal([]byte(data), &rdata) |
| 17 | 117 | for { |
| ... | ... | @@ -88,6 +188,7 @@ func HandlerGetcurproperty(w http.ResponseWriter, data string) { |
| 88 | 188 | SetHeader(w) |
| 89 | 189 | var resp GetcurpropertyResp |
| 90 | 190 | resp.ErrNum = 0 |
| 191 | + resp.RetMsg = "success" | |
| 91 | 192 | var rdata GetcurpropertyReq |
| 92 | 193 | err := json.Unmarshal([]byte(data), &rdata) |
| 93 | 194 | for { |
| ... | ... | @@ -114,6 +215,11 @@ func HandlerGetcurproperty(w http.ResponseWriter, data string) { |
| 114 | 215 | resp.RetData.Curlevle = uinfo.CalcCurLe() |
| 115 | 216 | resp.RetData.Protery = uinfo.Property |
| 116 | 217 | resp.RetData.Speed = uinfo.CalcSpeed() |
| 218 | + newgold, err := GetCoinFromToutiao(rdata.Openid, rdata.Device_id) | |
| 219 | + if err != nil { | |
| 220 | + logger.Error("HandlerGetcurproperty err=%v", err) | |
| 221 | + } | |
| 222 | + resp.RetData.Curgold = newgold | |
| 117 | 223 | |
| 118 | 224 | break |
| 119 | 225 | } | ... | ... |