Commit f2f654b25cad378d4bbea4c8a79fb8c3fbec3af3

Authored by 陆恒
1 parent a0f10c49

提交领取升级奖励

src/HttpServer/logic/datadef.go
... ... @@ -158,6 +158,23 @@ type GettaskrewardResp struct {
158 158 }
159 159  
160 160  
  161 +
  162 +type GetnewlevelrewardReq struct {
  163 + Rewardtype int `json:"rewardtype"`
  164 + Gameid string `json:"gameid"`
  165 + Channel string `json:"channel"`
  166 +}
  167 +
  168 +type GetnewlevelrewardData struct {
  169 + Goldnum int `json:"goldnum"`
  170 +}
  171 +type GetnewlevelrewardResp struct {
  172 + Code int `json:"code"`
  173 + Message string `json:"message"`
  174 + Data GetnewlevelrewardData `json:"data"`
  175 +}
  176 +
  177 +
161 178 //**********************************************************************************************************
162 179  
163 180 type TaskListDesc struct {
... ... @@ -214,6 +231,7 @@ type WithDrawDesc struct {
214 231 type UserData struct {
215 232 Userid int //玩家id
216 233 Lv int //玩家当前等级
  234 + LvRewardGet int //当前等级奖励是否已经领取 1未领取 2普通领取 3双倍领取
217 235 Exp int //玩家当前经验值
218 236 GuanGold int //玩家存钱罐中金币数量
219 237 RealGold int //玩家实际金币数量(可用于提现的)
... ...
src/HttpServer/logic/errordef.go
... ... @@ -19,4 +19,5 @@ const (
19 19 ERROR_TASKCANNOTGET =14 //当前任务未完成或已领取
20 20 ERROR_TASKID_WRONG =15 //当前任务id错误
21 21 ERROR_TASKPRE_NOTGET =16 //前置任务还未领取
  22 + ERROR_LVREWARDALREADYGET =17 //当前等级奖励已经领取过了
22 23 )
23 24 \ No newline at end of file
... ...
src/HttpServer/logic/function.go
... ... @@ -403,6 +403,7 @@ func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error{
403 403  
404 404 var initdata UserData
405 405 initdata.Lv = 1
  406 + initdata.LvRewardGet = 1
406 407 initdata.Exp = 0
407 408 initdata.Userid = uuid
408 409 initdata.ContinueLoginDay = 1
... ... @@ -672,6 +673,7 @@ func (uinfo* UserData) AddUserExp(num int) bool {
672 673 }else {
673 674 //够升级的 升一级
674 675 uinfo.Lv ++
  676 + uinfo.LvRewardGet = 1 //当前等级奖励置位可以领取
675 677 isup = true
676 678 totalexp -= needexp
677 679 uinfo.Exp = 0
... ...
src/HttpServer/logic/httpserver.go
... ... @@ -50,12 +50,34 @@ func startServerHttpServe() {
50 50 http.HandleFunc("/eliminatestar/updatetaskandachieve", Updatetaskandachieve) //上报任务事件进度
51 51 http.HandleFunc("/eliminatestar/querytaskinfo", Querytaskinfo) //拉取任务或者成就列表
52 52 http.HandleFunc("/eliminatestar/gettaskreward", Gettaskreward) //领取任务或者成就奖励
  53 + http.HandleFunc("/eliminatestar/getnewlevelreward", Getnewlevelreward) //领取任务或者成就奖励
53 54  
54 55  
55 56 err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil)
56 57 CheckErr(err)
57 58 }
58 59  
  60 +func Getnewlevelreward(w http.ResponseWriter, r *http.Request) {
  61 +
  62 + Uuid := 0
  63 + if len(r.Header) > 0 {
  64 + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid"))
  65 + }
  66 +
  67 + if Uuid == 0 {
  68 + SetHeader(w)
  69 + //logger.Error("Uuid is nil!")
  70 + return
  71 + }
  72 + result, _ := ioutil.ReadAll(r.Body)
  73 + r.Body.Close()
  74 +
  75 + s := string(result)
  76 + logger.Info("Getnewlevelreward , body:%v,uuid=%v", s, Uuid)
  77 +
  78 + HandlerGetnewlevelreward(w, s, Uuid)
  79 +}
  80 +
59 81  
60 82 func Gettaskreward(w http.ResponseWriter, r *http.Request) {
61 83  
... ...
src/HttpServer/logic/logic.go
... ... @@ -204,6 +204,80 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) {
204 204  
205 205  
206 206  
  207 +func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) {
  208 + SetHeader(w)
  209 + var resp GetnewlevelrewardResp
  210 + resp.Code = 0
  211 + var rdata GetnewlevelrewardReq
  212 + err := json.Unmarshal([]byte(data), &rdata)
  213 + for {
  214 + if err != nil {
  215 + logger.Info("json decode HandlerGetnewlevelreward data failed:%v,for:%v", err, data)
  216 + resp.Message = "网络错误"
  217 + resp.Code = ERROR_JSONUNMASH_ERROR
  218 + break
  219 + }
  220 + uinfo,err := GetUserInfo(uuid)
  221 + if err != nil || uinfo == nil{
  222 + logger.Error("redis failed err=%v", err)
  223 + resp.Message = "服务器错误"
  224 + resp.Code = ERROR_SRV_ERROR
  225 + break
  226 + }
  227 +
  228 + //判断是否可以领取
  229 + if uinfo.LvRewardGet != 1 {
  230 + logger.Error("LvRewardGet failed err=%v", err)
  231 + resp.Message = "当前等级奖励已经领取过了"
  232 + resp.Code = ERROR_LVREWARDALREADYGET
  233 + break
  234 + }
  235 +
  236 + cfg := GetUserLvConfig(uinfo.Lv)
  237 + if cfg == nil {
  238 + logger.Error("GetUserLvConfig failed err=%v", err)
  239 + resp.Message = "网络错误"
  240 + resp.Code = ERROR_SRV_ERROR
  241 + break
  242 + }
  243 +
  244 + _,err = AddCoinToSdk(uuid,cfg.Cash,rdata.Gameid,rdata.Channel,100)
  245 + if err != nil {
  246 + logger.Error("AddCoinToSdk failed err=%v", err)
  247 + resp.Message = "网络错误"
  248 + resp.Code = ERROR_SRV_ERROR
  249 + break
  250 + }
  251 + uinfo.RealGold += cfg.Cash
  252 +
  253 + if rdata.Rewardtype == 2 {
  254 + _,err = AddCoinToSdk(uuid,cfg.Extracash,rdata.Gameid,rdata.Channel,100)
  255 + if err != nil {
  256 + logger.Error("AddCoinToSdk failed err=%v", err)
  257 + resp.Message = "网络错误"
  258 + resp.Code = ERROR_SRV_ERROR
  259 + break
  260 + }
  261 + uinfo.RealGold += cfg.Extracash
  262 + }
  263 +
  264 + uinfo.LvRewardGet = 1 +rdata.Rewardtype
  265 +
  266 + //保存数据
  267 + SaveUserInfo(uinfo)
  268 +
  269 +
  270 + resp.Code = ERROR_OK
  271 + break
  272 + }
  273 +
  274 + //回包
  275 + respstr, _ := json.Marshal(&resp)
  276 + fmt.Fprint(w, string(respstr))
  277 +
  278 +}
  279 +
  280 +
207 281 func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) {
208 282 SetHeader(w)
209 283 var resp GettaskrewardResp
... ...