This commit is contained in:
default
2018-11-06 13:47:28 +08:00
parent 83ebcbea0f
commit 6f15fc3157

View File

@@ -26,159 +26,6 @@ public class SyncMissionResultStatisticalInterceptor implements Interceptor{
@Override
public void intercept(Invocation inv) {
try{
/*
//创建一个任务id集合 存储任务结果改变的任务id 这些任务统一走新的统计方法 修改mission_state_table状态
//新增或者修改的结果可能是多条 但是任务id相同 用set进行去重
Set<Long> missionIds =new HashSet<Long>();
//同步前 查询出最后任务结果数据信息ID 用于查出新任务结果数据或者修改的数据信息
SyncSlaveToMasterThread target = inv.getTarget();
SyncDbInfo syncDbInfo = target.getSyncDbInfo();
String url = "jdbc:mysql://" + syncDbInfo.get("ip") + ":" + syncDbInfo.get("port") + "/"
+ syncDbInfo.get("database_name")+"?useUnicode=true&characterEncoding=utf-8&useOldAliasMetadataBehavior=true&rewriteBatchedStatements=true";
logger.info("当前数据库连接为 "+url);
Record beforeInsertMissionResultTable1 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table1' and event=1 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(beforeInsertMissionResultTable1));
Record beforeInsertMissionResultTable4 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table4' and event=1 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(beforeInsertMissionResultTable4));
Record beforeInsertMissionResultTable6 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table6' and event=1 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(beforeInsertMissionResultTable6));
Record beforeUpdateMissionResultTable1 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table1' and event=2 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(beforeUpdateMissionResultTable1));
Record beforeUpdateMissionResultTable4 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table4' and event=2 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(beforeUpdateMissionResultTable4));
Record beforeUpdateMissionResultTable6 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table6' and event=2 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(beforeUpdateMissionResultTable6));
*/
/*
Record afterInsertMissionResultTable1 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table1' and event=1 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(afterInsertMissionResultTable1));
Record afterInsertMissionResultTable4 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table4' and event=1 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(afterInsertMissionResultTable4));
Record afterInsertMissionResultTable6 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table6' and event=1 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(afterInsertMissionResultTable6));
if(null!=beforeInsertMissionResultTable1&&null!=afterInsertMissionResultTable1) {
List<Record> find = Db.use(url.toString()).find("select * from mission_result_table1 where id>= ? and id <= ? ",beforeInsertMissionResultTable1.get("last_id"),afterInsertMissionResultTable1.get("last_id"));
if(null!=find && find.size()>0) {
for (Record record : find) {
missionIds.add(record.getLong("mission_id"));
}
}
}
if(null!=beforeInsertMissionResultTable4&&null!=afterInsertMissionResultTable4) {
List<Record> find = Db.use(url.toString()).find("select * from mission_result_table4 where id>= ? and id <= ? ",beforeInsertMissionResultTable4.get("last_id"),afterInsertMissionResultTable4.get("last_id"));
if(null!=find && find.size()>0) {
for (Record record : find) {
missionIds.add(record.getLong("mission_id"));
}
}
}
if(null!=beforeInsertMissionResultTable6&&null!=afterInsertMissionResultTable6) {
List<Record> find = Db.use(url.toString()).find("select * from mission_result_table6 where id>= ? and id <= ? ",beforeInsertMissionResultTable6.get("last_id"),afterInsertMissionResultTable6.get("last_id"));
if(null!=find && find.size()>0) {
for (Record record : find) {
missionIds.add(record.getLong("mission_id"));
}
}
}
Record afterUpdateMissionResultTable1 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table1' and event=2 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(afterInsertMissionResultTable1));
Record afterUpdateMissionResultTable4 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table4' and event=2 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(afterInsertMissionResultTable4));
Record afterUpdateMissionResultTable6 = Db.use(url.toString()).findFirst("select * from table_sync_info where table_name='mission_result_table6' and event=2 and db_id=-1");
logger.info("获取mission_result_table1表中最后一次同步id的数据信息为 "+JSON.toJSONString(afterInsertMissionResultTable6));
if(null!=beforeUpdateMissionResultTable1&&null!=afterUpdateMissionResultTable1) {
List<Long> updateIds = new ArrayList<Long>();
List<Record> updateDatas = Db.use(url.toString()).find("select * from table_event_log where table_name='mission_result_table1' and id>= ? and id <= ?",beforeUpdateMissionResultTable1.get("last_id"),afterUpdateMissionResultTable1.get("last_id"));
StringBuilder handleStr=new StringBuilder();
if(null!=updateDatas && updateDatas.size()>0) {
for (int i=0;i<updateDatas.size();i++) {
updateIds.add(updateDatas.get(i).getLong("target_id"));
if(i==0) {
handleStr.append("?");
}else {
handleStr.append(",?");
}
}
List<Record> updateDataInfos = Db.use(url.toString())
.find(" select mission_id from mission_result_table1 where id in (" + handleStr + ") ",
updateIds.toArray());
if (updateDataInfos != null && updateDataInfos.size() > 0) {
for (Record record : updateDataInfos) {
missionIds.add(record.getLong("mission_id"));
}
}
}
}
if(null!=beforeUpdateMissionResultTable4&&null!=afterUpdateMissionResultTable4) {
List<Long> updateIds = new ArrayList<Long>();
List<Record> updateDatas = Db.use(url.toString()).find("select * from table_event_log where table_name='mission_result_table4' and id>= ? and id <= ?",beforeUpdateMissionResultTable4.get("last_id"),afterUpdateMissionResultTable4.get("last_id"));
StringBuilder handleStr=new StringBuilder();
if(null!=updateDatas && updateDatas.size()>0) {
for (int i=0;i<updateDatas.size();i++) {
updateIds.add(updateDatas.get(i).getLong("target_id"));
if(i==0) {
handleStr.append("?");
}else {
handleStr.append(",?");
}
}
List<Record> updateDataInfos = Db.use(url.toString())
.find(" select mission_id from mission_result_table4 where id in (" + handleStr + ") ",
updateIds.toArray());
if (updateDataInfos != null && updateDataInfos.size() > 0) {
for (Record record : updateDataInfos) {
missionIds.add(record.getLong("mission_id"));
}
}
}
}
if(null!=beforeUpdateMissionResultTable6&&null!=afterUpdateMissionResultTable6) {
List<Long> updateIds = new ArrayList<Long>();
List<Record> updateDatas = Db.use(url.toString()).find("select * from table_event_log where table_name='mission_result_table6' and id>= ? and id <= ?",beforeUpdateMissionResultTable1.get("last_id"),afterUpdateMissionResultTable1.get("last_id"));
StringBuilder handleStr=new StringBuilder();
if(null!=updateDatas && updateDatas.size()>0) {
for (int i=0;i<updateDatas.size();i++) {
updateIds.add(updateDatas.get(i).getLong("target_id"));
if(i==0) {
handleStr.append("?");
}else {
handleStr.append(",?");
}
}
List<Record> updateDataInfos = Db.use(url.toString())
.find(" select mission_id from mission_result_table6 where id in (" + handleStr + ") ",
updateIds.toArray());
if (updateDataInfos != null && updateDataInfos.size() > 0) {
for (Record record : updateDataInfos) {
missionIds.add(record.getLong("mission_id"));
}
}
}
}*/
logger.info("---------SyncMissionResultStatisticalInterceptor拦截器拦截开始------------");
inv.invoke();