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 | 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 | ... | ... |