Sfoglia il codice sorgente

fix: 时间筛选结束日期补23:59:59含当天全天(修复漏掉结束日数据); 导出新增收款方账号列、去掉商户订单号

alphaH 2 settimane fa
parent
commit
6ff32c48c1

+ 13 - 7
java/src/main/java/com/payment/platform/module/payment/account/service/AccountService.java

@@ -196,7 +196,7 @@ public class AccountService {
         if (tenantId != null) w.eq(TransferEntity::getTenantId, tenantId);
         if (enterpriseId != null && !enterpriseId.isBlank()) w.eq(TransferEntity::getEnterpriseId, enterpriseId);
         if (startTime != null && !startTime.isBlank()) w.ge(TransferEntity::getCreatedTime, parseDateTime(startTime));
-        if (endTime != null && !endTime.isBlank()) w.le(TransferEntity::getCreatedTime, parseDateTime(endTime));
+        if (endTime != null && !endTime.isBlank()) w.le(TransferEntity::getCreatedTime, parseDateTime(endTime, true));
         var p = new Page<TransferEntity>(pageNo, pageSize);
         var r = transferMapper.selectPage(p, w);
         List<TransferVO> items = r.getRecords().stream().map(this::transferVO).toList();
@@ -213,7 +213,7 @@ public class AccountService {
         if (consumeType != null && !consumeType.isBlank()) w.eq(PayBillEntity::getConsumeType, consumeType);
         if (status != null && !status.isBlank()) w.eq(PayBillEntity::getStatus, status);
         if (startTime != null && !startTime.isBlank()) w.ge(PayBillEntity::getGmtBizCreate, parseDateTime(startTime));
-        if (endTime != null && !endTime.isBlank()) w.le(PayBillEntity::getGmtBizCreate, parseDateTime(endTime));
+        if (endTime != null && !endTime.isBlank()) w.le(PayBillEntity::getGmtBizCreate, parseDateTime(endTime, true));
         var p = new Page<PayBillEntity>(pageNo, pageSize);
         var r = payBillMapper.selectPage(p, w);
         List<ConsumeVO> items = r.getRecords().stream().map(this::consumeVO).toList();
@@ -304,7 +304,7 @@ public class AccountService {
             if (tenantId != null) w.eq(TransferEntity::getTenantId, tenantId);
             if (enterpriseId != null && !enterpriseId.isBlank()) w.eq(TransferEntity::getEnterpriseId, enterpriseId);
             if (startTime != null && !startTime.isBlank()) w.ge(TransferEntity::getCreatedTime, parseDateTime(startTime));
-            if (endTime != null && !endTime.isBlank()) w.le(TransferEntity::getCreatedTime, parseDateTime(endTime));
+            if (endTime != null && !endTime.isBlank()) w.le(TransferEntity::getCreatedTime, parseDateTime(endTime, true));
             w.orderByDesc(TransferEntity::getId);
 
             List<TransferEntity> records = transferMapper.selectList(w);
@@ -331,7 +331,6 @@ public class AccountService {
                 Map<String, Object> row = new LinkedHashMap<>();
                 row.put("序号", seq++);
                 row.put("订单号", r.getOutBizNo() != null ? r.getOutBizNo() : "");
-                row.put("商户订单号", r.getOrderNo() != null ? r.getOrderNo() : "");
                 row.put("金额(元)", r.getAmount() != null ? r.getAmount().toPlainString() : "0");
                 row.put("状态", statusMap.getOrDefault(r.getStatus(), r.getStatus() != null ? r.getStatus() : ""));
                 row.put("转账标题", r.getOrderTitle() != null ? r.getOrderTitle() : "");
@@ -341,17 +340,20 @@ public class AccountService {
                 // 解析 payeeInfo JSON
                 String name = "";
                 String identityType = "";
+                String identity = "";
                 if (r.getPayeeInfo() != null && !r.getPayeeInfo().isBlank()) {
                     try {
                         @SuppressWarnings("unchecked")
                         Map<String, Object> payeeInfo = om.readValue(r.getPayeeInfo(), Map.class);
                         name = String.valueOf(payeeInfo.getOrDefault("name", ""));
                         identityType = String.valueOf(payeeInfo.getOrDefault("identity_type", ""));
+                        identity = String.valueOf(payeeInfo.getOrDefault("identity", ""));
                     } catch (Exception ignored) {
                         // ignore invalid JSON
                     }
                 }
                 row.put("收款方姓名", name);
+                row.put("收款方账号", identity);
                 row.put("收款方类型", payeeTypeMap.getOrDefault(identityType, identityType));
                 row.put("备注", r.getRemark() != null ? r.getRemark() : "");
                 row.put("失败原因", r.getErrorMsg() != null ? r.getErrorMsg() : "");
@@ -361,9 +363,9 @@ public class AccountService {
             Map<String, String> mappingDict = new LinkedHashMap<>();
             mappingDict.put("序号", "序号");
             mappingDict.put("订单号", "订单号");
-            mappingDict.put("商户订单号", "商户订单号");
             mappingDict.put("金额(元)", "金额(元)");
             mappingDict.put("收款方姓名", "收款方姓名");
+            mappingDict.put("收款方账号", "收款方账号");
             mappingDict.put("收款方类型", "收款方类型");
             mappingDict.put("状态", "状态");
             mappingDict.put("转账标题", "转账标题");
@@ -380,9 +382,13 @@ public class AccountService {
     }
 
     private OffsetDateTime parseDateTime(String dt) {
+        return parseDateTime(dt, false);
+    }
+
+    private OffsetDateTime parseDateTime(String dt, boolean endOfDay) {
         if (dt == null || dt.isBlank()) return OffsetDateTime.now().minusDays(30);
-        // 补全时间部分
-        if (dt.length() == 10) dt += " 00:00:00";
+        // 补全时间部分: 起始日期按当天零点, 结束日期按当天 23:59:59(含当天全天)
+        if (dt.length() == 10) dt += endOfDay ? " 23:59:59" : " 00:00:00";
         try {
             return LocalDateTime.parse(dt, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
                     .atOffset(ZoneOffset.ofHours(8));