|
@@ -18,6 +18,7 @@ import ieven.server.webapp.domain.IdInput;
|
|
|
import ieven.server.webapp.domain.data.DataMap;
|
|
|
import ieven.server.webapp.domain.data.Fields;
|
|
|
import ieven.server.webapp.domain.model.Model;
|
|
|
+import ieven.server.webapp.domain.tenpay.TenpayHeaders;
|
|
|
import ieven.server.webapp.infrastructure.wrapper.Mapped;
|
|
|
import ieven.server.webapp.service.MongoExcelService;
|
|
|
import ieven.server.webapp.util.EncodeDetector;
|
|
@@ -55,11 +56,14 @@ import java.io.*;
|
|
|
import java.nio.charset.Charset;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.*;
|
|
|
import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static cn.hutool.core.util.ArrayUtil.contains;
|
|
|
+
|
|
|
@Service
|
|
|
@EnableAsync
|
|
|
@Slf4j
|
|
@@ -82,7 +86,7 @@ public class FileService {
|
|
|
"五联单-IP地址分析",
|
|
|
"五联单-收货地址分析"
|
|
|
};
|
|
|
- String[] order3 = {"财付通-注册信息", "财付通-订单明细1", "财付通-订单明细2","财付通-商户订单", "财付通-交易明细", "财付通-账户透视", "财付通-对手透视", "财付通-手机明细"};
|
|
|
+ String[] order3 = {"财付通-注册信息", "财付通-订单明细1", "财付通-订单明细2", "财付通-商户注册信息","财付通-商户订单", "财付通-交易明细", "财付通-账户透视", "财付通-对手透视", "财付通-手机明细"};
|
|
|
|
|
|
String[] order4 = {"数据分析-主体信息汇总", "数据分析-账户透视", "数据分析-对手透视", "数据分析-共同关系网络"};
|
|
|
@Autowired
|
|
@@ -251,6 +255,8 @@ public class FileService {
|
|
|
IoUtil.readLines(new InputStreamReader(inputStream, "utf-8"), lines);
|
|
|
int curRow = 0;
|
|
|
boolean processNext = false;
|
|
|
+ boolean lineAccount = false;
|
|
|
+
|
|
|
|
|
|
for (String line : lines) {
|
|
|
if (line.equals("注销信息")) {
|
|
@@ -268,7 +274,20 @@ public class FileService {
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
- if (line.contains("账户状态\t账号")) {
|
|
|
+ /*
|
|
|
+ * // 定义需要检查的字段
|
|
|
+ String[] requiredFields = {"账户状态", "账号", "注册姓名", "注册时间", "注册身份证号"};
|
|
|
+ // 将行拆分为字段数组
|
|
|
+ String[] fields = line.split("\t");
|
|
|
+
|
|
|
+ // 检查每个必要字段是否存在
|
|
|
+ for (String field : requiredFields) {
|
|
|
+ if (contains(fields, field) && !lineAccount) {
|
|
|
+ lineAccount = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ * */
|
|
|
+ if (line.contains("账户状态\t账号\t注册姓名\t注册时间\t注册身份证号\t绑定手机\t绑定状态")) {
|
|
|
// 先存储表头行
|
|
|
mongoExcelService.getRows(
|
|
|
0,
|
|
@@ -281,6 +300,70 @@ public class FileService {
|
|
|
processNext = true;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ int isMerchant = 0; // 商户注册信息
|
|
|
+ HashMap<String, String> merchantMap = new HashMap<>();
|
|
|
+ List<String> headers = TenpayHeaders.getHeaders(11);
|
|
|
+ for (String line : lines) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ for (String header : headers) {
|
|
|
+ if (line.contains(header)) {
|
|
|
+ // Split each line into left and right parts
|
|
|
+ String[] merchantLine = line.split(":");
|
|
|
+ String key = merchantLine[0].trim();
|
|
|
+ String value = merchantLine.length < 2 ? "" : merchantLine[1].trim();
|
|
|
+ merchantMap.put(key, value);
|
|
|
+ isMerchant++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (ArrayIndexOutOfBoundsException e) {
|
|
|
+ System.out.println("错误: 行解析失败,行内容可能不正确。");
|
|
|
+ System.out.println("错误信息: " + e.getMessage());
|
|
|
+ e.printStackTrace();
|
|
|
+ } catch (NullPointerException e) {
|
|
|
+ System.out.println("错误: 空指针异常,可能是headers或line为空。");
|
|
|
+ System.out.println("错误信息: " + e.getMessage());
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.out.println(merchantMap);
|
|
|
+ /*财付通-商户注册信息 */
|
|
|
+ if(merchantMap.size() > 8) {
|
|
|
+ String bankNo = merchantMap.get("绑定银行卡号");
|
|
|
+ /*
|
|
|
+ * "商户账号", "商户名", "注册时间", "证件号", "邮箱", "绑定手机", "银行账户名", "绑定银行", "绑定银行卡号", "商户地址"
|
|
|
+ * */
|
|
|
+ String[] bankNoArray = bankNo.split(",");
|
|
|
+ mongoExcelService.getRows(
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ headers
|
|
|
+ );
|
|
|
+ for (String no : bankNoArray) {
|
|
|
+ // 创建每行的数据,包含所有字段,其中bankNo为当前值
|
|
|
+ List<String> row = new ArrayList<>();
|
|
|
+ row.add(merchantMap.get("商户账号"));
|
|
|
+ row.add(merchantMap.get("商户名"));
|
|
|
+
|
|
|
+ row.add(merchantMap.get("注册时间"));
|
|
|
+ row.add(merchantMap.get("证件号"));
|
|
|
+ row.add(merchantMap.get("邮箱"));
|
|
|
+ row.add(merchantMap.get("绑定手机"));
|
|
|
+ row.add(merchantMap.get("银行账户名"));
|
|
|
+ row.add(merchantMap.get("绑定银行"));
|
|
|
+ row.add(no);
|
|
|
+ row.add(merchantMap.get("商户地址"));
|
|
|
+ // 假设bankNo是第三个字段
|
|
|
+
|
|
|
+ // 添加其他字段...
|
|
|
+ mongoExcelService.getRows(
|
|
|
+ 0,
|
|
|
+ 1,
|
|
|
+ row
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
mongoExcelService.insertRest();
|
|
|
}
|
|
|
} catch (Exception var11) {
|