tom.xu@informa.com 2 lat temu
rodzic
commit
8ce29f36a8

+ 10 - 7
src/main/java/ieven/server/webapp/service/alipay/AlipayService.java

@@ -97,16 +97,19 @@ public class AlipayService {
     latch2.await();
     log.info("latch2");
     log.info("latch3");
-    CountDownLatch latch3 = new CountDownLatch(2);
-    // 反诈治安交易数据明细-从反诈读取
+    CountDownLatch latch3 = new CountDownLatch(1);
+    // 反诈治安交易数据明细-从反诈读取   反诈治安交易数据明细合并到这里
     exec.execute(
         new AntiSecurityTrade3(
             headerProperties, modelId, mongoTemplate, accountToName, fileService, latch3));
+    latch3.await();
+
     // 反诈治安交易数据明细-从治安读取
+    /*CountDownLatch latch8 = new CountDownLatch(1);
     exec.execute(
         new AntiSecurityTrade4(
-            headerProperties, modelId, mongoTemplate, accountToName, fileService, latch3));
-    latch3.await();
+            headerProperties, modelId, mongoTemplate, accountToName, fileService, latch8));
+    latch8.await();*/
     log.info("latch3");
     log.info("latch4");
     CountDownLatch latch4 = new CountDownLatch(2);
@@ -133,9 +136,9 @@ public class AlipayService {
     latch6.await();
     log.info("latch6");
     log.info("latch7");
-    CountDownLatch latch8 = new CountDownLatch(1);
-    exec.execute(new TenpayTrades(modelId, mongoTemplate, accountToName, fileService, latch8));
-    latch8.await();
+    CountDownLatch latch9 = new CountDownLatch(1);
+    exec.execute(new TenpayTrades(modelId, mongoTemplate, accountToName, fileService, latch9));
+    latch9.await();
     CountDownLatch latch7 = new CountDownLatch(3);
     exec.execute(new TenpayMobile(originFields, modelId, mongoTemplate, fileService, latch7));
     exec.execute(

+ 92 - 77
src/main/java/ieven/server/webapp/service/alipay/AntiSecurityTrade3.java

@@ -46,94 +46,109 @@ public class AntiSecurityTrade3 extends Ops implements Runnable {
   @Override
   public void run() {
     String antiSecurityFileId = "";
-    String dateFileId = getFileId("反诈数据-订单明细", modelId, mongoTemplate);
+    String dateFileId1 = getFileId("反诈数据-订单明细", modelId, mongoTemplate);
+    String dateFileId2 = getFileId("治安数据-订单明细", modelId, mongoTemplate);
+
     // 遍历登录日志全表
-    if (StringUtils.isNotBlank(dateFileId)) {
+    if (StringUtils.isNotBlank(dateFileId1) || StringUtils.isNotBlank(dateFileId2)) {
 
-      MongoCursor<Document> cursor = getCursor(dateFileId, mongoTemplate);
-      if (cursor.hasNext()) {
-        antiSecurityFileId =
-            createLogicAndDeleteOld(
-                "反诈治安-交易明细",
-                modelId,
-                headerProperties.getAntiSecurityTradeOutput(),
-                mongoTemplate,
-                fileService);
+      MongoCursor<Document> cursor1 = getCursor(dateFileId1, mongoTemplate);
+      if (cursor1.hasNext()) {
+        antiSecurityFileId = antiSecurityFileId();
+        insertData(cursor1, antiSecurityFileId);
+      }
+      MongoCursor<Document> cursor2 = getCursor(dateFileId2, mongoTemplate);
+      if (cursor2.hasNext()) {
+        if (StringUtils.isBlank(antiSecurityFileId)) {
+          antiSecurityFileId = antiSecurityFileId();
+        }
+        insertData(cursor2, antiSecurityFileId);
       }
+    }
+    latch.countDown();
+  }
+
+  public String antiSecurityFileId() {
+    return createLogicAndDeleteOld(
+        "反诈治安-交易明细",
+        modelId,
+        headerProperties.getAntiSecurityTradeOutput(),
+        mongoTemplate,
+        fileService);
+  }
 
-      Document origin;
-      List<DataMap> needToSave = new ArrayList<>(1000);
-      while (cursor.hasNext()) {
-        origin = cursor.next();
-        DataMap dataMap = new DataMap();
-        dataMap.put("fileId", antiSecurityFileId);
-        dataMap.put("支付订单号", origin.getString("支付订单号"));
-        dataMap.put("交易流水号", origin.getString("交易流水号"));
-        String flag = origin.getString("交易主体的出入账标识");
-        dataMap.put("交易主体的出入账标识", flag);
-        dataMap.put("交易类型", origin.getString("交易类型"));
-        dataMap.put("支付类型", origin.getString("支付类型"));
-        dataMap.put("币种", origin.getString("币种"));
-        dataMap.put("交易金额", origin.getString("交易金额"));
-        dataMap.put("交易余额", origin.getString("交易余额"));
-        dataMap.put("消费POS机编号", origin.getString("消费POS机编号"));
-        dataMap.put("交易设备类型", origin.getString("交易设备类型"));
-        dataMap.put("交易支付设备IP", origin.getString("交易支付设备IP"));
-        dataMap.put("MAC地址", origin.getString("MAC地址"));
-        dataMap.put("交易地点经度", origin.getString("交易地点经度"));
-        dataMap.put("交易地点纬度", origin.getString("交易地点纬度"));
-        dataMap.put("备注", origin.getString("备注"));
-        if ("出账".equals(flag)) {
-          dataMap.put("交易主体账号", origin.getString("付款方的支付账号"));
-          dataMap.put("交易主体银行卡号", origin.getString("付款方银行卡所属银行卡号"));
-          dataMap.put("交易主体银行名称", origin.getString("付款方银行卡所属银行名称"));
-          dataMap.put("交易主体户名", "");
-          dataMap.put("交易对手账号", origin.getString("收款方的支付账号"));
-          dataMap.put("交易对手银行卡号", origin.getString("收款方银行卡所属银行卡号"));
-          dataMap.put("交易对手银行名称", origin.getString("收款方银行卡所属银行名称"));
-          dataMap.put("交易对手户名", origin.getString("收款方的商户名称"));
+  public void insertData(MongoCursor<Document> cursor, String antiSecurityFileId) {
+    Document origin;
+    List<DataMap> needToSave = new ArrayList<>(1000);
+    while (cursor.hasNext()) {
+      origin = cursor.next();
+      DataMap dataMap = new DataMap();
+      dataMap.put("fileId", antiSecurityFileId);
+      dataMap.put("支付订单号", origin.getString("支付订单号"));
+      dataMap.put("交易流水号", origin.getString("交易流水号"));
+      String flag = origin.getString("交易主体的出入账标识");
+      dataMap.put("交易主体的出入账标识", flag);
+      dataMap.put("交易类型", origin.getString("交易类型"));
+      dataMap.put("支付类型", origin.getString("支付类型"));
+      dataMap.put("币种", origin.getString("币种"));
+      dataMap.put("交易金额", origin.getString("交易金额"));
+      dataMap.put("交易余额", origin.getString("交易余额"));
+      dataMap.put("消费POS机编号", origin.getString("消费POS机编号"));
+      dataMap.put("交易设备类型", origin.getString("交易设备类型"));
+      dataMap.put("交易支付设备IP", origin.getString("交易支付设备IP"));
+      dataMap.put("MAC地址", origin.getString("MAC地址"));
+      dataMap.put("交易地点经度", origin.getString("交易地点经度"));
+      dataMap.put("交易地点纬度", origin.getString("交易地点纬度"));
+      dataMap.put("备注", origin.getString("备注"));
+      if ("出账".equals(flag)) {
+        dataMap.put("交易主体账号", origin.getString("付款方的支付账号"));
+        dataMap.put("交易主体银行卡号", origin.getString("付款方银行卡所属银行卡号"));
+        dataMap.put("交易主体银行名称", origin.getString("付款方银行卡所属银行名称"));
+        dataMap.put("交易主体户名", "");
+        dataMap.put("交易对手账号", origin.getString("收款方的支付账号"));
+        dataMap.put("交易对手银行卡号", origin.getString("收款方银行卡所属银行卡号"));
+        dataMap.put("交易对手银行名称", origin.getString("收款方银行卡所属银行名称"));
+        dataMap.put("交易对手户名", origin.getString("收款方的商户名称"));
 
-        } else if ("入账".equals(flag)) {
-          dataMap.put("交易主体账号", origin.getString("收款方的支付账号"));
-          dataMap.put("交易主体银行卡号", origin.getString("收款方银行卡所属银行卡号"));
-          dataMap.put("交易主体银行名称", origin.getString("收款方银行卡所属银行名称"));
-          dataMap.put("交易主体户名", origin.getString("收款方的商户名称"));
-          dataMap.put("交易对手账号", origin.getString("付款方的支付账号"));
-          dataMap.put("交易对手银行卡号", origin.getString("付款方银行卡所属银行卡号"));
-          dataMap.put("交易对手银行名称", origin.getString("付款方银行卡所属银行名称"));
-          dataMap.put("交易对手户名", "");
-        }
-        dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
-        if ("".equals((String) dataMap.get("交易主体户名"))) {
-          String account = (String) dataMap.getOrDefault("交易主体账号", "");
-          if (StringUtils.isBlank(account) || "-".equals(account)) {
-          } else {
-            String newName = accountToName.getOrDefault(account, "");
-            if (StringUtils.isNotBlank(newName)) {
-              dataMap.put("交易主体户名", newName);
-            }
+      } else if ("入账".equals(flag)) {
+        dataMap.put("交易主体账号", origin.getString("收款方的支付账号"));
+        dataMap.put("交易主体银行卡号", origin.getString("收款方银行卡所属银行卡号"));
+        dataMap.put("交易主体银行名称", origin.getString("收款方银行卡所属银行名称"));
+        dataMap.put("交易主体户名", origin.getString("收款方的商户名称"));
+        dataMap.put("交易对手账号", origin.getString("付款方的支付账号"));
+        dataMap.put("交易对手银行卡号", origin.getString("付款方银行卡所属银行卡号"));
+        dataMap.put("交易对手银行名称", origin.getString("付款方银行卡所属银行名称"));
+        dataMap.put("交易对手户名", "");
+      }
+      dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
+      if ("".equals((String) dataMap.get("交易主体户名"))) {
+        String account = (String) dataMap.getOrDefault("交易主体账号", "");
+        if (StringUtils.isBlank(account) || "-".equals(account)) {
+        } else {
+          String newName = accountToName.getOrDefault(account, "");
+          if (StringUtils.isNotBlank(newName)) {
+            dataMap.put("交易主体户名", newName);
           }
         }
-        if ("".equals((String) dataMap.get("交易对手户名"))) {
-          String account = (String) dataMap.getOrDefault("交易对手账号", "");
-          if (StringUtils.isBlank(account) || "-".equals(account)) {
-          } else {
-            String newName = accountToName.getOrDefault(account, "");
-            if (StringUtils.isNotBlank(newName)) {
-              dataMap.put("交易对手户名", newName);
-            }
+      }
+      if ("".equals((String) dataMap.get("交易对手户名"))) {
+        String account = (String) dataMap.getOrDefault("交易对手账号", "");
+        if (StringUtils.isBlank(account) || "-".equals(account)) {
+        } else {
+          String newName = accountToName.getOrDefault(account, "");
+          if (StringUtils.isNotBlank(newName)) {
+            dataMap.put("交易对手户名", newName);
           }
         }
-        needToSave.add(dataMap);
-        if (needToSave.size() >= 1000) {
-          saveLines(new ArrayList<>(needToSave), mongoTemplate);
-          needToSave.clear();
-        }
       }
-      if (CollectionUtils.isNotEmpty(needToSave)) {
-        saveLines(needToSave, mongoTemplate);
+      needToSave.add(dataMap);
+      if (needToSave.size() >= 1000) {
+        saveLines(new ArrayList<>(needToSave), mongoTemplate);
+        needToSave.clear();
       }
     }
-    latch.countDown();
+    if (CollectionUtils.isNotEmpty(needToSave)) {
+      saveLines(needToSave, mongoTemplate);
+    }
   }
 }