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 = "没有可以领取的随机红包次数了!" |