Commit bfc50df58f016d95692bec35be2d163a7a822883
1 parent
71894859
Exists in
master
提交相关修改
Showing
7 changed files
with
43 additions
and
3018 deletions
Show diff stats
src/HttpServer/jsonconf/jsonconf.go
@@ -11,101 +11,61 @@ var ( | @@ -11,101 +11,61 @@ var ( | ||
11 | g_jsonconf = new(GameConfig) | 11 | g_jsonconf = new(GameConfig) |
12 | ) | 12 | ) |
13 | 13 | ||
14 | -type AchieveDesc struct { | ||
15 | - Id int `json:"id"` | ||
16 | - Task string `json:"task"` | ||
17 | - Num int `json:"num"` | ||
18 | - Reward []int `json:"reward"` | ||
19 | - TaskType int `json:"type"` | ||
20 | -} | ||
21 | - | ||
22 | -type LevelDesc struct { | ||
23 | - Id int `json:"id"` | ||
24 | - Level int `json:"level"` | ||
25 | - Exp int `json:"exp"` | ||
26 | - Cash int `json:"cash"` | ||
27 | - Extracash int `json:"extracash"` | ||
28 | -} | ||
29 | - | ||
30 | -type MoneyBoxLevelDesc struct { | ||
31 | - Id int `json:"id"` | ||
32 | - Level int `json:"level"` | ||
33 | - Min int `json:"min"` | ||
34 | - Max int `json:"max"` | ||
35 | -} | ||
36 | - | ||
37 | -type MoneyBoxTimesDesc struct { | ||
38 | - Id int `json:"id"` | ||
39 | - Times int `json:"times"` | ||
40 | - Login int `json:"login"` | ||
41 | - Score int `json:"score"` | ||
42 | -} | ||
43 | - | ||
44 | -type WithDrawDesc struct { | ||
45 | - Id int `json:"id"` | ||
46 | - Money float32 `json:"money"` | ||
47 | - Coin int `json:"coin"` | ||
48 | - Task int `json:"task"` | ||
49 | - Level int `json:"level"` | ||
50 | - Isnew int `json:"new"` | ||
51 | -} | ||
52 | - | ||
53 | -type SignRewardDetail struct { | 14 | +type SignConfig struct { |
54 | Id int `json:"id"` | 15 | Id int `json:"id"` |
55 | Num int `json:"num"` | 16 | Num int `json:"num"` |
56 | } | 17 | } |
57 | 18 | ||
58 | -type SignReward struct { | ||
59 | - Reward1 []SignRewardDetail `json:"reward1"` | ||
60 | - Reward2 []SignRewardDetail `json:"reward2"` | 19 | +type GoldGunsConfig struct { |
20 | + Level int `json:"level"` | ||
21 | + Speed int `json:"speed"` | ||
61 | } | 22 | } |
62 | 23 | ||
63 | -type SignConfigDesc struct { | ||
64 | - Rule int `json:"rule"` | ||
65 | - Round int `json:"round"` | ||
66 | - Reward SignReward `json:"reward"` | 24 | +type GoldChestConfig struct { |
25 | + Boxid int `json:"boxid"` | ||
26 | + Score int `json:"score"` | ||
27 | + Reward int `json:"reward"` | ||
67 | } | 28 | } |
68 | 29 | ||
69 | type GameConfig struct { | 30 | type GameConfig struct { |
70 | - AchieventConfig []AchieveDesc | ||
71 | - TaskConfig []AchieveDesc | ||
72 | - LevelConfig []LevelDesc | ||
73 | - MoneyBoxConfig []MoneyBoxLevelDesc | ||
74 | - MoneyBoxTimeConfig []MoneyBoxTimesDesc | ||
75 | - WithDrawConfig []WithDrawDesc | ||
76 | - SignConfig SignConfigDesc | 31 | + SignCfg []SignConfig |
32 | + GunConfig []GoldGunsConfig | ||
33 | + BoxConfig []GoldChestConfig | ||
77 | } | 34 | } |
78 | 35 | ||
79 | func GetJsonConf() *GameConfig { | 36 | func GetJsonConf() *GameConfig { |
80 | return g_jsonconf | 37 | return g_jsonconf |
81 | } | 38 | } |
82 | 39 | ||
83 | -func GetSignConfig(round, daynum int) *SignRewardDetail { | ||
84 | - if round+1 > g_jsonconf.SignConfig.Round { | ||
85 | - //取reward2 | ||
86 | - if daynum > len(g_jsonconf.SignConfig.Reward.Reward2) { | ||
87 | - logger.Error("GetSignConfig failed") | ||
88 | - return nil | 40 | +func GetSignConfig(daynum int) *SignConfig { |
41 | + var rt *SignConfig | ||
42 | + for _, val := range g_jsonconf.SignCfg { | ||
43 | + if val.Id == daynum { | ||
44 | + rt = &val | ||
45 | + break | ||
89 | } | 46 | } |
47 | + } | ||
48 | + return rt | ||
49 | +} | ||
90 | 50 | ||
91 | - return &g_jsonconf.SignConfig.Reward.Reward2[daynum-1] | 51 | +func GetGoldGunsConfig(level int) *GoldGunsConfig { |
92 | 52 | ||
93 | - } else { | ||
94 | - //取reward1 | ||
95 | - if daynum > len(g_jsonconf.SignConfig.Reward.Reward1) { | ||
96 | - logger.Error("GetSignConfig failed") | ||
97 | - return nil | 53 | + var rt *GoldGunsConfig |
54 | + for _, val := range g_jsonconf.GunConfig { | ||
55 | + if val.Level == level { | ||
56 | + rt = &val | ||
57 | + break | ||
98 | } | 58 | } |
99 | - | ||
100 | - return &g_jsonconf.SignConfig.Reward.Reward1[daynum-1] | ||
101 | } | 59 | } |
60 | + | ||
61 | + return rt | ||
102 | } | 62 | } |
103 | 63 | ||
104 | -func GetMoneyBoxCfg(lv int) *MoneyBoxLevelDesc { | ||
105 | - rt := new(MoneyBoxLevelDesc) | ||
106 | - rt = nil | ||
107 | - for _, val := range g_jsonconf.MoneyBoxConfig { | ||
108 | - if val.Level == lv { | 64 | +func GetGoldChestConfig(boxid int) *GoldChestConfig { |
65 | + | ||
66 | + var rt *GoldChestConfig | ||
67 | + for _, val := range g_jsonconf.BoxConfig { | ||
68 | + if val.Boxid == boxid { | ||
109 | rt = &val | 69 | rt = &val |
110 | break | 70 | break |
111 | } | 71 | } |
@@ -125,79 +85,27 @@ func file_get_contents(path string) ([]byte, error) { | @@ -125,79 +85,27 @@ func file_get_contents(path string) ([]byte, error) { | ||
125 | func LoadJsonConf() error { | 85 | func LoadJsonConf() error { |
126 | //pconf := &GameConfig{} | 86 | //pconf := &GameConfig{} |
127 | //加载第一个配置 | 87 | //加载第一个配置 |
128 | - path := "../jsonconf/AchievementConfig.json" | 88 | + path := "../jsonconf/GoldChestConfig.json" |
129 | content, err := file_get_contents(path) | 89 | content, err := file_get_contents(path) |
130 | if err != nil { | 90 | if err != nil { |
131 | logger.Info("loadJsonConf failed1,err=%v", err) | 91 | logger.Info("loadJsonConf failed1,err=%v", err) |
132 | return err | 92 | return err |
133 | } | 93 | } |
134 | 94 | ||
135 | - err = json.Unmarshal([]byte(content), &g_jsonconf.AchieventConfig) | ||
136 | - if err != nil { | ||
137 | - logger.Info("loadJsonConf failed1,err=%v", err) | ||
138 | - return err | ||
139 | - } | ||
140 | - | ||
141 | - path = "../jsonconf/DailyTask.json" | ||
142 | - content, err = file_get_contents(path) | ||
143 | - if err != nil { | ||
144 | - logger.Info("loadJsonConf failed1,err=%v", err) | ||
145 | - return err | ||
146 | - } | ||
147 | - | ||
148 | - err = json.Unmarshal([]byte(content), &g_jsonconf.TaskConfig) | ||
149 | - if err != nil { | ||
150 | - logger.Info("loadJsonConf failed1,err=%v", err) | ||
151 | - return err | ||
152 | - } | ||
153 | - | ||
154 | - path = "../jsonconf/LevelConfig.json" | ||
155 | - content, err = file_get_contents(path) | ||
156 | - if err != nil { | ||
157 | - logger.Info("loadJsonConf failed1,err=%v", err) | ||
158 | - return err | ||
159 | - } | ||
160 | - | ||
161 | - err = json.Unmarshal([]byte(content), &g_jsonconf.LevelConfig) | ||
162 | - if err != nil { | ||
163 | - logger.Info("loadJsonConf failed1,err=%v", err) | ||
164 | - return err | ||
165 | - } | ||
166 | - | ||
167 | - path = "../jsonconf/MoneyboxLevel.json" | ||
168 | - content, err = file_get_contents(path) | ||
169 | - if err != nil { | ||
170 | - logger.Info("loadJsonConf failed1,err=%v", err) | ||
171 | - return err | ||
172 | - } | ||
173 | - | ||
174 | - err = json.Unmarshal([]byte(content), &g_jsonconf.MoneyBoxConfig) | ||
175 | - if err != nil { | ||
176 | - logger.Info("loadJsonConf failed1,err=%v", err) | ||
177 | - return err | ||
178 | - } | ||
179 | - | ||
180 | - path = "../jsonconf/MoneyboxTimes.json" | ||
181 | - content, err = file_get_contents(path) | ||
182 | - if err != nil { | ||
183 | - logger.Info("loadJsonConf failed1,err=%v", err) | ||
184 | - return err | ||
185 | - } | ||
186 | - | ||
187 | - err = json.Unmarshal([]byte(content), &g_jsonconf.MoneyBoxTimeConfig) | 95 | + err = json.Unmarshal([]byte(content), &g_jsonconf.BoxConfig) |
188 | if err != nil { | 96 | if err != nil { |
189 | logger.Info("loadJsonConf failed1,err=%v", err) | 97 | logger.Info("loadJsonConf failed1,err=%v", err) |
190 | return err | 98 | return err |
191 | } | 99 | } |
192 | 100 | ||
193 | - path = "../jsonconf/WithdrawConfig.json" | 101 | + path = "../jsonconf/GoldGunsConfig.json" |
194 | content, err = file_get_contents(path) | 102 | content, err = file_get_contents(path) |
195 | if err != nil { | 103 | if err != nil { |
196 | logger.Info("loadJsonConf failed1,err=%v", err) | 104 | logger.Info("loadJsonConf failed1,err=%v", err) |
197 | return err | 105 | return err |
198 | } | 106 | } |
199 | 107 | ||
200 | - err = json.Unmarshal([]byte(content), &g_jsonconf.WithDrawConfig) | 108 | + err = json.Unmarshal([]byte(content), &g_jsonconf.GunConfig) |
201 | if err != nil { | 109 | if err != nil { |
202 | logger.Info("loadJsonConf failed1,err=%v", err) | 110 | logger.Info("loadJsonConf failed1,err=%v", err) |
203 | return err | 111 | return err |
@@ -210,7 +118,7 @@ func LoadJsonConf() error { | @@ -210,7 +118,7 @@ func LoadJsonConf() error { | ||
210 | return err | 118 | return err |
211 | } | 119 | } |
212 | 120 | ||
213 | - err = json.Unmarshal([]byte(content), &g_jsonconf.SignConfig) | 121 | + err = json.Unmarshal([]byte(content), &g_jsonconf.SignCfg) |
214 | if err != nil { | 122 | if err != nil { |
215 | logger.Info("loadJsonConf failed1,err=%v", err) | 123 | logger.Info("loadJsonConf failed1,err=%v", err) |
216 | return err | 124 | return err |
src/HttpServer/logic/constdef.go
1 | package logic | 1 | package logic |
2 | - | ||
3 | -//任务成就类型枚举 协议上报用 | ||
4 | -const ( | ||
5 | - TASKTYPE_PASSLEVEL = 1 //表示通过x关卡 | ||
6 | - TASKTYPE_GETREDBAG = 2 //领取x次红包 | ||
7 | - TASKTYPE_WATCHADS = 3 //3表示观看x次广告 | ||
8 | - TASKTYPE_KILLSTAR = 4 //4表示消除x颗星星 | ||
9 | - TASKTYPE_USEITEM = 5 //5表示使用x次道具 | ||
10 | -) | ||
11 | - | ||
12 | -//任务类型 对应表 | ||
13 | -const ( | ||
14 | - DAILY_TASKTYPE_LOGIN = 1 //1 每日登录 | ||
15 | - DAILY_TASKTYPE_GETGUANCNT = 2 //提取存钱罐 | ||
16 | - DAILY_TASKTYPE_PASSLEVEL = 3 //近日通过关 | ||
17 | - DAILY_TASKTYPE_USEITEM = 4 //使用道具数 | ||
18 | - DAILY_TASKTYPE_GETREDBAG = 5 //领取红包次数 | ||
19 | - DAILY_TASKTYPE_GETGUANGOLD = 6 //收取金币x枚 | ||
20 | - DAILY_TASKTYPE_ONLINEMIN = 7 //在线分钟数 | ||
21 | -) | ||
22 | - | ||
23 | -//成就类型 对应表 | ||
24 | -const ( | ||
25 | - ACHIEVETYPE_WATCHADDS = 1 //累计观看广告次数 | ||
26 | - ACHIEVETYPE_USERLV = 2 //人物等级 | ||
27 | - ACHIEVETYPE_KILLSTAR = 3 //累计消除星星数 | ||
28 | - ACHIEVETYPE_GETGUANCNT = 4 //累计存钱罐提取 | ||
29 | - ACHIEVETYPE_USEITEMCNT = 5 //累计道具使用 | ||
30 | - | ||
31 | -) | ||
32 | - | ||
33 | -//奖励类型枚举 | ||
34 | -const ( | ||
35 | - REWARDTYPE_STAR = 1 //星星 | ||
36 | - REWARDTYPE_CHUI = 2 | ||
37 | - REWARDTYPE_SHUA = 3 | ||
38 | - REWARDTYPE_SWAP = 4 | ||
39 | - REWARDTYPE_ELIMITE = 5 | ||
40 | - REWARDTYPE_EXP = 6 | ||
41 | - REWARDTYPE_GOLD = 7 | ||
42 | -) | ||
43 | - | ||
44 | -const ( | ||
45 | - //XIAOXINGXING_SERVERKEY = "33e0c3238c108a36d87025544c6a2d2f" | ||
46 | - //XIAOXINGXING_SERVERKEYTEST = "e2cd22102143cdcd9c181f962d031685" | ||
47 | - XIAOXINGXING_SERVERKEYTEST = "33e0c3238c108a36d87025544c6a2d2f" | ||
48 | - XIAOXINGXING_SDKURL = "https://testapi-gamesdk.d3games.com/" | ||
49 | - XIAOXINGXING_SDKURLOFFICAL = "https://api.gamesdk.hmjoy.cn/" | ||
50 | -) | ||
51 | - | ||
52 | -const ( | ||
53 | - WATCH_ADD_DAY_LIMIT = 50 //当天获取红包次数限制 | ||
54 | - FREE_REDBAG_NUM = 3 //玩家免费红包次数 | ||
55 | -) |
src/HttpServer/logic/datadef.go
1 | package logic | 1 | package logic |
2 | - | ||
3 | -type UserLoginReq struct { | ||
4 | - Fromid int `json:"fromid"` | ||
5 | - Sharetype int `json:"sharetype"` | ||
6 | - Gameid string `json:"gameid"` | ||
7 | - Channel string `json:"channel"` | ||
8 | -} | ||
9 | - | ||
10 | -type UserLoginData struct { | ||
11 | - Walletgold int `json:"walletgold"` | ||
12 | - Leftredbagcnt int `json:"leftredbagcnt"` | ||
13 | - Guangold int `json:"guangold"` | ||
14 | - Userlv int `json:"userlv"` | ||
15 | - Userexp int `json:"userexp"` | ||
16 | -} | ||
17 | - | ||
18 | -type UserLoginResp struct { | ||
19 | - Code int `json:"code"` | ||
20 | - Message string `json:"message"` | ||
21 | - Data UserLoginData `json:"data"` | ||
22 | -} | ||
23 | - | ||
24 | -type GetuserdataReq struct { | ||
25 | - Gameid string `json:"gameid"` | ||
26 | - Channel string `json:"channel"` | ||
27 | -} | ||
28 | - | ||
29 | -type GetuserdataData struct { | ||
30 | - Walletgold int `json:"walletgold"` | ||
31 | - Leftredbagcnt int `json:"leftredbagcnt"` | ||
32 | - Guangold int `json:"guangold"` | ||
33 | - Userlv int `json:"userlv"` | ||
34 | - Userexp int `json:"userexp"` | ||
35 | - Leftfreeredbag int `json:"leftfreeredbag"` | ||
36 | -} | ||
37 | - | ||
38 | -type GetuserdataResp struct { | ||
39 | - Code int `json:"code"` | ||
40 | - Message string `json:"message"` | ||
41 | - Data GetuserdataData `json:"data"` | ||
42 | -} | ||
43 | - | ||
44 | -type WatchadsData struct { | ||
45 | - Leftads int `json:"leftads"` | ||
46 | -} | ||
47 | - | ||
48 | -type WatchadsResp struct { | ||
49 | - Code int `json:"code"` | ||
50 | - Message string `json:"message"` | ||
51 | - Data WatchadsData `json:"data"` | ||
52 | -} | ||
53 | - | ||
54 | -type QueryguaninfoData struct { | ||
55 | - Leftcnt int `json:"leftcnt"` | ||
56 | - Totalcnt int `json:"totalcnt"` | ||
57 | - Guangold int `json:"guangold"` | ||
58 | - Minget int `json:"minget"` | ||
59 | - Maxget int `json:"maxget"` | ||
60 | - Loginday int `json:"loginday"` | ||
61 | - Totalfetchcnt int `json:"totalfetchcnt"` | ||
62 | -} | ||
63 | - | ||
64 | -type QueryguaninfoResp struct { | ||
65 | - Code int `json:"code"` | ||
66 | - Message string `json:"message"` | ||
67 | - Data QueryguaninfoData `json:"data"` | ||
68 | -} | ||
69 | - | ||
70 | -type GetguangoldReq struct { | ||
71 | - Goldnum int `json:"goldnum"` | ||
72 | -} | ||
73 | - | ||
74 | -type GetguangoldData struct { | ||
75 | - Guangold int `json:"guangold"` | ||
76 | -} | ||
77 | - | ||
78 | -type GetguangoldResp struct { | ||
79 | - Code int `json:"code"` | ||
80 | - Message string `json:"message"` | ||
81 | - Data GetguangoldData `json:"data"` | ||
82 | -} | ||
83 | - | ||
84 | -type DrawguangoldReq struct { | ||
85 | - Goldnum int `json:"goldnum"` | ||
86 | - Gameid string `json:"gameid"` | ||
87 | - Channel string `json:"channel"` | ||
88 | -} | ||
89 | - | ||
90 | -type DrawguangoldData struct { | ||
91 | - Guangold int `json:"guangold"` | ||
92 | - Wallgold int `json:"wallgold"` | ||
93 | - Totalfetchcnt int `json:"totalfetchcnt"` | ||
94 | -} | ||
95 | - | ||
96 | -type DrawguangoldResp struct { | ||
97 | - Code int `json:"code"` | ||
98 | - Message string `json:"message"` | ||
99 | - Data DrawguangoldData `json:"data"` | ||
100 | -} | ||
101 | - | ||
102 | -type QuerdrawinfoResp struct { | ||
103 | - Code int `json:"code"` | ||
104 | - Message string `json:"message"` | ||
105 | - Data WithDrawInfo `json:"data"` | ||
106 | -} | ||
107 | - | ||
108 | -type GetcashReq struct { | ||
109 | - Gameid string `json:"gameid"` | ||
110 | - Channel string `json:"channel"` | ||
111 | - Money float32 `json:"money"` | ||
112 | - Openid string `json:"openid"` | ||
113 | - Nickname string `json:"nickname"` | ||
114 | - Headurl string `json:"headurl"` | ||
115 | - Ver string `json:"ver"` | ||
116 | -} | ||
117 | - | ||
118 | -type GetcashData struct { | ||
119 | - Walletgold int `json:"walletgold"` | ||
120 | -} | ||
121 | -type GetcashResp struct { | ||
122 | - Code int `json:"code"` | ||
123 | - Message string `json:"message"` | ||
124 | - Data GetcashData `json:"data"` | ||
125 | -} | ||
126 | - | ||
127 | -type GetcashrecordReq struct { | ||
128 | - Gameid string `json:"gameid"` | ||
129 | - Channel string `json:"channel"` | ||
130 | -} | ||
131 | - | ||
132 | -type GetcashrecordResp struct { | ||
133 | - Code int `json:"code"` | ||
134 | - Message string `json:"message"` | ||
135 | - Data WithDrawList `json:"data"` | ||
136 | -} | ||
137 | - | ||
138 | -type OnlinentfResp struct { | ||
139 | - Code int `json:"code"` | ||
140 | - Message string `json:"message"` | ||
141 | -} | ||
142 | - | ||
143 | -type UpdatetaskReq struct { | ||
144 | - Tasktype int `json:"tasktype"` | ||
145 | - Value int `json:"value"` | ||
146 | -} | ||
147 | - | ||
148 | -type UpdatetaskResp struct { | ||
149 | - Code int `json:"code"` | ||
150 | - Message string `json:"message"` | ||
151 | -} | ||
152 | - | ||
153 | -type QuerytaskinfoReq struct { | ||
154 | - Tasktype int `json:"tasktype"` | ||
155 | -} | ||
156 | - | ||
157 | -type QuerytaskinfoResp struct { | ||
158 | - Code int `json:"code"` | ||
159 | - Message string `json:"message"` | ||
160 | - Data TaskList `json:"data"` | ||
161 | -} | ||
162 | - | ||
163 | -type GettaskrewardReq struct { | ||
164 | - Tasktype int `json:"tasktype"` | ||
165 | - Taskid int `json:"taskid"` | ||
166 | - Gameid string `json:"gameid"` | ||
167 | - Channel string `json:"channel"` | ||
168 | -} | ||
169 | - | ||
170 | -type GettaskrewardData struct { | ||
171 | - Lv int `json:"lv"` | ||
172 | - Costtime int `json:"costtime"` | ||
173 | - Rewardstar int `json:"rewardstar"` | ||
174 | - Chuiitem int `json:"chuiitem"` | ||
175 | - Shuaitem int `json:"shuaitem"` | ||
176 | - Swapitem int `json:"swapitem"` | ||
177 | - Eliminitem int `json:"eliminitem"` | ||
178 | - Goldnum int `json:"goldnum"` | ||
179 | -} | ||
180 | -type GettaskrewardResp struct { | ||
181 | - Code int `json:"code"` | ||
182 | - Message string `json:"message"` | ||
183 | - Data GettaskrewardData `json:"data"` | ||
184 | -} | ||
185 | - | ||
186 | -type GetnewlevelrewardReq struct { | ||
187 | - Rewardtype int `json:"rewardtype"` | ||
188 | - Gameid string `json:"gameid"` | ||
189 | - Channel string `json:"channel"` | ||
190 | -} | ||
191 | - | ||
192 | -type GetnewlevelrewardData struct { | ||
193 | - Goldnum int `json:"goldnum"` | ||
194 | -} | ||
195 | -type GetnewlevelrewardResp struct { | ||
196 | - Code int `json:"code"` | ||
197 | - Message string `json:"message"` | ||
198 | - Data GetnewlevelrewardData `json:"data"` | ||
199 | -} | ||
200 | - | ||
201 | -type QuerysigndataData struct { | ||
202 | - Signround int `json:"signround"` | ||
203 | - Continuessign int `json:"continuessign"` | ||
204 | - IssignToday int `json:"issignToday"` | ||
205 | -} | ||
206 | - | ||
207 | -type QuerysigndataResp struct { | ||
208 | - Code int `json:"code"` | ||
209 | - Message string `json:"message"` | ||
210 | - Data QuerysigndataData `json:"data"` | ||
211 | -} | ||
212 | - | ||
213 | -type UsersignReq struct { | ||
214 | - Gameid string `json:"gameid"` | ||
215 | - Channel string `json:"channel"` | ||
216 | -} | ||
217 | - | ||
218 | -type UsersignData struct { | ||
219 | - Goldnum int `json:"goldnum"` | ||
220 | -} | ||
221 | -type UsersignResp struct { | ||
222 | - Code int `json:"code"` | ||
223 | - Message string `json:"message"` | ||
224 | - Data UsersignData `json:"data"` | ||
225 | -} | ||
226 | - | ||
227 | -//********************************************************************************************************** | ||
228 | - | ||
229 | -type TaskListDesc struct { | ||
230 | - Taskid int `json:"taskid"` | ||
231 | - Taskstatus int `json:"taskstatus"` | ||
232 | - Taskprogress int `json:"taskprogress"` | ||
233 | -} | ||
234 | - | ||
235 | -type TaskList struct { | ||
236 | - Taskdata []TaskListDesc `json:"taskdata"` | ||
237 | -} | ||
238 | - | ||
239 | -//其中提取次数和当日登陆在userdata中记录 | ||
240 | -type TaskInfo struct { | ||
241 | - OnlineMin int //在线分钟数 | ||
242 | - PassLevel int //通过关卡数 | ||
243 | - UseItemCnt int //使用道具次数 | ||
244 | - GetRedbagCnt int //领取红包次数 | ||
245 | - GetGuanGold int //收集金币数 | ||
246 | -} | ||
247 | - | ||
248 | -// | ||
249 | -type AchieveMentInfo struct { | ||
250 | - WatchAdsCnt int //观看广告数 | ||
251 | - KillStar int //消除星星数 | ||
252 | - SumGetGuan int //存钱罐累计提取 | ||
253 | - SumUseItemCnt int //使用道具次数累计 | ||
254 | -} | ||
255 | - | ||
256 | -type WithDrawList struct { | ||
257 | - Withdata []WithDrawRecord `json:"withdata"` | ||
258 | -} | ||
259 | - | ||
260 | -//提现记录结构 | ||
261 | -type WithDrawRecord struct { | ||
262 | - Coin int `json:"coin"` | ||
263 | - Create_time int `json:"create_time"` | ||
264 | - Money int `json:"money"` | ||
265 | - No string `json:"no"` | ||
266 | - Status int `json:"status"` | ||
267 | - Statusmsg string `json:"statusmsg"` | ||
268 | - Typ int `json:"typ"` | ||
269 | -} | ||
270 | - | ||
271 | -type WithDrawInfo struct { | ||
272 | - Cashdata []WithDrawDesc `json:"cashdata"` | ||
273 | -} | ||
274 | - | ||
275 | -type WithDrawDesc struct { | ||
276 | - Cid int `json:"cid"` | ||
277 | - Cnum float32 `json:"cnum"` | ||
278 | - Isnew int `json:"isnew"` | ||
279 | - Limitlv int `json:"limitlv"` | ||
280 | - Preisfind int `json:"preisfind"` | ||
281 | -} | ||
282 | - | ||
283 | -//玩家数据 | ||
284 | -type UserData struct { | ||
285 | - Userid int //玩家id | ||
286 | - Lv int //玩家当前等级 | ||
287 | - LvRewardGet int //当前等级奖励是否已经领取 1未领取 2普通领取 3双倍领取 | ||
288 | - Exp int //玩家当前经验值 | ||
289 | - GuanGold int //玩家存钱罐中金币数量 | ||
290 | - RealGold int //玩家实际金币数量(可用于提现的) | ||
291 | - WatchAddsTime int //当天剩余红包次数 初始化50次 | ||
292 | - LastLoginTime int //上次登陆时间 | ||
293 | - ContinueLoginDay int //连续登录天数 | ||
294 | - GetFromGuanCnt int //当天从存钱款提取金币次数 | ||
295 | - SignRound int //签到轮数 | ||
296 | - SignSum int //累计签到天数 | ||
297 | - IsSignToday int //今日是否已经签到 1是 0否 | ||
298 | - LeftFreeRB int //剩余免费红包次数 | ||
299 | - UpLvCostTime int //上一个等级升级时间 | ||
300 | - UpLvCostTimeSec int //上一个等级升级的时间点时刻 | ||
301 | - WithDraw WithDrawInfo //提现记录信息 | ||
302 | - Task TaskInfo //玩家任务完成相关信息 | ||
303 | - Achieve AchieveMentInfo //玩家成就完成相关数据 | ||
304 | -} | ||
305 | - | ||
306 | -//---------------------------------------------------------------------------------------------------------------------- | ||
307 | - | ||
308 | -type TixianDesc struct { | ||
309 | - Sign string `json:"sign"` | ||
310 | - Sign_type string `json:"sign_type"` | ||
311 | - Time_stamp string `json:"time_stamp"` | ||
312 | - Gameid string `json:"gameid"` | ||
313 | - Channel string `json:"channel"` | ||
314 | - Uid int `json:"uid"` | ||
315 | - Typ int `json:"typ"` | ||
316 | - Money int `json:"money"` | ||
317 | - Openid string `json:"openid"` | ||
318 | - Nickname string `json:"nickname"` | ||
319 | - Headurl string `json:"headurl"` | ||
320 | - Editcoin int `json:"editcoin"` | ||
321 | - Ver string `json:"ver"` | ||
322 | -} | ||
323 | - | ||
324 | -type AddCoinDesc struct { | ||
325 | - Sign string `json:"sign"` | ||
326 | - Sign_type string `json:"sign_type"` | ||
327 | - Time_stamp string `json:"time_stamp"` | ||
328 | - Gameid string `json:"gameid"` | ||
329 | - Channel string `json:"channel"` | ||
330 | - Uid int `json:"uid"` | ||
331 | - Coin int `json:"coin"` | ||
332 | - Typ int `json:"typ"` | ||
333 | -} | ||
334 | - | ||
335 | -type AddCoinResultData struct { | ||
336 | - Mycoin int `json:"mycoin"` | ||
337 | -} | ||
338 | - | ||
339 | -type AddCoinResp struct { | ||
340 | - Code string `json:"code"` | ||
341 | - Msg string `json:"msg"` | ||
342 | - Data AddCoinResultData `json:"data"` | ||
343 | -} | ||
344 | - | ||
345 | -type GetCoinDesc struct { | ||
346 | - Sign string `json:"sign"` | ||
347 | - Sign_type string `json:"sign_type"` | ||
348 | - Time_stamp string `json:"time_stamp"` | ||
349 | - Gameid string `json:"gameid"` | ||
350 | - Channel string `json:"channel"` | ||
351 | - Uid int `json:"uid"` | ||
352 | -} | ||
353 | - | ||
354 | -type GetCashResp struct { | ||
355 | - Code string `json:"code"` | ||
356 | - Msg string `json:"msg"` | ||
357 | -} | ||
358 | - | ||
359 | -type GetCashListDesc struct { | ||
360 | - Sign string `json:"sign"` | ||
361 | - Sign_type string `json:"sign_type"` | ||
362 | - Time_stamp string `json:"time_stamp"` | ||
363 | - Gameid string `json:"gameid"` | ||
364 | - Channel string `json:"channel"` | ||
365 | - Uid int `json:"uid"` | ||
366 | - Start int `json:"start"` | ||
367 | - Number int `json:"number"` | ||
368 | -} | ||
369 | - | ||
370 | -type GetCashListResp struct { | ||
371 | - Code string `json:"code"` | ||
372 | - Msg string `json:"msg"` | ||
373 | - Data []WithDrawRecord `json:"data"` | ||
374 | -} |
src/HttpServer/logic/errordef.go
1 | package logic | 1 | package logic |
2 | 2 | ||
3 | const ( | 3 | const ( |
4 | - ERROR_OK = 0 //没有错误 | ||
5 | - ERROR_SRV_ERROR = 1 //服务器错误 | ||
6 | - ERROR_JSONUNMASH_ERROR = 2 //json解析错误 | ||
7 | - ERROR_WATCHADS_ZEOR = 3 //看视频次数已经耗尽 | ||
8 | - ERROR_GETCONFIG_FAILED = 4 //获取配置失败 | ||
9 | - ERROR_GUANGOLD_NOTENOUGH = 5 //存钱罐金币不足 | ||
10 | - ERROR_DRAWGUAN_FAILED = 6 //从存钱罐提取金币不满足限制 | ||
11 | - ERROR_DRAWGOLD_FAILED = 7 //从存钱罐提取金币失败了 | ||
12 | - ERROR_GETCASH_FAILED = 8 //从后台提现失败了 | ||
13 | - ERROR_GETCASH_GOLDNOTENOUGH_FAILED = 9 //提现金币不足 | ||
14 | - ERROR_ADDWITHDRAW_LISTFAILED = 10 //添加提现记录失败 | ||
15 | - ERROR_WITHDRAWLVLIMIT = 11 //提现等级不够 | ||
16 | - ERROR_WITHDRAWONLYONE = 12 //新人专享只能提取一次 | ||
17 | - ERROR_PRENOTFINISH = 13 //前置档位未提现 | ||
18 | - ERROR_TASKCANNOTGET = 14 //当前任务未完成或已领取 | ||
19 | - ERROR_TASKID_WRONG = 15 //当前任务id错误 | ||
20 | - ERROR_TASKPRE_NOTGET = 16 //前置任务还未领取 | ||
21 | - ERROR_LVREWARDALREADYGET = 17 //当前等级奖励已经领取过了 | ||
22 | - ERROR_SINGALREADYTODAY = 18 //今日已经签过到啦 | ||
23 | - ERROR_SINGDATAFAILED = 19 //签到数据异常 | ||
24 | - ERROR_GUANCNTNOTENOUGH = 20 //存钱罐次数不足 | 4 | + ERROR_OK = 0 //没有错误 |
5 | + | ||
25 | ) | 6 | ) |
src/HttpServer/logic/function.go
1 | package logic | 1 | package logic |
2 | 2 | ||
3 | -import ( | ||
4 | - "HttpServer/jsonconf" | ||
5 | - "HttpServer/redishandler" | ||
6 | - "bytes" | ||
7 | - "common/logger" | ||
8 | - "common/redis" | ||
9 | - "crypto/md5" | ||
10 | - "encoding/hex" | ||
11 | - "encoding/json" | ||
12 | - "errors" | ||
13 | - "io/ioutil" | ||
14 | - "net/http" | ||
15 | - "sort" | ||
16 | - "strconv" | ||
17 | - "time" | ||
18 | -) | ||
19 | - | ||
20 | -func (v *TaskList) Len() int { | ||
21 | - return len(v.Taskdata) | ||
22 | -} | ||
23 | - | ||
24 | -func (v *TaskList) Swap(i, j int) { | ||
25 | - v.Taskdata[i], v.Taskdata[j] = v.Taskdata[j], v.Taskdata[i] | ||
26 | -} | ||
27 | - | ||
28 | -func (v *TaskList) Less(i, j int) bool { | ||
29 | - return v.Taskdata[i].Taskstatus > v.Taskdata[j].Taskstatus | ||
30 | -} | 3 | +import "net/http" |
31 | 4 | ||
32 | func SetHeader(w http.ResponseWriter) { | 5 | func SetHeader(w http.ResponseWriter) { |
33 | w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域 | 6 | w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域 |
34 | w.Header().Set("Content-Type", "application/json") | 7 | w.Header().Set("Content-Type", "application/json") |
35 | w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Uuid") | 8 | w.Header().Set("Access-Control-Allow-Headers", "Content-Type,Uuid") |
36 | } | 9 | } |
37 | - | ||
38 | -func SaveUserInfo(data *UserData) error { | ||
39 | - | ||
40 | - savestr, err := json.Marshal(data) | ||
41 | - if err != nil { | ||
42 | - return err | ||
43 | - } | ||
44 | - | ||
45 | - err = redishandler.GetRedisClient().HSet(redis.USER_DATA_KEY, strconv.Itoa(data.Userid), string(savestr)) | ||
46 | - | ||
47 | - return err | ||
48 | -} | ||
49 | - | ||
50 | -func GetUserInfo(uuid int) (*UserData, error) { | ||
51 | - | ||
52 | - data, err := redishandler.GetRedisClient().HGet(redis.USER_DATA_KEY, strconv.Itoa(uuid)) | ||
53 | - if err != nil { | ||
54 | - return nil, err | ||
55 | - } | ||
56 | - var tmp UserData | ||
57 | - err = json.Unmarshal([]byte(data), &tmp) | ||
58 | - if err != nil { | ||
59 | - return nil, err | ||
60 | - } | ||
61 | - | ||
62 | - return &tmp, nil | ||
63 | -} | ||
64 | - | ||
65 | -func GetUserLvConfig(lv int) *jsonconf.LevelDesc { | ||
66 | - for _, val := range jsonconf.GetJsonConf().LevelConfig { | ||
67 | - if lv == val.Level { | ||
68 | - return &val | ||
69 | - } | ||
70 | - } | ||
71 | - return nil | ||
72 | -} | ||
73 | - | ||
74 | -func GetTaskConfig(taskid int) *jsonconf.AchieveDesc { | ||
75 | - for _, val := range jsonconf.GetJsonConf().TaskConfig { | ||
76 | - if val.Id == taskid { | ||
77 | - return &val | ||
78 | - } | ||
79 | - } | ||
80 | - return nil | ||
81 | -} | ||
82 | - | ||
83 | -func GetAchieveConfig(taskid int) *jsonconf.AchieveDesc { | ||
84 | - for _, val := range jsonconf.GetJsonConf().AchieventConfig { | ||
85 | - if val.Id == taskid { | ||
86 | - return &val | ||
87 | - } | ||
88 | - } | ||
89 | - return nil | ||
90 | -} | ||
91 | - | ||
92 | -func (uinfo *UserData) CalcTaskList(list *TaskList) { | ||
93 | - | ||
94 | - for k, val := range list.Taskdata { | ||
95 | - //未完成的才做判断 | ||
96 | - if val.Taskstatus != 1 { | ||
97 | - continue | ||
98 | - } | ||
99 | - cfg := GetTaskConfig(val.Taskid) | ||
100 | - if cfg == nil { | ||
101 | - logger.Error("CalcTaskList GetTaskConfig failed id=%v", val.Taskid) | ||
102 | - continue | ||
103 | - } | ||
104 | - | ||
105 | - if cfg.TaskType == DAILY_TASKTYPE_LOGIN { | ||
106 | - nowloginday := time.Now().Day() | ||
107 | - lasttime := time.Unix(int64(uinfo.LastLoginTime), 0) | ||
108 | - lastloginday := lasttime.Day() | ||
109 | - | ||
110 | - if nowloginday == lastloginday && val.Taskstatus == 1 { | ||
111 | - list.Taskdata[k].Taskprogress = 1 | ||
112 | - list.Taskdata[k].Taskstatus = 2 | ||
113 | - } | ||
114 | - } else if cfg.TaskType == DAILY_TASKTYPE_GETGUANCNT { | ||
115 | - list.Taskdata[k].Taskprogress = uinfo.GetFromGuanCnt | ||
116 | - //当日提取存钱罐次数 | ||
117 | - if uinfo.GetFromGuanCnt >= cfg.Num { | ||
118 | - list.Taskdata[k].Taskstatus = 2 | ||
119 | - } | ||
120 | - } else if cfg.TaskType == DAILY_TASKTYPE_PASSLEVEL { | ||
121 | - list.Taskdata[k].Taskprogress = uinfo.Task.PassLevel | ||
122 | - if uinfo.Task.PassLevel >= cfg.Num { | ||
123 | - list.Taskdata[k].Taskstatus = 2 | ||
124 | - } | ||
125 | - } else if cfg.TaskType == DAILY_TASKTYPE_USEITEM { | ||
126 | - list.Taskdata[k].Taskprogress = uinfo.Task.UseItemCnt | ||
127 | - if uinfo.Task.UseItemCnt >= cfg.Num { | ||
128 | - list.Taskdata[k].Taskstatus = 2 | ||
129 | - } | ||
130 | - } else if cfg.TaskType == DAILY_TASKTYPE_GETREDBAG { | ||
131 | - list.Taskdata[k].Taskprogress = uinfo.Task.GetRedbagCnt | ||
132 | - if uinfo.Task.GetRedbagCnt >= cfg.Num { | ||
133 | - list.Taskdata[k].Taskstatus = 2 | ||
134 | - } | ||
135 | - } else if cfg.TaskType == DAILY_TASKTYPE_GETGUANGOLD { | ||
136 | - list.Taskdata[k].Taskprogress = uinfo.Task.GetGuanGold | ||
137 | - if uinfo.Task.GetGuanGold >= cfg.Num { | ||
138 | - list.Taskdata[k].Taskstatus = 2 | ||
139 | - } | ||
140 | - } else if cfg.TaskType == DAILY_TASKTYPE_ONLINEMIN { | ||
141 | - list.Taskdata[k].Taskprogress = uinfo.Task.OnlineMin | ||
142 | - if uinfo.Task.OnlineMin >= cfg.Num { | ||
143 | - list.Taskdata[k].Taskstatus = 2 | ||
144 | - } | ||
145 | - } | ||
146 | - | ||
147 | - } | ||
148 | - | ||
149 | - //需要保存到redis | ||
150 | - SaveTaskInfo(uinfo.Userid, 1, list) | ||
151 | - | ||
152 | - //排序 | ||
153 | - sort.Sort(list) | ||
154 | -} | ||
155 | - | ||
156 | -func (uinfo *UserData) CalcAchieveProgress(ttype int) int { | ||
157 | - rtval := 0 | ||
158 | - switch ttype { | ||
159 | - case ACHIEVETYPE_WATCHADDS: | ||
160 | - rtval = uinfo.Achieve.WatchAdsCnt | ||
161 | - case ACHIEVETYPE_USERLV: | ||
162 | - rtval = uinfo.Lv | ||
163 | - case ACHIEVETYPE_KILLSTAR: | ||
164 | - rtval = uinfo.Achieve.KillStar | ||
165 | - case ACHIEVETYPE_GETGUANCNT: | ||
166 | - rtval = uinfo.Achieve.SumGetGuan | ||
167 | - case ACHIEVETYPE_USEITEMCNT: | ||
168 | - rtval = uinfo.Achieve.SumUseItemCnt | ||
169 | - default: | ||
170 | - logger.Error("CalcAchieveProgress type wrong ttype=%v", ttype) | ||
171 | - } | ||
172 | - | ||
173 | - return rtval | ||
174 | -} | ||
175 | - | ||
176 | -//成就返回的是新的成就列表 | ||
177 | -func (uinfo *UserData) CalcAchieveList(list *TaskList) *TaskList { | ||
178 | - newlist := new(TaskList) | ||
179 | - curtype := -1 //记录当前类型 | ||
180 | - | ||
181 | - //第一遍首先将所有进度设置为正确的状态 | ||
182 | - for k, val := range list.Taskdata { | ||
183 | - cfg := GetAchieveConfig(val.Taskid) | ||
184 | - if cfg == nil { | ||
185 | - logger.Error("CalcAchieveList GetTaskConfig failed id=%v", val.Taskid) | ||
186 | - continue | ||
187 | - } | ||
188 | - | ||
189 | - list.Taskdata[k].Taskprogress = uinfo.CalcAchieveProgress(cfg.TaskType) | ||
190 | - if val.Taskstatus == 1 { | ||
191 | - switch cfg.TaskType { | ||
192 | - case ACHIEVETYPE_WATCHADDS: | ||
193 | - if uinfo.Achieve.WatchAdsCnt >= cfg.Num { | ||
194 | - list.Taskdata[k].Taskstatus = 2 | ||
195 | - } | ||
196 | - case ACHIEVETYPE_USERLV: | ||
197 | - if uinfo.Lv >= cfg.Num { | ||
198 | - list.Taskdata[k].Taskstatus = 2 | ||
199 | - } | ||
200 | - case ACHIEVETYPE_KILLSTAR: | ||
201 | - if uinfo.Achieve.KillStar >= cfg.Num { | ||
202 | - list.Taskdata[k].Taskstatus = 2 | ||
203 | - } | ||
204 | - case ACHIEVETYPE_GETGUANCNT: | ||
205 | - if uinfo.Achieve.SumGetGuan >= cfg.Num { | ||
206 | - list.Taskdata[k].Taskstatus = 2 | ||
207 | - } | ||
208 | - case ACHIEVETYPE_USEITEMCNT: | ||
209 | - if uinfo.Achieve.SumUseItemCnt >= cfg.Num { | ||
210 | - list.Taskdata[k].Taskstatus = 2 | ||
211 | - } | ||
212 | - default: | ||
213 | - logger.Error("CalcAchieveProgress type wrong ttype=%v", cfg.TaskType) | ||
214 | - } | ||
215 | - } | ||
216 | - | ||
217 | - } | ||
218 | - | ||
219 | - for k, val := range list.Taskdata { | ||
220 | - | ||
221 | - cfg := GetAchieveConfig(val.Taskid) | ||
222 | - if cfg == nil { | ||
223 | - logger.Error("CalcAchieveList GetTaskConfig failed id=%v", val.Taskid) | ||
224 | - continue | ||
225 | - } | ||
226 | - | ||
227 | - if val.Taskstatus == 2 { | ||
228 | - //未领取已完成 只需要加入第一种 | ||
229 | - if curtype == cfg.TaskType { | ||
230 | - continue | ||
231 | - } else { | ||
232 | - //将类型加入返回列表 | ||
233 | - newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) | ||
234 | - curtype = cfg.TaskType | ||
235 | - } | ||
236 | - } else if val.Taskstatus == 1 { | ||
237 | - //未完成 返回第一个 | ||
238 | - if curtype == cfg.TaskType { | ||
239 | - continue | ||
240 | - } else { | ||
241 | - //将类型加入返回列表 | ||
242 | - newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) | ||
243 | - curtype = cfg.TaskType | ||
244 | - } | ||
245 | - } else { | ||
246 | - //已领取 需要判断一下是否最后一项 | ||
247 | - if k != len(list.Taskdata)-1 { | ||
248 | - //不是最后一条数据 | ||
249 | - nextcfg := GetAchieveConfig(list.Taskdata[k+1].Taskid) | ||
250 | - if nextcfg != nil { | ||
251 | - if nextcfg.TaskType != cfg.TaskType { | ||
252 | - //下面一天不是此类型了 | ||
253 | - newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) | ||
254 | - curtype = cfg.TaskType | ||
255 | - } | ||
256 | - } | ||
257 | - | ||
258 | - } else { | ||
259 | - //最后一条 加入 | ||
260 | - newlist.Taskdata = append(newlist.Taskdata, list.Taskdata[k]) | ||
261 | - curtype = cfg.TaskType | ||
262 | - } | ||
263 | - } | ||
264 | - | ||
265 | - } | ||
266 | - | ||
267 | - //保存旧的列表 | ||
268 | - SaveTaskInfo(uinfo.Userid, 2, list) | ||
269 | - | ||
270 | - //将返回的列表排序 | ||
271 | - sort.Sort(newlist) | ||
272 | - logger.Info("CalcAchieveList alist=%v", newlist) | ||
273 | - return newlist | ||
274 | -} | ||
275 | - | ||
276 | -func SaveTaskInfo(uuid, tasktype int, list *TaskList) error { | ||
277 | - savestr, err := json.Marshal(list) | ||
278 | - if err != nil { | ||
279 | - logger.Error("SaveTaskInfo err =%v", err) | ||
280 | - return err | ||
281 | - } | ||
282 | - | ||
283 | - if tasktype == 1 { | ||
284 | - err = redishandler.GetRedisClient().HSet(redis.USER_TASKINFO_LIST, strconv.Itoa(uuid), string(savestr)) | ||
285 | - } else if tasktype == 2 { | ||
286 | - err = redishandler.GetRedisClient().HSet(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid), string(savestr)) | ||
287 | - //logger.Info("SaveTaskInfo savestr=%v", string(savestr)) | ||
288 | - } else { | ||
289 | - logger.Error("tasktype invalid") | ||
290 | - return errors.New("tasktype invalid") | ||
291 | - } | ||
292 | - return err | ||
293 | -} | ||
294 | - | ||
295 | -func GetTaskInfo(uuid, tasktype int) (*TaskList, error) { | ||
296 | - var data string | ||
297 | - var err error | ||
298 | - if tasktype == 1 { | ||
299 | - data, err = redishandler.GetRedisClient().HGet(redis.USER_TASKINFO_LIST, strconv.Itoa(uuid)) | ||
300 | - } else if tasktype == 2 { | ||
301 | - data, err = redishandler.GetRedisClient().HGet(redis.USER_ACHIEVEMENTINFO_LIST, strconv.Itoa(uuid)) | ||
302 | - } else { | ||
303 | - logger.Error("tasktype invalid") | ||
304 | - return nil, errors.New("tasktype invalid") | ||
305 | - } | ||
306 | - | ||
307 | - if err != nil { | ||
308 | - return nil, err | ||
309 | - } | ||
310 | - | ||
311 | - var list TaskList | ||
312 | - err = json.Unmarshal([]byte(data), &list) | ||
313 | - if err != nil { | ||
314 | - logger.Error("GetTaskInfo err=%v", err) | ||
315 | - return nil, err | ||
316 | - } | ||
317 | - | ||
318 | - return &list, err | ||
319 | -} | ||
320 | - | ||
321 | -//处理领取任务 | ||
322 | -func (uinfo *UserData) HandleGetTaskReward(req *GettaskrewardReq, resp *GettaskrewardResp, list *TaskList) error { | ||
323 | - isfind := false | ||
324 | - index := -1 | ||
325 | - var taskdesc *TaskListDesc | ||
326 | - for k, val := range list.Taskdata { | ||
327 | - if val.Taskid == req.Taskid { | ||
328 | - isfind = true | ||
329 | - index = k | ||
330 | - taskdesc = &val | ||
331 | - break | ||
332 | - } | ||
333 | - } | ||
334 | - | ||
335 | - logger.Info("HandleGetTaskReward index=%v taskdesc=%v", index, taskdesc) | ||
336 | - if isfind && taskdesc != nil && index != -1 { | ||
337 | - if taskdesc.Taskstatus != 2 { | ||
338 | - //状态不是可领取状态 无法领取 | ||
339 | - resp.Code = ERROR_TASKCANNOTGET | ||
340 | - resp.Message = "当前任务未完成或已领取" | ||
341 | - return errors.New("当前任务未完成或已领取") | ||
342 | - } | ||
343 | - | ||
344 | - //状态对的情况 如果是成就下需要判断前置条件是否被 | ||
345 | - if req.Tasktype == 2 && index > 0 { | ||
346 | - precfg := GetAchieveConfig(list.Taskdata[index-1].Taskid) | ||
347 | - nowcfg := GetAchieveConfig(taskdesc.Taskid) | ||
348 | - logger.Info("HandleGetTaskRewardGetTaskConfig precfg=%v nowcfg=%v", precfg, nowcfg) | ||
349 | - if precfg != nil && nowcfg != nil && precfg.TaskType == nowcfg.TaskType && list.Taskdata[index-1].Taskstatus != 0 { | ||
350 | - resp.Code = ERROR_TASKPRE_NOTGET | ||
351 | - resp.Message = "前置任务还未领取" | ||
352 | - return errors.New("当前任务未完成或已领取") | ||
353 | - } | ||
354 | - } | ||
355 | - } else { | ||
356 | - resp.Code = ERROR_TASKID_WRONG | ||
357 | - resp.Message = "当前任务id错误" | ||
358 | - return errors.New("当前任务id错误") | ||
359 | - } | ||
360 | - | ||
361 | - var cfg *jsonconf.AchieveDesc | ||
362 | - if req.Tasktype == 2 { | ||
363 | - cfg = GetAchieveConfig(taskdesc.Taskid) | ||
364 | - if cfg == nil || len(cfg.Reward) < 2 { | ||
365 | - resp.Code = ERROR_SRV_ERROR | ||
366 | - resp.Message = "网络错误" | ||
367 | - return errors.New("获取配置失败") | ||
368 | - } | ||
369 | - } else { | ||
370 | - cfg = GetTaskConfig(taskdesc.Taskid) | ||
371 | - if cfg == nil || len(cfg.Reward) < 2 { | ||
372 | - resp.Code = ERROR_SRV_ERROR | ||
373 | - resp.Message = "网络错误" | ||
374 | - return errors.New("获取配置失败") | ||
375 | - } | ||
376 | - } | ||
377 | - | ||
378 | - //将状态置位已领取 | ||
379 | - list.Taskdata[index].Taskstatus = 0 | ||
380 | - //发奖励 | ||
381 | - sub := len(cfg.Reward) / 2 | ||
382 | - for i := 0; i < sub; i++ { | ||
383 | - rtype := cfg.Reward[i*2] | ||
384 | - rnum := cfg.Reward[i*2+1] | ||
385 | - r1, r2, r3, r4, r5, r6, r7 := uinfo.RewardUser(rtype, rnum, req.Gameid, req.Channel) | ||
386 | - if resp.Data.Lv != r1 { | ||
387 | - resp.Data.Lv = r1 | ||
388 | - resp.Data.Costtime = uinfo.UpLvCostTime / 3600 | ||
389 | - } | ||
390 | - resp.Data.Rewardstar += r2 | ||
391 | - resp.Data.Chuiitem += r3 | ||
392 | - resp.Data.Shuaitem += r4 | ||
393 | - resp.Data.Swapitem += r5 | ||
394 | - resp.Data.Eliminitem += r6 | ||
395 | - resp.Data.Goldnum = r7 | ||
396 | - } | ||
397 | - | ||
398 | - return nil | ||
399 | -} | ||
400 | - | ||
401 | -func (uinfo *UserData) RewardUser(rtype int, num int, gameid string, channel string) (int, int, int, int, int, int, int) { | ||
402 | - logger.Info("RewardUser rtype=%v,num=%v", rtype, num) | ||
403 | - switch rtype { | ||
404 | - case REWARDTYPE_STAR: | ||
405 | - return 0, num, 0, 0, 0, 0, 0 | ||
406 | - case REWARDTYPE_CHUI: | ||
407 | - return 0, 0, num, 0, 0, 0, 0 | ||
408 | - case REWARDTYPE_SHUA: | ||
409 | - return 0, 0, 0, num, 0, 0, 0 | ||
410 | - case REWARDTYPE_SWAP: | ||
411 | - return 0, 0, 0, 0, num, 0, 0 | ||
412 | - case REWARDTYPE_ELIMITE: | ||
413 | - return 0, 0, 0, 0, 0, num, 0 | ||
414 | - case REWARDTYPE_EXP: | ||
415 | - isup := uinfo.AddUserExp(num) | ||
416 | - if isup { | ||
417 | - return uinfo.Lv, 0, 0, 0, 0, 0, 0 | ||
418 | - } else { | ||
419 | - return 0, 0, 0, 0, 0, 0, 0 | ||
420 | - } | ||
421 | - case REWARDTYPE_GOLD: | ||
422 | - goldnum, err := AddCoinToSdk(uinfo.Userid, num, gameid, channel, 100) | ||
423 | - if err != nil { | ||
424 | - logger.Error("RewardUser failer err=%v", err) | ||
425 | - } | ||
426 | - uinfo.RealGold = goldnum | ||
427 | - //uinfo.RealGold += num | ||
428 | - return 0, 0, 0, 0, 0, 0, uinfo.RealGold | ||
429 | - default: | ||
430 | - return 0, 0, 0, 0, 0, 0, 0 | ||
431 | - } | ||
432 | - return 0, 0, 0, 0, 0, 0, 0 | ||
433 | -} | ||
434 | - | ||
435 | -func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) error { | ||
436 | - | ||
437 | - var initdata UserData | ||
438 | - initdata.Lv = 1 | ||
439 | - initdata.LvRewardGet = 1 | ||
440 | - initdata.Exp = 0 | ||
441 | - initdata.Userid = uuid | ||
442 | - initdata.ContinueLoginDay = 1 | ||
443 | - initdata.GetFromGuanCnt = 0 | ||
444 | - initdata.GuanGold = 0 | ||
445 | - initdata.LastLoginTime = int(time.Now().Unix()) | ||
446 | - goldnum, _ := GetCoinFromSdk(uuid, data.Gameid, data.Channel) | ||
447 | - initdata.RealGold = goldnum | ||
448 | - initdata.WatchAddsTime = WATCH_ADD_DAY_LIMIT | ||
449 | - initdata.LeftFreeRB = FREE_REDBAG_NUM | ||
450 | - initdata.UpLvCostTime = 0 | ||
451 | - initdata.UpLvCostTimeSec = int(time.Now().Unix()) | ||
452 | - | ||
453 | - for _, val := range jsonconf.GetJsonConf().WithDrawConfig { | ||
454 | - var tmp WithDrawDesc | ||
455 | - tmp.Cid = val.Id | ||
456 | - tmp.Cnum = val.Money | ||
457 | - if val.Isnew == 1 { | ||
458 | - tmp.Isnew = 1 | ||
459 | - } else { | ||
460 | - tmp.Isnew = 2 | ||
461 | - } | ||
462 | - tmp.Limitlv = val.Level | ||
463 | - if val.Id == 1 { | ||
464 | - tmp.Preisfind = 1 | ||
465 | - } else { | ||
466 | - tmp.Preisfind = 0 | ||
467 | - } | ||
468 | - initdata.WithDraw.Cashdata = append(initdata.WithDraw.Cashdata, tmp) | ||
469 | - } | ||
470 | - | ||
471 | - resp.Data.Guangold = initdata.GuanGold | ||
472 | - resp.Data.Leftredbagcnt = initdata.WatchAddsTime | ||
473 | - resp.Data.Walletgold = initdata.RealGold | ||
474 | - resp.Data.Userlv = initdata.Lv | ||
475 | - | ||
476 | - err := SaveUserInfo(&initdata) | ||
477 | - if err != nil { | ||
478 | - logger.Error("InitUserInfo err=%v", err) | ||
479 | - return err | ||
480 | - } | ||
481 | - | ||
482 | - //初始化一下玩家的任务与成就数据数据 | ||
483 | - err = InitTaskAndAchievement(uuid) | ||
484 | - | ||
485 | - return err | ||
486 | -} | ||
487 | - | ||
488 | -func (t *TaskList) IsInTaskList(id int) bool { | ||
489 | - for _, val := range t.Taskdata { | ||
490 | - if val.Taskid == id { | ||
491 | - return true | ||
492 | - } | ||
493 | - } | ||
494 | - return false | ||
495 | -} | ||
496 | - | ||
497 | -func InitTaskAndAchievement(uuid int) error { | ||
498 | - //先初始化任务 | ||
499 | - tlist, err := GetTaskInfo(uuid, 1) | ||
500 | - if tlist == nil { | ||
501 | - tasklist := new(TaskList) | ||
502 | - for _, val := range jsonconf.GetJsonConf().TaskConfig { | ||
503 | - var tmp TaskListDesc | ||
504 | - tmp.Taskstatus = 1 | ||
505 | - tmp.Taskid = val.Id | ||
506 | - tmp.Taskprogress = 0 | ||
507 | - tasklist.Taskdata = append(tasklist.Taskdata, tmp) | ||
508 | - } | ||
509 | - | ||
510 | - err := SaveTaskInfo(uuid, 1, tasklist) | ||
511 | - if err != nil { | ||
512 | - logger.Error("InitTaskAndAchievement err=%v", err) | ||
513 | - //return err | ||
514 | - } | ||
515 | - } else { | ||
516 | - for _, val := range jsonconf.GetJsonConf().TaskConfig { | ||
517 | - if !tlist.IsInTaskList(val.Id) { | ||
518 | - var tmp TaskListDesc | ||
519 | - tmp.Taskstatus = 1 | ||
520 | - tmp.Taskid = val.Id | ||
521 | - tmp.Taskprogress = 0 | ||
522 | - tlist.Taskdata = append(tlist.Taskdata, tmp) | ||
523 | - } | ||
524 | - } | ||
525 | - | ||
526 | - for k, _ := range tlist.Taskdata { | ||
527 | - tlist.Taskdata[k].Taskprogress = 0 | ||
528 | - tlist.Taskdata[k].Taskstatus = 1 | ||
529 | - | ||
530 | - } | ||
531 | - | ||
532 | - err := SaveTaskInfo(uuid, 1, tlist) | ||
533 | - if err != nil { | ||
534 | - logger.Error("InitTaskAndAchievement err=%v", err) | ||
535 | - //return err | ||
536 | - } | ||
537 | - } | ||
538 | - | ||
539 | - //成就 | ||
540 | - alist, err := GetTaskInfo(uuid, 2) | ||
541 | - if alist == nil { | ||
542 | - achievelist := new(TaskList) | ||
543 | - for _, val := range jsonconf.GetJsonConf().AchieventConfig { | ||
544 | - var tmp TaskListDesc | ||
545 | - tmp.Taskstatus = 1 | ||
546 | - tmp.Taskid = val.Id | ||
547 | - tmp.Taskprogress = 0 | ||
548 | - achievelist.Taskdata = append(achievelist.Taskdata, tmp) | ||
549 | - } | ||
550 | - | ||
551 | - err = SaveTaskInfo(uuid, 2, achievelist) | ||
552 | - if err != nil { | ||
553 | - logger.Error("InitTaskAndAchievement err=%v", err) | ||
554 | - return err | ||
555 | - } | ||
556 | - } else { | ||
557 | - for _, val := range jsonconf.GetJsonConf().AchieventConfig { | ||
558 | - if !alist.IsInTaskList(val.Id) { | ||
559 | - var tmp TaskListDesc | ||
560 | - tmp.Taskstatus = 1 | ||
561 | - tmp.Taskid = val.Id | ||
562 | - tmp.Taskprogress = 0 | ||
563 | - alist.Taskdata = append(alist.Taskdata, tmp) | ||
564 | - } | ||
565 | - } | ||
566 | - | ||
567 | - err = SaveTaskInfo(uuid, 2, alist) | ||
568 | - if err != nil { | ||
569 | - logger.Error("InitTaskAndAchievement err=%v", err) | ||
570 | - return err | ||
571 | - } | ||
572 | - } | ||
573 | - | ||
574 | - return nil | ||
575 | -} | ||
576 | - | ||
577 | -//计算当日可提取次数 | ||
578 | -func (u *UserData) CalcTotalCnt() int { | ||
579 | - maxtime := 0 | ||
580 | - usertime := 0 | ||
581 | - for _, val := range jsonconf.GetJsonConf().MoneyBoxTimeConfig { | ||
582 | - if maxtime < val.Times { | ||
583 | - maxtime = val.Times | ||
584 | - } | ||
585 | - if val.Login == u.ContinueLoginDay { | ||
586 | - usertime = val.Times | ||
587 | - } | ||
588 | - } | ||
589 | - | ||
590 | - if usertime == 0 { | ||
591 | - usertime = maxtime | ||
592 | - } | ||
593 | - return usertime | ||
594 | -} | ||
595 | - | ||
596 | -func (u *UserData) HandlePassDay() { | ||
597 | - isdiffday := false | ||
598 | - nowtime := time.Now() | ||
599 | - lasttime := time.Unix(int64(u.LastLoginTime), 0) | ||
600 | - nowdaynum := time.Now().Day() | ||
601 | - lastdaynum := time.Unix(int64(u.LastLoginTime), 0).Day() | ||
602 | - nowtimestamp := time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 0, 0, 0, 0, nowtime.Location()) | ||
603 | - lasttimestamp := time.Date(lasttime.Year(), lasttime.Month(), lasttime.Day(), 0, 0, 0, 0, lasttime.Location()) | ||
604 | - | ||
605 | - logger.Info("HandlePassDay lasttime=%v,lasttimestamp=%v", lasttime, lasttimestamp) | ||
606 | - if nowdaynum == lastdaynum { | ||
607 | - //同一天 | ||
608 | - if int64(u.LastLoginTime)-time.Now().Unix() > 86400 { | ||
609 | - //已经过了很多天了 | ||
610 | - //u.LastLoginTime = int(time.Now().Unix()) | ||
611 | - u.ContinueLoginDay = 1 | ||
612 | - isdiffday = true | ||
613 | - } else { | ||
614 | - //t同一天 不做处理 | ||
615 | - } | ||
616 | - } else { | ||
617 | - //不是同一天了 | ||
618 | - isdiffday = true | ||
619 | - if nowtimestamp.Unix() != lasttimestamp.Unix()+86400 { | ||
620 | - //超过一天了 | ||
621 | - u.ContinueLoginDay = 1 | ||
622 | - } else { | ||
623 | - u.ContinueLoginDay++ | ||
624 | - } | ||
625 | - logger.Info("HandlePassDay now=%v,last=%v", nowtimestamp.Unix(), lasttimestamp.Unix()) | ||
626 | - } | ||
627 | - | ||
628 | - if isdiffday { | ||
629 | - //跨天了 | ||
630 | - u.WatchAddsTime = WATCH_ADD_DAY_LIMIT | ||
631 | - //todo 重置任务相关的数据 | ||
632 | - u.GetFromGuanCnt = 0 | ||
633 | - | ||
634 | - u.Task.GetGuanGold = 0 | ||
635 | - u.Task.GetRedbagCnt = 0 | ||
636 | - u.Task.OnlineMin = 0 | ||
637 | - u.Task.PassLevel = 0 | ||
638 | - u.Task.UseItemCnt = 0 | ||
639 | - | ||
640 | - //任务也需要处理 | ||
641 | - /*tasklist, err := GetTaskInfo(u.Userid, 1) | ||
642 | - if err == nil { | ||
643 | - for k, _ := range tasklist.Taskdata { | ||
644 | - tasklist.Taskdata[k].Taskstatus = 1 | ||
645 | - tasklist.Taskdata[k].Taskprogress = 0 | ||
646 | - } | ||
647 | - } else { | ||
648 | - logger.Error("HandlePassDay GetTaskInfo failer err=%v", err) | ||
649 | - }*/ | ||
650 | - /*tasklist := new(TaskList) | ||
651 | - for _, val := range jsonconf.GetJsonConf().TaskConfig { | ||
652 | - var tmp TaskListDesc | ||
653 | - tmp.Taskstatus = 1 | ||
654 | - tmp.Taskid = val.Id | ||
655 | - tmp.Taskprogress = 0 | ||
656 | - tasklist.Taskdata = append(tasklist.Taskdata, tmp) | ||
657 | - } | ||
658 | - | ||
659 | - err := SaveTaskInfo(u.Userid, 1, tasklist) | ||
660 | - if err != nil { | ||
661 | - logger.Error("InitTaskAndAchievement err=%v", err) | ||
662 | - }*/ | ||
663 | - err := InitTaskAndAchievement(u.Userid) | ||
664 | - if err != nil { | ||
665 | - logger.Error("InitTaskAndAchievement err=%v", err) | ||
666 | - } | ||
667 | - | ||
668 | - //签到数据处理 | ||
669 | - u.IsSignToday = 0 | ||
670 | - if u.SignSum >= 7 { | ||
671 | - //进入新的一轮 | ||
672 | - u.SignSum = 0 | ||
673 | - u.SignRound++ | ||
674 | - } | ||
675 | - } | ||
676 | - | ||
677 | - u.LastLoginTime = int(nowtime.Unix()) | ||
678 | - | ||
679 | - SaveUserInfo(u) | ||
680 | -} | ||
681 | - | ||
682 | -func GetUserData(uuid int, req *UserLoginReq, resp *UserLoginResp) error { | ||
683 | - data, err := GetUserInfo(uuid) | ||
684 | - if err != nil || data == nil { | ||
685 | - resp.Code = ERROR_SRV_ERROR | ||
686 | - resp.Message = "ERROR_SRV_ERROR" | ||
687 | - return err | ||
688 | - } | ||
689 | - | ||
690 | - //此处要处理一下跨天逻辑 | ||
691 | - data.HandlePassDay() | ||
692 | - | ||
693 | - //此处处理一下从sdk拉取钱包金币数量 | ||
694 | - gold, err := GetCoinFromSdk(uuid, req.Gameid, req.Channel) | ||
695 | - if err == nil { | ||
696 | - data.RealGold = gold | ||
697 | - } else { | ||
698 | - logger.Error("GetCoinFromSdk err=%v", err) | ||
699 | - } | ||
700 | - | ||
701 | - //处理一下领取等级奖励金币 | ||
702 | - if data.LvRewardGet == 1 { | ||
703 | - cfg := GetUserLvConfig(data.Lv) | ||
704 | - if cfg != nil { | ||
705 | - gold, err := AddCoinToSdk(uuid, cfg.Cash, req.Gameid, req.Channel, 100) | ||
706 | - if err != nil { | ||
707 | - data.RealGold = gold | ||
708 | - } else { | ||
709 | - logger.Error("GetCoinFromSdk err=%v", err) | ||
710 | - } | ||
711 | - } | ||
712 | - data.LvRewardGet = 2 | ||
713 | - | ||
714 | - } | ||
715 | - | ||
716 | - SaveUserInfo(data) | ||
717 | - | ||
718 | - resp.Data.Walletgold = data.RealGold | ||
719 | - resp.Data.Leftredbagcnt = data.WatchAddsTime | ||
720 | - resp.Data.Guangold = data.GuanGold | ||
721 | - resp.Data.Userlv = data.Lv | ||
722 | - resp.Data.Userexp = data.Exp | ||
723 | - | ||
724 | - return nil | ||
725 | -} | ||
726 | - | ||
727 | -//获取提现记录 | ||
728 | -func GetWithDrawList(uuid int) (*WithDrawList, error) { | ||
729 | - var list *WithDrawList | ||
730 | - list = new(WithDrawList) | ||
731 | - liststr, err := redishandler.GetRedisClient().HGet(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid)) | ||
732 | - if err != nil { | ||
733 | - return nil, err | ||
734 | - } | ||
735 | - err = json.Unmarshal([]byte(liststr), list) | ||
736 | - if err != nil { | ||
737 | - return nil, err | ||
738 | - } | ||
739 | - return list, nil | ||
740 | -} | ||
741 | - | ||
742 | -func (uinfo *UserData) GetWithDrawData(money float32) (int, *WithDrawDesc) { | ||
743 | - //处理提现状态 | ||
744 | - for k, val := range uinfo.WithDraw.Cashdata { | ||
745 | - if val.Cnum == money { | ||
746 | - return k, &val | ||
747 | - } | ||
748 | - } | ||
749 | - return -1, nil | ||
750 | -} | ||
751 | - | ||
752 | -//添加提现记录 | ||
753 | -func AddWithDrawList(uuid int, data *WithDrawRecord) error { | ||
754 | - exist, err := redishandler.GetRedisClient().HExists(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid)) | ||
755 | - if err != nil { | ||
756 | - return err | ||
757 | - } | ||
758 | - if !exist { | ||
759 | - //添加新的记录 | ||
760 | - var tmp WithDrawList | ||
761 | - tmp.Withdata = append(tmp.Withdata, *data) | ||
762 | - | ||
763 | - savestr, err := json.Marshal(&tmp) | ||
764 | - if err != nil { | ||
765 | - return err | ||
766 | - } | ||
767 | - err = redishandler.GetRedisClient().HSet(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid), string(savestr)) | ||
768 | - return err | ||
769 | - } | ||
770 | - | ||
771 | - /*liststr,err := redishandler.GetRedisClient().HGet(redis.USER_WITHDRAW_RECORDLIST,strconv.Itoa(uuid)) | ||
772 | - if err != nil { | ||
773 | - return err | ||
774 | - } | ||
775 | - | ||
776 | - var list WithDrawList | ||
777 | - err = json.Unmarshal([]byte(liststr),&list) | ||
778 | - if err != nil { | ||
779 | - return err | ||
780 | - }*/ | ||
781 | - | ||
782 | - list, err := GetWithDrawList(uuid) | ||
783 | - if err != nil || list == nil { | ||
784 | - logger.Error("AddWithDrawList err=%v", err) | ||
785 | - return err | ||
786 | - } | ||
787 | - list.Withdata = append(list.Withdata, *data) | ||
788 | - savestr, err := json.Marshal(list) | ||
789 | - if err != nil { | ||
790 | - return err | ||
791 | - } | ||
792 | - err = redishandler.GetRedisClient().HSet(redis.USER_WITHDRAW_RECORDLIST, strconv.Itoa(uuid), string(savestr)) | ||
793 | - return err | ||
794 | - | ||
795 | -} | ||
796 | - | ||
797 | -//返回是否升级 | ||
798 | -func (uinfo *UserData) AddUserExp(num int) bool { | ||
799 | - totalexp := num | ||
800 | - isup := false | ||
801 | - for { | ||
802 | - lvcfg := GetUserLvConfig(uinfo.Lv) | ||
803 | - if lvcfg == nil { | ||
804 | - logger.Error("AddUserExp fail lv=%v", uinfo.Lv) | ||
805 | - break | ||
806 | - } | ||
807 | - //判断下是否满级了 | ||
808 | - nexcfg := GetUserLvConfig(uinfo.Lv + 1) | ||
809 | - if nexcfg == nil { | ||
810 | - //已经满级了 | ||
811 | - uinfo.Exp += totalexp | ||
812 | - break | ||
813 | - } | ||
814 | - | ||
815 | - //计算一下当前升级需要剩下的 | ||
816 | - | ||
817 | - needexp := lvcfg.Exp - uinfo.Exp | ||
818 | - if totalexp < needexp { | ||
819 | - //不够升级的 | ||
820 | - uinfo.Exp += totalexp | ||
821 | - break | ||
822 | - } else { | ||
823 | - //够升级的 升一级 | ||
824 | - uinfo.Lv++ | ||
825 | - uinfo.LvRewardGet = 1 //当前等级奖励置位可以领取 | ||
826 | - isup = true | ||
827 | - totalexp -= needexp | ||
828 | - uinfo.Exp = 0 | ||
829 | - continue | ||
830 | - } | ||
831 | - } | ||
832 | - | ||
833 | - if isup { | ||
834 | - uinfo.UpLvCostTime = int(time.Now().Unix()) - uinfo.UpLvCostTimeSec | ||
835 | - if uinfo.UpLvCostTime < 0 { | ||
836 | - uinfo.UpLvCostTime = 0 | ||
837 | - } | ||
838 | - uinfo.UpLvCostTimeSec = int(time.Now().Unix()) | ||
839 | - } | ||
840 | - | ||
841 | - return isup | ||
842 | -} | ||
843 | - | ||
844 | -func GettotalParam(paramlist []string) string { | ||
845 | - //排序 | ||
846 | - sort.Strings(paramlist) | ||
847 | - | ||
848 | - //拼接 | ||
849 | - sumparam := "" | ||
850 | - for _, val := range paramlist { | ||
851 | - sumparam += val | ||
852 | - } | ||
853 | - | ||
854 | - return sumparam | ||
855 | -} | ||
856 | - | ||
857 | -func GetHashValue(signsum string) string { | ||
858 | - /*h := sha1.New() | ||
859 | - h.Write([]byte(signsum)) | ||
860 | - bs := h.Sum(nil) | ||
861 | - sign := hex.EncodeToString(bs)*/ | ||
862 | - ctx := md5.New() | ||
863 | - ctx.Write([]byte(signsum)) | ||
864 | - return hex.EncodeToString(ctx.Sum(nil)) | ||
865 | -} | ||
866 | - | ||
867 | -func DoHttpPost(bys []byte, apistr string) (string, error) { | ||
868 | - body := bytes.NewBuffer(bys) | ||
869 | - url1 := XIAOXINGXING_SDKURLOFFICAL + apistr //"api/server/addcoin" | ||
870 | - | ||
871 | - res, err := http.Post(url1, "application/json;charset=utf-8", body) | ||
872 | - if err != nil { | ||
873 | - logger.Error("DoHttpPost failed err=%v", err) | ||
874 | - return "", err | ||
875 | - } | ||
876 | - result, _ := ioutil.ReadAll(res.Body) | ||
877 | - defer res.Body.Close() | ||
878 | - | ||
879 | - return string(result), nil | ||
880 | -} | ||
881 | - | ||
882 | -func GetCoinFromSdk(uuid int, gameid string, channel string) (int, error) { | ||
883 | - var paramlist []string | ||
884 | - var params GetCoinDesc | ||
885 | - params.Sign_type = "md5" | ||
886 | - params.Gameid = gameid | ||
887 | - params.Channel = channel | ||
888 | - params.Uid = uuid | ||
889 | - params.Time_stamp = strconv.Itoa(int(time.Now().Unix())) | ||
890 | - signtypestr := "sign_type=" + params.Sign_type | ||
891 | - timestampstr := "time_stamp=" + strconv.Itoa(int(time.Now().Unix())) | ||
892 | - paramgameid := "gameid=" + gameid | ||
893 | - pchannel := "channel=" + channel | ||
894 | - puid := "uid=" + strconv.Itoa(uuid) | ||
895 | - paramlist = append(paramlist, signtypestr) | ||
896 | - paramlist = append(paramlist, timestampstr) | ||
897 | - paramlist = append(paramlist, paramgameid) | ||
898 | - paramlist = append(paramlist, pchannel) | ||
899 | - paramlist = append(paramlist, puid) | ||
900 | - | ||
901 | - sumparam := GettotalParam(paramlist) | ||
902 | - //加serverkey | ||
903 | - signsum := sumparam + XIAOXINGXING_SERVERKEYTEST | ||
904 | - | ||
905 | - //进行hash | ||
906 | - sign := GetHashValue(signsum) | ||
907 | - params.Sign = sign | ||
908 | - logger.Info("GetCoinFromSdk sumparam is:%v,sign is:", signsum, sign) | ||
909 | - | ||
910 | - bys, err := json.Marshal(¶ms) | ||
911 | - if err != nil { | ||
912 | - logger.Error("GetCoinFromSdk failed=%v", err) | ||
913 | - return 0, err | ||
914 | - } | ||
915 | - res, err := DoHttpPost(bys, "api/server/getcoin") | ||
916 | - if err != nil { | ||
917 | - logger.Error("GetCoinFromSdk failed=%v", err) | ||
918 | - return 0, err | ||
919 | - } | ||
920 | - | ||
921 | - logger.Info("GetCoinFromSdk res=%v", res) | ||
922 | - | ||
923 | - var resp AddCoinResp | ||
924 | - err = json.Unmarshal([]byte(res), &resp) | ||
925 | - if err != nil { | ||
926 | - logger.Error("GetCoinFromSdk failed=%v", err) | ||
927 | - return 0, err | ||
928 | - } | ||
929 | - | ||
930 | - if resp.Code != "0" { | ||
931 | - logger.Error("GetCoinFromSdk failed=%v", resp.Msg) | ||
932 | - return 0, err | ||
933 | - } | ||
934 | - | ||
935 | - return resp.Data.Mycoin, nil | ||
936 | -} | ||
937 | - | ||
938 | -func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype int) (int, error) { | ||
939 | - var paramlist []string | ||
940 | - sign_type := "sign_type=md5" | ||
941 | - paramlist = append(paramlist, sign_type) | ||
942 | - time_stamp := "time_stamp=" + strconv.Itoa(int(time.Now().Unix())) | ||
943 | - paramlist = append(paramlist, time_stamp) | ||
944 | - paramgameid := "gameid=" + gameid | ||
945 | - paramlist = append(paramlist, paramgameid) | ||
946 | - pchannel := "channel=" + channel | ||
947 | - paramlist = append(paramlist, pchannel) | ||
948 | - puid := "uid=" + strconv.Itoa(uuid) | ||
949 | - paramlist = append(paramlist, puid) | ||
950 | - pcoin := "coin=" + strconv.Itoa(goldnum) | ||
951 | - paramlist = append(paramlist, pcoin) | ||
952 | - ptyp := "typ=" + strconv.Itoa(atype) | ||
953 | - paramlist = append(paramlist, ptyp) | ||
954 | - | ||
955 | - sumparam := GettotalParam(paramlist) | ||
956 | - //加serverkey | ||
957 | - signsum := sumparam + XIAOXINGXING_SERVERKEYTEST | ||
958 | - logger.Info("AddCoinToSdk sumparam=%v", signsum) | ||
959 | - | ||
960 | - //进行hash | ||
961 | - sign := GetHashValue(signsum) | ||
962 | - | ||
963 | - var req AddCoinDesc | ||
964 | - req.Channel = channel | ||
965 | - req.Gameid = gameid | ||
966 | - req.Coin = goldnum | ||
967 | - req.Sign = sign | ||
968 | - req.Sign_type = "md5" | ||
969 | - req.Time_stamp = strconv.Itoa(int(time.Now().Unix())) | ||
970 | - req.Typ = atype | ||
971 | - req.Uid = uuid | ||
972 | - | ||
973 | - bys, err := json.Marshal(&req) | ||
974 | - if err != nil { | ||
975 | - logger.Error("AddCoinToSdk failed=%v", err) | ||
976 | - return 0, err | ||
977 | - } | ||
978 | - res, err := DoHttpPost(bys, "api/server/addcoin") | ||
979 | - if err != nil { | ||
980 | - logger.Error("AddCoinToSdk failed=%v", err) | ||
981 | - return 0, err | ||
982 | - } | ||
983 | - | ||
984 | - logger.Info("AddCoinToSdk res=%v", res) | ||
985 | - var resp AddCoinResp | ||
986 | - err = json.Unmarshal([]byte(res), &resp) | ||
987 | - if err != nil { | ||
988 | - logger.Error("AddCoinToSdk failed=%v", err) | ||
989 | - return 0, err | ||
990 | - } | ||
991 | - | ||
992 | - if resp.Code != "0" { | ||
993 | - logger.Error("AddCoinToSdk failed=%v", resp.Msg) | ||
994 | - return 0, err | ||
995 | - } | ||
996 | - return resp.Data.Mycoin, nil | ||
997 | -} | ||
998 | - | ||
999 | -func GetCashFromSDK(uuid int, goldnum int, gameid, channel, openid, nickname, headurl, ver string) (int, error) { | ||
1000 | - if goldnum == 0 || uuid == 0 || gameid == "" || channel == "" || openid == "" || nickname == "" || headurl == "" || ver == "" { | ||
1001 | - logger.Error("GetCashFromSDK param empty") | ||
1002 | - return 0, errors.New("param empty") | ||
1003 | - } | ||
1004 | - var paramlist []string | ||
1005 | - var params TixianDesc | ||
1006 | - params.Sign_type = "md5" | ||
1007 | - params.Gameid = gameid | ||
1008 | - params.Channel = channel | ||
1009 | - params.Uid = uuid | ||
1010 | - params.Time_stamp = strconv.Itoa(int(time.Now().Unix())) | ||
1011 | - params.Headurl = headurl | ||
1012 | - params.Money = goldnum | ||
1013 | - params.Openid = openid | ||
1014 | - params.Nickname = nickname | ||
1015 | - params.Typ = 6 | ||
1016 | - params.Ver = ver | ||
1017 | - params.Editcoin = 1 | ||
1018 | - signtypestr := "sign_type=" + params.Sign_type | ||
1019 | - timestampstr := "time_stamp=" + strconv.Itoa(int(time.Now().Unix())) | ||
1020 | - paramgameid := "gameid=" + gameid | ||
1021 | - pchannel := "channel=" + channel | ||
1022 | - puid := "uid=" + strconv.Itoa(uuid) | ||
1023 | - phead := "headurl=" + headurl | ||
1024 | - pnickname := "nickname=" + nickname | ||
1025 | - popenid := "openid=" + openid | ||
1026 | - pmoney := "money=" + strconv.Itoa(goldnum) | ||
1027 | - ptype := "typ=" + "6" //微信 | ||
1028 | - ped := "editcoin=1" | ||
1029 | - //pver := "ver=" + params.Ver | ||
1030 | - paramlist = append(paramlist, signtypestr) | ||
1031 | - paramlist = append(paramlist, timestampstr) | ||
1032 | - paramlist = append(paramlist, paramgameid) | ||
1033 | - paramlist = append(paramlist, pchannel) | ||
1034 | - paramlist = append(paramlist, puid) | ||
1035 | - paramlist = append(paramlist, phead) | ||
1036 | - paramlist = append(paramlist, pnickname) | ||
1037 | - paramlist = append(paramlist, popenid) | ||
1038 | - paramlist = append(paramlist, pmoney) | ||
1039 | - paramlist = append(paramlist, ptype) | ||
1040 | - paramlist = append(paramlist, ped) | ||
1041 | - //paramlist = append(paramlist, pver) | ||
1042 | - | ||
1043 | - sumparam := GettotalParam(paramlist) | ||
1044 | - //加serverkey | ||
1045 | - signsum := sumparam + XIAOXINGXING_SERVERKEYTEST | ||
1046 | - | ||
1047 | - //进行hash | ||
1048 | - sign := GetHashValue(signsum) | ||
1049 | - params.Sign = sign | ||
1050 | - | ||
1051 | - bys, err := json.Marshal(¶ms) | ||
1052 | - if err != nil { | ||
1053 | - logger.Error("GetCashFromSDK failed=%v", err) | ||
1054 | - return 0, err | ||
1055 | - } | ||
1056 | - res, err := DoHttpPost(bys, "api/server/tixian") | ||
1057 | - logger.Info("GetCashFromSDK sumparam is:%v,sign is:%v", signsum, sign) | ||
1058 | - logger.Info("GetCashFromSDK sumparam param=%v", string(bys)) | ||
1059 | - if err != nil { | ||
1060 | - logger.Error("GetCashFromSDK failed=%v", err) | ||
1061 | - return 0, err | ||
1062 | - } | ||
1063 | - | ||
1064 | - logger.Info("GetCashFromSDK res=%v", res) | ||
1065 | - | ||
1066 | - var resp GetCashResp | ||
1067 | - err = json.Unmarshal([]byte(res), &resp) | ||
1068 | - if err != nil { | ||
1069 | - logger.Error("GetCashFromSDK failed=%v", err) | ||
1070 | - return 0, err | ||
1071 | - } | ||
1072 | - | ||
1073 | - if resp.Code != "0" { | ||
1074 | - logger.Error("GetCashFromSDK failed=%v", resp.Msg) | ||
1075 | - return 0, errors.New(resp.Msg) | ||
1076 | - } | ||
1077 | - | ||
1078 | - //拉取一下新的金币值 | ||
1079 | - newnum, err := GetCoinFromSdk(uuid, gameid, channel) | ||
1080 | - if err != nil { | ||
1081 | - logger.Error("GetCashFromSDK failed=%v", err) | ||
1082 | - return 0, err | ||
1083 | - } | ||
1084 | - return newnum, nil | ||
1085 | -} | ||
1086 | - | ||
1087 | -func GetCashList(uuid int, gameid string, channel string, start int, number int) (*[]WithDrawRecord, error) { | ||
1088 | - var paramlist []string | ||
1089 | - var params GetCashListDesc | ||
1090 | - params.Sign_type = "md5" | ||
1091 | - params.Gameid = gameid | ||
1092 | - params.Channel = channel | ||
1093 | - params.Uid = uuid | ||
1094 | - params.Time_stamp = strconv.Itoa(int(time.Now().Unix())) | ||
1095 | - params.Start = start | ||
1096 | - params.Number = number | ||
1097 | - signtypestr := "sign_type=" + params.Sign_type | ||
1098 | - timestampstr := "time_stamp=" + strconv.Itoa(int(time.Now().Unix())) | ||
1099 | - paramgameid := "gameid=" + gameid | ||
1100 | - pchannel := "channel=" + channel | ||
1101 | - puid := "uid=" + strconv.Itoa(uuid) | ||
1102 | - pstart := "start=" + strconv.Itoa(start) | ||
1103 | - pnumber := "number=" + strconv.Itoa(number) | ||
1104 | - paramlist = append(paramlist, signtypestr) | ||
1105 | - paramlist = append(paramlist, timestampstr) | ||
1106 | - paramlist = append(paramlist, paramgameid) | ||
1107 | - paramlist = append(paramlist, pchannel) | ||
1108 | - paramlist = append(paramlist, puid) | ||
1109 | - if start != 0 { | ||
1110 | - paramlist = append(paramlist, pstart) | ||
1111 | - } | ||
1112 | - | ||
1113 | - paramlist = append(paramlist, pnumber) | ||
1114 | - | ||
1115 | - sumparam := GettotalParam(paramlist) | ||
1116 | - //加serverkey | ||
1117 | - signsum := sumparam + XIAOXINGXING_SERVERKEYTEST | ||
1118 | - logger.Info("GetCashList sumparam=%v", signsum) | ||
1119 | - | ||
1120 | - //进行hash | ||
1121 | - sign := GetHashValue(signsum) | ||
1122 | - params.Sign = sign | ||
1123 | - | ||
1124 | - bys, err := json.Marshal(¶ms) | ||
1125 | - if err != nil { | ||
1126 | - logger.Error("GetCashList failed=%v", err) | ||
1127 | - return nil, err | ||
1128 | - } | ||
1129 | - res, err := DoHttpPost(bys, "api/server/tixian/lst") | ||
1130 | - if err != nil { | ||
1131 | - logger.Error("GetCashList failed=%v", err) | ||
1132 | - return nil, err | ||
1133 | - } | ||
1134 | - | ||
1135 | - logger.Info("GetCashList res=%v", res) | ||
1136 | - | ||
1137 | - var resp GetCashListResp | ||
1138 | - err = json.Unmarshal([]byte(res), &resp) | ||
1139 | - if err != nil { | ||
1140 | - logger.Error("GetCoinFromSdk failed=%v", err) | ||
1141 | - return nil, err | ||
1142 | - } | ||
1143 | - | ||
1144 | - if resp.Code != "0" { | ||
1145 | - logger.Error("GetCoinFromSdk failed=%v", resp.Msg) | ||
1146 | - return nil, err | ||
1147 | - } | ||
1148 | - return &resp.Data, nil | ||
1149 | -} |
src/HttpServer/logic/httpserver.go
@@ -5,7 +5,6 @@ import ( | @@ -5,7 +5,6 @@ import ( | ||
5 | "HttpServer/redishandler" | 5 | "HttpServer/redishandler" |
6 | "common/logger" | 6 | "common/logger" |
7 | "common/redis" | 7 | "common/redis" |
8 | - "encoding/json" | ||
9 | "fmt" | 8 | "fmt" |
10 | "io/ioutil" | 9 | "io/ioutil" |
11 | "strconv" | 10 | "strconv" |
@@ -44,22 +43,6 @@ func startServerHttpServe() { | @@ -44,22 +43,6 @@ func startServerHttpServe() { | ||
44 | http.HandleFunc("/eliminatestar/test", Testapi) //测试接口 | 43 | http.HandleFunc("/eliminatestar/test", Testapi) //测试接口 |
45 | http.HandleFunc("/eliminatestar/clear", ClearData) //清除账号 | 44 | http.HandleFunc("/eliminatestar/clear", ClearData) //清除账号 |
46 | //---------------------------------------------------------------------------------------- | 45 | //---------------------------------------------------------------------------------------- |
47 | - http.HandleFunc("/eliminatestar/login", UserLogin) //登录 | ||
48 | - http.HandleFunc("/eliminatestar/getuserdata", Getuserdata) //获取玩家数据 | ||
49 | - http.HandleFunc("/eliminatestar/watchads", Watchads) //观看激励视频 | ||
50 | - http.HandleFunc("/eliminatestar/queryguaninfo", Queryguaninfo) //获取存钱罐数据 | ||
51 | - http.HandleFunc("/eliminatestar/getguangold", Getguangold) //获取金币到存钱罐 | ||
52 | - http.HandleFunc("/eliminatestar/drawguangold", Drawguangold) //提取存钱罐的金币到个人钱包 | ||
53 | - http.HandleFunc("/eliminatestar/querdrawinfo", Querdrawinfo) //获取提现档位信息接口 | ||
54 | - http.HandleFunc("/eliminatestar/getcash", Getcash) //提现 | ||
55 | - http.HandleFunc("/eliminatestar/getcashrecord", Getcashrecord) //提现记录列表 | ||
56 | - http.HandleFunc("/eliminatestar/onlinentf", Onlinentf) //在线通知 | ||
57 | - http.HandleFunc("/eliminatestar/updatetaskandachieve", Updatetaskandachieve) //上报任务事件进度 | ||
58 | - http.HandleFunc("/eliminatestar/querytaskinfo", Querytaskinfo) //拉取任务或者成就列表 | ||
59 | - http.HandleFunc("/eliminatestar/gettaskreward", Gettaskreward) //领取任务或者成就奖励 | ||
60 | - http.HandleFunc("/eliminatestar/getnewlevelreward", Getnewlevelreward) //领取任务或者成就奖励 | ||
61 | - http.HandleFunc("/eliminatestar/querysigndata", Querysigndata) //获取签到数据 | ||
62 | - http.HandleFunc("/eliminatestar/usersign", Usersign) //玩家签到 | ||
63 | 46 | ||
64 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) | 47 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) |
65 | CheckErr(err) | 48 | CheckErr(err) |
@@ -91,124 +74,12 @@ func ClearData(w http.ResponseWriter, r *http.Request) { | @@ -91,124 +74,12 @@ func ClearData(w http.ResponseWriter, r *http.Request) { | ||
91 | fmt.Fprint(w, "success!") | 74 | fmt.Fprint(w, "success!") |
92 | } | 75 | } |
93 | 76 | ||
94 | -func Usersign(w http.ResponseWriter, r *http.Request) { | ||
95 | - | ||
96 | - Uuid := 0 | ||
97 | - if len(r.Header) > 0 { | ||
98 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
99 | - } | ||
100 | - | ||
101 | - if Uuid == 0 { | ||
102 | - SetHeader(w) | ||
103 | - //logger.Error("Uuid is nil!") | ||
104 | - return | ||
105 | - } | ||
106 | - result, _ := ioutil.ReadAll(r.Body) | ||
107 | - r.Body.Close() | ||
108 | - | ||
109 | - s := string(result) | ||
110 | - logger.Info("Usersign , body:%v,uuid=%v", s, Uuid) | ||
111 | - | ||
112 | - HandlerUsersign(w, s, Uuid) | ||
113 | -} | ||
114 | - | ||
115 | -func Querysigndata(w http.ResponseWriter, r *http.Request) { | ||
116 | - | ||
117 | - Uuid := 0 | ||
118 | - if len(r.Header) > 0 { | ||
119 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
120 | - } | ||
121 | - | ||
122 | - if Uuid == 0 { | ||
123 | - SetHeader(w) | ||
124 | - //logger.Error("Uuid is nil!") | ||
125 | - return | ||
126 | - } | ||
127 | - result, _ := ioutil.ReadAll(r.Body) | ||
128 | - r.Body.Close() | ||
129 | - | ||
130 | - s := string(result) | ||
131 | - logger.Info("Querysigndata , body:%v,uuid=%v", s, Uuid) | ||
132 | - | ||
133 | - HandlerQuerysigndata(w, s, Uuid) | ||
134 | -} | ||
135 | - | ||
136 | func Testapi(w http.ResponseWriter, r *http.Request) { | 77 | func Testapi(w http.ResponseWriter, r *http.Request) { |
137 | 78 | ||
138 | - SetHeader(w) | ||
139 | - type TesaApiData struct { | ||
140 | - Type int `json:"type"` //1金币 2经验 3存钱罐次数 | ||
141 | - Value int `json:"value"` | ||
142 | - Gameid string `json:"gameid"` | ||
143 | - Channel string `json:"channel"` | ||
144 | - } | ||
145 | - Uuid := 0 | ||
146 | - if len(r.Header) > 0 { | ||
147 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
148 | - } | ||
149 | - | ||
150 | - if Uuid == 0 { | ||
151 | - SetHeader(w) | ||
152 | - //logger.Error("Uuid is nil!") | ||
153 | - return | ||
154 | - } | ||
155 | - result, _ := ioutil.ReadAll(r.Body) | ||
156 | - r.Body.Close() | ||
157 | - | ||
158 | - s := string(result) | ||
159 | - logger.Info("Testapi , body:%v,uuid=%v", s, Uuid) | ||
160 | - | ||
161 | - var rdata TesaApiData | ||
162 | - err := json.Unmarshal([]byte(s), &rdata) | ||
163 | - | ||
164 | - if err != nil { | ||
165 | - logger.Info("json decode Testapi data failed:%v,for:%v", err, s) | ||
166 | - fmt.Fprint(w, "failed") | ||
167 | - return | ||
168 | - } | ||
169 | - | ||
170 | - uinfo, err := GetUserInfo(Uuid) | ||
171 | - if err != nil || uinfo == nil { | ||
172 | - logger.Error("redis failed err=%v", err) | ||
173 | - fmt.Fprint(w, "failed") | ||
174 | - return | ||
175 | - } | ||
176 | - | ||
177 | - if rdata.Type == 1 { | ||
178 | - //金币 | ||
179 | - uinfo.RealGold += rdata.Value | ||
180 | - //调用sdk | ||
181 | - gold, err := AddCoinToSdk(Uuid, rdata.Value, rdata.Gameid, rdata.Channel, 100) | ||
182 | - if err != nil { | ||
183 | - logger.Error("test ddt! err=%v", err) | ||
184 | - } | ||
185 | - uinfo.RealGold = gold | ||
186 | - | ||
187 | - } | ||
188 | - if rdata.Type == 2 { | ||
189 | - uinfo.Exp += rdata.Value | ||
190 | - } | ||
191 | - if rdata.Type == 3 { | ||
192 | - uinfo.GetFromGuanCnt += rdata.Value | ||
193 | - } | ||
194 | - if rdata.Type == 4 { | ||
195 | - uinfo.Lv += rdata.Value | ||
196 | - } | ||
197 | - if rdata.Type == 5 { | ||
198 | - uinfo.IsSignToday = 0 | ||
199 | - if uinfo.SignSum == 7 { | ||
200 | - uinfo.SignSum = 0 | ||
201 | - uinfo.SignRound++ | ||
202 | - } | ||
203 | - } | ||
204 | - err = SaveUserInfo(uinfo) | ||
205 | - if err != nil { | ||
206 | - logger.Error("SaveUserInfo err=%v", err) | ||
207 | - } | ||
208 | fmt.Fprint(w, "success") | 79 | fmt.Fprint(w, "success") |
209 | } | 80 | } |
210 | 81 | ||
211 | -func Getnewlevelreward(w http.ResponseWriter, r *http.Request) { | 82 | +/*func Getnewlevelreward(w http.ResponseWriter, r *http.Request) { |
212 | 83 | ||
213 | Uuid := 0 | 84 | Uuid := 0 |
214 | if len(r.Header) > 0 { | 85 | if len(r.Header) > 0 { |
@@ -227,282 +98,4 @@ func Getnewlevelreward(w http.ResponseWriter, r *http.Request) { | @@ -227,282 +98,4 @@ func Getnewlevelreward(w http.ResponseWriter, r *http.Request) { | ||
227 | logger.Info("Getnewlevelreward , body:%v,uuid=%v", s, Uuid) | 98 | logger.Info("Getnewlevelreward , body:%v,uuid=%v", s, Uuid) |
228 | 99 | ||
229 | HandlerGetnewlevelreward(w, s, Uuid) | 100 | HandlerGetnewlevelreward(w, s, Uuid) |
230 | -} | ||
231 | - | ||
232 | -func Gettaskreward(w http.ResponseWriter, r *http.Request) { | ||
233 | - | ||
234 | - Uuid := 0 | ||
235 | - if len(r.Header) > 0 { | ||
236 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
237 | - } | ||
238 | - | ||
239 | - if Uuid == 0 { | ||
240 | - SetHeader(w) | ||
241 | - //logger.Error("Uuid is nil!") | ||
242 | - return | ||
243 | - } | ||
244 | - result, _ := ioutil.ReadAll(r.Body) | ||
245 | - r.Body.Close() | ||
246 | - | ||
247 | - s := string(result) | ||
248 | - logger.Info("Gettaskreward , body:%v,uuid=%v", s, Uuid) | ||
249 | - | ||
250 | - HandlerGettaskreward(w, s, Uuid) | ||
251 | -} | ||
252 | - | ||
253 | -func Querytaskinfo(w http.ResponseWriter, r *http.Request) { | ||
254 | - | ||
255 | - Uuid := 0 | ||
256 | - if len(r.Header) > 0 { | ||
257 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
258 | - } | ||
259 | - | ||
260 | - if Uuid == 0 { | ||
261 | - SetHeader(w) | ||
262 | - //logger.Error("Uuid is nil!") | ||
263 | - return | ||
264 | - } | ||
265 | - result, _ := ioutil.ReadAll(r.Body) | ||
266 | - r.Body.Close() | ||
267 | - | ||
268 | - s := string(result) | ||
269 | - logger.Info("Querytaskinfo , body:%v,uuid=%v", s, Uuid) | ||
270 | - | ||
271 | - HandlerQuerytaskinfo(w, s, Uuid) | ||
272 | -} | ||
273 | - | ||
274 | -func Updatetaskandachieve(w http.ResponseWriter, r *http.Request) { | ||
275 | - | ||
276 | - Uuid := 0 | ||
277 | - if len(r.Header) > 0 { | ||
278 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
279 | - } | ||
280 | - | ||
281 | - if Uuid == 0 { | ||
282 | - SetHeader(w) | ||
283 | - //logger.Error("Uuid is nil!") | ||
284 | - return | ||
285 | - } | ||
286 | - result, _ := ioutil.ReadAll(r.Body) | ||
287 | - r.Body.Close() | ||
288 | - | ||
289 | - s := string(result) | ||
290 | - logger.Info("Updatetaskandachieve , body:%v,uuid=%v", s, Uuid) | ||
291 | - | ||
292 | - HandlerUpdatetaskandachieve(w, s, Uuid) | ||
293 | -} | ||
294 | - | ||
295 | -func Onlinentf(w http.ResponseWriter, r *http.Request) { | ||
296 | - | ||
297 | - Uuid := 0 | ||
298 | - if len(r.Header) > 0 { | ||
299 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
300 | - } | ||
301 | - | ||
302 | - if Uuid == 0 { | ||
303 | - SetHeader(w) | ||
304 | - //logger.Error("Uuid is nil!") | ||
305 | - return | ||
306 | - } | ||
307 | - result, _ := ioutil.ReadAll(r.Body) | ||
308 | - r.Body.Close() | ||
309 | - | ||
310 | - s := string(result) | ||
311 | - logger.Info("Onlinentf , body:%v,uuid=%v", s, Uuid) | ||
312 | - | ||
313 | - HandlerOnlinentf(w, s, Uuid) | ||
314 | -} | ||
315 | - | ||
316 | -func Getcashrecord(w http.ResponseWriter, r *http.Request) { | ||
317 | - | ||
318 | - Uuid := 0 | ||
319 | - if len(r.Header) > 0 { | ||
320 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
321 | - } | ||
322 | - | ||
323 | - if Uuid == 0 { | ||
324 | - SetHeader(w) | ||
325 | - //logger.Error("Uuid is nil!") | ||
326 | - return | ||
327 | - } | ||
328 | - result, _ := ioutil.ReadAll(r.Body) | ||
329 | - r.Body.Close() | ||
330 | - | ||
331 | - s := string(result) | ||
332 | - logger.Info("Getcashrecord , body:%v,uuid=%v", s, Uuid) | ||
333 | - | ||
334 | - HandlerGetcashrecord(w, s, Uuid) | ||
335 | -} | ||
336 | - | ||
337 | -func Getcash(w http.ResponseWriter, r *http.Request) { | ||
338 | - | ||
339 | - Uuid := 0 | ||
340 | - if len(r.Header) > 0 { | ||
341 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
342 | - } | ||
343 | - | ||
344 | - if Uuid == 0 { | ||
345 | - SetHeader(w) | ||
346 | - //logger.Error("Uuid is nil!") | ||
347 | - return | ||
348 | - } | ||
349 | - result, _ := ioutil.ReadAll(r.Body) | ||
350 | - r.Body.Close() | ||
351 | - | ||
352 | - s := string(result) | ||
353 | - logger.Info("Getcash , body:%v,uuid=%v", s, Uuid) | ||
354 | - | ||
355 | - HandlerGetcash(w, s, Uuid) | ||
356 | -} | ||
357 | - | ||
358 | -func Querdrawinfo(w http.ResponseWriter, r *http.Request) { | ||
359 | - | ||
360 | - Uuid := 0 | ||
361 | - if len(r.Header) > 0 { | ||
362 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
363 | - } | ||
364 | - | ||
365 | - if Uuid == 0 { | ||
366 | - SetHeader(w) | ||
367 | - //logger.Error("Uuid is nil!") | ||
368 | - return | ||
369 | - } | ||
370 | - result, _ := ioutil.ReadAll(r.Body) | ||
371 | - r.Body.Close() | ||
372 | - | ||
373 | - s := string(result) | ||
374 | - logger.Info("Querdrawinfo , body:%v,uuid=%v", s, Uuid) | ||
375 | - | ||
376 | - HandlerQuerdrawinfo(w, s, Uuid) | ||
377 | -} | ||
378 | - | ||
379 | -func Drawguangold(w http.ResponseWriter, r *http.Request) { | ||
380 | - | ||
381 | - Uuid := 0 | ||
382 | - if len(r.Header) > 0 { | ||
383 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
384 | - } | ||
385 | - | ||
386 | - if Uuid == 0 { | ||
387 | - SetHeader(w) | ||
388 | - //logger.Error("Uuid is nil!") | ||
389 | - return | ||
390 | - } | ||
391 | - result, _ := ioutil.ReadAll(r.Body) | ||
392 | - r.Body.Close() | ||
393 | - | ||
394 | - s := string(result) | ||
395 | - logger.Info("Drawguangold , body:%v,uuid=%v", s, Uuid) | ||
396 | - | ||
397 | - HandlerDrawguangold(w, s, Uuid) | ||
398 | -} | ||
399 | - | ||
400 | -func Getguangold(w http.ResponseWriter, r *http.Request) { | ||
401 | - | ||
402 | - Uuid := 0 | ||
403 | - if len(r.Header) > 0 { | ||
404 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
405 | - } | ||
406 | - | ||
407 | - if Uuid == 0 { | ||
408 | - SetHeader(w) | ||
409 | - //logger.Error("Uuid is nil!") | ||
410 | - return | ||
411 | - } | ||
412 | - result, _ := ioutil.ReadAll(r.Body) | ||
413 | - r.Body.Close() | ||
414 | - | ||
415 | - s := string(result) | ||
416 | - logger.Info("Getguangold , body:%v,uuid=%v", s, Uuid) | ||
417 | - | ||
418 | - HandlerGetguangold(w, s, Uuid) | ||
419 | -} | ||
420 | - | ||
421 | -func Queryguaninfo(w http.ResponseWriter, r *http.Request) { | ||
422 | - | ||
423 | - Uuid := 0 | ||
424 | - if len(r.Header) > 0 { | ||
425 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
426 | - } | ||
427 | - | ||
428 | - if Uuid == 0 { | ||
429 | - SetHeader(w) | ||
430 | - //logger.Error("Uuid is nil!") | ||
431 | - return | ||
432 | - } | ||
433 | - result, _ := ioutil.ReadAll(r.Body) | ||
434 | - r.Body.Close() | ||
435 | - | ||
436 | - s := string(result) | ||
437 | - logger.Info("Queryguaninfo , body:%v,uuid=%v", s, Uuid) | ||
438 | - | ||
439 | - HandlerQueryguaninfo(w, s, Uuid) | ||
440 | -} | ||
441 | - | ||
442 | -func Watchads(w http.ResponseWriter, r *http.Request) { | ||
443 | - | ||
444 | - //这个接口作废 | ||
445 | - logger.Info("Watchads is not used") | ||
446 | - SetHeader(w) | ||
447 | - | ||
448 | - return | ||
449 | - Uuid := 0 | ||
450 | - if len(r.Header) > 0 { | ||
451 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
452 | - } | ||
453 | - | ||
454 | - if Uuid == 0 { | ||
455 | - SetHeader(w) | ||
456 | - //logger.Error("Uuid is nil!") | ||
457 | - return | ||
458 | - } | ||
459 | - result, _ := ioutil.ReadAll(r.Body) | ||
460 | - r.Body.Close() | ||
461 | - | ||
462 | - s := string(result) | ||
463 | - logger.Info("Watchads , body:%v,uuid=%v", s, Uuid) | ||
464 | - | ||
465 | - HandlerWatchads(w, s, Uuid) | ||
466 | -} | ||
467 | - | ||
468 | -func UserLogin(w http.ResponseWriter, r *http.Request) { | ||
469 | - | ||
470 | - Uuid := 0 | ||
471 | - if len(r.Header) > 0 { | ||
472 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
473 | - } | ||
474 | - | ||
475 | - if Uuid == 0 { | ||
476 | - SetHeader(w) | ||
477 | - //logger.Error("Uuid is nil!") | ||
478 | - return | ||
479 | - } | ||
480 | - result, _ := ioutil.ReadAll(r.Body) | ||
481 | - r.Body.Close() | ||
482 | - | ||
483 | - s := string(result) | ||
484 | - logger.Info("UserLogin , body:%v,uuid=%v", s, Uuid) | ||
485 | - | ||
486 | - HandlerLogin(w, s, Uuid) | ||
487 | -} | ||
488 | - | ||
489 | -func Getuserdata(w http.ResponseWriter, r *http.Request) { | ||
490 | - | ||
491 | - Uuid := 0 | ||
492 | - if len(r.Header) > 0 { | ||
493 | - Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
494 | - } | ||
495 | - | ||
496 | - if Uuid == 0 { | ||
497 | - SetHeader(w) | ||
498 | - //logger.Error("Uuid is nil!") | ||
499 | - return | ||
500 | - } | ||
501 | - result, _ := ioutil.ReadAll(r.Body) | ||
502 | - r.Body.Close() | ||
503 | - | ||
504 | - s := string(result) | ||
505 | - logger.Info("Getuserdata , body:%v,uuid=%v", s, Uuid) | ||
506 | - | ||
507 | - HandlerGetuserdata(w, s, Uuid) | ||
508 | -} | 101 | +}*/ |
src/HttpServer/logic/logic.go
1 | package logic | 1 | package logic |
2 | - | ||
3 | -import ( | ||
4 | - "HttpServer/jsonconf" | ||
5 | - "HttpServer/redishandler" | ||
6 | - "common/logger" | ||
7 | - "common/redis" | ||
8 | - "encoding/json" | ||
9 | - "fmt" | ||
10 | - "net/http" | ||
11 | - "strconv" | ||
12 | -) | ||
13 | - | ||
14 | -func HandlerQueryguaninfo(w http.ResponseWriter, data string, uuid int) { | ||
15 | - SetHeader(w) | ||
16 | - var resp QueryguaninfoResp | ||
17 | - resp.Code = 0 | ||
18 | - for { | ||
19 | - uinfo, err := GetUserInfo(uuid) | ||
20 | - if err != nil || uinfo == nil { | ||
21 | - logger.Error("redis failed err=%v", err) | ||
22 | - resp.Message = "服务器错误" | ||
23 | - resp.Code = ERROR_SRV_ERROR | ||
24 | - break | ||
25 | - } | ||
26 | - | ||
27 | - uinfo.HandlePassDay() | ||
28 | - | ||
29 | - //获取存钱罐等级配置 | ||
30 | - mcfg := jsonconf.GetMoneyBoxCfg(uinfo.Lv) | ||
31 | - if mcfg == nil { | ||
32 | - logger.Error("GetMoneyBoxCfg failed uinfo.Lv=%v", uinfo.Lv) | ||
33 | - logger.Error("GetMoneyBoxCfg failed cfg=%v", jsonconf.GetJsonConf().MoneyBoxConfig) | ||
34 | - resp.Message = "存钱罐金币不足" | ||
35 | - resp.Code = ERROR_GETCONFIG_FAILED | ||
36 | - break | ||
37 | - } | ||
38 | - | ||
39 | - resp.Data.Guangold = uinfo.GuanGold | ||
40 | - resp.Data.Loginday = uinfo.ContinueLoginDay | ||
41 | - resp.Data.Totalcnt = uinfo.CalcTotalCnt() | ||
42 | - resp.Data.Leftcnt = resp.Data.Totalcnt - uinfo.GetFromGuanCnt | ||
43 | - resp.Data.Maxget = mcfg.Max | ||
44 | - resp.Data.Minget = mcfg.Min | ||
45 | - resp.Data.Totalfetchcnt = uinfo.Achieve.SumGetGuan | ||
46 | - resp.Code = ERROR_OK | ||
47 | - break | ||
48 | - | ||
49 | - } | ||
50 | - | ||
51 | - //回包 | ||
52 | - respstr, _ := json.Marshal(&resp) | ||
53 | - fmt.Fprint(w, string(respstr)) | ||
54 | -} | ||
55 | - | ||
56 | -func HandlerWatchads(w http.ResponseWriter, data string, uuid int) { | ||
57 | - SetHeader(w) | ||
58 | - var resp WatchadsResp | ||
59 | - resp.Code = 0 | ||
60 | - | ||
61 | - for { | ||
62 | - uinfo, err := GetUserInfo(uuid) | ||
63 | - if err != nil || uinfo == nil { | ||
64 | - logger.Error("redis failed err=%v", err) | ||
65 | - resp.Message = "服务器错误" | ||
66 | - resp.Code = ERROR_SRV_ERROR | ||
67 | - break | ||
68 | - } | ||
69 | - | ||
70 | - if uinfo.WatchAddsTime == 0 { | ||
71 | - logger.Error("WatchAddsTime zero") | ||
72 | - resp.Message = "看视频次数已经耗尽" | ||
73 | - resp.Code = ERROR_WATCHADS_ZEOR | ||
74 | - break | ||
75 | - } | ||
76 | - | ||
77 | - uinfo.WatchAddsTime-- | ||
78 | - err = SaveUserInfo(uinfo) | ||
79 | - if err != nil { | ||
80 | - logger.Error("redis failed err=%v", err) | ||
81 | - resp.Message = "服务器错误" | ||
82 | - resp.Code = ERROR_SRV_ERROR | ||
83 | - break | ||
84 | - } | ||
85 | - | ||
86 | - resp.Code = ERROR_OK | ||
87 | - break | ||
88 | - | ||
89 | - } | ||
90 | - | ||
91 | - //回包 | ||
92 | - respstr, _ := json.Marshal(&resp) | ||
93 | - fmt.Fprint(w, string(respstr)) | ||
94 | -} | ||
95 | - | ||
96 | -func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | ||
97 | - SetHeader(w) | ||
98 | - var resp GetcashResp | ||
99 | - resp.Code = 0 | ||
100 | - var rdata GetcashReq | ||
101 | - err := json.Unmarshal([]byte(data), &rdata) | ||
102 | - for { | ||
103 | - if err != nil { | ||
104 | - logger.Info("json decode HandlerDrawguangold data failed:%v,for:%v", err, data) | ||
105 | - resp.Message = "json解析错误" | ||
106 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
107 | - break | ||
108 | - } | ||
109 | - //临时处理一下 | ||
110 | - if rdata.Ver == "" { | ||
111 | - rdata.Ver = "2.0.0" | ||
112 | - } | ||
113 | - | ||
114 | - uinfo, err := GetUserInfo(uuid) | ||
115 | - if err != nil || uinfo == nil { | ||
116 | - logger.Error("redis failed err=%v", err) | ||
117 | - resp.Message = "服务器错误" | ||
118 | - resp.Code = ERROR_SRV_ERROR | ||
119 | - break | ||
120 | - } | ||
121 | - | ||
122 | - drawnum := int(rdata.Money * 100) | ||
123 | - //需要判断一下金币是否足够 | ||
124 | - if drawnum*100 > uinfo.RealGold { | ||
125 | - logger.Error("gold nor enough failed err=%v", err) | ||
126 | - resp.Message = "提现金币不足" | ||
127 | - resp.Code = ERROR_GETCASH_GOLDNOTENOUGH_FAILED | ||
128 | - break | ||
129 | - } | ||
130 | - | ||
131 | - index, info := uinfo.GetWithDrawData(rdata.Money) | ||
132 | - if index == -1 || info == nil { | ||
133 | - logger.Error("AddWithDrawList failed err=%v", err) | ||
134 | - resp.Message = "网络错误" | ||
135 | - resp.Code = ERROR_SRV_ERROR | ||
136 | - break | ||
137 | - } | ||
138 | - | ||
139 | - if uinfo.Lv < info.Limitlv { | ||
140 | - logger.Error("AddWithDrawList failed err=%v", err) | ||
141 | - resp.Message = "完成日常任务可以提升人物等级哦~" | ||
142 | - resp.Code = ERROR_WITHDRAWLVLIMIT | ||
143 | - break | ||
144 | - } | ||
145 | - | ||
146 | - if info.Isnew == 0 { | ||
147 | - logger.Error("AddWithDrawList failed err=%v", err) | ||
148 | - resp.Message = "新人专享只能提取一次" | ||
149 | - resp.Code = ERROR_WITHDRAWONLYONE | ||
150 | - break | ||
151 | - } | ||
152 | - | ||
153 | - if info.Preisfind == 0 { | ||
154 | - logger.Error("HandlerGetcash Preisfind err=%v", err) | ||
155 | - resp.Message = "请先完成前一档提现" | ||
156 | - resp.Code = ERROR_PRENOTFINISH | ||
157 | - break | ||
158 | - } | ||
159 | - | ||
160 | - //判断一下前置条件的下一档 | ||
161 | - if index == len(uinfo.WithDraw.Cashdata)-1 { | ||
162 | - //最后一档了不用处理 | ||
163 | - } else { | ||
164 | - if index < len(uinfo.WithDraw.Cashdata)-1 { | ||
165 | - uinfo.WithDraw.Cashdata[index+1].Preisfind = 1 | ||
166 | - } | ||
167 | - } | ||
168 | - | ||
169 | - gold, err := GetCashFromSDK(uuid, drawnum, rdata.Gameid, rdata.Channel, rdata.Openid, rdata.Nickname, rdata.Headurl, rdata.Ver) | ||
170 | - if err != nil { | ||
171 | - logger.Error("GetCashFromSDK failed err=%v", err) | ||
172 | - resp.Message = "从后台提现失败了" | ||
173 | - resp.Code = ERROR_GETCASH_FAILED | ||
174 | - break | ||
175 | - } | ||
176 | - | ||
177 | - //需要保存一下提现记录 | ||
178 | - /*data := new(WithDrawRecord) | ||
179 | - data.Withdrawmoney = rdata.Money | ||
180 | - data.Withdrawtime = int(time.Now().Unix()) | ||
181 | - err = AddWithDrawList(uuid, data) | ||
182 | - if err != nil { | ||
183 | - logger.Error("AddWithDrawList failed err=%v", err) | ||
184 | - resp.Message = "网络错误" | ||
185 | - resp.Code = ERROR_SRV_ERROR | ||
186 | - break | ||
187 | - }*/ | ||
188 | - | ||
189 | - if info.Isnew == 1 { | ||
190 | - uinfo.WithDraw.Cashdata[index].Isnew = 0 | ||
191 | - } | ||
192 | - | ||
193 | - uinfo.RealGold = gold | ||
194 | - //uinfo.RealGold -= drawnum * 100 | ||
195 | - | ||
196 | - resp.Data.Walletgold = uinfo.RealGold | ||
197 | - SaveUserInfo(uinfo) | ||
198 | - | ||
199 | - resp.Code = ERROR_OK | ||
200 | - break | ||
201 | - } | ||
202 | - | ||
203 | - //回包 | ||
204 | - respstr, _ := json.Marshal(&resp) | ||
205 | - fmt.Fprint(w, string(respstr)) | ||
206 | - | ||
207 | -} | ||
208 | - | ||
209 | -func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) { | ||
210 | - SetHeader(w) | ||
211 | - var resp QuerysigndataResp | ||
212 | - resp.Code = 0 | ||
213 | - | ||
214 | - for { | ||
215 | - | ||
216 | - uinfo, err := GetUserInfo(uuid) | ||
217 | - if err != nil || uinfo == nil { | ||
218 | - logger.Error("redis failed err=%v", err) | ||
219 | - resp.Message = "服务器错误" | ||
220 | - resp.Code = ERROR_SRV_ERROR | ||
221 | - break | ||
222 | - } | ||
223 | - | ||
224 | - //此处要处理一下跨天逻辑 | ||
225 | - uinfo.HandlePassDay() | ||
226 | - | ||
227 | - resp.Data.Continuessign = uinfo.SignSum | ||
228 | - resp.Data.IssignToday = uinfo.IsSignToday | ||
229 | - resp.Data.Signround = uinfo.SignRound | ||
230 | - | ||
231 | - logger.Info("HandlerQuerysigndata resp=%v", resp) | ||
232 | - | ||
233 | - SaveUserInfo(uinfo) | ||
234 | - resp.Code = ERROR_OK | ||
235 | - break | ||
236 | - } | ||
237 | - | ||
238 | - respstr, _ := json.Marshal(&resp) | ||
239 | - fmt.Fprint(w, string(respstr)) | ||
240 | -} | ||
241 | - | ||
242 | -func HandlerGetnewlevelreward(w http.ResponseWriter, data string, uuid int) { | ||
243 | - SetHeader(w) | ||
244 | - var resp GetnewlevelrewardResp | ||
245 | - resp.Code = 0 | ||
246 | - var rdata GetnewlevelrewardReq | ||
247 | - err := json.Unmarshal([]byte(data), &rdata) | ||
248 | - for { | ||
249 | - if err != nil { | ||
250 | - logger.Info("json decode HandlerGetnewlevelreward data failed:%v,for:%v", err, data) | ||
251 | - resp.Message = "网络错误" | ||
252 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
253 | - break | ||
254 | - } | ||
255 | - uinfo, err := GetUserInfo(uuid) | ||
256 | - if err != nil || uinfo == nil { | ||
257 | - logger.Error("redis failed err=%v", err) | ||
258 | - resp.Message = "服务器错误" | ||
259 | - resp.Code = ERROR_SRV_ERROR | ||
260 | - break | ||
261 | - } | ||
262 | - | ||
263 | - //判断是否可以领取 | ||
264 | - if uinfo.LvRewardGet != 1 { | ||
265 | - logger.Error("LvRewardGet failed err=%v", err) | ||
266 | - resp.Message = "当前等级奖励已经领取过了" | ||
267 | - resp.Code = ERROR_LVREWARDALREADYGET | ||
268 | - break | ||
269 | - } | ||
270 | - | ||
271 | - cfg := GetUserLvConfig(uinfo.Lv) | ||
272 | - if cfg == nil { | ||
273 | - logger.Error("GetUserLvConfig failed err=%v", err) | ||
274 | - resp.Message = "网络错误" | ||
275 | - resp.Code = ERROR_SRV_ERROR | ||
276 | - break | ||
277 | - } | ||
278 | - | ||
279 | - goldnum, err := AddCoinToSdk(uuid, cfg.Cash, rdata.Gameid, rdata.Channel, 100) | ||
280 | - if err != nil { | ||
281 | - logger.Error("AddCoinToSdk failed err=%v", err) | ||
282 | - resp.Message = "网络错误" | ||
283 | - resp.Code = ERROR_SRV_ERROR | ||
284 | - break | ||
285 | - } | ||
286 | - uinfo.RealGold = goldnum | ||
287 | - //uinfo.RealGold += cfg.Cash | ||
288 | - | ||
289 | - if rdata.Rewardtype == 2 { | ||
290 | - goldnum, err = AddCoinToSdk(uuid, cfg.Extracash, rdata.Gameid, rdata.Channel, 100) | ||
291 | - if err != nil { | ||
292 | - logger.Error("AddCoinToSdk failed err=%v", err) | ||
293 | - resp.Message = "网络错误" | ||
294 | - resp.Code = ERROR_SRV_ERROR | ||
295 | - break | ||
296 | - } | ||
297 | - uinfo.RealGold = goldnum | ||
298 | - uinfo.RealGold += cfg.Extracash | ||
299 | - } | ||
300 | - | ||
301 | - uinfo.LvRewardGet = 1 + rdata.Rewardtype | ||
302 | - | ||
303 | - resp.Data.Goldnum = uinfo.RealGold | ||
304 | - //保存数据 | ||
305 | - SaveUserInfo(uinfo) | ||
306 | - | ||
307 | - resp.Code = ERROR_OK | ||
308 | - break | ||
309 | - } | ||
310 | - | ||
311 | - //回包 | ||
312 | - respstr, _ := json.Marshal(&resp) | ||
313 | - fmt.Fprint(w, string(respstr)) | ||
314 | - | ||
315 | -} | ||
316 | - | ||
317 | -func HandlerUsersign(w http.ResponseWriter, data string, uuid int) { | ||
318 | - SetHeader(w) | ||
319 | - var resp UsersignResp | ||
320 | - resp.Code = 0 | ||
321 | - var rdata UsersignReq | ||
322 | - err := json.Unmarshal([]byte(data), &rdata) | ||
323 | - for { | ||
324 | - if err != nil { | ||
325 | - logger.Info("json decode HandlerUsersign data failed:%v,for:%v", err, data) | ||
326 | - resp.Message = "网络错误" | ||
327 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
328 | - break | ||
329 | - } | ||
330 | - uinfo, err := GetUserInfo(uuid) | ||
331 | - if err != nil || uinfo == nil { | ||
332 | - logger.Error("redis failed err=%v", err) | ||
333 | - resp.Message = "服务器错误" | ||
334 | - resp.Code = ERROR_SRV_ERROR | ||
335 | - break | ||
336 | - } | ||
337 | - | ||
338 | - if uinfo.IsSignToday == 1 { | ||
339 | - logger.Error("IsSignToday failed err=%v", err) | ||
340 | - resp.Message = "今日已经签过到啦" | ||
341 | - resp.Code = ERROR_SINGALREADYTODAY | ||
342 | - break | ||
343 | - } | ||
344 | - | ||
345 | - uinfo.SignSum++ | ||
346 | - if uinfo.SignSum > 7 { | ||
347 | - uinfo.SignSum = 7 | ||
348 | - logger.Error("uinfo.SignSum failed") | ||
349 | - resp.Message = "签到数据异常" | ||
350 | - resp.Code = ERROR_SINGDATAFAILED | ||
351 | - break | ||
352 | - } | ||
353 | - | ||
354 | - //获取配置 | ||
355 | - cfg := jsonconf.GetSignConfig(uinfo.SignRound, uinfo.SignSum) | ||
356 | - if cfg == nil { | ||
357 | - uinfo.SignSum-- | ||
358 | - logger.Error("GetSignConfig failed err=%v", err) | ||
359 | - resp.Message = "服务器错误" | ||
360 | - resp.Code = ERROR_SRV_ERROR | ||
361 | - break | ||
362 | - } | ||
363 | - | ||
364 | - //uinfo.RealGold = | ||
365 | - goldnum, err := AddCoinToSdk(uuid, cfg.Num, rdata.Gameid, rdata.Channel, 100) | ||
366 | - if err != nil { | ||
367 | - uinfo.SignSum-- | ||
368 | - logger.Error("AddCoinToSdk failed err=%v", err) | ||
369 | - resp.Message = "服务器错误" | ||
370 | - resp.Code = ERROR_SRV_ERROR | ||
371 | - break | ||
372 | - } | ||
373 | - | ||
374 | - uinfo.IsSignToday = 1 | ||
375 | - uinfo.RealGold = goldnum | ||
376 | - //uinfo.RealGold += cfg.Num | ||
377 | - | ||
378 | - resp.Data.Goldnum = uinfo.RealGold | ||
379 | - | ||
380 | - //保存数据 | ||
381 | - err = SaveUserInfo(uinfo) | ||
382 | - | ||
383 | - resp.Code = ERROR_OK | ||
384 | - break | ||
385 | - } | ||
386 | - | ||
387 | - //回包 | ||
388 | - respstr, _ := json.Marshal(&resp) | ||
389 | - fmt.Fprint(w, string(respstr)) | ||
390 | - | ||
391 | -} | ||
392 | - | ||
393 | -func HandlerGettaskreward(w http.ResponseWriter, data string, uuid int) { | ||
394 | - SetHeader(w) | ||
395 | - var resp GettaskrewardResp | ||
396 | - resp.Code = 0 | ||
397 | - var rdata GettaskrewardReq | ||
398 | - err := json.Unmarshal([]byte(data), &rdata) | ||
399 | - for { | ||
400 | - if err != nil { | ||
401 | - logger.Info("json decode HandlerGettaskreward data failed:%v,for:%v", err, data) | ||
402 | - resp.Message = "网络错误" | ||
403 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
404 | - break | ||
405 | - } | ||
406 | - uinfo, err := GetUserInfo(uuid) | ||
407 | - if err != nil || uinfo == nil { | ||
408 | - logger.Error("redis failed err=%v", err) | ||
409 | - resp.Message = "服务器错误" | ||
410 | - resp.Code = ERROR_SRV_ERROR | ||
411 | - break | ||
412 | - } | ||
413 | - | ||
414 | - //需要先计算出任务或者成就 | ||
415 | - var tasklist *TaskList | ||
416 | - //先查询一下当前的任务数据 | ||
417 | - tasklist, err = GetTaskInfo(uuid, rdata.Tasktype) | ||
418 | - if err != nil || tasklist == nil { | ||
419 | - logger.Error("GetTaskInfo failed err=%v", err) | ||
420 | - resp.Message = "服务器错误" | ||
421 | - resp.Code = ERROR_SRV_ERROR | ||
422 | - break | ||
423 | - } | ||
424 | - | ||
425 | - err = uinfo.HandleGetTaskReward(&rdata, &resp, tasklist) | ||
426 | - logger.Info("HandlerGettaskreward tasklist=%v", tasklist) | ||
427 | - logger.Info("HandlerGettaskreward uinfo=%v", uinfo) | ||
428 | - if err != nil { | ||
429 | - logger.Error("HandleGetTaskReward failed err=%v", err) | ||
430 | - resp.Message = "奖励已经领取" | ||
431 | - resp.Code = ERROR_SRV_ERROR | ||
432 | - break | ||
433 | - } | ||
434 | - | ||
435 | - //保存数据 | ||
436 | - err = SaveUserInfo(uinfo) | ||
437 | - err = SaveTaskInfo(uinfo.Userid, rdata.Tasktype, tasklist) | ||
438 | - | ||
439 | - resp.Code = ERROR_OK | ||
440 | - break | ||
441 | - } | ||
442 | - | ||
443 | - //回包 | ||
444 | - respstr, _ := json.Marshal(&resp) | ||
445 | - fmt.Fprint(w, string(respstr)) | ||
446 | - | ||
447 | -} | ||
448 | - | ||
449 | -func HandlerQuerytaskinfo(w http.ResponseWriter, data string, uuid int) { | ||
450 | - SetHeader(w) | ||
451 | - var resp QuerytaskinfoResp | ||
452 | - resp.Code = 0 | ||
453 | - var rdata QuerytaskinfoReq | ||
454 | - err := json.Unmarshal([]byte(data), &rdata) | ||
455 | - for { | ||
456 | - if err != nil { | ||
457 | - logger.Info("json decode HandlerQuerytaskinfo data failed:%v,for:%v", err, data) | ||
458 | - resp.Message = "网络错误" | ||
459 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
460 | - break | ||
461 | - } | ||
462 | - uinfo, err := GetUserInfo(uuid) | ||
463 | - if err != nil || uinfo == nil { | ||
464 | - logger.Error("redis failed err=%v", err) | ||
465 | - resp.Message = "服务器错误" | ||
466 | - resp.Code = ERROR_SRV_ERROR | ||
467 | - break | ||
468 | - } | ||
469 | - | ||
470 | - uinfo.HandlePassDay() | ||
471 | - | ||
472 | - //需要先计算出任务或者成就 | ||
473 | - var tasklist *TaskList | ||
474 | - //先查询一下当前的任务数据 | ||
475 | - tasklist, err = GetTaskInfo(uuid, rdata.Tasktype) | ||
476 | - if err != nil || tasklist == nil { | ||
477 | - logger.Error("redis failed err=%v", err) | ||
478 | - resp.Message = "服务器错误" | ||
479 | - resp.Code = ERROR_SRV_ERROR | ||
480 | - break | ||
481 | - } | ||
482 | - | ||
483 | - if rdata.Tasktype == 1 { | ||
484 | - uinfo.CalcTaskList(tasklist) | ||
485 | - } else if rdata.Tasktype == 2 { | ||
486 | - tasklist = uinfo.CalcAchieveList(tasklist) | ||
487 | - } else { | ||
488 | - uinfo.CalcTaskList(tasklist) | ||
489 | - } | ||
490 | - | ||
491 | - if tasklist == nil { | ||
492 | - logger.Error("redis failed err=%v", err) | ||
493 | - resp.Message = "服务器错误" | ||
494 | - resp.Code = ERROR_SRV_ERROR | ||
495 | - break | ||
496 | - } | ||
497 | - | ||
498 | - resp.Data.Taskdata = append(resp.Data.Taskdata, tasklist.Taskdata...) | ||
499 | - | ||
500 | - resp.Code = ERROR_OK | ||
501 | - break | ||
502 | - } | ||
503 | - | ||
504 | - //回包 | ||
505 | - logger.Info("HandlerQuerytaskinfo resp=%v", resp) | ||
506 | - respstr, _ := json.Marshal(&resp) | ||
507 | - fmt.Fprint(w, string(respstr)) | ||
508 | - | ||
509 | -} | ||
510 | - | ||
511 | -func HandlerUpdatetaskandachieve(w http.ResponseWriter, data string, uuid int) { | ||
512 | - SetHeader(w) | ||
513 | - var resp UpdatetaskResp | ||
514 | - resp.Code = 0 | ||
515 | - var rdata UpdatetaskReq | ||
516 | - err := json.Unmarshal([]byte(data), &rdata) | ||
517 | - for { | ||
518 | - | ||
519 | - if err != nil { | ||
520 | - logger.Info("json decode HandlerDrawguangold data failed:%v,for:%v", err, data) | ||
521 | - resp.Message = "json解析错误" | ||
522 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
523 | - break | ||
524 | - } | ||
525 | - uinfo, err := GetUserInfo(uuid) | ||
526 | - if err != nil || uinfo == nil { | ||
527 | - logger.Error("redis failed err=%v", err) | ||
528 | - resp.Message = "服务器错误" | ||
529 | - resp.Code = ERROR_SRV_ERROR | ||
530 | - break | ||
531 | - } | ||
532 | - | ||
533 | - switch rdata.Tasktype { | ||
534 | - case TASKTYPE_PASSLEVEL: | ||
535 | - uinfo.Task.PassLevel += rdata.Value | ||
536 | - case TASKTYPE_GETREDBAG: | ||
537 | - uinfo.Task.GetRedbagCnt += rdata.Value | ||
538 | - if uinfo.LeftFreeRB > 0 { | ||
539 | - uinfo.LeftFreeRB-- | ||
540 | - } | ||
541 | - if uinfo.WatchAddsTime > 0 { | ||
542 | - uinfo.WatchAddsTime-- | ||
543 | - } | ||
544 | - case TASKTYPE_WATCHADS: | ||
545 | - uinfo.Achieve.WatchAdsCnt += rdata.Value | ||
546 | - case TASKTYPE_KILLSTAR: | ||
547 | - uinfo.Achieve.KillStar += rdata.Value | ||
548 | - case TASKTYPE_USEITEM: | ||
549 | - uinfo.Task.UseItemCnt += rdata.Value | ||
550 | - uinfo.Achieve.SumUseItemCnt += rdata.Value | ||
551 | - } | ||
552 | - logger.Info("HandlerUpdatetaskandachieve uinfo=%v rdata=%v", uinfo, rdata) | ||
553 | - SaveUserInfo(uinfo) | ||
554 | - resp.Code = ERROR_OK | ||
555 | - break | ||
556 | - } | ||
557 | - | ||
558 | - //回包 | ||
559 | - respstr, _ := json.Marshal(&resp) | ||
560 | - fmt.Fprint(w, string(respstr)) | ||
561 | - | ||
562 | -} | ||
563 | - | ||
564 | -func HandlerOnlinentf(w http.ResponseWriter, data string, uuid int) { | ||
565 | - SetHeader(w) | ||
566 | - var resp OnlinentfResp | ||
567 | - resp.Code = 0 | ||
568 | - for { | ||
569 | - | ||
570 | - uinfo, err := GetUserInfo(uuid) | ||
571 | - if err != nil || uinfo == nil { | ||
572 | - logger.Error("redis failed err=%v", err) | ||
573 | - resp.Message = "服务器错误" | ||
574 | - resp.Code = ERROR_SRV_ERROR | ||
575 | - break | ||
576 | - } | ||
577 | - | ||
578 | - uinfo.Task.OnlineMin++ | ||
579 | - | ||
580 | - SaveUserInfo(uinfo) | ||
581 | - | ||
582 | - resp.Code = ERROR_OK | ||
583 | - break | ||
584 | - } | ||
585 | - | ||
586 | - //回包 | ||
587 | - respstr, _ := json.Marshal(&resp) | ||
588 | - fmt.Fprint(w, string(respstr)) | ||
589 | - | ||
590 | -} | ||
591 | - | ||
592 | -func HandlerGetcashrecord(w http.ResponseWriter, data string, uuid int) { | ||
593 | - SetHeader(w) | ||
594 | - var resp GetcashrecordResp | ||
595 | - resp.Code = 0 | ||
596 | - var rdata GetcashrecordReq | ||
597 | - err := json.Unmarshal([]byte(data), &rdata) | ||
598 | - for { | ||
599 | - if err != nil { | ||
600 | - logger.Info("json decode HandlerGetcashrecord data failed:%v,for:%v", err, data) | ||
601 | - resp.Message = "json解析错误" | ||
602 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
603 | - break | ||
604 | - } | ||
605 | - // list, err := GetWithDrawList(uuid) | ||
606 | - /*if err != nil || list == nil { | ||
607 | - /*logger.Error("HandlerGetcashrecord failed err=%v", err) | ||
608 | - resp.Message = "服务器错误" | ||
609 | - resp.Code = ERROR_SRV_ERROR | ||
610 | - break | ||
611 | - }*/ | ||
612 | - list, err := GetCashList(uuid, rdata.Gameid, rdata.Channel, 0, 100) | ||
613 | - if err != nil { | ||
614 | - logger.Error("HandlerGetcashrecord failed err=%v", err) | ||
615 | - resp.Message = "服务器错误" | ||
616 | - resp.Code = ERROR_SRV_ERROR | ||
617 | - break | ||
618 | - } | ||
619 | - if list != nil { | ||
620 | - resp.Data.Withdata = append(resp.Data.Withdata, *list...) | ||
621 | - } | ||
622 | - | ||
623 | - resp.Code = ERROR_OK | ||
624 | - break | ||
625 | - } | ||
626 | - | ||
627 | - //回包 | ||
628 | - respstr, _ := json.Marshal(&resp) | ||
629 | - fmt.Fprint(w, string(respstr)) | ||
630 | - | ||
631 | -} | ||
632 | - | ||
633 | -func HandlerQuerdrawinfo(w http.ResponseWriter, data string, uuid int) { | ||
634 | - SetHeader(w) | ||
635 | - var resp QuerdrawinfoResp | ||
636 | - resp.Code = 0 | ||
637 | - for { | ||
638 | - uinfo, err := GetUserInfo(uuid) | ||
639 | - if err != nil || uinfo == nil { | ||
640 | - logger.Error("redis failed err=%v", err) | ||
641 | - resp.Message = "服务器错误" | ||
642 | - resp.Code = ERROR_SRV_ERROR | ||
643 | - break | ||
644 | - } | ||
645 | - | ||
646 | - //返回 | ||
647 | - resp.Data.Cashdata = append(resp.Data.Cashdata, uinfo.WithDraw.Cashdata...) | ||
648 | - | ||
649 | - resp.Code = ERROR_OK | ||
650 | - break | ||
651 | - } | ||
652 | - | ||
653 | - //回包 | ||
654 | - respstr, _ := json.Marshal(&resp) | ||
655 | - fmt.Fprint(w, string(respstr)) | ||
656 | - | ||
657 | -} | ||
658 | - | ||
659 | -func HandlerDrawguangold(w http.ResponseWriter, data string, uuid int) { | ||
660 | - SetHeader(w) | ||
661 | - var resp DrawguangoldResp | ||
662 | - resp.Code = 0 | ||
663 | - var rdata DrawguangoldReq | ||
664 | - err := json.Unmarshal([]byte(data), &rdata) | ||
665 | - for { | ||
666 | - if err != nil { | ||
667 | - logger.Info("json decode HandlerDrawguangold data failed:%v,for:%v", err, data) | ||
668 | - resp.Message = "json解析错误" | ||
669 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
670 | - break | ||
671 | - } | ||
672 | - | ||
673 | - uinfo, err := GetUserInfo(uuid) | ||
674 | - if err != nil || uinfo == nil { | ||
675 | - logger.Error("redis failed err=%v", err) | ||
676 | - resp.Message = "服务器错误" | ||
677 | - resp.Code = ERROR_SRV_ERROR | ||
678 | - break | ||
679 | - } | ||
680 | - //首先判断一下存钱罐的金币是否足够 | ||
681 | - if rdata.Goldnum > uinfo.GuanGold { | ||
682 | - logger.Error("guangold not enough rdata.Goldnum=%v uinfo.GuanGold=%v", rdata.Goldnum, uinfo.GuanGold) | ||
683 | - resp.Message = "存钱罐金币不足" | ||
684 | - resp.Code = ERROR_GUANGOLD_NOTENOUGH | ||
685 | - break | ||
686 | - } | ||
687 | - | ||
688 | - //判断一下是否满足提取条件 | ||
689 | - totalcnt := uinfo.CalcTotalCnt() | ||
690 | - if totalcnt <= uinfo.GetFromGuanCnt { | ||
691 | - logger.Error("guancnt not enough ") | ||
692 | - resp.Message = "存钱罐次数不足" | ||
693 | - resp.Code = ERROR_GUANCNTNOTENOUGH | ||
694 | - break | ||
695 | - } | ||
696 | - | ||
697 | - // | ||
698 | - mcfg := jsonconf.GetMoneyBoxCfg(uinfo.Lv) | ||
699 | - if mcfg == nil { | ||
700 | - logger.Error("GetMoneyBoxCfg failed err=%v", err) | ||
701 | - resp.Message = "获取配置失败" | ||
702 | - resp.Code = ERROR_GETCONFIG_FAILED | ||
703 | - break | ||
704 | - } | ||
705 | - | ||
706 | - if rdata.Goldnum < mcfg.Min || rdata.Goldnum > mcfg.Max { | ||
707 | - logger.Error("GetMoneyBoxCfg failed err=%v", err) | ||
708 | - resp.Message = "从存钱罐提取金币不满足限制" | ||
709 | - resp.Code = ERROR_DRAWGUAN_FAILED | ||
710 | - break | ||
711 | - } | ||
712 | - | ||
713 | - //todo 此处需要调佣SDK接口通知金币变化 | ||
714 | - goldnum, err := AddCoinToSdk(uuid, rdata.Goldnum, rdata.Gameid, rdata.Channel, 100) | ||
715 | - if err != nil { | ||
716 | - logger.Error("Drawgold failed err=%v", err) | ||
717 | - resp.Message = "从存钱罐提取金币失败了" | ||
718 | - resp.Code = ERROR_DRAWGOLD_FAILED | ||
719 | - break | ||
720 | - } | ||
721 | - | ||
722 | - uinfo.GetFromGuanCnt++ | ||
723 | - uinfo.Achieve.SumGetGuan++ | ||
724 | - uinfo.GuanGold = uinfo.GuanGold - rdata.Goldnum | ||
725 | - uinfo.RealGold = goldnum | ||
726 | - //uinfo.RealGold += rdata.Goldnum | ||
727 | - | ||
728 | - resp.Data.Guangold = uinfo.GuanGold | ||
729 | - resp.Data.Wallgold = uinfo.RealGold | ||
730 | - resp.Data.Totalfetchcnt = uinfo.Achieve.SumGetGuan | ||
731 | - | ||
732 | - SaveUserInfo(uinfo) | ||
733 | - | ||
734 | - resp.Code = ERROR_OK | ||
735 | - break | ||
736 | - } | ||
737 | - | ||
738 | - //回包 | ||
739 | - respstr, _ := json.Marshal(&resp) | ||
740 | - fmt.Fprint(w, string(respstr)) | ||
741 | - | ||
742 | -} | ||
743 | - | ||
744 | -func HandlerGetguangold(w http.ResponseWriter, data string, uuid int) { | ||
745 | - SetHeader(w) | ||
746 | - var resp GetguangoldResp | ||
747 | - resp.Code = 0 | ||
748 | - var rdata GetguangoldReq | ||
749 | - err := json.Unmarshal([]byte(data), &rdata) | ||
750 | - for { | ||
751 | - if err != nil { | ||
752 | - logger.Info("json decode HandlerGetguangold data failed:%v,for:%v", err, data) | ||
753 | - resp.Message = "json解析错误" | ||
754 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
755 | - break | ||
756 | - } | ||
757 | - | ||
758 | - uinfo, err := GetUserInfo(uuid) | ||
759 | - if err != nil || uinfo == nil { | ||
760 | - logger.Error("redis failed err=%v", err) | ||
761 | - resp.Message = "服务器错误" | ||
762 | - resp.Code = ERROR_SRV_ERROR | ||
763 | - break | ||
764 | - } | ||
765 | - | ||
766 | - mcfg := jsonconf.GetMoneyBoxCfg(uinfo.Lv) | ||
767 | - if mcfg == nil { | ||
768 | - logger.Error("GetMoneyBoxCfg failed err=%v", err) | ||
769 | - resp.Message = "获取配置失败" | ||
770 | - resp.Code = ERROR_GETCONFIG_FAILED | ||
771 | - break | ||
772 | - } | ||
773 | - | ||
774 | - uinfo.GuanGold += rdata.Goldnum | ||
775 | - if uinfo.GuanGold >= mcfg.Max { | ||
776 | - uinfo.GuanGold = mcfg.Max | ||
777 | - } | ||
778 | - | ||
779 | - resp.Data.Guangold = uinfo.GuanGold | ||
780 | - //uinfo.Task.GetGuanGold += rdata.Goldnum | ||
781 | - uinfo.Task.GetGuanGold++ | ||
782 | - | ||
783 | - SaveUserInfo(uinfo) | ||
784 | - | ||
785 | - resp.Code = ERROR_OK | ||
786 | - break | ||
787 | - } | ||
788 | - | ||
789 | - //回包 | ||
790 | - respstr, _ := json.Marshal(&resp) | ||
791 | - fmt.Fprint(w, string(respstr)) | ||
792 | - | ||
793 | -} | ||
794 | - | ||
795 | -func HandlerGetuserdata(w http.ResponseWriter, data string, uuid int) { | ||
796 | - SetHeader(w) | ||
797 | - var resp GetuserdataResp | ||
798 | - resp.Code = 0 | ||
799 | - var rdata GetuserdataReq | ||
800 | - err := json.Unmarshal([]byte(data), &rdata) | ||
801 | - for { | ||
802 | - if err != nil { | ||
803 | - logger.Info("json decode HandlerGetuserdata data failed:%v,for:%v", err, data) | ||
804 | - resp.Message = "json解析错误" | ||
805 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
806 | - break | ||
807 | - } | ||
808 | - | ||
809 | - data, err := GetUserInfo(uuid) | ||
810 | - if err != nil || data == nil { | ||
811 | - resp.Code = ERROR_SRV_ERROR | ||
812 | - resp.Message = "ERROR_SRV_ERROR" | ||
813 | - break | ||
814 | - } | ||
815 | - | ||
816 | - //此处处理一下从sdk拉取钱包金币数量 | ||
817 | - gold, err := GetCoinFromSdk(uuid, rdata.Gameid, rdata.Channel) | ||
818 | - if err == nil { | ||
819 | - data.RealGold = gold | ||
820 | - } else { | ||
821 | - logger.Error("GetCoinFromSdk failed err=%v", err) | ||
822 | - } | ||
823 | - | ||
824 | - resp.Data.Walletgold = data.RealGold | ||
825 | - resp.Data.Guangold = data.GuanGold | ||
826 | - resp.Data.Leftredbagcnt = data.WatchAddsTime | ||
827 | - resp.Data.Userexp = data.Exp | ||
828 | - resp.Data.Userlv = data.Lv | ||
829 | - resp.Data.Leftfreeredbag = data.LeftFreeRB | ||
830 | - SaveUserInfo(data) | ||
831 | - | ||
832 | - resp.Code = ERROR_OK | ||
833 | - break | ||
834 | - } | ||
835 | - | ||
836 | - //回包 | ||
837 | - respstr, _ := json.Marshal(&resp) | ||
838 | - fmt.Fprint(w, string(respstr)) | ||
839 | - | ||
840 | - logger.Info("###HandlerLogin###rdata:%v", string(respstr)) | ||
841 | -} | ||
842 | - | ||
843 | -func HandlerLogin(w http.ResponseWriter, data string, uuid int) { | ||
844 | - SetHeader(w) | ||
845 | - var resp UserLoginResp | ||
846 | - resp.Code = 0 | ||
847 | - var rdata UserLoginReq | ||
848 | - err := json.Unmarshal([]byte(data), &rdata) | ||
849 | - for { | ||
850 | - if err != nil { | ||
851 | - logger.Info("json decode HandlerLogin data failed:%v,for:%v", err, data) | ||
852 | - resp.Message = "json解析错误" | ||
853 | - resp.Code = ERROR_JSONUNMASH_ERROR | ||
854 | - break | ||
855 | - } | ||
856 | - | ||
857 | - //先判断一下是否是新用户 | ||
858 | - isexist, err := redishandler.GetRedisClient().HExists(redis.USER_DATA_KEY, strconv.Itoa(uuid)) | ||
859 | - if err != nil { | ||
860 | - logger.Error("redis failed err=%v", err) | ||
861 | - resp.Message = "服务器错误" | ||
862 | - resp.Code = ERROR_SRV_ERROR | ||
863 | - break | ||
864 | - } | ||
865 | - | ||
866 | - if !isexist { | ||
867 | - //不存在 | ||
868 | - //属于新登录的玩家数据 | ||
869 | - err = InitUserInfo(&rdata, &resp, uuid) | ||
870 | - } else { | ||
871 | - //已经登陆过了 需要获取玩家数据 | ||
872 | - err = GetUserData(uuid, &rdata, &resp) | ||
873 | - } | ||
874 | - | ||
875 | - if err != nil { | ||
876 | - logger.Error("redis failed err=%v", err) | ||
877 | - resp.Message = "服务器错误" | ||
878 | - resp.Code = ERROR_SRV_ERROR | ||
879 | - break | ||
880 | - } | ||
881 | - | ||
882 | - resp.Code = ERROR_OK | ||
883 | - break | ||
884 | - } | ||
885 | - | ||
886 | - //回包 | ||
887 | - respstr, _ := json.Marshal(&resp) | ||
888 | - fmt.Fprint(w, string(respstr)) | ||
889 | - | ||
890 | - logger.Info("###HandlerLogin###rdata:%v", string(respstr)) | ||
891 | -} |