Commit a3855199f603acd91b7d81061c5521c06815d384

Authored by 陆恒
1 parent 0704cc8f
Exists in master

枪火联盟代码

src/HttpServer/jsonconf/InvestmentsConfig.json 0 → 100644
@@ -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
src/HttpServer/jsonconf/SignConfig.json 0 → 100644
@@ -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 = "没有可以领取的随机红包次数了!"