Commit 44d0666a9973d701112fff4d3e5acb531c9b25c3
1 parent
2a449103
Exists in
master
and in
4 other branches
提交
Showing
4 changed files
with
152 additions
and
2 deletions
Show diff stats
src/HttpServer/logic/constdef.go
@@ -53,6 +53,8 @@ const ( | @@ -53,6 +53,8 @@ const ( | ||
53 | ) | 53 | ) |
54 | 54 | ||
55 | const ( | 55 | const ( |
56 | - WATCH_ADD_DAY_LIMIT = 50 //当天获取红包次数限制 | ||
57 | - FREE_REDBAG_NUM = 3 //玩家免费红包次数 | 56 | + WATCH_ADD_DAY_LIMIT = 50 //当天获取红包次数限制 |
57 | + FREE_REDBAG_NUM = 3 //玩家免费红包次数 | ||
58 | + READGOLDMULTI = 10 //阅读量到金币转化倍数 | ||
59 | + SDKOPGOLD_TYPEWE = 302 //微转发金币类型 | ||
58 | ) | 60 | ) |
src/HttpServer/logic/datadef.go
@@ -223,6 +223,26 @@ type QuerysigndataData struct { | @@ -223,6 +223,26 @@ type QuerysigndataData struct { | ||
223 | IssignToday int `json:"issignToday"` | 223 | IssignToday int `json:"issignToday"` |
224 | } | 224 | } |
225 | 225 | ||
226 | +type QueryReadGoldData struct { | ||
227 | + Goldnum int `json:"goldnum"` | ||
228 | +} | ||
229 | + | ||
230 | +type QueryReadGoldResp struct { | ||
231 | + Code int `json:"code"` | ||
232 | + Message string `json:"message"` | ||
233 | + Data QueryReadGoldData `json:"data"` | ||
234 | +} | ||
235 | + | ||
236 | +type FetchreadgoldData struct { | ||
237 | + Goldnum int `json:"goldnum"` | ||
238 | +} | ||
239 | + | ||
240 | +type FetchreadgoldResp struct { | ||
241 | + Code int `json:"code"` | ||
242 | + Message string `json:"message"` | ||
243 | + Data FetchreadgoldData `json:"data"` | ||
244 | +} | ||
245 | + | ||
226 | type QuerysigndataResp struct { | 246 | type QuerysigndataResp struct { |
227 | Code int `json:"code"` | 247 | Code int `json:"code"` |
228 | Message string `json:"message"` | 248 | Message string `json:"message"` |
src/HttpServer/logic/httpserver.go
@@ -63,6 +63,8 @@ func startServerHttpServe() { | @@ -63,6 +63,8 @@ func startServerHttpServe() { | ||
63 | http.HandleFunc("/eliminatestar/usersign", Usersign) //玩家签到 | 63 | http.HandleFunc("/eliminatestar/usersign", Usersign) //玩家签到 |
64 | // | 64 | // |
65 | http.HandleFunc("/eliminatestar/readNumUpload", ReadNumUpload) //阅读量上报 | 65 | http.HandleFunc("/eliminatestar/readNumUpload", ReadNumUpload) //阅读量上报 |
66 | + http.HandleFunc("/eliminatestar/queryreadgold", QueryReadGold) //获取微转发金币数 | ||
67 | + http.HandleFunc("/eliminatestar/fetchreadgold", Fetchreadgold) //领取微转发金币数 | ||
66 | 68 | ||
67 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) | 69 | err := http.ListenAndServe(conf.GetServerHttpAddrConf(), nil) |
68 | CheckErr(err) | 70 | CheckErr(err) |
@@ -160,6 +162,48 @@ func Querysigndata(w http.ResponseWriter, r *http.Request) { | @@ -160,6 +162,48 @@ func Querysigndata(w http.ResponseWriter, r *http.Request) { | ||
160 | HandlerQuerysigndata(w, s, Uuid) | 162 | HandlerQuerysigndata(w, s, Uuid) |
161 | } | 163 | } |
162 | 164 | ||
165 | +func Fetchreadgold(w http.ResponseWriter, r *http.Request) { | ||
166 | + | ||
167 | + Uuid := 0 | ||
168 | + if len(r.Header) > 0 { | ||
169 | + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
170 | + } | ||
171 | + | ||
172 | + if Uuid == 0 { | ||
173 | + SetHeader(w) | ||
174 | + //logger.Error("Uuid is nil!") | ||
175 | + return | ||
176 | + } | ||
177 | + result, _ := ioutil.ReadAll(r.Body) | ||
178 | + r.Body.Close() | ||
179 | + | ||
180 | + s := string(result) | ||
181 | + logger.Info("Fetchreadgold , body:%v,uuid=%v", s, Uuid) | ||
182 | + | ||
183 | + HandlerFetchreadgold(w, s, Uuid) | ||
184 | +} | ||
185 | + | ||
186 | +func QueryReadGold(w http.ResponseWriter, r *http.Request) { | ||
187 | + | ||
188 | + Uuid := 0 | ||
189 | + if len(r.Header) > 0 { | ||
190 | + Uuid, _ = strconv.Atoi(r.Header.Get("Uuid")) | ||
191 | + } | ||
192 | + | ||
193 | + if Uuid == 0 { | ||
194 | + SetHeader(w) | ||
195 | + //logger.Error("Uuid is nil!") | ||
196 | + return | ||
197 | + } | ||
198 | + result, _ := ioutil.ReadAll(r.Body) | ||
199 | + r.Body.Close() | ||
200 | + | ||
201 | + s := string(result) | ||
202 | + logger.Info("QueryReadGold , body:%v,uuid=%v", s, Uuid) | ||
203 | + | ||
204 | + HandlerQueryReadGold(w, s, Uuid) | ||
205 | +} | ||
206 | + | ||
163 | func Addcoin(w http.ResponseWriter, r *http.Request) { | 207 | func Addcoin(w http.ResponseWriter, r *http.Request) { |
164 | SetHeader(w) | 208 | SetHeader(w) |
165 | query := r.URL.Query() | 209 | query := r.URL.Query() |
src/HttpServer/logic/logic.go
@@ -228,6 +228,90 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | @@ -228,6 +228,90 @@ func HandlerGetcash(w http.ResponseWriter, data string, uuid int) { | ||
228 | 228 | ||
229 | } | 229 | } |
230 | 230 | ||
231 | +func HandlerFetchreadgold(w http.ResponseWriter, data string, uuid int) { | ||
232 | + SetHeader(w) | ||
233 | + var resp FetchreadgoldResp | ||
234 | + resp.Code = 0 | ||
235 | + var rdata CommReq | ||
236 | + err := json.Unmarshal([]byte(data), &rdata) | ||
237 | + for { | ||
238 | + | ||
239 | + if err != nil { | ||
240 | + logger.Info("json decode HandlerFetchreadgold data failed:%v,for:%v", err, data) | ||
241 | + resp.Message = "json解析错误" | ||
242 | + resp.Code = ERROR_JSONUNMASH_ERROR | ||
243 | + break | ||
244 | + } | ||
245 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
246 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
247 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
248 | + if err != nil || uinfo == nil { | ||
249 | + logger.Error("redis failed err=%v", err) | ||
250 | + resp.Message = "服务器错误" | ||
251 | + resp.Code = ERROR_SRV_ERROR | ||
252 | + break | ||
253 | + } | ||
254 | + | ||
255 | + //加金币到后台 | ||
256 | + addgold := uinfo.ReadNum * READGOLDMULTI | ||
257 | + realgiold, err := AddCoinToSdk(uuid, addgold, rdata.Gameid, rdata.Channel, SDKOPGOLD_TYPEWE) | ||
258 | + if err != nil { | ||
259 | + logger.Error("HandlerFetchreadgold failed err=%v", err) | ||
260 | + resp.Message = "后台加金币失败" | ||
261 | + resp.Code = ERROR_SRV_ERROR | ||
262 | + } | ||
263 | + | ||
264 | + uinfo.RealGold = realgiold | ||
265 | + uinfo.ReadNum = 0 | ||
266 | + | ||
267 | + err = SaveUserInfo(uinfo, uniqueuuid) | ||
268 | + if err != nil { | ||
269 | + logger.Error("HandlerFetchreadgold failed err=%v", err) | ||
270 | + } | ||
271 | + //resp.Data.Goldnum = uinfo.ReadNum * READGOLDMULTI | ||
272 | + | ||
273 | + resp.Code = ERROR_OK | ||
274 | + break | ||
275 | + } | ||
276 | + | ||
277 | + respstr, _ := json.Marshal(&resp) | ||
278 | + fmt.Fprint(w, string(respstr)) | ||
279 | +} | ||
280 | + | ||
281 | +func HandlerQueryReadGold(w http.ResponseWriter, data string, uuid int) { | ||
282 | + SetHeader(w) | ||
283 | + var resp QueryReadGoldResp | ||
284 | + resp.Code = 0 | ||
285 | + var rdata CommReq | ||
286 | + err := json.Unmarshal([]byte(data), &rdata) | ||
287 | + for { | ||
288 | + | ||
289 | + if err != nil { | ||
290 | + logger.Info("json decode HandlerQueryReadGold data failed:%v,for:%v", err, data) | ||
291 | + resp.Message = "json解析错误" | ||
292 | + resp.Code = ERROR_JSONUNMASH_ERROR | ||
293 | + break | ||
294 | + } | ||
295 | + //需要加上渠道才是唯一的玩家id,不同渠道视为不同数据 | ||
296 | + uniqueuuid := strconv.Itoa(uuid) + rdata.Channel | ||
297 | + uinfo, err := GetUserInfo(uniqueuuid) | ||
298 | + if err != nil || uinfo == nil { | ||
299 | + logger.Error("redis failed err=%v", err) | ||
300 | + resp.Message = "服务器错误" | ||
301 | + resp.Code = ERROR_SRV_ERROR | ||
302 | + break | ||
303 | + } | ||
304 | + | ||
305 | + resp.Data.Goldnum = uinfo.ReadNum * READGOLDMULTI | ||
306 | + | ||
307 | + resp.Code = ERROR_OK | ||
308 | + break | ||
309 | + } | ||
310 | + | ||
311 | + respstr, _ := json.Marshal(&resp) | ||
312 | + fmt.Fprint(w, string(respstr)) | ||
313 | +} | ||
314 | + | ||
231 | func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) { | 315 | func HandlerQuerysigndata(w http.ResponseWriter, data string, uuid int) { |
232 | SetHeader(w) | 316 | SetHeader(w) |
233 | var resp QuerysigndataResp | 317 | var resp QuerysigndataResp |