Selaa lähdekoodia

feat(1): 支付宝五联单账户明细新格式

洪海涛 5 kuukautta sitten
vanhempi
sitoutus
53c6049c40

+ 2 - 1
src/main/java/ieven/server/webapp/domain/alipay/AlipayHeaders.java

@@ -40,7 +40,7 @@ public class AlipayHeaders {
         mappedHeaders.put(5, Arrays.asList("交易号", "外部交易号", "交易状态", "合作伙伴ID", "买家用户id", "买家信息", "卖家用户id", "卖家信息", "交易金额(元)", "收款时间", "最后修改时间", "创建时间", "交易类型", "来源地", "商品名称", "收货人地址", "对应的协查数据"));
         mappedHeaders.put(6, Arrays.asList("交易号", "外部交易号", "交易状态", "合作伙伴ID", "买家用户ID", "买家姓名", "买家账号", "买家昵称", "卖家用户ID", "卖家姓名", "卖家账号", "卖家昵称", "交易金额(元)", "收款时间", "最后修改时间", "创建时间", "交易类型", "来源地", "商品名称", "收货人地址", "对应的协查数据"));
         mappedHeaders.put(7, Arrays.asList("交易号", "商户订单号", "交易创建时间", "付款时间", "最近修改时间", "交易来源地", "类型", "用户信息", "交易对方信息", "消费名称", "金额(元)", "收/支", "交易状态", "备注", "对应的协查数据"));
-        mappedHeaders.put(8, Arrays.asList("交易号", "商户订单号", "交易创建时间", "付款时间", "最近修改时间", "交易来源地", "类型", "支付宝用户ID", "支付宝户名", "对手支付宝用户ID", "对手支付宝户名", "消费名称", "金额(元)", "收/支", "交易状态", "备注", "对应的协查数据"));
+        mappedHeaders.put(8, Arrays.asList("交易号", "商户订单号", "交易创建时间", "付款时间", "最近修改时间", "交易来源地", "类型", "支付宝用户ID", "支付宝户名", "对手支付宝用户ID", "对手支付宝户名", "消费名称", "金额(元)", "收/支", "交易状态", "支付方式", "清算流水号", "备注", "对应的协查数据"));
         mappedHeaders.put(9, Arrays.asList("交易号", "付款方支付宝账号", "收款方支付宝账号", "收款机构信息", "到账时间", "转账金额(元)", "转账产品名称", "交易发生地", "提现流水号", "对应的协查数据"));
         mappedHeaders.put(10, Arrays.asList("交易号", "付款方支付宝用户ID", "收款方支付宝用户ID", "收款机构信息", "到账时间", "转账金额(元)", "转账产品名称", "交易发生地", "提现流水号", "对应的协查数据"));
         mappedHeaders.put(11, Arrays.asList("用户ID", "用户名", "额外字段1", "额外字段2", "额外字段3"));
@@ -50,6 +50,7 @@ public class AlipayHeaders {
                 "收/支标志","交易状态","备注","关联交易流水号","余额收入","余额支出","余额","服务费","退款金额","收货人姓名","收货人手机","收货地址","外部银行流水号","付款方银行代码","付款方银行名称","付款方银行卡号","收款方银行代码","收款方银行名称","收款方银行卡号",
                 "查询主体","查询主体类型","备用字段","请求单号","案件ID"));
         mappedHeaders.put(18, Arrays.asList("交易号", "商户订单号", "交易创建时间", "付款时间", "最近修改时间", "交易来源地", "类型", "支付宝用户ID", "支付宝户名","交易主体银行卡号","交易主体银行名称", "对手支付宝用户ID", "对手支付宝户名","交易对手银行卡号", "交易对手银行名称","消费名称", "金额(元)", "收/支", "交易状态", "备注", "对应的协查数据"));
+        mappedHeaders.put(19, Arrays.asList("交易号", "商户订单号", "交易创建时间", "付款时间", "最近修改时间", "交易来源地", "类型", "用户信息", "交易对方信息", "消费名称", "金额(元)", "收/支", "交易状态", "支付方式", "清算流水号", "备注", "对应的协查数据"));
         mappedNames.put(2, "五联单-注册信息");
         mappedNames.put(4, "五联单-登录日志");
         mappedNames.put(6, "五联单-交易记录");

+ 2 - 0
src/main/java/ieven/server/webapp/domain/alipay/AlipayType.java

@@ -21,6 +21,8 @@ public class AlipayType {
   public static final int ALIPAY_GENERATED_TRADE = 6;
   // 支付宝登录账户明细原表
   public static final int ALIPAY_ORIGIN_ACCOUNT = 7;
+  // 支付宝登录账户明细原表V2
+  public static final int ALIPAY_ORIGIN_ACCOUNT_V2 = 19;
   // 支付宝登录账户明细提取表
   public static final int ALIPAY_GENERATED_ACCOUNT = 8;
   // 支付宝登录转账明细原表

+ 5 - 0
src/main/java/ieven/server/webapp/service/FieldsService.java

@@ -49,9 +49,14 @@ public class FieldsService extends Ops {
         // 五联单-交易记录
         fields = this.checkFields(originFields, AlipayType.ALIPAY_ORIGIN_TRADE);
         this.updateLogicalFile(fields, "五联单-交易记录");
+
         // 五联单-账户明细
         fields = this.checkFields(originFields, AlipayType.ALIPAY_ORIGIN_ACCOUNT);
         this.updateLogicalFile(fields, "五联单-账户明细");
+
+        fields = this.checkFields(originFields, AlipayType.ALIPAY_ORIGIN_ACCOUNT_V2);
+        this.updateLogicalFile(fields, "五联单-账户明细");
+
         // 经侦云-账户明细
         fields = this.checkFields(originFields, 17);
         this.updateLogicalFile(fields, "经侦云-账户明细");

+ 12 - 1
src/main/java/ieven/server/webapp/service/alipay/ALIPAY_GENERATED_ACCOUNT.java

@@ -38,8 +38,19 @@ public class ALIPAY_GENERATED_ACCOUNT extends Ops implements Runnable {
   public void run() {
     // 账户明细
     List<Fields> accountFieldsList = checkFields(originFields, AlipayType.ALIPAY_ORIGIN_ACCOUNT);
+    Fields outputAccount=null;
     if (CollectionUtils.isNotEmpty(accountFieldsList)) {
-      Fields outputAccount = Ops.createFile(AlipayType.ALIPAY_GENERATED_ACCOUNT, modelId);
+      log.info("五联单-账户明细 开始 第一个版本的格式");
+      outputAccount=outputAccount!=null?outputAccount : Ops.createFile(AlipayType.ALIPAY_GENERATED_ACCOUNT, modelId);
+      for (Fields origin : accountFieldsList) {
+        extractAccount(getCursor(origin.getFileId(), mongoTemplate), origin, outputAccount);
+      }
+    }
+    // 账户明细
+    accountFieldsList = checkFields(originFields, AlipayType.ALIPAY_ORIGIN_ACCOUNT_V2);
+    if (CollectionUtils.isNotEmpty(accountFieldsList)) {
+      log.info("五联单-账户明细 开始 第二个版本的格式");
+      outputAccount=outputAccount!=null?outputAccount : Ops.createFile(AlipayType.ALIPAY_GENERATED_ACCOUNT, modelId);
       for (Fields origin : accountFieldsList) {
         extractAccount(getCursor(origin.getFileId(), mongoTemplate), origin, outputAccount);
       }

+ 4 - 0
src/main/java/ieven/server/webapp/service/alipay/ALIPAY_GENERATED_ACCOUNT_JZY.java

@@ -103,6 +103,8 @@ public class ALIPAY_GENERATED_ACCOUNT_JZY extends Ops implements Runnable {
                         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("查询主体"));
                         String skf = originDoc.getString("收款方银行名称");
@@ -183,6 +185,8 @@ public class ALIPAY_GENERATED_ACCOUNT_JZY extends Ops implements Runnable {
                 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("查询主体"));
                 needToSave.add(dataMap);