Commit b12c052fd9bf34323b60d56488599b36ee4b0fdc

Authored by 陆恒
1 parent e62063c8
Exists in master

提交接口

src/HttpServer/logic/datadef.go
... ... @@ -92,6 +92,40 @@ type AddgoldResp struct {
92 92 RetData AddgoldData `json:"retData"`
93 93 }
94 94  
  95 +type QuersigndataReq struct {
  96 + Openid string `json:"openid"`
  97 +}
  98 +
  99 +type QuersigndataData struct {
  100 + Curround int `json:"curround"`
  101 + Curday int `json:"curday"`
  102 + Issigntaday int `json:"issigntaday"`
  103 +}
  104 +
  105 +type QuersigndataResp struct {
  106 + ErrNum int `json:"errNum"`
  107 + RetMsg string `json:"retMsg"`
  108 + RetData QuersigndataData `json:"retData"`
  109 +}
  110 +
  111 +type DosignReq struct {
  112 + Openid string `json:"openid"`
  113 + Device_id int `json:"device_id"`
  114 +}
  115 +
  116 +type DosignData struct {
  117 + Curround int `json:"curround"`
  118 + Curday int `json:"curday"`
  119 + Issigntaday int `json:"issigntaday"`
  120 + Taoalgoldnum int `json:"taoalgoldnum"`
  121 +}
  122 +
  123 +type DosignResp struct {
  124 + ErrNum int `json:"errNum"`
  125 + RetMsg string `json:"retMsg"`
  126 + RetData DosignData `json:"retData"`
  127 +}
  128 +
95 129 //------------------------------------------------------------------------------------------------------
96 130  
97 131 type UserData struct {
... ...
src/HttpServer/logic/errordef.go
... ... @@ -10,5 +10,6 @@ const (
10 10 ERROR_TOUTIAOAPI_FAILED = 6 //头条接口失败
11 11 ERROR_PARAM_INVALID = 7 //等级参数无效
12 12 ERROR_GOLD_LIMIT = 8 //当日合成获得金币已达上限
  13 + ERROR_ALREADY_SIGNED = 9 //当日已签到
13 14  
14 15 )
... ...
src/HttpServer/logic/httpserver.go
... ... @@ -47,10 +47,33 @@ func startServerHttpServe() {
47 47 http.HandleFunc("/daycs/fetchproterybox", Fetchproterybox) //请求领取物资宝箱
48 48 http.HandleFunc("/daycs/uploadgunlv", Uploadgunlv) //上报当前枪支等级
49 49 http.HandleFunc("/daycs/addgold", Addgold) //增加金币接口(过关加金币用)
  50 + http.HandleFunc("/daycs/quersigndata", Quersigndata) //获取签到数据
  51 + http.HandleFunc("/daycs/dosign", Dosign) //签到
  52 +
50 53 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil)
51 54 CheckErr(err)
52 55 }
53 56  
  57 +func Dosign(w http.ResponseWriter, r *http.Request) {
  58 + result, _ := ioutil.ReadAll(r.Body)
  59 + r.Body.Close()
  60 +
  61 + s := string(result)
  62 + logger.Info("Dosign , body:%v", s)
  63 +
  64 + HandlerDosign(w, s)
  65 +}
  66 +
  67 +func Quersigndata(w http.ResponseWriter, r *http.Request) {
  68 + result, _ := ioutil.ReadAll(r.Body)
  69 + r.Body.Close()
  70 +
  71 + s := string(result)
  72 + logger.Info("Quersigndata , body:%v", s)
  73 +
  74 + HandlerQuersigndata(w, s)
  75 +}
  76 +
54 77 func Addgold(w http.ResponseWriter, r *http.Request) {
55 78 result, _ := ioutil.ReadAll(r.Body)
56 79 r.Body.Close()
... ...
src/HttpServer/logic/logic.go
... ... @@ -8,10 +8,112 @@ import (
8 8 "net/http"
9 9 )
10 10  
  11 +func HandlerDosign(w http.ResponseWriter, data string) {
  12 + SetHeader(w)
  13 + var resp DosignResp
  14 + resp.ErrNum = 0
  15 + resp.RetMsg = "success"
  16 + var rdata DosignReq
  17 + err := json.Unmarshal([]byte(data), &rdata)
  18 + for {
  19 + if err != nil {
  20 + logger.Info("json decode HandlerDosign data failed:%v,for:%v", err, data)
  21 + resp.RetMsg = "json解析失败"
  22 + resp.ErrNum = ERROR_UNMASH_JSONFAILED
  23 + break
  24 + }
  25 +
  26 + uinfo, err := GetUserInfo(rdata.Openid)
  27 + if err != nil || uinfo == nil {
  28 + logger.Info(" HandlerDosign getdata failed:%v,for:%v", err, data)
  29 + resp.RetMsg = "服务器读取数据失败"
  30 + resp.ErrNum = ERROR_SERVER_FAILED
  31 + break
  32 + }
  33 +
  34 + if uinfo.IsSign == 1 {
  35 + logger.Info(" HandlerDosign issign failed:%v,for:%v", err, data)
  36 + resp.RetMsg = "当天已签到"
  37 + resp.ErrNum = ERROR_ALREADY_SIGNED
  38 + break
  39 + }
  40 +
  41 + uinfo.IsSign = 1
  42 + uinfo.SingDay++
  43 + if uinfo.SingDay > 7 {
  44 + uinfo.SingDay = 1
  45 + uinfo.SignRound++
  46 + }
  47 +
  48 + //加金币
  49 + cfg := jsonconf.GetSignConfig(uinfo.SingDay)
  50 + if cfg == nil {
  51 + logger.Info(" HandlerDosign issign failed:%v,for:%v", err, data)
  52 + resp.RetMsg = "读取配置错误"
  53 + resp.ErrNum = ERROR_READCFG_FAILED
  54 + break
  55 + }
  56 +
  57 + //加金币
  58 + _, sumgold, err := AddCoinToTouTiao(rdata.Openid, rdata.Device_id, cfg.Num, "签到奖励", "other")
  59 + if err != nil {
  60 + logger.Info(" HandlerAddgold AddCoinToTouTiao failed:%v,for:%v", err, data)
  61 + resp.RetMsg = "调用头条接口失败"
  62 + resp.ErrNum = ERROR_TOUTIAOAPI_FAILED
  63 + break
  64 + }
  65 +
  66 + resp.RetData.Issigntaday = uinfo.IsSign
  67 + resp.RetData.Curround = uinfo.SignRound
  68 + resp.RetData.Curday = uinfo.SingDay
  69 + resp.RetData.Taoalgoldnum = sumgold
  70 +
  71 + break
  72 + }
  73 + //回包
  74 + respstr, _ := json.Marshal(&resp)
  75 + fmt.Fprint(w, string(respstr))
  76 +}
  77 +
  78 +func HandlerQuersigndata(w http.ResponseWriter, data string) {
  79 + SetHeader(w)
  80 + var resp QuersigndataResp
  81 + resp.ErrNum = 0
  82 + resp.RetMsg = "success"
  83 + var rdata QuersigndataReq
  84 + err := json.Unmarshal([]byte(data), &rdata)
  85 + for {
  86 + if err != nil {
  87 + logger.Info("json decode HandlerQuersigndata data failed:%v,for:%v", err, data)
  88 + resp.RetMsg = "json解析失败"
  89 + resp.ErrNum = ERROR_UNMASH_JSONFAILED
  90 + break
  91 + }
  92 +
  93 + uinfo, err := GetUserInfo(rdata.Openid)
  94 + if err != nil || uinfo == nil {
  95 + logger.Info(" HandlerQuersigndata getdata failed:%v,for:%v", err, data)
  96 + resp.RetMsg = "服务器读取数据失败"
  97 + resp.ErrNum = ERROR_SERVER_FAILED
  98 + break
  99 + }
  100 +
  101 + resp.RetData.Curday = uinfo.SingDay
  102 + resp.RetData.Curround = uinfo.SignRound
  103 + resp.RetData.Issigntaday = uinfo.IsSign
  104 +
  105 + break
  106 + }
  107 + //回包
  108 + respstr, _ := json.Marshal(&resp)
  109 + fmt.Fprint(w, string(respstr))
  110 +}
  111 +
11 112 func HandlerAddgold(w http.ResponseWriter, data string) {
12 113 SetHeader(w)
13 114 var resp AddgoldResp
14 115 resp.ErrNum = 0
  116 + resp.RetMsg = "success"
15 117 var rdata AddgoldReq
16 118 err := json.Unmarshal([]byte(data), &rdata)
17 119 for {
... ...