From 078ac6151d3ef70c1f680e0f07f6ebfc070f3d28 Mon Sep 17 00:00:00 2001 From: 陆恒 Date: Wed, 20 May 2020 16:25:01 +0800 Subject: [PATCH] 提交新的保存接口 --- src/HttpServer/logic/logic.go | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 100 insertions(+), 2 deletions(-) diff --git a/src/HttpServer/logic/logic.go b/src/HttpServer/logic/logic.go index 4183aa3..179e192 100644 --- a/src/HttpServer/logic/logic.go +++ b/src/HttpServer/logic/logic.go @@ -300,10 +300,108 @@ func HandleNewSaveData(w http.ResponseWriter, data string) { } //解析val json + m1 := make(map[string]interface{}) + err = json.Unmarshal([]byte(val), &m1) + if err != nil { + logger.Error("HandleNewSaveData failed1,err=%v", err) + resp.Result.Code = ERROR_SRVDB_FAILED + resp.Result.Data = "json unmarsha failed" + break + } + m2 := make(map[string]interface{}) + err = json.Unmarshal([]byte(rdata.Value), &m2) + if err != nil { + logger.Error("HandleNewSaveData failed1,err=%v", err) + resp.Result.Code = ERROR_SRVDB_FAILED + resp.Result.Data = "json unmarsha failed" + break + } - //首先解析value + //比较猫数据 + catmap1 := m1["catData"].(map[string]interface{}) + catmap2 := m2["catData"].(map[string]interface{}) + logger.Info("HandleNewSaveData catmap1=%v",catmap1) + logger.Info("HandleNewSaveData catmap2=%v",catmap2) + if len(catmap2) < len(catmap1) { + logger.Error("HandleNewSaveData failed1,err=%v", err) + resp.Result.Code = ERROR_SRVDB_FAILED + resp.Result.Data = "ERROR_SRVDB_FAILED" + break + } + for k,vak := range catmap2 { + if catmap1[k] != nil { + //需要比较等级 + c2 := vak.(map[string]interface{}) + c1 := catmap1[k].(map[string]interface{}) + if c1["level"]!= nil && c2["level"]!= nil { + logger.Info("HandleNewSaveData c1=%v c2=%v",c1["level"],c2["level"]) + if c2["level"].(int) < c1["level"].(int) { + logger.Error("HandleNewSaveData failed2,err=%v", err) + resp.Result.Code = ERROR_SRVDB_FAILED + resp.Result.Data = "ERROR_SRVDB_FAILED" + break + } + } + } + } - //比对数据 如果不符合则不保存 + //比较roomData + roommap1 := m1["roomData"].(map[string]interface{}) + roommap2 := m2["roomData"].(map[string]interface{}) + logger.Info("HandleNewSaveData catmap1=%v",roommap1) + logger.Info("HandleNewSaveData catmap2=%v",roommap2) + if len(roommap2) < len(roommap1) { + logger.Error("HandleNewSaveData failed3,err=%v", err) + resp.Result.Code = ERROR_SRVDB_FAILED + resp.Result.Data = "ERROR_SRVDB_FAILED" + break + } + for k,val := range roommap2 { + if roommap1[k] != nil { + r2 := val.(map[string]interface{}) + r1 := roommap1[k].(map[string]interface{}) + //比较unlockId + rr2 := r2["unlockId"].([]interface {}) + rr1 := r1["unlockId"].([]interface {}) + if len(rr2) < len(rr1) { + logger.Error("HandleNewSaveData failed4,err=%v", err) + resp.Result.Code = ERROR_SRVDB_FAILED + resp.Result.Data = "ERROR_SRVDB_FAILED" + break + } + + //比较furnitData + rrr2 := r2["furnitData"].(map[string]interface{}) + rrr1 := r1["furnitData"].(map[string]interface{}) + if len(rrr2) < len(rrr1) { + logger.Error("HandleNewSaveData failed5,err=%v", err) + resp.Result.Code = ERROR_SRVDB_FAILED + resp.Result.Data = "ERROR_SRVDB_FAILED" + break + } + } + } + + //coffeeData + coffmap1 := m1["coffeeData"].(map[string]interface{}) + coffmap2 := m2["coffeeData"].(map[string]interface{}) + cdmap1 := coffmap1["datas"].(map[string]interface{}) + cdmap2 := coffmap2["datas"].(map[string]interface{}) + if len(cdmap2) < len(cdmap1) { + logger.Error("HandleNewSaveData failed6,err=%v", err) + resp.Result.Code = ERROR_SRVDB_FAILED + resp.Result.Data = "ERROR_SRVDB_FAILED" + break + } + + //全部校验过后 + err = redishandler.GetRedisClient().SetString(rkey,rdata.Value) + if err != nil { + logger.Error("HandleNewSaveData failed7,err=%v", err) + resp.Result.Code = ERROR_SRVDB_FAILED + resp.Result.Data = "ERROR_SRVDB_FAILED" + break + } resp.Result.Code = ERROR_OK break -- libgit2 0.21.0