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 |