Commit 078ac6151d3ef70c1f680e0f07f6ebfc070f3d28
1 parent
17e83e81
Exists in
master
提交新的保存接口
Showing
1 changed file
with
100 additions
and
2 deletions
Show diff stats
src/HttpServer/logic/logic.go
@@ -300,10 +300,108 @@ func HandleNewSaveData(w http.ResponseWriter, data string) { | @@ -300,10 +300,108 @@ func HandleNewSaveData(w http.ResponseWriter, data string) { | ||
300 | } | 300 | } |
301 | 301 | ||
302 | //解析val json | 302 | //解析val json |
303 | + m1 := make(map[string]interface{}) | ||
304 | + err = json.Unmarshal([]byte(val), &m1) | ||
305 | + if err != nil { | ||
306 | + logger.Error("HandleNewSaveData failed1,err=%v", err) | ||
307 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
308 | + resp.Result.Data = "json unmarsha failed" | ||
309 | + break | ||
310 | + } | ||
311 | + m2 := make(map[string]interface{}) | ||
312 | + err = json.Unmarshal([]byte(rdata.Value), &m2) | ||
313 | + if err != nil { | ||
314 | + logger.Error("HandleNewSaveData failed1,err=%v", err) | ||
315 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
316 | + resp.Result.Data = "json unmarsha failed" | ||
317 | + break | ||
318 | + } | ||
303 | 319 | ||
304 | - //首先解析value | 320 | + //比较猫数据 |
321 | + catmap1 := m1["catData"].(map[string]interface{}) | ||
322 | + catmap2 := m2["catData"].(map[string]interface{}) | ||
323 | + logger.Info("HandleNewSaveData catmap1=%v",catmap1) | ||
324 | + logger.Info("HandleNewSaveData catmap2=%v",catmap2) | ||
325 | + if len(catmap2) < len(catmap1) { | ||
326 | + logger.Error("HandleNewSaveData failed1,err=%v", err) | ||
327 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
328 | + resp.Result.Data = "ERROR_SRVDB_FAILED" | ||
329 | + break | ||
330 | + } | ||
331 | + for k,vak := range catmap2 { | ||
332 | + if catmap1[k] != nil { | ||
333 | + //需要比较等级 | ||
334 | + c2 := vak.(map[string]interface{}) | ||
335 | + c1 := catmap1[k].(map[string]interface{}) | ||
336 | + if c1["level"]!= nil && c2["level"]!= nil { | ||
337 | + logger.Info("HandleNewSaveData c1=%v c2=%v",c1["level"],c2["level"]) | ||
338 | + if c2["level"].(int) < c1["level"].(int) { | ||
339 | + logger.Error("HandleNewSaveData failed2,err=%v", err) | ||
340 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
341 | + resp.Result.Data = "ERROR_SRVDB_FAILED" | ||
342 | + break | ||
343 | + } | ||
344 | + } | ||
345 | + } | ||
346 | + } | ||
305 | 347 | ||
306 | - //比对数据 如果不符合则不保存 | 348 | + //比较roomData |
349 | + roommap1 := m1["roomData"].(map[string]interface{}) | ||
350 | + roommap2 := m2["roomData"].(map[string]interface{}) | ||
351 | + logger.Info("HandleNewSaveData catmap1=%v",roommap1) | ||
352 | + logger.Info("HandleNewSaveData catmap2=%v",roommap2) | ||
353 | + if len(roommap2) < len(roommap1) { | ||
354 | + logger.Error("HandleNewSaveData failed3,err=%v", err) | ||
355 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
356 | + resp.Result.Data = "ERROR_SRVDB_FAILED" | ||
357 | + break | ||
358 | + } | ||
359 | + for k,val := range roommap2 { | ||
360 | + if roommap1[k] != nil { | ||
361 | + r2 := val.(map[string]interface{}) | ||
362 | + r1 := roommap1[k].(map[string]interface{}) | ||
363 | + //比较unlockId | ||
364 | + rr2 := r2["unlockId"].([]interface {}) | ||
365 | + rr1 := r1["unlockId"].([]interface {}) | ||
366 | + if len(rr2) < len(rr1) { | ||
367 | + logger.Error("HandleNewSaveData failed4,err=%v", err) | ||
368 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
369 | + resp.Result.Data = "ERROR_SRVDB_FAILED" | ||
370 | + break | ||
371 | + } | ||
372 | + | ||
373 | + //比较furnitData | ||
374 | + rrr2 := r2["furnitData"].(map[string]interface{}) | ||
375 | + rrr1 := r1["furnitData"].(map[string]interface{}) | ||
376 | + if len(rrr2) < len(rrr1) { | ||
377 | + logger.Error("HandleNewSaveData failed5,err=%v", err) | ||
378 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
379 | + resp.Result.Data = "ERROR_SRVDB_FAILED" | ||
380 | + break | ||
381 | + } | ||
382 | + } | ||
383 | + } | ||
384 | + | ||
385 | + //coffeeData | ||
386 | + coffmap1 := m1["coffeeData"].(map[string]interface{}) | ||
387 | + coffmap2 := m2["coffeeData"].(map[string]interface{}) | ||
388 | + cdmap1 := coffmap1["datas"].(map[string]interface{}) | ||
389 | + cdmap2 := coffmap2["datas"].(map[string]interface{}) | ||
390 | + if len(cdmap2) < len(cdmap1) { | ||
391 | + logger.Error("HandleNewSaveData failed6,err=%v", err) | ||
392 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
393 | + resp.Result.Data = "ERROR_SRVDB_FAILED" | ||
394 | + break | ||
395 | + } | ||
396 | + | ||
397 | + //全部校验过后 | ||
398 | + err = redishandler.GetRedisClient().SetString(rkey,rdata.Value) | ||
399 | + if err != nil { | ||
400 | + logger.Error("HandleNewSaveData failed7,err=%v", err) | ||
401 | + resp.Result.Code = ERROR_SRVDB_FAILED | ||
402 | + resp.Result.Data = "ERROR_SRVDB_FAILED" | ||
403 | + break | ||
404 | + } | ||
307 | 405 | ||
308 | resp.Result.Code = ERROR_OK | 406 | resp.Result.Code = ERROR_OK |
309 | break | 407 | break |