Browse Source

优化账号流水导出全部逻辑

zyy 1 month ago
parent
commit
7a06d95831

+ 21 - 3
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyMoneyLogsServiceImpl.java

@@ -2,6 +2,9 @@ package com.fs.company.service.impl;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.fs.common.utils.DateUtils;
@@ -127,11 +130,26 @@ public class CompanyMoneyLogsServiceImpl implements ICompanyMoneyLogsService
     @Override
     public List<CompanyMoneyLogsExportVO> selectCompanyMoneyLogsExportVOList(CompanyMoneyLogs companyMoneyLogs) {
         List<CompanyMoneyLogsExportVO> companyMoneyLogsExportVOS = companyMoneyLogsMapper.selectCompanyMoneyLogsExportVOList(companyMoneyLogs);
+        if (ObjectUtil.isEmpty(companyMoneyLogsExportVOS)){
+            return companyMoneyLogsExportVOS;
+        }
+        List<String> businessIdList =
+                companyMoneyLogsExportVOS.stream()
+                        .filter(vo -> Integer.valueOf(1).equals(vo.getType()))
+                        .map(CompanyMoneyLogsExportVO::getBusinessId)
+                        .filter(Objects::nonNull)
+                        .distinct()
+                        .collect(Collectors.toList());
+        if (ObjectUtil.isEmpty(businessIdList)) {
+            return companyMoneyLogsExportVOS;
+        }
+        Map<String, String> orderCodeMap = liveOrderMapper.selectOrderCodeMapByOrderIds(businessIdList);
+
         for (CompanyMoneyLogsExportVO item : companyMoneyLogsExportVOS) {
             // 如果是直播订单
-            if(ObjectUtil.equal(item.getType(),1)) {
-                String orderCode = liveOrderMapper.selectLiveOrderCodeByOrderId(item.getBusinessId());
-                if(ObjectUtil.isNotNull(orderCode)) {
+            if(Integer.valueOf(1).equals(item.getType())) {
+                String orderCode = orderCodeMap.get(item.getBusinessId());
+                if (ObjectUtil.isNotNull(orderCode)) {
                     item.setOrderCode(orderCode);
                 }
             }