Commit 078ac6151d3ef70c1f680e0f07f6ebfc070f3d28

Authored by 陆恒
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 300 }
301 301  
302 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 406 resp.Result.Code = ERROR_OK
309 407 break
... ...