|
@@ -3,7 +3,6 @@ package ieven.server.webapp.service.datastatic;
|
|
|
import com.mongodb.client.MongoCursor;
|
|
|
import ieven.server.webapp.domain.alipay.AlipayHeaders;
|
|
|
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.domain.tenpay.TenpayHeaders;
|
|
@@ -16,7 +15,6 @@ import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
import org.springframework.data.mongodb.core.query.Criteria;
|
|
|
import org.springframework.data.mongodb.core.query.Query;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.CountDownLatch;
|
|
|
|
|
@@ -52,12 +50,15 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
|
|
|
if (StringUtils.isNotBlank(dateFileId)) {
|
|
|
MongoCursor<Document> cursor = getCursor(dateFileId, mongoTemplate);
|
|
|
if (cursor.hasNext()) {
|
|
|
- newFileId =createLogicAndDeleteOld("数据分析-主体信息汇总", modelId,headerProperties.getStaticUserOutput(),mongoTemplate, fileService);
|
|
|
+ newFileId = createLogicAndDeleteOld("数据分析-主体信息汇总", modelId, headerProperties.getStaticUserOutput(), mongoTemplate, fileService);
|
|
|
insertFromTo(dateFileId, newFileId, modelId, mongoTemplate);
|
|
|
|
|
|
//维护一张人员信息基础表,用于模型计算
|
|
|
- newFileIdAll =createLogicAndDeleteOld("数据分析-所有主体信息汇总", modelId,headerProperties.getStaticUserAllOutput(),mongoTemplate, fileService);
|
|
|
+ newFileIdAll = createLogicAndDeleteOld("数据分析-所有主体信息汇总", modelId, headerProperties.getStaticUserAllOutput(), mongoTemplate, fileService);
|
|
|
insertFromTo(dateFileId, newFileIdAll, modelId, mongoTemplate);
|
|
|
+
|
|
|
+ String newFileIdAll1 = createLogicAndDeleteOld("数据分析-共同关系网络", modelId, headerProperties.getStaticUserAllOutput(), mongoTemplate, fileService);
|
|
|
+ insertFromTo(dateFileId, newFileIdAll1, modelId, mongoTemplate);
|
|
|
}
|
|
|
Set<String> alipayIds = new HashSet<>();
|
|
|
Set<String> alipayIdsAll = new HashSet<>();
|
|
@@ -66,23 +67,23 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
|
|
|
Document origin;
|
|
|
List<DataMap> needToSave = new ArrayList<>(1000);
|
|
|
List<DataMap> needToSaveall = new ArrayList<>(1000);
|
|
|
- Map<String,Object>dataMapUser=new HashMap<>();
|
|
|
+ Map<String, Object> dataMapUser = new HashMap<>();
|
|
|
while (cursor.hasNext()) {
|
|
|
try {
|
|
|
origin = cursor.next();
|
|
|
String alipayId = origin.getString("交易主体账号");
|
|
|
DataMap dataMap;
|
|
|
- if (StringUtils.isNotBlank(alipayId)&&!"null".equals(alipayId)&&!alipayIds.contains(alipayId)) {
|
|
|
+ if (StringUtils.isNotBlank(alipayId) && !"null".equals(alipayId) && !alipayIds.contains(alipayId)) {
|
|
|
alipayIds.add(alipayId);
|
|
|
dataMap = new DataMap();
|
|
|
dataMap.put("fileId", newFileId);
|
|
|
dataMap.put("交易主体账号", alipayId);
|
|
|
dataMap.put("交易主体户名", "");
|
|
|
- getData(dataMap,origin);
|
|
|
+ getData(dataMap, origin);
|
|
|
idToData.put(alipayId, dataMap);
|
|
|
}
|
|
|
String alipayUsername = origin.getString("交易主体户名");
|
|
|
- if (StringUtils.isNotBlank(alipayUsername)&&!"null".equals(alipayUsername)) {
|
|
|
+ if (StringUtils.isNotBlank(alipayUsername) && !"null".equals(alipayUsername)) {
|
|
|
Set<String> namesSet;
|
|
|
if (idToNames.containsKey(alipayId)) {
|
|
|
namesSet = idToNames.get(alipayId);
|
|
@@ -93,26 +94,28 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
|
|
|
namesSet.add(alipayUsername);
|
|
|
}
|
|
|
//组装用户基本信息
|
|
|
- getDataAll(needToSaveall,origin,alipayIdsAll,newFileIdAll,dataMapUser);
|
|
|
+ getDataAll(needToSaveall, origin, alipayIdsAll, newFileIdAll, dataMapUser);
|
|
|
if (needToSaveall.size() >= 1000) {
|
|
|
- List<DataMap>newDataList=new ArrayList<>();
|
|
|
+ List<DataMap> newDataList = new ArrayList<>();
|
|
|
for (DataMap map : needToSaveall) {
|
|
|
String zh = String.valueOf(map.get("账号"));
|
|
|
String zhmc = String.valueOf(map.get("账号名称"));
|
|
|
- if(StringUtils.isBlank(zhmc)||"null".equals(zhmc)){
|
|
|
+ if (StringUtils.isBlank(zhmc) || "null".equals(zhmc)) {
|
|
|
String newZh = String.valueOf(dataMapUser.get(zh));
|
|
|
- if(StringUtils.isBlank(newZh)||"null".equals(newZh)){
|
|
|
+ if (StringUtils.isBlank(newZh) || "null".equals(newZh)) {
|
|
|
continue;
|
|
|
- }else {
|
|
|
- map.put("账号名称",newZh);
|
|
|
+ } else {
|
|
|
+ map.put("账号名称", newZh);
|
|
|
newDataList.add(map);
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
newDataList.add(map);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- saveLines(newDataList, mongoTemplate);
|
|
|
+ if (CollectionUtils.isNotEmpty(newDataList)) {
|
|
|
+ saveLines(newDataList, mongoTemplate);
|
|
|
+ }
|
|
|
needToSaveall.clear();
|
|
|
}
|
|
|
|
|
@@ -141,39 +144,41 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
|
|
|
}
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(needToSaveall)) {
|
|
|
- List<DataMap>newDataList=new ArrayList<>();
|
|
|
+ List<DataMap> newDataList = new ArrayList<>();
|
|
|
for (DataMap map : needToSaveall) {
|
|
|
String zh = String.valueOf(map.get("账号"));
|
|
|
String zhmc = String.valueOf(map.get("账户名称"));
|
|
|
- if(StringUtils.isBlank(zhmc)||"null".equals(zhmc)){
|
|
|
+ if (StringUtils.isBlank(zhmc) || "null".equals(zhmc)) {
|
|
|
String newZh = String.valueOf(dataMapUser.get(zh));
|
|
|
- if(StringUtils.isBlank(newZh)||"null".equals(newZh)){
|
|
|
+ if (StringUtils.isBlank(newZh) || "null".equals(newZh)) {
|
|
|
continue;
|
|
|
- }else {
|
|
|
- map.put("账号名称",newZh);
|
|
|
+ } else {
|
|
|
+ map.put("账号名称", newZh);
|
|
|
newDataList.add(map);
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
newDataList.add(map);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- saveLines(newDataList, mongoTemplate);
|
|
|
+ if (CollectionUtils.isNotEmpty(newDataList)) {
|
|
|
+ saveLines(newDataList, mongoTemplate);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
latch.countDown();
|
|
|
log.info("数据分析-主体信息汇总开始");
|
|
|
}
|
|
|
|
|
|
- public void getData(DataMap dataMap,Document origin){
|
|
|
+ public void getData(DataMap dataMap, Document origin) {
|
|
|
String type = origin.getString("类型");
|
|
|
String account = origin.getString("交易主体账号");
|
|
|
- String zjha="";
|
|
|
- String bdyhkh="";
|
|
|
- String khyhmc="";
|
|
|
- String bdsjh="";
|
|
|
- String zcsj="";
|
|
|
- if("财付通".equals(type)){
|
|
|
+ String zjha = "";
|
|
|
+ String bdyhkh = "";
|
|
|
+ String khyhmc = "";
|
|
|
+ String bdsjh = "";
|
|
|
+ String zcsj = "";
|
|
|
+ if ("财付通".equals(type)) {
|
|
|
//账户状态", "账号", "注册姓名", "注册时间", "注册身份证号", "绑定手机", "绑定状态", "开户行信息", "银行账号"
|
|
|
String dateFileId2 = getFileId(TenpayHeaders.getGeneratedName(3), modelId, mongoTemplate);
|
|
|
List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
|
|
@@ -185,14 +190,14 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
|
|
|
.is(account)
|
|
|
.and("generated")
|
|
|
.is(Boolean.TRUE))), DataMap.class);
|
|
|
- if(CollectionUtils.isNotEmpty(dataMaps)){
|
|
|
- zjha=String.valueOf(dataMaps.get(0).get("注册身份证号"));
|
|
|
- bdyhkh=String.valueOf(dataMaps.get(0).get("银行账号"));
|
|
|
- khyhmc=String.valueOf(dataMaps.get(0).get("开户行信息"));
|
|
|
- bdsjh=String.valueOf(dataMaps.get(0).get("绑定手机"));
|
|
|
- zcsj=String.valueOf(dataMaps.get(0).get("注册时间"));
|
|
|
+ if (CollectionUtils.isNotEmpty(dataMaps)) {
|
|
|
+ zjha = String.valueOf(dataMaps.get(0).get("注册身份证号"));
|
|
|
+ bdyhkh = String.valueOf(dataMaps.get(0).get("银行账号"));
|
|
|
+ khyhmc = String.valueOf(dataMaps.get(0).get("开户行信息"));
|
|
|
+ bdsjh = String.valueOf(dataMaps.get(0).get("绑定手机"));
|
|
|
+ zcsj = String.valueOf(dataMaps.get(0).get("注册时间"));
|
|
|
}
|
|
|
- }else if("五联单".equals(type)){
|
|
|
+ } else if ("五联单".equals(type)) {
|
|
|
// "用户ID", "登录邮箱", "登录手机", "账户名称", "证件类型", "证件号", "可用余额", "注册时间", "绑定手机", "绑定银行卡", "对应的协查数据"));
|
|
|
String dateFileId2 = getFileId(AlipayHeaders.getGeneratedName(2), modelId, mongoTemplate);
|
|
|
List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
|
|
@@ -204,12 +209,12 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
|
|
|
.is(account)
|
|
|
.and("generated")
|
|
|
.is(Boolean.TRUE))), DataMap.class);
|
|
|
- if(CollectionUtils.isNotEmpty(dataMaps)){
|
|
|
- zjha=String.valueOf(dataMaps.get(0).get("证件号"));
|
|
|
- bdyhkh=String.valueOf(dataMaps.get(0).get("绑定银行卡"));
|
|
|
- khyhmc=String.valueOf(dataMaps.get(0).get("账户名称"));
|
|
|
- bdsjh=String.valueOf(dataMaps.get(0).get("登录手机"));
|
|
|
- zcsj=String.valueOf(dataMaps.get(0).get("注册时间"));
|
|
|
+ if (CollectionUtils.isNotEmpty(dataMaps)) {
|
|
|
+ zjha = String.valueOf(dataMaps.get(0).get("证件号"));
|
|
|
+ bdyhkh = String.valueOf(dataMaps.get(0).get("绑定银行卡"));
|
|
|
+ khyhmc = String.valueOf(dataMaps.get(0).get("账户名称"));
|
|
|
+ bdsjh = String.valueOf(dataMaps.get(0).get("登录手机"));
|
|
|
+ zcsj = String.valueOf(dataMaps.get(0).get("注册时间"));
|
|
|
}
|
|
|
}
|
|
|
dataMap.put("证件号码", zjha);
|
|
@@ -218,40 +223,41 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
|
|
|
dataMap.put("绑定手机号", bdsjh);
|
|
|
dataMap.put("注册时间", zcsj);
|
|
|
}
|
|
|
- public void getDataAll(List<DataMap> needToSaveall,Document origin,Set<String> alipayIdsAll,String newFileIdAll,Map<String,Object>userMap){
|
|
|
+
|
|
|
+ public void getDataAll(List<DataMap> needToSaveall, Document origin, Set<String> alipayIdsAll, String newFileIdAll, Map<String, Object> userMap) {
|
|
|
String type = origin.getString("类型");
|
|
|
String account = String.valueOf(origin.getString("交易主体账号"));
|
|
|
String accounthm = String.valueOf(origin.getString("交易主体户名"));
|
|
|
String accountds = String.valueOf(origin.getString("交易对手账号"));
|
|
|
String accountdshm = String.valueOf(origin.getString("交易对手户名"));
|
|
|
|
|
|
- List<String>accountList=new ArrayList<>();
|
|
|
- Map<String,Object>dataMaphm=new HashMap<>();
|
|
|
- if(StringUtils.isNotBlank(account)&&!"null".equals(account)){
|
|
|
+ List<String> accountList = new ArrayList<>();
|
|
|
+ Map<String, Object> dataMaphm = new HashMap<>();
|
|
|
+ if (StringUtils.isNotBlank(account) && !"null".equals(account)) {
|
|
|
accountList.add(account);
|
|
|
- dataMaphm.put(account,accounthm);
|
|
|
- if(StringUtils.isNotBlank(account)&&!"null".equals(account)&&StringUtils.isNotBlank(accounthm)&&!"null".equals(accounthm)){
|
|
|
+ dataMaphm.put(account, accounthm);
|
|
|
+ if (StringUtils.isNotBlank(account) && !"null".equals(account) && StringUtils.isNotBlank(accounthm) && !"null".equals(accounthm)) {
|
|
|
String s = String.valueOf(userMap.get(account));
|
|
|
- if(StringUtils.isBlank(s)){
|
|
|
- userMap.put(account,accounthm);
|
|
|
+ if (StringUtils.isBlank(s)) {
|
|
|
+ userMap.put(account, accounthm);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(StringUtils.isNotBlank(accountds)&&!"null".equals(accountds)){
|
|
|
+ if (StringUtils.isNotBlank(accountds) && !"null".equals(accountds)) {
|
|
|
accountList.add(accountds);
|
|
|
- dataMaphm.put(accountds,accountdshm);
|
|
|
- if(StringUtils.isNotBlank(accountds)&&!"null".equals(accountds)&&StringUtils.isNotBlank(accountdshm)&&!"null".equals(accountdshm)){
|
|
|
+ dataMaphm.put(accountds, accountdshm);
|
|
|
+ if (StringUtils.isNotBlank(accountds) && !"null".equals(accountds) && StringUtils.isNotBlank(accountdshm) && !"null".equals(accountdshm)) {
|
|
|
String s = String.valueOf(userMap.get(accountds));
|
|
|
- if(StringUtils.isBlank(s)){
|
|
|
- userMap.put(accountds,accountdshm);
|
|
|
+ if (StringUtils.isBlank(s)) {
|
|
|
+ userMap.put(accountds, accountdshm);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if(CollectionUtils.isEmpty(accountList)){
|
|
|
+ if (CollectionUtils.isEmpty(accountList)) {
|
|
|
return;
|
|
|
}
|
|
|
- if("财付通".equals(type)){
|
|
|
+ if ("财付通".equals(type)) {
|
|
|
//账户状态", "账号", "注册姓名", "注册时间", "注册身份证号", "绑定手机", "绑定状态", "开户行信息", "银行账号"
|
|
|
String dateFileId2 = getFileId(TenpayHeaders.getGeneratedName(3), modelId, mongoTemplate);
|
|
|
List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
|
|
@@ -263,45 +269,44 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
|
|
|
.in(accountList)
|
|
|
.and("generated")
|
|
|
.is(Boolean.TRUE))), DataMap.class);
|
|
|
- if(CollectionUtils.isNotEmpty(dataMaps)){
|
|
|
+ if (CollectionUtils.isNotEmpty(dataMaps)) {
|
|
|
for (DataMap dataMap : dataMaps) {
|
|
|
- if(!alipayIdsAll.contains(String.valueOf(dataMap.get("账号")))){
|
|
|
- DataMap newDataMap=new DataMap();
|
|
|
+ if (!alipayIdsAll.contains(String.valueOf(dataMap.get("账号")))) {
|
|
|
+ DataMap newDataMap = new DataMap();
|
|
|
newDataMap.put("fileId", newFileIdAll);
|
|
|
- newDataMap.put("证件号",String.valueOf(dataMap.get("注册身份证号")));
|
|
|
- newDataMap.put("账户名称",String.valueOf(dataMap.get("注册姓名")));
|
|
|
- newDataMap.put("账号",String.valueOf(dataMap.get("账号")));
|
|
|
+ newDataMap.put("证件号", String.valueOf(dataMap.get("注册身份证号")));
|
|
|
+ newDataMap.put("账户名称", String.valueOf(dataMap.get("注册姓名")));
|
|
|
+ newDataMap.put("账号", String.valueOf(dataMap.get("账号")));
|
|
|
needToSaveall.add(newDataMap);
|
|
|
alipayIdsAll.add(String.valueOf(dataMap.get("账号")));
|
|
|
}
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
for (String s : accountList) {
|
|
|
- if(!alipayIdsAll.contains(s)){
|
|
|
- DataMap newDataMap=new DataMap();
|
|
|
+ if (!alipayIdsAll.contains(s)) {
|
|
|
+ DataMap newDataMap = new DataMap();
|
|
|
newDataMap.put("fileId", newFileIdAll);
|
|
|
- newDataMap.put("证件号","");
|
|
|
- newDataMap.put("账户名称",StringUtils.isBlank(String.valueOf(dataMaphm.get(s)))||"null".equals(String.valueOf(dataMaphm.get(s)))?"":String.valueOf(dataMaphm.get(s)));
|
|
|
- newDataMap.put("账号",s);
|
|
|
+ newDataMap.put("证件号", "");
|
|
|
+ newDataMap.put("账户名称", StringUtils.isBlank(String.valueOf(dataMaphm.get(s))) || "null".equals(String.valueOf(dataMaphm.get(s))) ? "" : String.valueOf(dataMaphm.get(s)));
|
|
|
+ newDataMap.put("账号", s);
|
|
|
needToSaveall.add(newDataMap);
|
|
|
alipayIdsAll.add(s);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }else if("反诈".equals(type)){
|
|
|
+ } else if ("反诈".equals(type)) {
|
|
|
for (String s : accountList) {
|
|
|
- if(!alipayIdsAll.contains(s)){
|
|
|
- DataMap newDataMap=new DataMap();
|
|
|
+ if (!alipayIdsAll.contains(s)) {
|
|
|
+ DataMap newDataMap = new DataMap();
|
|
|
newDataMap.put("fileId", newFileIdAll);
|
|
|
- newDataMap.put("证件号","");
|
|
|
- newDataMap.put("账户名称",StringUtils.isBlank(String.valueOf(dataMaphm.get(s)))||"null".equals(String.valueOf(dataMaphm.get(s)))?"":String.valueOf(dataMaphm.get(s)));
|
|
|
- newDataMap.put("账号",s);
|
|
|
+ newDataMap.put("证件号", "");
|
|
|
+ newDataMap.put("账户名称", StringUtils.isBlank(String.valueOf(dataMaphm.get(s))) || "null".equals(String.valueOf(dataMaphm.get(s))) ? "" : String.valueOf(dataMaphm.get(s)));
|
|
|
+ newDataMap.put("账号", s);
|
|
|
needToSaveall.add(newDataMap);
|
|
|
alipayIdsAll.add(s);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- else if("五联单".equals(type)){
|
|
|
+ } else if ("五联单".equals(type)) {
|
|
|
// "用户ID", "登录邮箱", "登录手机", "账户名称", "证件类型", "证件号", "可用余额", "注册时间", "绑定手机", "绑定银行卡", "对应的协查数据"));
|
|
|
String dateFileId2 = getFileId(AlipayHeaders.getGeneratedName(2), modelId, mongoTemplate);
|
|
|
List<DataMap> dataMaps = this.mongoTemplate.find((new Query(
|
|
@@ -313,26 +318,26 @@ public class DataStaticAnalysisTotal extends Ops implements Runnable {
|
|
|
.in(accountList)
|
|
|
.and("generated")
|
|
|
.is(Boolean.TRUE))), DataMap.class);
|
|
|
- if(CollectionUtils.isNotEmpty(dataMaps)){
|
|
|
+ if (CollectionUtils.isNotEmpty(dataMaps)) {
|
|
|
for (DataMap dataMap : dataMaps) {
|
|
|
- if(!alipayIdsAll.contains(String.valueOf(dataMap.get("用户ID")))){
|
|
|
- DataMap newDataMap=new DataMap();
|
|
|
+ if (!alipayIdsAll.contains(String.valueOf(dataMap.get("用户ID")))) {
|
|
|
+ DataMap newDataMap = new DataMap();
|
|
|
newDataMap.put("fileId", newFileIdAll);
|
|
|
- newDataMap.put("证件号",String.valueOf(dataMap.get("证件号")));
|
|
|
- newDataMap.put("账户名称",String.valueOf(dataMap.get("账户名称")));
|
|
|
- newDataMap.put("账号",String.valueOf(dataMap.get("用户ID")));
|
|
|
+ newDataMap.put("证件号", String.valueOf(dataMap.get("证件号")));
|
|
|
+ newDataMap.put("账户名称", String.valueOf(dataMap.get("账户名称")));
|
|
|
+ newDataMap.put("账号", String.valueOf(dataMap.get("用户ID")));
|
|
|
needToSaveall.add(newDataMap);
|
|
|
alipayIdsAll.add(String.valueOf(dataMap.get("用户ID")));
|
|
|
}
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
for (String s : accountList) {
|
|
|
- if(!alipayIdsAll.contains(s)){
|
|
|
- DataMap newDataMap=new DataMap();
|
|
|
+ if (!alipayIdsAll.contains(s)) {
|
|
|
+ DataMap newDataMap = new DataMap();
|
|
|
newDataMap.put("fileId", newFileIdAll);
|
|
|
- newDataMap.put("证件号","");
|
|
|
- newDataMap.put("账户名称",StringUtils.isBlank(String.valueOf(dataMaphm.get(s)))||"null".equals(String.valueOf(dataMaphm.get(s)))?"":String.valueOf(dataMaphm.get(s)));
|
|
|
- newDataMap.put("账号",s);
|
|
|
+ newDataMap.put("证件号", "");
|
|
|
+ newDataMap.put("账户名称", StringUtils.isBlank(String.valueOf(dataMaphm.get(s))) || "null".equals(String.valueOf(dataMaphm.get(s))) ? "" : String.valueOf(dataMaphm.get(s)));
|
|
|
+ newDataMap.put("账号", s);
|
|
|
needToSaveall.add(newDataMap);
|
|
|
alipayIdsAll.add(s);
|
|
|
}
|