|
@@ -1,183 +0,0 @@
|
|
|
-package ieven.server.webapp.service.tenpay;
|
|
|
-
|
|
|
-import cn.hutool.core.util.NumberUtil;
|
|
|
-import com.mongodb.client.MongoCursor;
|
|
|
-import ieven.server.webapp.domain.data.DataMap;
|
|
|
-import ieven.server.webapp.domain.data.Fields;
|
|
|
-import ieven.server.webapp.domain.file.FileService;
|
|
|
-import ieven.server.webapp.domain.tenpay.TenpayHeaders;
|
|
|
-import ieven.server.webapp.service.Ops;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-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.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.concurrent.CountDownLatch;
|
|
|
-
|
|
|
-@Slf4j
|
|
|
-public class TenpayTrades0422 extends Ops implements Runnable {
|
|
|
- MongoTemplate mongoTemplate;
|
|
|
- String modelId;
|
|
|
-
|
|
|
- Map<String, String> accountToName;
|
|
|
- FileService fileService;
|
|
|
-
|
|
|
- CountDownLatch latch;
|
|
|
- List<Fields> originFields;
|
|
|
-
|
|
|
-
|
|
|
- public TenpayTrades0422(
|
|
|
- List<Fields> originFields,
|
|
|
- String modelId,
|
|
|
- MongoTemplate mongoTemplate,
|
|
|
- Map<String, String> accountToName,
|
|
|
- FileService fileService,
|
|
|
- CountDownLatch latch) {
|
|
|
- this.accountToName = accountToName;
|
|
|
- this.modelId = modelId;
|
|
|
- this.mongoTemplate = mongoTemplate;
|
|
|
- this.fileService = fileService;
|
|
|
- this.latch = latch;
|
|
|
- this.originFields = originFields;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- log.info("财付通-交易明细开始");
|
|
|
- String antiSecurityFileId = "";
|
|
|
-
|
|
|
- List<String> headers = TenpayHeaders.getHeaders(7);
|
|
|
- List<Fields> matched = matchHeaders(originFields, headers);
|
|
|
- String newFileId = "";
|
|
|
- if (CollectionUtils.isNotEmpty(matched)) {
|
|
|
- newFileId = createLogicAndDeleteOld("财付通-订单明细", modelId, headers, mongoTemplate, fileService);
|
|
|
- for (Fields fields : matched) {
|
|
|
- String fileId = fields.getFileId();
|
|
|
- MongoCursor<Document> cursor = getCursor(fileId, mongoTemplate);
|
|
|
- Document originDoc;
|
|
|
- List<DataMap> needToSave = new ArrayList<>(1000);
|
|
|
- while (cursor.hasNext()) {
|
|
|
- originDoc = cursor.next();
|
|
|
- // 拷贝到新的
|
|
|
- DataMap newDoc = initWithOrigin(originDoc, newFileId);
|
|
|
- String s = (String) newDoc.get("用户ID");
|
|
|
- if (StringUtils.isNotBlank(s) && s.contains("[")) {
|
|
|
- s = s.replace("[", "").replace("]", "");
|
|
|
- newDoc.put("用户ID", s);
|
|
|
- }
|
|
|
- String s2 = (String) newDoc.get("交易单号");
|
|
|
- if (StringUtils.isNotBlank(s2) && s2.contains("[")) {
|
|
|
- s2 = s2.replace("[", "").replace("]", "");
|
|
|
- newDoc.put("交易单号", s2);
|
|
|
- }
|
|
|
- needToSave.add(newDoc);
|
|
|
- if (needToSave.size() >= 1000) {
|
|
|
- saveLines(new ArrayList<>(needToSave), mongoTemplate);
|
|
|
- needToSave.clear();
|
|
|
- }
|
|
|
- }
|
|
|
- if (CollectionUtils.isNotEmpty(needToSave)) {
|
|
|
- saveLines(needToSave, mongoTemplate);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- String dateFileId = getLogicalFileId("财付通-订单明细", modelId, mongoTemplate);
|
|
|
- // 遍历登录日志全表
|
|
|
- if (StringUtils.isNotBlank(dateFileId)) {
|
|
|
- MongoCursor<Document> cursor = getCursor(dateFileId, mongoTemplate);
|
|
|
- if (cursor.hasNext()) {
|
|
|
- antiSecurityFileId = createLogicAndDeleteOld("财付通-交易明细", modelId, TenpayHeaders.getHeaders(7), mongoTemplate, fileService);
|
|
|
- }
|
|
|
- Document origin;
|
|
|
- List<DataMap> needToSave = new ArrayList<>(1000);
|
|
|
- while (cursor.hasNext()) {
|
|
|
- origin = cursor.next();
|
|
|
- DataMap dataMap = new DataMap();
|
|
|
- dataMap.put("fileId", antiSecurityFileId);
|
|
|
- String userId = origin.getString("用户ID").replace("[", "").replace("]", "");
|
|
|
- dataMap.put("用户ID", userId);
|
|
|
- String lognumber = origin.getString("交易单号");
|
|
|
- if (StringUtils.isBlank(lognumber)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- dataMap.put("交易单号", lognumber.replace("[", "").replace("]", ""));
|
|
|
- String flag = origin.getString("借贷类型");
|
|
|
- if ("出".equals(flag)) {
|
|
|
- dataMap.put("交易主体账号", origin.getString("用户ID"));
|
|
|
- dataMap.put("交易主体银行卡号", origin.getString("用户银行卡号"));
|
|
|
- dataMap.put("交易主体银行名称", origin.getString("用户侧银行名称"));
|
|
|
- //dataMap.put("交易主体户名", accountToName.getOrDefault(origin.getString("用户银行卡号"), ""));
|
|
|
- dataMap.put("交易主体户名", origin.getString("用户侧账号名称"));
|
|
|
- dataMap.put("交易对手账号", origin.getString("对手方ID"));
|
|
|
- dataMap.put("交易对手银行卡号", origin.getString("对手方银行卡号"));
|
|
|
- dataMap.put("交易对手银行名称", origin.getString("对手侧银行名称"));
|
|
|
- //dataMap.put("交易对手户名", accountToName.getOrDefault(StringUtils.trimToEmpty(origin.getString("对手侧账户名称")), ""));
|
|
|
- dataMap.put("交易对手户名", origin.getString("对手侧账户名称"));
|
|
|
- }
|
|
|
- if ("入".equals(flag)) {
|
|
|
- dataMap.put("交易主体账号", StringUtils.trimToEmpty(origin.getString("对手方ID")));
|
|
|
- dataMap.put("交易主体银行卡号", origin.getString("对手方银行卡号"));
|
|
|
- dataMap.put("交易主体银行名称", origin.getString("对手侧银行名称"));
|
|
|
- dataMap.put("交易主体户名", origin.getString("对手侧账户名称"));
|
|
|
- dataMap.put("交易对手账号", StringUtils.trimToEmpty(origin.getString("用户ID")));
|
|
|
- dataMap.put("交易对手银行卡号", origin.getString("用户银行卡号"));
|
|
|
- dataMap.put("交易对手银行名称", origin.getString("用户侧银行名称"));
|
|
|
- dataMap.put("交易对手户名", origin.getString("用户侧账号名称"));
|
|
|
- }
|
|
|
- dataMap.put("借贷类型", flag);
|
|
|
- dataMap.put("交易类型", origin.getString("交易用途类型"));
|
|
|
- dataMap.put("交易时间", origin.getString("交易时间"));
|
|
|
- String string5 = origin.getString("交易金额(分)");
|
|
|
- if (!NumberUtil.isNumber(string5)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- dataMap.put("交易金额(元)", NumberUtil.roundStr(NumberUtil.div(string5 == null ? "0" : string5, "100").doubleValue(), 2));
|
|
|
- String string6 = origin.getString("账户余额(分)");
|
|
|
- if (!NumberUtil.isNumber(string6)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- dataMap.put("账户余额(元)", NumberUtil.roundStr(NumberUtil.div(string6 == null ? "0" : string6, "100").doubleValue(), 2));
|
|
|
- dataMap.put("银行类型", origin.getString("交易业务类型"));
|
|
|
- dataMap.put("交易说明", origin.getString("备注1"));
|
|
|
- dataMap.put("网银联单号1", origin.getString("用户侧网银联单号"));
|
|
|
- dataMap.put("网银联单号2", origin.getString("对手侧网银联单号"));
|
|
|
- dataMap.put("交易主体第三方账号名", origin.getString("第三方账户名称"));
|
|
|
- dataMap.put("对手第三方账号名", origin.getString("第三方账户名称"));
|
|
|
- if ("".equals(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(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);
|
|
|
- }
|
|
|
- }
|
|
|
- this.latch.countDown();
|
|
|
- log.info("财付通-交易明细结束");
|
|
|
- }
|
|
|
-}
|