Commit e62063c8ab914fb99ec4e4b06acd8d2675459847

Authored by 陆恒
1 parent 4596c516
Exists in master

提交相关接口

src/HttpServer/logic/datadef.go
@@ -25,7 +25,8 @@ type GetAccessTokenResp struct { @@ -25,7 +25,8 @@ type GetAccessTokenResp struct {
25 //-------------------------------------------------------------------------- 25 //--------------------------------------------------------------------------
26 26
27 type GetcurpropertyReq struct { 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 type GetcurpropertyData struct { 32 type GetcurpropertyData struct {
@@ -33,6 +34,7 @@ type GetcurpropertyData struct { @@ -33,6 +34,7 @@ type GetcurpropertyData struct {
33 Speed int64 `json:"speed"` 34 Speed int64 `json:"speed"`
34 Curlevle int64 `json:"curlevle"` 35 Curlevle int64 `json:"curlevle"`
35 Leftcnt int `json:"leftcnt"` 36 Leftcnt int `json:"leftcnt"`
  37 + Curgold int `json:"curgold"`
36 } 38 }
37 39
38 type GetcurpropertyResp struct { 40 type GetcurpropertyResp struct {
@@ -59,6 +61,37 @@ type FetchproteryboxResp struct { @@ -59,6 +61,37 @@ type FetchproteryboxResp struct {
59 RetData FetchproteryboxData `json:"retData"` 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 type UserData struct { 97 type UserData struct {
@@ -72,4 +105,5 @@ type UserData struct { @@ -72,4 +105,5 @@ type UserData struct {
72 SingDay int //签到天数 105 SingDay int //签到天数
73 IsSign int //当天是否已经签到 106 IsSign int //当天是否已经签到
74 TodaySec int //当天零点时间戳,用于判断跨天 107 TodaySec int //当天零点时间戳,用于判断跨天
  108 + PassLvGold int //当天过关获得的金币
75 } 109 }
src/HttpServer/logic/errordef.go
@@ -8,5 +8,7 @@ const ( @@ -8,5 +8,7 @@ const (
8 ERROR_READCFG_FAILED = 4 //读取配置错误 8 ERROR_READCFG_FAILED = 4 //读取配置错误
9 ERROR_PROPERTY_NOTENOUGH = 5 //当前物资不足 9 ERROR_PROPERTY_NOTENOUGH = 5 //当前物资不足
10 ERROR_TOUTIAOAPI_FAILED = 6 //头条接口失败 10 ERROR_TOUTIAOAPI_FAILED = 6 //头条接口失败
  11 + ERROR_PARAM_INVALID = 7 //等级参数无效
  12 + ERROR_GOLD_LIMIT = 8 //当日合成获得金币已达上限
11 13
12 ) 14 )
src/HttpServer/logic/function.go
@@ -72,6 +72,7 @@ func (u *UserData) InitUserInfo(openid string) error { @@ -72,6 +72,7 @@ func (u *UserData) InitUserInfo(openid string) error {
72 u.MaxLevel = 1 72 u.MaxLevel = 1
73 u.Property = 0 73 u.Property = 0
74 u.SingDay = 0 74 u.SingDay = 0
  75 + u.PassLvGold = 0
75 u.TodaySec = int(time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 0, 0, 0, 0, nowtime.Location()).Unix()) 76 u.TodaySec = int(time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 0, 0, 0, 0, nowtime.Location()).Unix())
76 u.TotalFetchCnt = 0 //用于计算当前领取次数 77 u.TotalFetchCnt = 0 //用于计算当前领取次数
77 78
@@ -135,6 +136,7 @@ func (u *UserData) CalcProperty() { @@ -135,6 +136,7 @@ func (u *UserData) CalcProperty() {
135 u.SingDay = 0 136 u.SingDay = 0
136 u.SignRound++ 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,10 +45,32 @@ func startServerHttpServe() {
45 //---------------------------------------------------------------------------------------- 45 //----------------------------------------------------------------------------------------
46 http.HandleFunc("/daycs/getcurproperty", Getcurproperty) //请求当前物资 46 http.HandleFunc("/daycs/getcurproperty", Getcurproperty) //请求当前物资
47 http.HandleFunc("/daycs/fetchproterybox", Fetchproterybox) //请求领取物资宝箱 47 http.HandleFunc("/daycs/fetchproterybox", Fetchproterybox) //请求领取物资宝箱
  48 + http.HandleFunc("/daycs/uploadgunlv", Uploadgunlv) //上报当前枪支等级
  49 + http.HandleFunc("/daycs/addgold", Addgold) //增加金币接口(过关加金币用)
48 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) 50 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil)
49 CheckErr(err) 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 func Fetchproterybox(w http.ResponseWriter, r *http.Request) { 74 func Fetchproterybox(w http.ResponseWriter, r *http.Request) {
53 result, _ := ioutil.ReadAll(r.Body) 75 result, _ := ioutil.ReadAll(r.Body)
54 r.Body.Close() 76 r.Body.Close()
src/HttpServer/logic/logic.go
@@ -8,10 +8,110 @@ import ( @@ -8,10 +8,110 @@ import (
8 "net/http" 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 func HandlerFetchproterybox(w http.ResponseWriter, data string) { 110 func HandlerFetchproterybox(w http.ResponseWriter, data string) {
12 SetHeader(w) 111 SetHeader(w)
13 var resp FetchproteryboxResp 112 var resp FetchproteryboxResp
14 resp.ErrNum = 0 113 resp.ErrNum = 0
  114 + resp.RetMsg = "success"
15 var rdata FetchproteryboxReq 115 var rdata FetchproteryboxReq
16 err := json.Unmarshal([]byte(data), &rdata) 116 err := json.Unmarshal([]byte(data), &rdata)
17 for { 117 for {
@@ -88,6 +188,7 @@ func HandlerGetcurproperty(w http.ResponseWriter, data string) { @@ -88,6 +188,7 @@ func HandlerGetcurproperty(w http.ResponseWriter, data string) {
88 SetHeader(w) 188 SetHeader(w)
89 var resp GetcurpropertyResp 189 var resp GetcurpropertyResp
90 resp.ErrNum = 0 190 resp.ErrNum = 0
  191 + resp.RetMsg = "success"
91 var rdata GetcurpropertyReq 192 var rdata GetcurpropertyReq
92 err := json.Unmarshal([]byte(data), &rdata) 193 err := json.Unmarshal([]byte(data), &rdata)
93 for { 194 for {
@@ -114,6 +215,11 @@ func HandlerGetcurproperty(w http.ResponseWriter, data string) { @@ -114,6 +215,11 @@ func HandlerGetcurproperty(w http.ResponseWriter, data string) {
114 resp.RetData.Curlevle = uinfo.CalcCurLe() 215 resp.RetData.Curlevle = uinfo.CalcCurLe()
115 resp.RetData.Protery = uinfo.Property 216 resp.RetData.Protery = uinfo.Property
116 resp.RetData.Speed = uinfo.CalcSpeed() 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 break 224 break
119 } 225 }