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 @@ |
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 | 51 | \ No newline at end of file | ... | ... |
... | ... | @@ -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 | 45 | \ No newline at end of file | ... | ... |
src/HttpServer/jsonconf/jsonconf.go
... | ... | @@ -74,6 +74,16 @@ type OnlineRewardConfigDesc struct { |
74 | 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 | 87 | type GameConfig struct { |
78 | 88 | WithDrawConfig []WithDrawDesc |
79 | 89 | ActiveWithdrawConfig []ActiveWithdrawConfigDesc |
... | ... | @@ -84,7 +94,8 @@ type GameConfig struct { |
84 | 94 | OnlineRewardConfig []OnlineRewardConfigDesc |
85 | 95 | AchieventConfig []AchieveDesc |
86 | 96 | TaskConfig []AchieveDesc |
87 | - | |
97 | + SignConfig []SignConfigDesc | |
98 | + InvestmentsConfig []InvestmentsConfigDesc | |
88 | 99 | } |
89 | 100 | |
90 | 101 | func GetJsonConf() *GameConfig { |
... | ... | @@ -230,6 +241,50 @@ func LoadJsonConf() error { |
230 | 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 | 270 | logger.Info("loadJsonConf success pconf=%v,err=%v", *g_jsonconf, err) |
234 | 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 | 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 | 29 | type TaskListDesc struct { |
4 | 30 | Taskid int `json:"taskid"` |
5 | 31 | Taskstatus int `json:"taskstatus"` | ... | ... |
src/HttpServer/logic/httpserver.go
... | ... | @@ -47,6 +47,8 @@ func startServerHttpServe() { |
47 | 47 | http.HandleFunc("/gunshot/uploadspeciallevel", Uploadspeciallevel) //上报当前等级 |
48 | 48 | http.HandleFunc("/gunshot/uploadtili", Uploadtili) //上报当前体力 |
49 | 49 | http.HandleFunc("/gunshot/fetchredbag", Fetchredbag) //领取红包 |
50 | + http.HandleFunc("/gunshot/quersigndata", Quersigndata) //获取签到数据 | |
51 | + http.HandleFunc("/gunshot/dosign", Dosign) //签到 | |
50 | 52 | |
51 | 53 | http.HandleFunc("/gunshot/onlinentf", Onlinentf) //在线通知 |
52 | 54 | http.HandleFunc("/gunshot/updatetaskandachieve", Updatetaskandachieve) //上报任务事件进度 |
... | ... | @@ -207,6 +209,48 @@ func Gettaskreward(w http.ResponseWriter, r *http.Request) { |
207 | 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 | 254 | func Fetchredbag(w http.ResponseWriter, r *http.Request) { |
211 | 255 | |
212 | 256 | Uuid := 0 | ... | ... |
src/HttpServer/logic/logic.go
... | ... | @@ -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 | 496 | func HandlerUpdatetaskandachieve(w http.ResponseWriter, data string, uuid int) { |
373 | 497 | SetHeader(w) |
374 | 498 | llock.Lock() |
... | ... | @@ -582,7 +706,39 @@ func HandlerFetchredbag(w http.ResponseWriter, data string, uuid int) { |
582 | 706 | resp.Data.Walletgold = realgold |
583 | 707 | |
584 | 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 | 742 | /*if uinfo.SpecialLevel <= uinfo.SpecialNum { |
587 | 743 | logger.Error("HandlerFetchredbag failed err=%v", err) |
588 | 744 | resp.Message = "没有可以领取的随机红包次数了!" | ... | ... |