|
@@ -19,6 +19,8 @@ import java.util.HashSet;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
import java.util.concurrent.CountDownLatch;
|
|
import java.util.concurrent.CountDownLatch;
|
|
|
|
+import java.util.regex.Matcher;
|
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
public class AntiSecurityTradeEndAnalysis extends Ops implements Runnable {
|
|
public class AntiSecurityTradeEndAnalysis extends Ops implements Runnable {
|
|
@@ -44,6 +46,7 @@ public class AntiSecurityTradeEndAnalysis extends Ops implements Runnable {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void run() {
|
|
public void run() {
|
|
|
|
+ log.info("反诈治安-对手透视开始");
|
|
// 直接删除并创建表
|
|
// 直接删除并创建表
|
|
String newFileId = "";
|
|
String newFileId = "";
|
|
String dateFileId = getFileId("反诈治安-交易明细", modelId, mongoTemplate);
|
|
String dateFileId = getFileId("反诈治安-交易明细", modelId, mongoTemplate);
|
|
@@ -105,6 +108,40 @@ public class AntiSecurityTradeEndAnalysis extends Ops implements Runnable {
|
|
idToNames.put(alipayId, names);
|
|
idToNames.put(alipayId, names);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /*特殊格式处理*/
|
|
|
|
+ Pattern pattern = Pattern.compile("([\\u4e00-\\u9fa5]+)\\((.*@.*)\\)");
|
|
|
|
+ Pattern pattern2 = Pattern.compile("商户_([\\u4e00-\\u9fa5]+)\\((.+)\\)");
|
|
|
|
+ Pattern pattern3 = Pattern.compile("([\\u4e00-\\u9fa5]+)\\(\\d+\\)");
|
|
|
|
+ Matcher matcher = pattern.matcher(alipayId);
|
|
|
|
+ Matcher matcher2 = pattern2.matcher(alipayId);
|
|
|
|
+ Matcher matcher3 = pattern3.matcher(alipayId);
|
|
|
|
+ if (matcher.find()) {
|
|
|
|
+ // 提取名称部分(第一组)
|
|
|
|
+ String name = matcher.group(1);
|
|
|
|
+ // 提取 Email 地址部分(第二组)
|
|
|
|
+ String email = matcher.group(2);
|
|
|
|
+ // 更新数据映射
|
|
|
|
+ dataMap.put("交易对手户名", name);
|
|
|
|
+ dataMap.put("交易对手账号", email);
|
|
|
|
+ } else if (matcher2.find()) {
|
|
|
|
+ // 提取名称部分(第一组)
|
|
|
|
+ String name = matcher2.group(1);
|
|
|
|
+ // 提取 Email 地址部分(第二组)
|
|
|
|
+ String email = matcher2.group(2);
|
|
|
|
+ // 更新数据映射
|
|
|
|
+ dataMap.put("交易对手户名", name);
|
|
|
|
+ dataMap.put("交易对手账号", email);
|
|
|
|
+ } else if (matcher3.find()) {
|
|
|
|
+ // 提取名称部分(第一组)
|
|
|
|
+ String name = matcher2.group(1);
|
|
|
|
+ // 提取 Email 地址部分(第二组)
|
|
|
|
+ String email = matcher2.group(2);
|
|
|
|
+ // 更新数据映射
|
|
|
|
+ dataMap.put("交易对手户名", name);
|
|
|
|
+ dataMap.put("交易对手账号", email);
|
|
|
|
+ }
|
|
|
|
+
|
|
String flag = "交易主体的出入账标识";
|
|
String flag = "交易主体的出入账标识";
|
|
String flagValue = origin.getString(flag);
|
|
String flagValue = origin.getString(flag);
|
|
String money = PublicStatic.checkStrJe((String) origin.get("交易金额"));
|
|
String money = PublicStatic.checkStrJe((String) origin.get("交易金额"));
|
|
@@ -184,6 +221,7 @@ public class AntiSecurityTradeEndAnalysis extends Ops implements Runnable {
|
|
saveLines(idToData.values(), "共同交易主体数", mongoTemplate);
|
|
saveLines(idToData.values(), "共同交易主体数", mongoTemplate);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ log.info("反诈治安-对手透视结束");
|
|
this.latch.countDown();
|
|
this.latch.countDown();
|
|
}
|
|
}
|
|
}
|
|
}
|