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