猎妖和数据库检查bug

back_recharge
zhangshanxue 2020-05-29 13:40:21 +08:00
parent 79daca78ee
commit 32962c32d4
1 changed files with 22 additions and 13 deletions

View File

@ -1,7 +1,9 @@
package com.ljsd.jieling.db.mongo;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference;
import com.google.gson.*;
import com.google.gson.reflect.TypeToken;
import com.ljsd.common.mogodb.LjsdMongoTemplate;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.root.User;
@ -24,6 +26,7 @@ import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.net.UnknownHostException;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
public class MongoUtil {
@ -150,15 +153,16 @@ public class MongoUtil {
}
return false;
}
}).registerTypeAdapter(Map.class, (JsonDeserializer<TreeMap<String, Object>>) (json, typeOfT, context) -> {
TreeMap<String, Object> treeMap = new TreeMap<>();
JsonObject jsonObject = json.getAsJsonObject();
Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet();
for (Map.Entry<String, JsonElement> entry : entrySet) {
treeMap.put(entry.getKey(), entry.getValue());
}
return treeMap;
}).create();
}).registerTypeAdapter(HashMap.class, new JsonSerializer<AbstractMap>() {
@Override
public JsonElement serialize(AbstractMap abstractMap, Type type, JsonSerializationContext jsonSerializationContext) {
TreeMap<Object, Object> treeMap = new TreeMap<>(abstractMap);
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(String.valueOf(JSON.toJSON(treeMap)));
return je;
}
}
).create();
String s = gson.toJson(byId);
@ -211,10 +215,15 @@ public class MongoUtil {
} else {
LOGGER.info("定期检查数据库对象数据一致性 匹配" + byId.getId());
}
//JsonObject obj = (JsonObject) parser.parse(json1);
//JsonParser parser1 = new JsonParser();
//JsonObject obj1 = (JsonObject) parser1.parse(json2); 也可以 不好排查
JsonParser parser = new JsonParser();
JsonObject obj = (JsonObject) parser.parse(s1);
JsonParser parser1 = new JsonParser();
JsonObject obj1 = (JsonObject) parser1.parse(s); //也可以 不好排查
if(obj.equals(obj1)){
LOGGER.info(" 匹配");
}else {
LOGGER.info(" not 匹配");
}
}, new LinkedList<>(ids), 2);
}