Commit a3855199f603acd91b7d81061c5521c06815d384
1 parent
0704cc8f
Exists in
master
枪火联盟代码
Showing
6 changed files
with
377 additions
and
2 deletions
Show diff stats
| @@ -0,0 +1,50 @@ | @@ -0,0 +1,50 @@ | ||
| 1 | +[ | ||
| 2 | + { | ||
| 3 | + "id": 1, | ||
| 4 | + "project": "沙漠之鹰", | ||
| 5 | + "time": 5, | ||
| 6 | + "reward": "[1,45]", | ||
| 7 | + "RewardVideo": 0, | ||
| 8 | + "limit": 0 | ||
| 9 | + }, | ||
| 10 | + { | ||
| 11 | + "id": 2, | ||
| 12 | + "project": "MP5冲锋枪", | ||
| 13 | + "time": 10, | ||
| 14 | + "reward": "[1,90]", | ||
| 15 | + "RewardVideo": 0, | ||
| 16 | + "limit": 0 | ||
| 17 | + }, | ||
| 18 | + { | ||
| 19 | + "id": 3, | ||
| 20 | + "project": "AUG突击步枪", | ||
| 21 | + "time": 30, | ||
| 22 | + "reward": "[1,270]", | ||
| 23 | + "RewardVideo": 0, | ||
| 24 | + "limit": 0 | ||
| 25 | + }, | ||
| 26 | + { | ||
| 27 | + "id": 4, | ||
| 28 | + "project": "加特林M134机枪", | ||
| 29 | + "time": 120, | ||
| 30 | + "reward": "[2,50]", | ||
| 31 | + "RewardVideo": 1, | ||
| 32 | + "limit": 3 | ||
| 33 | + }, | ||
| 34 | + { | ||
| 35 | + "id": 5, | ||
| 36 | + "project": "SCAR突击步枪", | ||
| 37 | + "time": 60, | ||
| 38 | + "reward": "[2,200]", | ||
| 39 | + "RewardVideo": 0, | ||
| 40 | + "limit": 0 | ||
| 41 | + }, | ||
| 42 | + { | ||
| 43 | + "id": 6, | ||
| 44 | + "project": "AWM狙击步枪", | ||
| 45 | + "time": 180, | ||
| 46 | + "reward": "[1,100]", | ||
| 47 | + "RewardVideo": 0, | ||
| 48 | + "limit": 0 | ||
| 49 | + } | ||
| 50 | +] | ||
| 0 | \ No newline at end of file | 51 | \ No newline at end of file |
| @@ -0,0 +1,44 @@ | @@ -0,0 +1,44 @@ | ||
| 1 | +[ | ||
| 2 | + { | ||
| 3 | + "id": 1, | ||
| 4 | + "check-in": 1, | ||
| 5 | + "reward": [1,50], | ||
| 6 | + "RewardVideo": 1 | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "id": 2, | ||
| 10 | + "check-in": 2, | ||
| 11 | + "reward": [1,100], | ||
| 12 | + "RewardVideo": 1 | ||
| 13 | + }, | ||
| 14 | + { | ||
| 15 | + "id": 3, | ||
| 16 | + "check-in": 3, | ||
| 17 | + "reward": [2,12000], | ||
| 18 | + "RewardVideo": 1 | ||
| 19 | + }, | ||
| 20 | + { | ||
| 21 | + "id": 4, | ||
| 22 | + "check-in": 4, | ||
| 23 | + "reward": [1,200], | ||
| 24 | + "RewardVideo": 1 | ||
| 25 | + }, | ||
| 26 | + { | ||
| 27 | + "id": 5, | ||
| 28 | + "check-in": 5, | ||
| 29 | + "reward": [1,200], | ||
| 30 | + "RewardVideo": 1 | ||
| 31 | + }, | ||
| 32 | + { | ||
| 33 | + "id": 6, | ||
| 34 | + "check-in": 6, | ||
| 35 | + "reward": [1,400], | ||
| 36 | + "RewardVideo": 1 | ||
| 37 | + }, | ||
| 38 | + { | ||
| 39 | + "id": 0, | ||
| 40 | + "check-in": 7, | ||
| 41 | + "reward": [2,12000], | ||
| 42 | + "RewardVideo": 1 | ||
| 43 | + } | ||
| 44 | +] | ||
| 0 | \ No newline at end of file | 45 | \ No newline at end of file |
src/HttpServer/jsonconf/jsonconf.go
| @@ -74,6 +74,16 @@ type OnlineRewardConfigDesc struct { | @@ -74,6 +74,16 @@ type OnlineRewardConfigDesc struct { | ||
| 74 | RewardVideo int `json:"RewardVideo"` | 74 | RewardVideo int `json:"RewardVideo"` |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | +type SignConfigDesc struct { | ||
| 78 | + Id int `json:"id"` | ||
| 79 | + Reward []int `json:"reward"` | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +type InvestmentsConfigDesc struct { | ||
| 83 | + Id int `json:"id"` | ||
| 84 | + Reward []int `json:"reward"` | ||
| 85 | +} | ||
| 86 | + | ||
| 77 | type GameConfig struct { | 87 | type GameConfig struct { |
| 78 | WithDrawConfig []WithDrawDesc | 88 | WithDrawConfig []WithDrawDesc |
| 79 | ActiveWithdrawConfig []ActiveWithdrawConfigDesc | 89 | ActiveWithdrawConfig []ActiveWithdrawConfigDesc |
| @@ -84,7 +94,8 @@ type GameConfig struct { | @@ -84,7 +94,8 @@ type GameConfig struct { | ||
| 84 | OnlineRewardConfig []OnlineRewardConfigDesc | 94 | OnlineRewardConfig []OnlineRewardConfigDesc |
| 85 | AchieventConfig []AchieveDesc | 95 | AchieventConfig []AchieveDesc |
| 86 | TaskConfig []AchieveDesc | 96 | TaskConfig []AchieveDesc |
| 87 | - | 97 | + SignConfig []SignConfigDesc |
| 98 | + InvestmentsConfig []InvestmentsConfigDesc | ||
| 88 | } | 99 | } |
| 89 | 100 | ||
| 90 | func GetJsonConf() *GameConfig { | 101 | func GetJsonConf() *GameConfig { |
| @@ -230,6 +241,50 @@ func LoadJsonConf() error { | @@ -230,6 +241,50 @@ func LoadJsonConf() error { | ||
| 230 | return err | 241 | return err |
| 231 | } | 242 | } |
| 232 | 243 | ||
| 244 | + path = "../jsonconf/SignConfig.json" | ||
| 245 | + content, err = file_get_contents(path) | ||
| 246 | + if err != nil { | ||
| 247 | + logger.Info("loadJsonConf failed1,err=%v", err) | ||
| 248 | + return err | ||
| 249 | + } | ||
| 250 | + | ||
| 251 | + err = json.Unmarshal([]byte(content), &g_jsonconf.SignConfig) | ||
| 252 | + if err != nil { | ||
| 253 | + logger.Info("loadJsonConf failed1,err=%v", err) | ||
| 254 | + return err | ||
| 255 | + } | ||
| 256 | + | ||
| 257 | + path = "../jsonconf/InvestmentsConfig.json" | ||
| 258 | + content, err = file_get_contents(path) | ||
| 259 | + if err != nil { | ||
| 260 | + logger.Info("loadJsonConf failed1,err=%v", err) | ||
| 261 | + return err | ||
| 262 | + } | ||
| 263 | + | ||
| 264 | + err = json.Unmarshal([]byte(content), &g_jsonconf.InvestmentsConfig) | ||
| 265 | + if err != nil { | ||
| 266 | + logger.Info("loadJsonConf failed1,err=%v", err) | ||
| 267 | + return err | ||
| 268 | + } | ||
| 269 | + | ||
| 233 | logger.Info("loadJsonConf success pconf=%v,err=%v", *g_jsonconf, err) | 270 | logger.Info("loadJsonConf success pconf=%v,err=%v", *g_jsonconf, err) |
| 234 | return nil | 271 | return nil |
| 235 | } | 272 | } |
| 273 | + | ||
| 274 | +func GetsignConfig(id int) *SignConfigDesc { | ||
| 275 | + for _, v := range g_jsonconf.SignConfig { | ||
| 276 | + if v.Id == id { | ||
| 277 | + return &v | ||
| 278 | + } | ||
| 279 | + } | ||
| 280 | + return nil | ||
| 281 | +} | ||
| 282 | + | ||
| 283 | +func GetInvestConfig(id int) *InvestmentsConfigDesc { | ||
| 284 | + for _, v := range g_jsonconf.InvestmentsConfig { | ||
| 285 | + if v.Id == id { | ||
| 286 | + return &v | ||
| 287 | + } | ||
| 288 | + } | ||
| 289 | + return nil | ||
| 290 | +} |
src/HttpServer/logic/datadef.go
| 1 | package logic | 1 | package logic |
| 2 | 2 | ||
| 3 | +type QuersigndataData struct { | ||
| 4 | + Curday int `json:"curday"` | ||
| 5 | + Issigntaday int `json:"issigntaday"` | ||
| 6 | +} | ||
| 7 | + | ||
| 8 | +type QuersigndataResp struct { | ||
| 9 | + Code int `json:"code"` | ||
| 10 | + Message string `json:"message"` | ||
| 11 | + Data QuersigndataData `json:"data"` | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +type DosignData struct { | ||
| 15 | + Curday int `json:"curday"` | ||
| 16 | + Issigntaday int `json:"issigntaday"` | ||
| 17 | + Walletgold int `json:"walletgold"` | ||
| 18 | + Getgold int `json:"getgold"` | ||
| 19 | + Getcurhuobi int `json:"getcurhuobi"` | ||
| 20 | + Rewardtype int `json:"rewardtype"` | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +type DosignResp struct { | ||
| 24 | + Code int `json:"code"` | ||
| 25 | + Message string `json:"message"` | ||
| 26 | + Data DosignData `json:"data"` | ||
| 27 | +} | ||
| 28 | + | ||
| 3 | type TaskListDesc struct { | 29 | type TaskListDesc struct { |
| 4 | Taskid int `json:"taskid"` | 30 | Taskid int `json:"taskid"` |
| 5 | Taskstatus int `json:"taskstatus"` | 31 | Taskstatus int `json:"taskstatus"` |
src/HttpServer/logic/httpserver.go
| @@ -47,6 +47,8 @@ func startServerHttpServe() { | @@ -47,6 +47,8 @@ func startServerHttpServe() { | ||
| 47 | http.HandleFunc("/gunshot/uploadspeciallevel", Uploadspeciallevel) //上报当前等级 | 47 | http.HandleFunc("/gunshot/uploadspeciallevel", Uploadspeciallevel) //上报当前等级 |
| 48 | http.HandleFunc("/gunshot/uploadtili", Uploadtili) //上报当前体力 | 48 | http.HandleFunc("/gunshot/uploadtili", Uploadtili) //上报当前体力 |
| 49 | http.HandleFunc("/gunshot/fetchredbag", Fetchredbag) //领取红包 | 49 | http.HandleFunc("/gunshot/fetchredbag", Fetchredbag) //领取红包 |
| 50 | + http.HandleFunc("/gunshot/quersigndata", Quersigndata) //获取签到数据 | ||
| 51 | + http.HandleFunc("/gunshot/dosign", Dosign) //签到 | ||
| 50 | 52 | ||
| 51 | http.HandleFunc("/gunshot/onlinentf", Onlinentf) //在线通知 | 53 | http.HandleFunc("/gunshot/onlinentf", Onlinentf) //在线通知 |
| 52 | http.HandleFunc("/gunshot/updatetaskandachieve", Updatetaskandachieve) //上报任务事件进度 | 54 | http.HandleFunc("/gunshot/updatetaskandachieve", Updatetaskandachieve) //上报任务事件进度 |
| @@ -207,6 +209,48 @@ func Gettaskreward(w http.ResponseWriter, r *http.Request) { | @@ -207,6 +209,48 @@ func Gettaskreward(w http.ResponseWriter, r *http.Request) { | ||
| 207 | HandlerGettaskreward(w, s, Uuid) | 209 | HandlerGettaskreward(w, s, Uuid) |
| 208 | } | 210 | } |
| 209 | 211 | ||
| 212 | +func Dosign(w http.ResponseWriter, r *http.Request) { | ||
| 213 | + | ||
| 214 | + Uuid := 0 | ||
| 215 | + if len(r.Header) > 0 { | ||
| 216 | + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
| 217 | + } | ||
| 218 | + | ||
| 219 | + if Uuid == 0 { | ||
| 220 | + SetHeader(w) | ||
| 221 | + //logger.Error("Uuid is nil!") | ||
| 222 | + return | ||
| 223 | + } | ||
| 224 | + result, _ := ioutil.ReadAll(r.Body) | ||
| 225 | + r.Body.Close() | ||
| 226 | + | ||
| 227 | + s := string(result) | ||
| 228 | + logger.Info("Dosign , body:%v,uuid=%v", s, Uuid) | ||
| 229 | + | ||
| 230 | + HandlerDosign(w, s, Uuid) | ||
| 231 | +} | ||
| 232 | + | ||
| 233 | +func Quersigndata(w http.ResponseWriter, r *http.Request) { | ||
| 234 | + | ||
| 235 | + Uuid := 0 | ||
| 236 | + if len(r.Header) > 0 { | ||
| 237 | + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
| 238 | + } | ||
| 239 | + | ||
| 240 | + if Uuid == 0 { | ||
| 241 | + SetHeader(w) | ||
| 242 | + //logger.Error("Uuid is nil!") | ||
| 243 | + return | ||
| 244 | + } | ||
| 245 | + result, _ := ioutil.ReadAll(r.Body) | ||
| 246 | + r.Body.Close() | ||
| 247 | + | ||
| 248 | + s := string(result) | ||
| 249 | + logger.Info("Quersigndata , body:%v,uuid=%v", s, Uuid) | ||
| 250 | + | ||
| 251 | + HandlerQuersigndata(w, s, Uuid) | ||
| 252 | +} | ||
| 253 | + | ||
| 210 | func Fetchredbag(w http.ResponseWriter, r *http.Request) { | 254 | func Fetchredbag(w http.ResponseWriter, r *http.Request) { |
| 211 | 255 | ||
| 212 | Uuid := 0 | 256 | Uuid := 0 |
src/HttpServer/logic/logic.go
| @@ -369,6 +369,130 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { | @@ -369,6 +369,130 @@ func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { | ||
| 369 | 369 | ||
| 370 | } | 370 | } |
| 371 | 371 | ||
| 372 | +func HandlerQuersigndata(w http.ResponseWriter, data string, uuid int) { | ||
| 373 | + SetHeader(w) | ||
| 374 | + var resp QuersigndataResp | ||
| 375 | + resp.Code = 0 | ||
| 376 | + var rdata CommReq | ||
| 377 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 378 | + for { | ||
| 379 | + if err != nil { | ||
| 380 | + logger.Info("json decode HandlerGettaskreward data failed:%v,for:%v", err, data) | ||
| 381 | + resp.Message = "网络错误" | ||
| 382 | + resp.Code = 1 | ||
| 383 | + break | ||
| 384 | + } | ||
| 385 | + | ||
| 386 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
| 387 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 388 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 389 | + if err != nil { | ||
| 390 | + logger.Info("GetUserInfo HandlerQuersigndata data failed:%v,for:%v", err, data) | ||
| 391 | + resp.Message = "GetUserInfo failed" | ||
| 392 | + resp.Code = 1 | ||
| 393 | + break | ||
| 394 | + } | ||
| 395 | + | ||
| 396 | + resp.Data.Curday = uinfo.SignSum | ||
| 397 | + resp.Data.Issigntaday = uinfo.IsSignToday | ||
| 398 | + | ||
| 399 | + resp.Code = 0 | ||
| 400 | + break | ||
| 401 | + } | ||
| 402 | + | ||
| 403 | + //回包 | ||
| 404 | + respstr, _ := json.Marshal(&resp) | ||
| 405 | + fmt.Fprint(w, string(respstr)) | ||
| 406 | +} | ||
| 407 | + | ||
| 408 | +func HandlerDosign(w http.ResponseWriter, data string, uuid int) { | ||
| 409 | + SetHeader(w) | ||
| 410 | + var resp DosignResp | ||
| 411 | + resp.Code = 0 | ||
| 412 | + resp.Message = "success" | ||
| 413 | + var rdata CommReq | ||
| 414 | + err := json.Unmarshal([]byte(data), &rdata) | ||
| 415 | + for { | ||
| 416 | + | ||
| 417 | + if err != nil { | ||
| 418 | + logger.Info("json decode HandlerGettaskreward data failed:%v,for:%v", err, data) | ||
| 419 | + resp.Message = "网络错误" | ||
| 420 | + resp.Code = 1 | ||
| 421 | + break | ||
| 422 | + } | ||
| 423 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
| 424 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
| 425 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
| 426 | + if err != nil { | ||
| 427 | + logger.Info("GetUserInfo HandlerDosign data failed:%v,for:%v", err, data) | ||
| 428 | + resp.Message = "GetUserInfo failed" | ||
| 429 | + resp.Code = 1 | ||
| 430 | + break | ||
| 431 | + } | ||
| 432 | + | ||
| 433 | + if uinfo.IsSignToday == 1 { | ||
| 434 | + logger.Info(" HandlerDosign issign failed:%v,for:%v", err, data) | ||
| 435 | + resp.Message = "当天已签到" | ||
| 436 | + resp.Code = 1 | ||
| 437 | + break | ||
| 438 | + } | ||
| 439 | + | ||
| 440 | + uinfo.IsSignToday = 1 | ||
| 441 | + uinfo.SignSum++ | ||
| 442 | + if uinfo.SignSum > 7 { | ||
| 443 | + uinfo.SignSum = 1 | ||
| 444 | + uinfo.SignRound++ | ||
| 445 | + } | ||
| 446 | + | ||
| 447 | + cfg := jsonconf.GetsignConfig(uinfo.SignSum) | ||
| 448 | + if cfg == nil { | ||
| 449 | + logger.Info("GetUserInfo HandlerDosign data failed:%v,for:%v", err, data) | ||
| 450 | + resp.Message = "参数错误" | ||
| 451 | + resp.Code = 1 | ||
| 452 | + break | ||
| 453 | + } | ||
| 454 | + | ||
| 455 | + sub := len(cfg.Reward) / 2 | ||
| 456 | + for i := 0; i < sub; i++ { | ||
| 457 | + rtype := cfg.Reward[i*2] | ||
| 458 | + rnum := cfg.Reward[i*2+1] | ||
| 459 | + resp.Data.Rewardtype = rtype | ||
| 460 | + if rtype == 1 { | ||
| 461 | + resp.Data.Getcurhuobi = rnum | ||
| 462 | + }else if rtype == 2 { | ||
| 463 | + readgold := 0 | ||
| 464 | + readgold, err = AddCoinToSdk(uuid, rnum, rdata.Gameid, rdata.Channel, 100) | ||
| 465 | + if err != nil { | ||
| 466 | + logger.Info("GetUserInfo HandlerDosign data failed:%v,for:%v", err, data) | ||
| 467 | + resp.Message = "后台失败!" | ||
| 468 | + resp.Code = 1 | ||
| 469 | + break | ||
| 470 | + } | ||
| 471 | + uinfo.RealGold = readgold | ||
| 472 | + }else { | ||
| 473 | + logger.Error("HandlerDosign err") | ||
| 474 | + } | ||
| 475 | + } | ||
| 476 | + | ||
| 477 | + | ||
| 478 | + | ||
| 479 | + | ||
| 480 | + | ||
| 481 | + | ||
| 482 | + resp.Data.Curday = uinfo.SignSum | ||
| 483 | + resp.Data.Issigntaday = uinfo.IsSignToday | ||
| 484 | + resp.Data.Walletgold = uinfo.RealGold | ||
| 485 | + | ||
| 486 | + SaveUserInfo(uinfo, uniqueuuid) | ||
| 487 | + resp.Code = 0 | ||
| 488 | + break | ||
| 489 | + } | ||
| 490 | + | ||
| 491 | + //回包 | ||
| 492 | + respstr, _ := json.Marshal(&resp) | ||
| 493 | + fmt.Fprint(w, string(respstr)) | ||
| 494 | +} | ||
| 495 | + | ||
| 372 | func HandlerUpdatetaskandachieve(w http.ResponseWriter, data string, uuid int) { | 496 | func HandlerUpdatetaskandachieve(w http.ResponseWriter, data string, uuid int) { |
| 373 | SetHeader(w) | 497 | SetHeader(w) |
| 374 | llock.Lock() | 498 | llock.Lock() |
| @@ -582,7 +706,39 @@ func HandlerFetchredbag(w http.ResponseWriter, data string, uuid int) { | @@ -582,7 +706,39 @@ func HandlerFetchredbag(w http.ResponseWriter, data string, uuid int) { | ||
| 582 | resp.Data.Walletgold = realgold | 706 | resp.Data.Walletgold = realgold |
| 583 | 707 | ||
| 584 | uinfo.RandNum-- | 708 | uinfo.RandNum-- |
| 585 | - }else { | 709 | + }else if rdata.Rtype == 4{ |
| 710 | + cfg := jsonconf.GetInvestConfig(rdata.Param) | ||
| 711 | + if cfg == nil { | ||
| 712 | + logger.Error("HandlerFetchredbag failed err=%v", err) | ||
| 713 | + resp.Message = "获取配置失败!" | ||
| 714 | + resp.Code = 1 | ||
| 715 | + break | ||
| 716 | + } | ||
| 717 | + sub := len(cfg.Reward) / 2 | ||
| 718 | + for i := 0; i < sub; i++ { | ||
| 719 | + rtype := cfg.Reward[i*2] | ||
| 720 | + rnum := cfg.Reward[i*2+1] | ||
| 721 | + if rtype != 3 { | ||
| 722 | + continue | ||
| 723 | + }else { | ||
| 724 | + readgold := 0 | ||
| 725 | + readgold, err = AddCoinToSdk(uuid, rnum, rdata.Gameid, rdata.Channel, 100) | ||
| 726 | + if err != nil { | ||
| 727 | + logger.Info("GetUserInfo HandlerDosign data failed:%v,for:%v", err, data) | ||
| 728 | + resp.Message = "后台失败!" | ||
| 729 | + resp.Code = 1 | ||
| 730 | + break | ||
| 731 | + } | ||
| 732 | + uinfo.RealGold = readgold | ||
| 733 | + | ||
| 734 | + resp.Data.Getgold = rnum | ||
| 735 | + resp.Data.Walletgold = readgold | ||
| 736 | + break | ||
| 737 | + } | ||
| 738 | + | ||
| 739 | + } | ||
| 740 | + | ||
| 741 | + } else { | ||
| 586 | /*if uinfo.SpecialLevel <= uinfo.SpecialNum { | 742 | /*if uinfo.SpecialLevel <= uinfo.SpecialNum { |
| 587 | logger.Error("HandlerFetchredbag failed err=%v", err) | 743 | logger.Error("HandlerFetchredbag failed err=%v", err) |
| 588 | resp.Message = "没有可以领取的随机红包次数了!" | 744 | resp.Message = "没有可以领取的随机红包次数了!" |