|
@@ -1,8 +1,8 @@
|
|
|
package ieven.server.webapp.service.datastatic;
|
|
|
|
|
|
-import cn.hutool.core.util.NumberUtil;
|
|
|
import com.mongodb.client.MongoCursor;
|
|
|
import ieven.server.webapp.domain.alipay.HeaderProperties;
|
|
|
+import ieven.server.webapp.domain.data.AccountVO;
|
|
|
import ieven.server.webapp.domain.data.DataMap;
|
|
|
import ieven.server.webapp.domain.file.FileService;
|
|
|
import ieven.server.webapp.service.Ops;
|
|
@@ -12,8 +12,8 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.bson.Document;
|
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
import java.util.concurrent.CountDownLatch;
|
|
|
|
|
|
@Slf4j
|
|
@@ -44,11 +44,13 @@ public class DataStaticAnalysis extends Ops implements Runnable {
|
|
|
String newFileId = "";
|
|
|
String dateFileIdcft = getFileId("财付通-交易明细", modelId, mongoTemplate);
|
|
|
String dateFileIdfzza = getFileId("反诈治安-交易明细", modelId, mongoTemplate);
|
|
|
+ String dateFileIdwld = getFileId("五联单-账户明细", modelId, mongoTemplate);
|
|
|
|
|
|
- if(StringUtils.isNotBlank(dateFileIdcft)||StringUtils.isNotBlank(dateFileIdfzza)){
|
|
|
- newFileId =createLogicAndDeleteOld( "数据分析-主体信息汇总", modelId, headerProperties.getAntiSecurityTradeScaleAnalysisOutput(), mongoTemplate, fileService);
|
|
|
+ if (StringUtils.isNotBlank(dateFileIdcft) || StringUtils.isNotBlank(dateFileIdfzza)) {
|
|
|
+ newFileId = createLogicAndDeleteOld("数据分析-主体信息汇总", modelId, headerProperties.getAntiSecurityTradeScaleAnalysisOutput(), mongoTemplate, fileService);
|
|
|
}
|
|
|
// 插入记录用户后续查询明细
|
|
|
+ //财付通
|
|
|
if (StringUtils.isNotBlank(dateFileIdcft)) {
|
|
|
MongoCursor<Document> cursor = getCursor(dateFileIdcft, mongoTemplate);
|
|
|
Document origin;
|
|
@@ -57,6 +59,55 @@ public class DataStaticAnalysis extends Ops implements Runnable {
|
|
|
origin = cursor.next();
|
|
|
DataMap dataMap = new DataMap();
|
|
|
dataMap.put("fileId", newFileId);
|
|
|
+ AccountVO accountVO = new AccountVO();
|
|
|
+ assembleDataCft(origin, accountVO);
|
|
|
+ insertDataWld(accountVO, dataMap);
|
|
|
+ needToSave.add(dataMap);
|
|
|
+ if (needToSave.size() >= 1000) {
|
|
|
+ saveLines(new ArrayList<>(needToSave), mongoTemplate);
|
|
|
+ needToSave.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(needToSave)) {
|
|
|
+ saveLines(needToSave, mongoTemplate);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //反诈
|
|
|
+ if (StringUtils.isNotBlank(dateFileIdfzza)) {
|
|
|
+ MongoCursor<Document> cursor = getCursor(dateFileIdfzza, mongoTemplate);
|
|
|
+ Document origin;
|
|
|
+ List<DataMap> needToSave = new ArrayList<>(1000);
|
|
|
+ while (cursor.hasNext()) {
|
|
|
+ origin = cursor.next();
|
|
|
+ DataMap dataMap = new DataMap();
|
|
|
+ dataMap.put("fileId", newFileId);
|
|
|
+ AccountVO accountVO = new AccountVO();
|
|
|
+ assembleDatafzza(origin, accountVO);
|
|
|
+ insertDataWld(accountVO, dataMap);
|
|
|
+ needToSave.add(dataMap);
|
|
|
+ if (needToSave.size() >= 1000) {
|
|
|
+ saveLines(new ArrayList<>(needToSave), mongoTemplate);
|
|
|
+ needToSave.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(needToSave)) {
|
|
|
+ saveLines(needToSave, mongoTemplate);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //五联单
|
|
|
+ if (StringUtils.isNotBlank(dateFileIdwld)) {
|
|
|
+ MongoCursor<Document> cursor = getCursor(dateFileIdwld, mongoTemplate);
|
|
|
+ Document origin;
|
|
|
+ List<DataMap> needToSave = new ArrayList<>(1000);
|
|
|
+ while (cursor.hasNext()) {
|
|
|
+ origin = cursor.next();
|
|
|
+ DataMap dataMap = new DataMap();
|
|
|
+ dataMap.put("fileId", newFileId);
|
|
|
+ AccountVO accountVO = new AccountVO();
|
|
|
+ assembleDatawld(origin, accountVO);
|
|
|
+ insertDataWld(accountVO, dataMap);
|
|
|
needToSave.add(dataMap);
|
|
|
if (needToSave.size() >= 1000) {
|
|
|
saveLines(new ArrayList<>(needToSave), mongoTemplate);
|
|
@@ -70,4 +121,91 @@ public class DataStaticAnalysis extends Ops implements Runnable {
|
|
|
latch.countDown();
|
|
|
log.info("数据统计-主体信息结束");
|
|
|
}
|
|
|
+
|
|
|
+ public void assembleDataCft(Document origin, AccountVO accountVO) {
|
|
|
+ accountVO.setZfddh(origin.getString("交易单号"));
|
|
|
+ accountVO.setJyztzh(origin.getString("交易主体账号"));
|
|
|
+ accountVO.setJyztyhkh(origin.getString("交易主体银行卡号"));
|
|
|
+ accountVO.setJyztyhmc(origin.getString("交易主体银行名称"));
|
|
|
+ accountVO.setJyzthm(origin.getString("交易主体户名"));
|
|
|
+ accountVO.setJylx(origin.getString("交易类型"));
|
|
|
+ accountVO.setJysj(origin.getString("交易时间"));
|
|
|
+ accountVO.setJyje(origin.getString("交易金额(元)"));
|
|
|
+ accountVO.setJyye(origin.getString("账户余额(元)"));
|
|
|
+ accountVO.setJydszh(origin.getString("交易对手账号"));
|
|
|
+ accountVO.setJydsyhkh(origin.getString("交易对手银行卡号"));
|
|
|
+ accountVO.setJydsyhkhmc(origin.getString("交易对手银行名称"));
|
|
|
+ accountVO.setJydshm(origin.getString("交易对手户名"));
|
|
|
+ }
|
|
|
+ public void assembleDatafzza(Document origin, AccountVO accountVO) {
|
|
|
+ accountVO.setZfddh(origin.getString("支付订单号"));
|
|
|
+ accountVO.setJylsh(origin.getString("交易流水号"));
|
|
|
+ accountVO.setJyztzh(origin.getString("交易主体账号"));
|
|
|
+ accountVO.setJyztdcrzbz(origin.getString("交易主体的出入账标识"));
|
|
|
+ accountVO.setJylx(origin.getString("交易类型"));
|
|
|
+ accountVO.setZflx(origin.getString("支付类型"));
|
|
|
+ accountVO.setBz(origin.getString("币种"));
|
|
|
+ accountVO.setJyje(origin.getString("交易金额"));
|
|
|
+ accountVO.setJyye(origin.getString("账户余额"));
|
|
|
+ accountVO.setXfposjbh(origin.getString("消费POS机编号"));
|
|
|
+ accountVO.setJysblx(origin.getString("交易设备类型"));
|
|
|
+ accountVO.setJyzfsbip(origin.getString("交易支付设备IP"));
|
|
|
+ accountVO.setMacdz(origin.getString("交易支付设备IP"));
|
|
|
+ accountVO.setJyddjd(origin.getString("交易地点经度"));
|
|
|
+ accountVO.setJyddwd(origin.getString("交易地点纬度"));
|
|
|
+ accountVO.setRemark(origin.getString("备注"));
|
|
|
+ accountVO.setJyztyhkh(origin.getString("交易主体银行卡号"));
|
|
|
+ accountVO.setJyztyhmc(origin.getString("交易主体银行名称"));
|
|
|
+ accountVO.setJyzthm(origin.getString("交易主体户名"));
|
|
|
+ accountVO.setJysj(origin.getString("交易时间"));
|
|
|
+ accountVO.setJydszh(origin.getString("交易对手账号"));
|
|
|
+ accountVO.setJydsyhkh(origin.getString("交易对手银行卡号"));
|
|
|
+ accountVO.setJydsyhkhmc(origin.getString("交易对手银行名称"));
|
|
|
+ accountVO.setJydshm(origin.getString("交易对手户名"));
|
|
|
+ }
|
|
|
+ public void assembleDatawld(Document origin, AccountVO accountVO) {
|
|
|
+ accountVO.setZfddh(origin.getString("商户订单号"));
|
|
|
+ accountVO.setJylx(origin.getString("类型"));
|
|
|
+ accountVO.setJylsh(origin.getString("交易号"));
|
|
|
+ accountVO.setJyztzh(origin.getString("支付宝用户ID"));
|
|
|
+ accountVO.setJyzthm(origin.getString("支付宝户名"));
|
|
|
+ accountVO.setJyztdcrzbz(origin.getString("收/支"));
|
|
|
+ accountVO.setJysj(origin.getString("交易创建时间"));
|
|
|
+ accountVO.setJyje(origin.getString("金额(元)"));
|
|
|
+ accountVO.setJydszh(origin.getString("对手支付宝用户ID"));
|
|
|
+ accountVO.setJydshm(origin.getString("对手支付宝户名"));
|
|
|
+ accountVO.setXfmc(origin.getString("消费名称"));
|
|
|
+ accountVO.setJylyd(origin.getString("交易来源地"));
|
|
|
+ accountVO.setJyzt(origin.getString("交易状态"));
|
|
|
+ accountVO.setRemark(origin.getString("备注"));
|
|
|
+ }
|
|
|
+ public void insertDataWld(AccountVO accountVO, DataMap dataMap) {
|
|
|
+ dataMap.put("支付订单号", accountVO.getZfddh());
|
|
|
+ dataMap.put("交易流水号", accountVO.getJylsh());
|
|
|
+ dataMap.put("交易主体银行名称", accountVO.getJyztyhmc());
|
|
|
+ dataMap.put("交易主体账号", accountVO.getJyztzh());
|
|
|
+ dataMap.put("交易主体银行卡号", accountVO.getJyztyhkh());
|
|
|
+ dataMap.put("交易主体户名", accountVO.getJyzthm());
|
|
|
+ dataMap.put("交易类型", accountVO.getJylx());
|
|
|
+ dataMap.put("支付类型", accountVO.getZflx());
|
|
|
+ dataMap.put("交易主体的出入账标识", accountVO.getJyztdcrzbz());
|
|
|
+ dataMap.put("交易时间", accountVO.getJysj());
|
|
|
+ dataMap.put("币种", accountVO.getBz());
|
|
|
+ dataMap.put("交易金额", accountVO.getJyje());
|
|
|
+ dataMap.put("交易余额", accountVO.getJyye());
|
|
|
+ dataMap.put("交易对手账号", accountVO.getJydszh());
|
|
|
+ dataMap.put("交易对手银行卡号", accountVO.getJydsyhkh());
|
|
|
+ dataMap.put("交易对手银行名称", accountVO.getJydsyhkhmc());
|
|
|
+ dataMap.put("交易对手户名", accountVO.getJydshm());
|
|
|
+ dataMap.put("消费POS机编号", accountVO.getXfposjbh());
|
|
|
+ dataMap.put("交易设备类型", accountVO.getJysblx());
|
|
|
+ dataMap.put("交易支付设备IP", accountVO.getJyzfsbip());
|
|
|
+ dataMap.put("MAC地址", accountVO.getMacdz());
|
|
|
+ dataMap.put("交易地点经度", accountVO.getJyddjd());
|
|
|
+ dataMap.put("交易地点纬度", accountVO.getJyddwd());
|
|
|
+ dataMap.put("消费名称", accountVO.getXfmc());
|
|
|
+ dataMap.put("交易来源地", accountVO.getJylyd());
|
|
|
+ dataMap.put("交易状态", accountVO.getJyzt());
|
|
|
+ dataMap.put("备注", accountVO.getRemark());
|
|
|
+ }
|
|
|
}
|