123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381 |
- package ieven.server.webapp.service.alipay;
- import com.mongodb.client.MongoCursor;
- import ieven.server.webapp.domain.alipay.HeaderProperties;
- import ieven.server.webapp.domain.data.DataMap;
- import ieven.server.webapp.domain.file.FileService;
- import ieven.server.webapp.service.Ops;
- import ieven.server.webapp.util.DataUtils;
- import ieven.server.webapp.util.excel.PublicStatic;
- import org.apache.commons.collections4.CollectionUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.bson.Document;
- import org.springframework.data.mongodb.core.MongoTemplate;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.concurrent.CountDownLatch;
- public class AntiSecurityTrade3 extends Ops implements Runnable {
- HeaderProperties headerProperties;
- MongoTemplate mongoTemplate;
- String modelId;
- Map<String, String> accountToName;
- FileService fileService;
- CountDownLatch latch;
- public AntiSecurityTrade3(
- HeaderProperties headerProperties,
- String modelId,
- MongoTemplate mongoTemplate,
- Map<String, String> accountToName,
- FileService fileService,
- CountDownLatch latch3) {
- this.headerProperties = headerProperties;
- this.accountToName = accountToName;
- this.modelId = modelId;
- this.mongoTemplate = mongoTemplate;
- this.fileService = fileService;
- latch = latch3;
- }
- @Override
- public void run() {
- String antiSecurityFileId = "";
- String dateFileId1 = getFileId("反诈数据-订单明细", modelId, mongoTemplate);
- String dateFileId2 = getFileId("治安数据-订单明细", modelId, mongoTemplate);
- String dateFileId3 = getFileId("经侦数据-订单明细", modelId, mongoTemplate);
- // 遍历登录日志全表
- if (StringUtils.isNotBlank(dateFileId1) || StringUtils.isNotBlank(dateFileId2) || StringUtils.isNotBlank(dateFileId3)) {
- MongoCursor<Document> cursor1 = getCursor(dateFileId1, mongoTemplate);
- if (cursor1.hasNext()) {
- antiSecurityFileId = antiSecurityFileId();
- insertData1(cursor1, antiSecurityFileId);
- }
- MongoCursor<Document> cursor2 = getCursor(dateFileId2, mongoTemplate);
- if (cursor2.hasNext()) {
- if (StringUtils.isBlank(antiSecurityFileId)) {
- antiSecurityFileId = antiSecurityFileId();
- }
- insertData2(cursor2, antiSecurityFileId);
- }
- MongoCursor<Document> cursor3 = getCursor(dateFileId3, mongoTemplate);
- if (cursor3.hasNext()) {
- if (StringUtils.isBlank(antiSecurityFileId)) {
- antiSecurityFileId = antiSecurityFileId();
- }
- insertData3(cursor3, antiSecurityFileId);
- }
- }
- latch.countDown();
- }
- public String antiSecurityFileId() {
- return createLogicAndDeleteOld(
- "反诈治安-交易明细",
- modelId,
- headerProperties.getAntiSecurityTradeOutput(),
- mongoTemplate,
- fileService
- );
- }
- public void insertData1(MongoCursor<Document> cursor, String antiSecurityFileId) {
- Document origin;
- List<DataMap> needToSave = new ArrayList<>(1000);
- Map<String, Object> dataMapUser = new HashMap<>();
- 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("币种"));
- String string = origin.getString("交易金额");
- if (StringUtils.isBlank(string)) {
- continue;
- }
- 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("收款方的商户名称"));
- String jyztzh = String.valueOf(origin.getString("收款方的支付账号"));
- String jyztzhhm = String.valueOf(origin.getString("收款方的商户名称"));
- if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
- dataMapUser.put(jyztzh, jyztzhhm);
- }
- } 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("交易对手户名", "");
- String jyztzh = String.valueOf(origin.getString("收款方的支付账号"));
- String jyztzhhm = String.valueOf(origin.getString("收款方的商户名称"));
- if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
- dataMapUser.put(jyztzh, jyztzhhm);
- }
- }
- dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
- String jyzthm = String.valueOf(dataMap.get("交易主体户名"));
- if (StringUtils.isBlank(jyzthm) || "-".equals(jyzthm) || "null".equals(jyzthm)) {
- String account = (String) dataMap.getOrDefault("交易主体账号", "");
- if (StringUtils.isBlank(account) || "-".equals(account)) {
- } else {
- String newName = accountToName.getOrDefault(account, "");
- if (StringUtils.isNotBlank(newName)) {
- dataMap.put("交易主体户名", PublicStatic.specialFormatStr(newName));
- } else {
- dataMap.put("交易主体户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
- }
- }
- } else {
- dataMap.put("交易主体户名", PublicStatic.specialFormatStr(jyzthm));
- }
- String value = String.valueOf(dataMap.get("交易对手户名"));
- if (StringUtils.isBlank(value) || "-".equals(value) || "null".equals(value)) {
- String account = (String) dataMap.getOrDefault("交易对手账号", "");
- if (StringUtils.isBlank(account) || "-".equals(account)) {
- } else {
- String newName = accountToName.getOrDefault(account, "");
- if (StringUtils.isNotBlank(newName)) {
- dataMap.put("交易对手户名", PublicStatic.specialFormatStr(newName));
- } else {
- dataMap.put("交易对手户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
- }
- }
- } else {
- dataMap.put("交易对手户名", PublicStatic.specialFormatStr(value));
- }
- needToSave.add(dataMap);
- if (needToSave.size() >= 1000) {
- saveLines(new ArrayList<>(needToSave), mongoTemplate);
- needToSave.clear();
- }
- }
- if (CollectionUtils.isNotEmpty(needToSave)) {
- saveLines(needToSave, mongoTemplate);
- }
- }
- public void insertData2(MongoCursor<Document> cursor, String antiSecurityFileId) {
- Document origin;
- List<DataMap> needToSave = new ArrayList<>(1000);
- Map<String, Object> dataMapUser = new HashMap<>();
- 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("收款方的商户名称"));
- String jyztzh = String.valueOf(origin.getString("收款支付账号"));
- String jyztzhhm = String.valueOf(origin.getString("收款方的商户名称"));
- if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
- dataMapUser.put(jyztzh, jyztzhhm);
- }
- } 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("交易对手户名", "");
- String jyztzh = String.valueOf(origin.getString("收款支付账号"));
- String jyztzhhm = String.valueOf(origin.getString("收款方的商户名称"));
- if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
- dataMapUser.put(jyztzh, jyztzhhm);
- }
- }
- dataMap.put("交易时间", DataUtils.transferDateToStr(origin.getString("交易时间")));
- String jyzthm = String.valueOf(dataMap.get("交易主体户名"));
- if (StringUtils.isBlank(jyzthm) || "-".equals(jyzthm) || "null".equals(jyzthm)) {
- String account = (String) dataMap.getOrDefault("交易主体账号", "");
- if (StringUtils.isBlank(account) || "-".equals(account)) {
- } else {
- String newName = accountToName.getOrDefault(account, "");
- if (StringUtils.isNotBlank(newName)) {
- dataMap.put("交易主体户名", PublicStatic.specialFormatStr(newName));
- } else {
- dataMap.put("交易主体户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
- }
- }
- } else {
- dataMap.put("交易主体户名", PublicStatic.specialFormatStr(jyzthm));
- }
- String value = String.valueOf(dataMap.get("交易对手户名"));
- if (StringUtils.isBlank(value) || "-".equals(value) || "null".equals(value)) {
- String account = (String) dataMap.getOrDefault("交易对手账号", "");
- if (StringUtils.isBlank(account) || "-".equals(account)) {
- } else {
- String newName = accountToName.getOrDefault(account, "");
- if (StringUtils.isNotBlank(newName)) {
- dataMap.put("交易对手户名", PublicStatic.specialFormatStr(newName));
- } else {
- dataMap.put("交易对手户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
- }
- }
- } else {
- dataMap.put("交易对手户名", PublicStatic.specialFormatStr(value));
- }
- needToSave.add(dataMap);
- if (needToSave.size() >= 1000) {
- saveLines(new ArrayList<>(needToSave), mongoTemplate);
- needToSave.clear();
- }
- }
- if (CollectionUtils.isNotEmpty(needToSave)) {
- saveLines(needToSave, mongoTemplate);
- }
- }
- public void insertData3(MongoCursor<Document> cursor, String antiSecurityFileId) {
- Document originDoc;
- List<DataMap> needToSave = new ArrayList<>(1000);
- Map<String, Object> dataMapUser = new HashMap<>();
- while (cursor.hasNext()) {
- originDoc = cursor.next();
- DataMap dataMap = new DataMap();
- dataMap.put("fileId", antiSecurityFileId);
- dataMap.put("交易主体账号", originDoc.getString("查询账号"));
- dataMap.put("支付订单号", originDoc.getString("支付机构内部订单号"));
- String f1 = originDoc.getString("借贷标志");
- dataMap.put("交易金额", originDoc.getString("交易金额"));
- dataMap.put("交易余额", originDoc.getString("交易余额"));
- dataMap.put("交易类型", originDoc.getString("交易类型"));
- dataMap.put("交易时间", originDoc.getString("交易时间"));
- dataMap.put("银行类型", originDoc.getString("支付类型"));
- dataMap.put("交易流水号", originDoc.getString("银行外部渠道交易流水号"));
- dataMap.put("备注", originDoc.getString("备注"));
- dataMap.put("币种", originDoc.getString("币种"));
- if (f1.equals("贷")) {
- dataMap.put("交易对手账号", originDoc.getString("付款方支付帐号"));
- dataMap.put("交易对手银行名称", originDoc.getString("付款方银行卡所属行"));
- dataMap.put("交易对手银行卡号", originDoc.getString("付款方银行卡号"));
- dataMap.put("交易主体银行名称", originDoc.getString("收款方银行卡所属行"));
- dataMap.put("交易主体银行卡号", originDoc.getString("收款方银行卡号"));
- dataMap.put("交易主体户名", originDoc.getString("收款方的商户名称"));
- dataMap.put("交易主体的出入账标识", "入账");
- String jyztzh = String.valueOf(originDoc.getString("查询账号"));
- String jyztzhhm = String.valueOf(originDoc.getString("收款方的商户名称"));
- if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
- dataMapUser.put(jyztzh, jyztzhhm);
- }
- }
- if (f1.equals("借")) {
- dataMap.put("交易主体银行名称", originDoc.getString("付款方银行卡所属行"));
- dataMap.put("交易主体银行卡号", originDoc.getString("付款方银行卡号"));
- dataMap.put("交易对手账号", originDoc.getString("收款方支付帐号"));
- dataMap.put("交易对手银行名称", originDoc.getString("收款方银行卡所属行"));
- dataMap.put("交易对手银行卡号", originDoc.getString("收款方银行卡号"));
- dataMap.put("交易对手户名", originDoc.getString("收款方的商户名称"));
- dataMap.put("交易主体的出入账标识", "出账");
- String jyztzh = String.valueOf(originDoc.getString("收款方支付帐号"));
- String jyztzhhm = String.valueOf(originDoc.getString("收款方的商户名称"));
- if (StringUtils.isNotBlank(jyztzh) && !"null".equals(jyztzh) && StringUtils.isNotBlank(jyztzhhm) && !"null".equals(jyztzhhm)) {
- dataMapUser.put(jyztzh, jyztzhhm);
- }
- }
- String jyzthm = String.valueOf(dataMap.get("交易主体户名"));
- if (StringUtils.isBlank(jyzthm) || "-".equals(jyzthm) || "null".equals(jyzthm)) {
- String account = (String) dataMap.getOrDefault("交易主体账号", "");
- if (StringUtils.isBlank(account) || "-".equals(account)) {
- } else {
- String newName = accountToName.getOrDefault(account, "");
- if (StringUtils.isNotBlank(newName)) {
- dataMap.put("交易主体户名", PublicStatic.specialFormatStr(newName));
- } else {
- dataMap.put("交易主体户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
- }
- }
- } else {
- dataMap.put("交易主体户名", PublicStatic.specialFormatStr(jyzthm));
- }
- String value = String.valueOf(dataMap.get("交易对手户名"));
- if (StringUtils.isBlank(value) || "-".equals(value) || "null".equals(value)) {
- String account = (String) dataMap.getOrDefault("交易对手账号", "");
- if (StringUtils.isBlank(account) || "-".equals(account)) {
- } else {
- String newName = accountToName.getOrDefault(account, "");
- if (StringUtils.isNotBlank(newName)) {
- dataMap.put("交易对手户名", PublicStatic.specialFormatStr(newName));
- } else {
- dataMap.put("交易对手户名", PublicStatic.specialFormatStr(String.valueOf(dataMapUser.get(account))));
- }
- }
- } else {
- dataMap.put("交易对手户名", PublicStatic.specialFormatStr(value));
- }
- needToSave.add(dataMap);
- if (needToSave.size() >= 1000) {
- saveLines(new ArrayList<>(needToSave), mongoTemplate);
- needToSave.clear();
- }
- }
- if (CollectionUtils.isNotEmpty(needToSave)) {
- saveLines(needToSave, mongoTemplate);
- }
- }
- }
|