123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- package ieven.server.webapp.service.tenpay;
- 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 TenpayAccount extends Ops implements Runnable {
- List<Fields> originFields;
- String modelId;
- MongoTemplate mongoTemplate;
- FileService fileService;
- Map<String, String> accountToName;
- CountDownLatch latch;
- public TenpayAccount(
- List<Fields> originFields,
- String modelId,
- MongoTemplate mongoTemplate,
- FileService fileService,
- Map<String, String> accountToName,
- CountDownLatch latch) {
- this.originFields = originFields;
- this.modelId = modelId;
- this.mongoTemplate = mongoTemplate;
- this.fileService = fileService;
- this.accountToName = accountToName;
- this.latch = latch;
- }
- @Override
- public void run() {
- log.info("财付通-开户信息开始");
- List<String> headers = TenpayHeaders.getHeaders(3);
- // 直接删除旧表创建新表
- List<Fields> matched = matchHeaders(originFields, headers);
- if (CollectionUtils.isNotEmpty(matched)) {
- String 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);
- String string1 = "";
- String string2 = "";
- String string3 = "";
- String string4 = "";
- String string5 = "";
- String string6 = "";
- while (cursor.hasNext()) {
- originDoc = cursor.next();
- // 拷贝到新的
- DataMap newDoc = initWithOrigin(originDoc, newFileId);
- deleteKey(newDoc, "FILEID");
- String s1 = (String) newDoc.get("账户状态");
- String s2 = (String) newDoc.get("账号");
- String s3 = (String) newDoc.get("注册姓名");
- String s4 = (String) newDoc.get("注册时间");
- String s5 = (String) newDoc.get("注册身份证号");
- String s6 = (String) newDoc.get("绑定手机");
- if (StringUtils.isNotBlank(s1) && StringUtils.isBlank(string1)) {
- string1 = s1;
- } else {
- newDoc.put("账户状态", string1);
- }
- if (StringUtils.isNotBlank(s2) && StringUtils.isBlank(string2)) {
- string2 = s2;
- } else {
- newDoc.put("账号", string2);
- }
- if (StringUtils.isNotBlank(s3) && StringUtils.isBlank(string3)) {
- string3 = s3;
- } else {
- newDoc.put("注册姓名", string3);
- }
- if (StringUtils.isNotBlank(s4) && StringUtils.isBlank(string4)) {
- string4 = s4;
- } else {
- newDoc.put("注册时间", string4);
- }
- if (StringUtils.isNotBlank(s5) && StringUtils.isBlank(string5)) {
- string5 = s5;
- } else {
- newDoc.put("注册身份证号", string5);
- }
- if (StringUtils.isNotBlank(s6) && StringUtils.isBlank(string6)) {
- string6 = s6;
- } else {
- newDoc.put("绑定手机", string6);
- }
- String name = originDoc.getString("注册姓名");
- String account = originDoc.getString("账号");
- this.accountToName.putIfAbsent(account, name);
- needToSave.add(newDoc);
- if (needToSave.size() >= 1000) {
- saveLines(new ArrayList<>(needToSave), mongoTemplate);
- needToSave.clear();
- }
- }
- if (CollectionUtils.isNotEmpty(needToSave)) {
- saveLines(needToSave, mongoTemplate);
- }
- }
- }
- latch.countDown();
- log.info("财付通-开户信息结束");
- }
- }
|