Commit 3258476fda116dc40ffc7c3360736202f7512fd4

Authored by 陆恒
1 parent ae4fcef9

提交签到接口

src/HttpServer/jsonconf/jsonconf.go
@@ -80,6 +80,27 @@ func GetJsonConf() *GameConfig { @@ -80,6 +80,27 @@ func GetJsonConf() *GameConfig {
80 return g_jsonconf 80 return g_jsonconf
81 } 81 }
82 82
  83 +func GetSignConfig(round, daynum int) *SignRewardDetail {
  84 + if round > g_jsonconf.SignConfig.Round {
  85 + //取reward2
  86 + if daynum > len(g_jsonconf.SignConfig.Reward.Reward2) {
  87 + logger.Error("GetSignConfig failed")
  88 + return nil
  89 + }
  90 +
  91 + return &g_jsonconf.SignConfig.Reward.Reward2[daynum-1]
  92 +
  93 + } else {
  94 + //取reward1
  95 + if daynum > len(g_jsonconf.SignConfig.Reward.Reward1) {
  96 + logger.Error("GetSignConfig failed")
  97 + return nil
  98 + }
  99 +
  100 + return &g_jsonconf.SignConfig.Reward.Reward1[daynum-1]
  101 + }
  102 +}
  103 +
83 func GetMoneyBoxCfg(lv int) *MoneyBoxLevelDesc { 104 func GetMoneyBoxCfg(lv int) *MoneyBoxLevelDesc {
84 rt := new(MoneyBoxLevelDesc) 105 rt := new(MoneyBoxLevelDesc)
85 rt = nil 106 rt = nil
src/HttpServer/logic/datadef.go
@@ -188,6 +188,32 @@ type GetnewlevelrewardResp struct { @@ -188,6 +188,32 @@ type GetnewlevelrewardResp struct {
188 Data GetnewlevelrewardData `json:"data"` 188 Data GetnewlevelrewardData `json:"data"`
189 } 189 }
190 190
  191 +type QuerysigndataData struct {
  192 + Signround int `json:"signround"`
  193 + Continuessign int `json:"continuessign"`
  194 + IssignToday int `json:"issignToday"`
  195 +}
  196 +
  197 +type QuerysigndataResp struct {
  198 + Code int `json:"code"`
  199 + Message string `json:"message"`
  200 + Data QuerysigndataData `json:"data"`
  201 +}
  202 +
  203 +type UsersignReq struct {
  204 + Gameid string `json:"gameid"`
  205 + Channel string `json:"channel"`
  206 +}
  207 +
  208 +type UsersignData struct {
  209 + Goldnum int `json:"goldnum"`
  210 +}
  211 +type UsersignResp struct {
  212 + Code int `json:"code"`
  213 + Message string `json:"message"`
  214 + Data UsersignData `json:"data"`
  215 +}
  216 +
191 //********************************************************************************************************** 217 //**********************************************************************************************************
192 218
193 type TaskListDesc struct { 219 type TaskListDesc struct {
@@ -251,6 +277,9 @@ type UserData struct { @@ -251,6 +277,9 @@ type UserData struct {
251 LastLoginTime int //上次登陆时间 277 LastLoginTime int //上次登陆时间
252 ContinueLoginDay int //连续登录天数 278 ContinueLoginDay int //连续登录天数
253 GetFromGuanCnt int //当天从存钱款提取金币次数 279 GetFromGuanCnt int //当天从存钱款提取金币次数
  280 + SignRound int //签到轮数
  281 + SignSum int //累计签到天数
  282 + IsSignToday int //今日是否已经签到 1是 0否
254 WithDraw WithDrawInfo //提现记录信息 283 WithDraw WithDrawInfo //提现记录信息
255 Task TaskInfo //玩家任务完成相关信息 284 Task TaskInfo //玩家任务完成相关信息
256 Achieve AchieveMentInfo //玩家成就完成相关数据 285 Achieve AchieveMentInfo //玩家成就完成相关数据
src/HttpServer/logic/errordef.go
1 package logic 1 package logic
2 2
3 -  
4 const ( 3 const (
5 - ERROR_OK =0 //没有错误  
6 - ERROR_SRV_ERROR =1 //服务器错误  
7 - ERROR_JSONUNMASH_ERROR =2 //json解析错误  
8 - ERROR_WATCHADS_ZEOR =3 //看视频次数已经耗尽  
9 - ERROR_GETCONFIG_FAILED =4 //获取配置失败  
10 - ERROR_GUANGOLD_NOTENOUGH =5 //存钱罐金币不足  
11 - ERROR_DRAWGUAN_FAILED =6 //从存钱罐提取金币不满足限制  
12 - ERROR_DRAWGOLD_FAILED =7 //从存钱罐提取金币失败了  
13 - ERROR_GETCASH_FAILED =8 //从后台提现失败了  
14 - ERROR_GETCASH_GOLDNOTENOUGH_FAILED =9 //提现金币不足  
15 - ERROR_ADDWITHDRAW_LISTFAILED =10 //添加提现记录失败  
16 - ERROR_WITHDRAWLVLIMIT =11 //提现等级不够  
17 - ERROR_WITHDRAWONLYONE =12 //新人专享只能提取一次  
18 - ERROR_PRENOTFINISH =13 //前置档位未提现  
19 - ERROR_TASKCANNOTGET =14 //当前任务未完成或已领取  
20 - ERROR_TASKID_WRONG =15 //当前任务id错误  
21 - ERROR_TASKPRE_NOTGET =16 //前置任务还未领取  
22 - ERROR_LVREWARDALREADYGET =17 //当前等级奖励已经领取过了  
23 -)  
24 \ No newline at end of file 4 \ No newline at end of file
  5 + ERROR_OK = 0 //没有错误
  6 + ERROR_SRV_ERROR = 1 //服务器错误
  7 + ERROR_JSONUNMASH_ERROR = 2 //json解析错误
  8 + ERROR_WATCHADS_ZEOR = 3 //看视频次数已经耗尽
  9 + ERROR_GETCONFIG_FAILED = 4 //获取配置失败
  10 + ERROR_GUANGOLD_NOTENOUGH = 5 //存钱罐金币不足
  11 + ERROR_DRAWGUAN_FAILED = 6 //从存钱罐提取金币不满足限制
  12 + ERROR_DRAWGOLD_FAILED = 7 //从存钱罐提取金币失败了
  13 + ERROR_GETCASH_FAILED = 8 //从后台提现失败了
  14 + ERROR_GETCASH_GOLDNOTENOUGH_FAILED = 9 //提现金币不足
  15 + ERROR_ADDWITHDRAW_LISTFAILED = 10 //添加提现记录失败
  16 + ERROR_WITHDRAWLVLIMIT = 11 //提现等级不够
  17 + ERROR_WITHDRAWONLYONE = 12 //新人专享只能提取一次
  18 + ERROR_PRENOTFINISH = 13 //前置档位未提现
  19 + ERROR_TASKCANNOTGET = 14 //当前任务未完成或已领取
  20 + ERROR_TASKID_WRONG = 15 //当前任务id错误
  21 + ERROR_TASKPRE_NOTGET = 16 //前置任务还未领取
  22 + ERROR_LVREWARDALREADYGET = 17 //当前等级奖励已经领取过了
  23 + ERROR_SINGALREADYTODAY = 18 //今日已经签过到啦
  24 + ERROR_SINGDATAFAILED = 19 //签到数据异常
  25 +)
src/HttpServer/logic/function.go
@@ -579,6 +579,14 @@ func (u *UserData) HandlePassDay() { @@ -579,6 +579,14 @@ func (u *UserData) HandlePassDay() {
579 } else { 579 } else {
580 logger.Error("HandlePassDay GetTaskInfo failer err=%v", err) 580 logger.Error("HandlePassDay GetTaskInfo failer err=%v", err)
581 } 581 }
  582 +
  583 + //签到数据处理
  584 + u.IsSignToday = 0
  585 + if u.SignSum >= 7 {
  586 + //进入新的一轮
  587 + u.SignSum = 0
  588 + u.SignRound++
  589 + }
582 } 590 }
583 591
584 u.LastLoginTime = int(nowtime.Unix()) 592 u.LastLoginTime = int(nowtime.Unix())
src/HttpServer/logic/httpserver.go
@@ -3,6 +3,8 @@ package logic @@ -3,6 +3,8 @@ package logic
3 import ( 3 import (
4 "HttpServer/conf" 4 "HttpServer/conf"
5 "common/logger" 5 "common/logger"
  6 + "encoding/json"
  7 + "fmt"
6 "io/ioutil" 8 "io/ioutil"
7 "strconv" 9 "strconv"
8 10
@@ -37,27 +39,111 @@ func startServerHttpServe() { @@ -37,27 +39,111 @@ func startServerHttpServe() {
37 //http.HandleFunc("/catcafe/QueryAllAccount", QueryAllAccount) //查询所有账号的等级信息等数据 39 //http.HandleFunc("/catcafe/QueryAllAccount", QueryAllAccount) //查询所有账号的等级信息等数据
38 //------------------------------------------------------------- 40 //-------------------------------------------------------------
39 41
40 -  
41 - http.HandleFunc("/eliminatestar/login", UserLogin) //登录  
42 - http.HandleFunc("/eliminatestar/getuserdata", Getuserdata) //获取玩家数据  
43 - http.HandleFunc("/eliminatestar/watchads", Watchads) //观看激励视频  
44 - http.HandleFunc("/eliminatestar/queryguaninfo", Queryguaninfo) //获取存钱罐数据  
45 - http.HandleFunc("/eliminatestar/getguangold", Getguangold) //获取金币到存钱罐  
46 - http.HandleFunc("/eliminatestar/drawguangold", Drawguangold) //提取存钱罐的金币到个人钱包  
47 - http.HandleFunc("/eliminatestar/querdrawinfo", Querdrawinfo) //获取提现档位信息接口  
48 - http.HandleFunc("/eliminatestar/getcash", Getcash) //提现  
49 - http.HandleFunc("/eliminatestar/getcashrecord", Getcashrecord) //提现记录列表  
50 - http.HandleFunc("/eliminatestar/onlinentf", Onlinentf) //在线通知  
51 - http.HandleFunc("/eliminatestar/updatetaskandachieve", Updatetaskandachieve) //上报任务事件进度  
52 - http.HandleFunc("/eliminatestar/querytaskinfo", Querytaskinfo) //拉取任务或者成就列表  
53 - http.HandleFunc("/eliminatestar/gettaskreward", Gettaskreward) //领取任务或者成就奖励  
54 - http.HandleFunc("/eliminatestar/getnewlevelreward", Getnewlevelreward) //领取任务或者成就奖励  
55 - 42 + http.HandleFunc("/eliminatestar/test", Testapi) //登录
  43 + //----------------------------------------------------------------------------------------
  44 + http.HandleFunc("/eliminatestar/login", UserLogin) //登录
  45 + http.HandleFunc("/eliminatestar/getuserdata", Getuserdata) //获取玩家数据
  46 + http.HandleFunc("/eliminatestar/watchads", Watchads) //观看激励视频
  47 + http.HandleFunc("/eliminatestar/queryguaninfo", Queryguaninfo) //获取存钱罐数据
  48 + http.HandleFunc("/eliminatestar/getguangold", Getguangold) //获取金币到存钱罐
  49 + http.HandleFunc("/eliminatestar/drawguangold", Drawguangold) //提取存钱罐的金币到个人钱包
  50 + http.HandleFunc("/eliminatestar/querdrawinfo", Querdrawinfo) //获取提现档位信息接口
  51 + http.HandleFunc("/eliminatestar/getcash", Getcash) //提现
  52 + http.HandleFunc("/eliminatestar/getcashrecord", Getcashrecord) //提现记录列表
  53 + http.HandleFunc("/eliminatestar/onlinentf", Onlinentf) //在线通知
  54 + http.HandleFunc("/eliminatestar/updatetaskandachieve", Updatetaskandachieve) //上报任务事件进度
  55 + http.HandleFunc("/eliminatestar/querytaskinfo", Querytaskinfo) //拉取任务或者成就列表
  56 + http.HandleFunc("/eliminatestar/gettaskreward", Gettaskreward) //领取任务或者成就奖励
  57 + http.HandleFunc("/eliminatestar/getnewlevelreward", Getnewlevelreward) //领取任务或者成就奖励
  58 + http.HandleFunc("/eliminatestar/querysigndata", Querysigndata) //获取签到数据
  59 + http.HandleFunc("/eliminatestar/usersign", Usersign) //玩家签到
56 60
57 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) 61 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil)
58 CheckErr(err) 62 CheckErr(err)
59 } 63 }
60 64
  65 +func Usersign(w http.ResponseWriter, r *http.Request) {
  66 +
  67 + Uuid := 0
  68 + if len(r.Header) > 0 {
  69 + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))
  70 + }
  71 +
  72 + if Uuid == 0 {
  73 + SetHeader(w)
  74 + //logger.Error("Uuid is nil!")
  75 + return
  76 + }
  77 + result, _ := ioutil.ReadAll(r.Body)
  78 + r.Body.Close()
  79 +
  80 + s := string(result)
  81 + logger.Info("Usersign , body:%v,uuid=%v", s, Uuid)
  82 +
  83 + HandlerUsersign(w, s, Uuid)
  84 +}
  85 +
  86 +func Querysigndata(w http.ResponseWriter, r *http.Request) {
  87 +
  88 + Uuid := 0
  89 + if len(r.Header) > 0 {
  90 + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))
  91 + }
  92 +
  93 + if Uuid == 0 {
  94 + SetHeader(w)
  95 + //logger.Error("Uuid is nil!")
  96 + return
  97 + }
  98 + result, _ := ioutil.ReadAll(r.Body)
  99 + r.Body.Close()
  100 +
  101 + s := string(result)
  102 + logger.Info("Querysigndata , body:%v,uuid=%v", s, Uuid)
  103 +
  104 + HandlerQuerysigndata(w, s, Uuid)
  105 +}
  106 +
  107 +func Testapi(w http.ResponseWriter, r *http.Request) {
  108 +
  109 + type TesaApiData struct {
  110 + Type int `json:"type"` //1金币 2经验 3存钱罐次数
  111 + Value int `json:"value"`
  112 + }
  113 + Uuid := 0
  114 + if len(r.Header) > 0 {
  115 + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))
  116 + }
  117 +
  118 + if Uuid == 0 {
  119 + SetHeader(w)
  120 + //logger.Error("Uuid is nil!")
  121 + return
  122 + }
  123 + result, _ := ioutil.ReadAll(r.Body)
  124 + r.Body.Close()
  125 +
  126 + s := string(result)
  127 + logger.Info("Querysigndata , body:%v,uuid=%v", s, Uuid)
  128 +
  129 + var rdata GettaskrewardReq
  130 + err := json.Unmarshal([]byte(s), &rdata)
  131 +
  132 + if err != nil {
  133 + logger.Info("json decode Testapi data failed:%v,for:%v", err, s)
  134 + fmt.Fprint(w, "failed")
  135 + return
  136 + }
  137 +
  138 + uinfo, err := GetUserInfo(Uuid)
  139 + if err != nil || uinfo == nil {
  140 + logger.Error("redis failed err=%v", err)
  141 + fmt.Fprint(w, "failed")
  142 + return
  143 + }
  144 +
  145 +}
  146 +
61 func Getnewlevelreward(w http.ResponseWriter, r *http.Request) { 147 func Getnewlevelreward(w http.ResponseWriter, r *http.Request) {
62 148
63 Uuid := 0 149 Uuid := 0
@@ -79,7 +165,6 @@ func Getnewlevelreward(w http.ResponseWriter, r *http.Request) { @@ -79,7 +165,6 @@ func Getnewlevelreward(w http.ResponseWriter, r *http.Request) {
79 HandlerGetnewlevelreward(w, s, Uuid) 165 HandlerGetnewlevelreward(w, s, Uuid)
80 } 166 }
81 167
82 -  
83 func Gettaskreward(w http.ResponseWriter, r *http.Request) { 168 func Gettaskreward(w http.ResponseWriter, r *http.Request) {
84 169
85 Uuid := 0 170 Uuid := 0
@@ -122,7 +207,6 @@ func Querytaskinfo(w http.ResponseWriter, r *http.Request) { @@ -122,7 +207,6 @@ func Querytaskinfo(w http.ResponseWriter, r *http.Request) {
122 HandlerQuerytaskinfo(w, s, Uuid) 207 HandlerQuerytaskinfo(w, s, Uuid)
123 } 208 }
124 209
125 -  
126 func Updatetaskandachieve(w http.ResponseWriter, r *http.Request) { 210 func Updatetaskandachieve(w http.ResponseWriter, r *http.Request) {
127 211
128 Uuid := 0 212 Uuid := 0
@@ -144,7 +228,6 @@ func Updatetaskandachieve(w http.ResponseWriter, r *http.Request) { @@ -144,7 +228,6 @@ func Updatetaskandachieve(w http.ResponseWriter, r *http.Request) {
144 HandlerUpdatetaskandachieve(w, s, Uuid) 228 HandlerUpdatetaskandachieve(w, s, Uuid)
145 } 229 }
146 230
147 -  
148 func Onlinentf(w http.ResponseWriter, r *http.Request) { 231 func Onlinentf(w http.ResponseWriter, r *http.Request) {
149 232
150 Uuid := 0 233 Uuid := 0
@@ -187,7 +270,6 @@ func Getcashrecord(w http.ResponseWriter, r *http.Request) { @@ -187,7 +270,6 @@ func Getcashrecord(w http.ResponseWriter, r *http.Request) {
187 HandlerGetcashrecord(w, s, Uuid) 270 HandlerGetcashrecord(w, s, Uuid)
188 } 271 }
189 272
190 -  
191 func Getcash(w http.ResponseWriter, r *http.Request) { 273 func Getcash(w http.ResponseWriter, r *http.Request) {
192 274
193 Uuid := 0 275 Uuid := 0
@@ -209,7 +291,6 @@ func Getcash(w http.ResponseWriter, r *http.Request) { @@ -209,7 +291,6 @@ func Getcash(w http.ResponseWriter, r *http.Request) {
209 HandlerGetcash(w, s, Uuid) 291 HandlerGetcash(w, s, Uuid)
210 } 292 }
211 293
212 -  
213 func Querdrawinfo(w http.ResponseWriter, r *http.Request) { 294 func Querdrawinfo(w http.ResponseWriter, r *http.Request) {
214 295
215 Uuid := 0 296 Uuid := 0
@@ -252,9 +333,6 @@ func Drawguangold(w http.ResponseWriter, r *http.Request) { @@ -252,9 +333,6 @@ func Drawguangold(w http.ResponseWriter, r *http.Request) {
252 HandlerDrawguangold(w, s, Uuid) 333 HandlerDrawguangold(w, s, Uuid)
253 } 334 }
254 335
255 -  
256 -  
257 -  
258 func Getguangold(w http.ResponseWriter, r *http.Request) { 336 func Getguangold(w http.ResponseWriter, r *http.Request) {
259 337
260 Uuid := 0 338 Uuid := 0
@@ -297,7 +375,6 @@ func Queryguaninfo(w http.ResponseWriter, r *http.Request) { @@ -297,7 +375,6 @@ func Queryguaninfo(w http.ResponseWriter, r *http.Request) {
297 HandlerQueryguaninfo(w, s, Uuid) 375 HandlerQueryguaninfo(w, s, Uuid)
298 } 376 }
299 377
300 -  
301 func Watchads(w http.ResponseWriter, r *http.Request) { 378 func Watchads(w http.ResponseWriter, r *http.Request) {
302 379
303 Uuid := 0 380 Uuid := 0
@@ -360,6 +437,3 @@ func Getuserdata(w http.ResponseWriter, r *http.Request) { @@ -360,6 +437,3 @@ func Getuserdata(w http.ResponseWriter, r *http.Request) {
360 437
361 HandlerGetuserdata(w, s, Uuid) 438 HandlerGetuserdata(w, s, Uuid)
362 } 439 }
363 -  
364 -  
365 -  
src/HttpServer/logic/logic.go
@@ -197,6 +197,33 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { @@ -197,6 +197,33 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) {
197 197
198 } 198 }
199 199
  200 +func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) {
  201 + SetHeader(w)
  202 + var resp QuerysigndataResp
  203 + resp.Code = 0
  204 +
  205 + for {
  206 +
  207 + uinfo, err := GetUserInfo(uuid)
  208 + if err != nil || uinfo == nil {
  209 + logger.Error("redis failed err=%v", err)
  210 + resp.Message = "服务器错误"
  211 + resp.Code = ERROR_SRV_ERROR
  212 + break
  213 + }
  214 +
  215 + resp.Data.Continuessign = uinfo.SignSum
  216 + resp.Data.IssignToday = uinfo.IsSignToday
  217 + resp.Data.Signround = uinfo.SignRound
  218 +
  219 + resp.Code = ERROR_OK
  220 + break
  221 + }
  222 +
  223 + respstr, _ := json.Marshal(&resp)
  224 + fmt.Fprint(w, string(respstr))
  225 +}
  226 +
200 func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) { 227 func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) {
201 SetHeader(w) 228 SetHeader(w)
202 var resp GetnewlevelrewardResp 229 var resp GetnewlevelrewardResp
@@ -269,6 +296,80 @@ func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) { @@ -269,6 +296,80 @@ func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) {
269 296
270 } 297 }
271 298
  299 +func HandlerUsersign(w http.ResponseWriter, data string, uuid int) {
  300 + SetHeader(w)
  301 + var resp UsersignResp
  302 + resp.Code = 0
  303 + var rdata UsersignReq
  304 + err := json.Unmarshal([]byte(data), &rdata)
  305 + for {
  306 + if err != nil {
  307 + logger.Info("json decode HandlerUsersign data failed:%v,for:%v", err, data)
  308 + resp.Message = "网络错误"
  309 + resp.Code = ERROR_JSONUNMASH_ERROR
  310 + break
  311 + }
  312 + uinfo, err := GetUserInfo(uuid)
  313 + if err != nil || uinfo == nil {
  314 + logger.Error("redis failed err=%v", err)
  315 + resp.Message = "服务器错误"
  316 + resp.Code = ERROR_SRV_ERROR
  317 + break
  318 + }
  319 +
  320 + if uinfo.IsSignToday == 1 {
  321 + logger.Error("IsSignToday failed err=%v", err)
  322 + resp.Message = "今日已经签过到啦"
  323 + resp.Code = ERROR_SINGALREADYTODAY
  324 + break
  325 + }
  326 +
  327 + uinfo.SignSum++
  328 + if uinfo.SignSum > 7 {
  329 + uinfo.SignSum = 7
  330 + logger.Error("uinfo.SignSum failed")
  331 + resp.Message = "签到数据异常"
  332 + resp.Code = ERROR_SINGDATAFAILED
  333 + break
  334 + }
  335 +
  336 + //获取配置
  337 + cfg := jsonconf.GetSignConfig(uinfo.SignRound, uinfo.SignSum)
  338 + if cfg == nil {
  339 + uinfo.SignSum--
  340 + logger.Error("GetSignConfig failed err=%v", err)
  341 + resp.Message = "服务器错误"
  342 + resp.Code = ERROR_SRV_ERROR
  343 + break
  344 + }
  345 +
  346 + _, err = AddCoinToSdk(uuid, cfg.Num, rdata.Gameid, rdata.Channel, 100)
  347 + if err != nil {
  348 + uinfo.SignSum--
  349 + logger.Error("AddCoinToSdk failed err=%v", err)
  350 + resp.Message = "服务器错误"
  351 + resp.Code = ERROR_SRV_ERROR
  352 + break
  353 + }
  354 +
  355 + uinfo.IsSignToday = 1
  356 + uinfo.RealGold += cfg.Num
  357 +
  358 + resp.Data.Goldnum = uinfo.RealGold
  359 +
  360 + //保存数据
  361 + err = SaveUserInfo(uinfo)
  362 +
  363 + resp.Code = ERROR_OK
  364 + break
  365 + }
  366 +
  367 + //回包
  368 + respstr, _ := json.Marshal(&resp)
  369 + fmt.Fprint(w, string(respstr))
  370 +
  371 +}
  372 +
272 func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { 373 func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) {
273 SetHeader(w) 374 SetHeader(w)
274 var resp GettaskrewardResp 375 var resp GettaskrewardResp