|
@@ -6,6 +6,7 @@ import ieven.server.webapp.domain.data.DataMap;
|
|
import ieven.server.webapp.domain.data.Fields;
|
|
import ieven.server.webapp.domain.data.Fields;
|
|
import ieven.server.webapp.domain.file.FileService;
|
|
import ieven.server.webapp.domain.file.FileService;
|
|
import ieven.server.webapp.service.Ops;
|
|
import ieven.server.webapp.service.Ops;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.bson.Document;
|
|
import org.bson.Document;
|
|
@@ -15,6 +16,7 @@ import java.math.BigDecimal;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.CountDownLatch;
|
|
import java.util.concurrent.CountDownLatch;
|
|
|
|
|
|
|
|
+@Slf4j
|
|
public class EndAnalysis extends Ops implements Runnable {
|
|
public class EndAnalysis extends Ops implements Runnable {
|
|
|
|
|
|
private HeaderProperties headerProperties;
|
|
private HeaderProperties headerProperties;
|
|
@@ -65,72 +67,78 @@ public class EndAnalysis extends Ops implements Runnable {
|
|
Map<String, Set<String>> idToNames = new HashMap<>();
|
|
Map<String, Set<String>> idToNames = new HashMap<>();
|
|
Document origin;
|
|
Document origin;
|
|
while (cursor.hasNext()) {
|
|
while (cursor.hasNext()) {
|
|
- origin = cursor.next();
|
|
|
|
- String alipayId = origin.getString("对手支付宝用户ID");
|
|
|
|
- DataMap dataMap;
|
|
|
|
- if (alipayIds.contains(alipayId)) {
|
|
|
|
- dataMap = idToData.get(alipayId);
|
|
|
|
- } else {
|
|
|
|
- alipayIds.add(alipayId);
|
|
|
|
- dataMap = new DataMap();
|
|
|
|
- dataMap.put("fileId", newFileId);
|
|
|
|
- dataMap.put("对手支付宝用户ID", alipayId);
|
|
|
|
- dataMap.put("对手支付宝户名", "");
|
|
|
|
- dataMap.put("交易总额", new BigDecimal("0.00"));
|
|
|
|
- dataMap.put("主用户ID收入金额", new BigDecimal("0.00"));
|
|
|
|
- dataMap.put("主用户ID支出金额", new BigDecimal("0.00"));
|
|
|
|
- dataMap.put("主用户ID收入笔数", 0);
|
|
|
|
- dataMap.put("主用户ID支出笔数", 0);
|
|
|
|
- dataMap.put("总笔数", 0);
|
|
|
|
- dataMap.put("共同主用户ID数", 0);
|
|
|
|
- dataMap.put("共同主用户ID汇总", "");
|
|
|
|
- idToData.put(alipayId, dataMap);
|
|
|
|
- }
|
|
|
|
- String alipayUsername = origin.getString("对手支付宝户名");
|
|
|
|
- if (StringUtils.isNotBlank(alipayUsername)
|
|
|
|
- && !"_".equals(alipayUsername)
|
|
|
|
- && !"-".equals(alipayUsername)) {
|
|
|
|
- if (idToNames.containsKey(alipayId)) {
|
|
|
|
- Set<String> names = idToNames.get(alipayId);
|
|
|
|
- names.add(alipayUsername);
|
|
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+
|
|
|
|
+ origin = cursor.next();
|
|
|
|
+ String alipayId = origin.getString("对手支付宝用户ID");
|
|
|
|
+ DataMap dataMap;
|
|
|
|
+ if (alipayIds.contains(alipayId)) {
|
|
|
|
+ dataMap = idToData.get(alipayId);
|
|
} else {
|
|
} else {
|
|
- Set<String> names = new HashSet<>();
|
|
|
|
- names.add(alipayUsername);
|
|
|
|
- idToNames.put(alipayId, names);
|
|
|
|
|
|
+ alipayIds.add(alipayId);
|
|
|
|
+ dataMap = new DataMap();
|
|
|
|
+ dataMap.put("fileId", newFileId);
|
|
|
|
+ dataMap.put("对手支付宝用户ID", alipayId);
|
|
|
|
+ dataMap.put("对手支付宝户名", "");
|
|
|
|
+ dataMap.put("交易总额", new BigDecimal("0.00"));
|
|
|
|
+ dataMap.put("主用户ID收入金额", new BigDecimal("0.00"));
|
|
|
|
+ dataMap.put("主用户ID支出金额", new BigDecimal("0.00"));
|
|
|
|
+ dataMap.put("主用户ID收入笔数", 0);
|
|
|
|
+ dataMap.put("主用户ID支出笔数", 0);
|
|
|
|
+ dataMap.put("总笔数", 0);
|
|
|
|
+ dataMap.put("共同主用户ID数", 0);
|
|
|
|
+ dataMap.put("共同主用户ID汇总", "");
|
|
|
|
+ idToData.put(alipayId, dataMap);
|
|
}
|
|
}
|
|
- }
|
|
|
|
- String flag = "收/支";
|
|
|
|
- String flagValue = origin.getString(flag);
|
|
|
|
- String money = (String) origin.get("金额(元)");
|
|
|
|
- if ("收入".equals(flagValue)) {
|
|
|
|
- BigDecimal oMoney = (BigDecimal) dataMap.get("主用户ID收入金额");
|
|
|
|
- oMoney = oMoney.add(new BigDecimal(money));
|
|
|
|
- dataMap.put("主用户ID收入金额", oMoney);
|
|
|
|
- int oCount = (int) dataMap.get("主用户ID收入笔数");
|
|
|
|
- oCount++;
|
|
|
|
- dataMap.put("主用户ID收入笔数", oCount);
|
|
|
|
- } else if ("支出".equals(flagValue)) {
|
|
|
|
- BigDecimal oMoney = (BigDecimal) dataMap.get("主用户ID支出金额");
|
|
|
|
|
|
+ String alipayUsername = origin.getString("对手支付宝户名");
|
|
|
|
+ if (StringUtils.isNotBlank(alipayUsername)
|
|
|
|
+ && !"_".equals(alipayUsername)
|
|
|
|
+ && !"-".equals(alipayUsername)) {
|
|
|
|
+ if (idToNames.containsKey(alipayId)) {
|
|
|
|
+ Set<String> names = idToNames.get(alipayId);
|
|
|
|
+ names.add(alipayUsername);
|
|
|
|
+ } else {
|
|
|
|
+ Set<String> names = new HashSet<>();
|
|
|
|
+ names.add(alipayUsername);
|
|
|
|
+ idToNames.put(alipayId, names);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ String flag = "收/支";
|
|
|
|
+ String flagValue = origin.getString(flag);
|
|
|
|
+ String money = (String) origin.get("金额(元)");
|
|
|
|
+ if ("收入".equals(flagValue)) {
|
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("主用户ID收入金额");
|
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
|
+ dataMap.put("主用户ID收入金额", oMoney);
|
|
|
|
+ int oCount = (int) dataMap.get("主用户ID收入笔数");
|
|
|
|
+ oCount++;
|
|
|
|
+ dataMap.put("主用户ID收入笔数", oCount);
|
|
|
|
+ } else if ("支出".equals(flagValue)) {
|
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("主用户ID支出金额");
|
|
|
|
+ oMoney = oMoney.add(new BigDecimal(money));
|
|
|
|
+ dataMap.put("主用户ID支出金额", oMoney);
|
|
|
|
+ int oCount = (int) dataMap.get("主用户ID支出笔数");
|
|
|
|
+ oCount++;
|
|
|
|
+ dataMap.put("主用户ID支出笔数", oCount);
|
|
|
|
+ }
|
|
|
|
+ BigDecimal oMoney = (BigDecimal) dataMap.get("交易总额");
|
|
oMoney = oMoney.add(new BigDecimal(money));
|
|
oMoney = oMoney.add(new BigDecimal(money));
|
|
- dataMap.put("主用户ID支出金额", oMoney);
|
|
|
|
- int oCount = (int) dataMap.get("主用户ID支出笔数");
|
|
|
|
|
|
+ dataMap.put("交易总额", oMoney);
|
|
|
|
+ int oCount = (int) dataMap.get("总笔数");
|
|
oCount++;
|
|
oCount++;
|
|
- dataMap.put("主用户ID支出笔数", oCount);
|
|
|
|
- }
|
|
|
|
- BigDecimal oMoney = (BigDecimal) dataMap.get("交易总额");
|
|
|
|
- oMoney = oMoney.add(new BigDecimal(money));
|
|
|
|
- dataMap.put("交易总额", oMoney);
|
|
|
|
- int oCount = (int) dataMap.get("总笔数");
|
|
|
|
- oCount++;
|
|
|
|
- dataMap.put("总笔数", oCount);
|
|
|
|
- String mainId = (String) origin.get("支付宝用户ID");
|
|
|
|
- if (idToMainIds.containsKey(alipayId)) {
|
|
|
|
- Set<String> mainIds = idToMainIds.get(alipayId);
|
|
|
|
- mainIds.add(mainId);
|
|
|
|
- } else {
|
|
|
|
- Set<String> mainIds = new HashSet<>();
|
|
|
|
- mainIds.add(mainId);
|
|
|
|
- idToMainIds.put(alipayId, mainIds);
|
|
|
|
|
|
+ dataMap.put("总笔数", oCount);
|
|
|
|
+ String mainId = (String) origin.get("支付宝用户ID");
|
|
|
|
+ if (idToMainIds.containsKey(alipayId)) {
|
|
|
|
+ Set<String> mainIds = idToMainIds.get(alipayId);
|
|
|
|
+ mainIds.add(mainId);
|
|
|
|
+ } else {
|
|
|
|
+ Set<String> mainIds = new HashSet<>();
|
|
|
|
+ mainIds.add(mainId);
|
|
|
|
+ idToMainIds.put(alipayId, mainIds);
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception exception) {
|
|
|
|
+ log.error(exception.getMessage(), exception);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (CollectionUtils.isNotEmpty(idToData.values())) {
|
|
if (CollectionUtils.isNotEmpty(idToData.values())) {
|