Переглянути джерело

BugId-970:中台冻结金额修改

zc 1 місяць тому
батько
коміт
cb13d00d96

+ 39 - 9
alien-store/src/main/java/shop/alien/store/service/impl/ManagementInfoServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -14,8 +15,10 @@ import org.springframework.core.io.ClassPathResource;
 import org.springframework.stereotype.Service;
 import shop.alien.entity.store.*;
 import shop.alien.entity.store.vo.ManagementInfoVo;
+import shop.alien.entity.store.vo.SystemConfigVo;
 import shop.alien.mapper.*;
 import shop.alien.store.service.ManagementInfoService;
+import shop.alien.store.service.StoreDictService;
 import shop.alien.util.ali.AliOSSUtil;
 
 import java.io.*;
@@ -47,6 +50,8 @@ public class ManagementInfoServiceImpl implements ManagementInfoService {
     @Value("${spring.web.resources.url}")
     private String fileUrl;
 
+    private final StoreDictService storeDictService;
+
     private final ManagementInfoMapper managementInfoMapper;
 
     private final StoreIncomeDetailsRecordMapper storeIncomeDetailsRecordMapper;
@@ -90,12 +95,23 @@ public class ManagementInfoServiceImpl implements ManagementInfoService {
     @Override
     public HashMap<String, Object> storeBillingStatistics(String queryType) {
 
+        int freeze = 0;
+        //查询冻结配置
+        SystemConfigVo systemConfigVo = storeDictService.getConfig("freeze");
+        if(systemConfigVo != null){
+            String freezeFlag = systemConfigVo.getConfigValue1();
+            String freezeDay =  systemConfigVo.getConfigValue2();
+            if(StringUtils.isNotBlank(freezeFlag) && freezeFlag.equals("1") && StringUtils.isNotBlank(freezeDay)){
+                freeze = Integer.parseInt(freezeDay);
+            }
+        }
+
         HashMap<String, Object> result = new HashMap<>();
 
         // 获取当前日期
         LocalDate currentDate = LocalDate.now();
         // 计算三天前的日期
-        LocalDate threeDaysAgo = currentDate.minusDays(3);
+        LocalDate threeDaysAgo = currentDate.minusDays(freeze);
         // 设置时间为当天的 0 点
         LocalDateTime threeDaysAgoMidnight = threeDaysAgo.atStartOfDay();
 
@@ -130,15 +146,22 @@ public class ManagementInfoServiceImpl implements ManagementInfoService {
         ManagementInfoVo writtenOffAmount = managementInfoMapper.getWrittenOffAmount(startDate, endDate, null);
 
         //查询已冻结金额
+        LambdaQueryWrapper<StoreIncomeDetailsRecord> storeIncomeDetailsRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if(freeze > 0){
+            storeIncomeDetailsRecordLambdaQueryWrapper.gt(StoreIncomeDetailsRecord::getCreatedTime, threeDaysAgoMidnight);
+        }
+        storeIncomeDetailsRecordLambdaQueryWrapper.gt(StoreIncomeDetailsRecord::getCreatedTime, startDate);
+        storeIncomeDetailsRecordLambdaQueryWrapper.lt(StoreIncomeDetailsRecord::getCreatedTime, endDate);
+
         List<StoreIncomeDetailsRecord> storeIncomeDetailsRecords = storeIncomeDetailsRecordMapper
-                .selectList(
-                        new LambdaQueryWrapper<StoreIncomeDetailsRecord>()
-                                .gt(StoreIncomeDetailsRecord::getCreatedTime, threeDaysAgoMidnight)
-                                .gt(StoreIncomeDetailsRecord::getCreatedTime, startDate)
-                                .lt(StoreIncomeDetailsRecord::getCreatedTime, endDate)
-                );
+                .selectList(storeIncomeDetailsRecordLambdaQueryWrapper);
         Double storeIncomeDetailsCount = 0d;
+        Double storeIncomeDetailsNoCashCount = 0d;
+
         for (StoreIncomeDetailsRecord storeIncomeDetailsRecord : storeIncomeDetailsRecords) {
+            if(storeIncomeDetailsRecord.getCashOutId() == null || storeIncomeDetailsRecord.getCashOutId() == 0){
+                storeIncomeDetailsNoCashCount += storeIncomeDetailsRecord.getMoney();
+            }
             storeIncomeDetailsCount += storeIncomeDetailsRecord.getMoney();
         }
 
@@ -148,9 +171,16 @@ public class ManagementInfoServiceImpl implements ManagementInfoService {
         result.put("amountPaid", amountPaid.getAmountPaid());
 
         //存入冻结未提现金额
-        result.put("unwithdrawnAmountsFrozen", withdrawalAmount.getTotalWithdrawalAmount() - storeIncomeDetailsCount);
+        result.put("unwithdrawnAmountsFrozen", storeIncomeDetailsNoCashCount);
         //存入未解冻金额
-        result.put("freezeAmounts", storeIncomeDetailsCount);
+        if(freeze == 0){
+            result.put("freezeAmounts", 0);
+            result.put("unwithdrawnAmountsFrozen", 0);
+
+        } else {
+            result.put("freezeAmounts", storeIncomeDetailsCount);
+            result.put("unwithdrawnAmountsFrozen", storeIncomeDetailsNoCashCount);
+        }
         // 已提现金额
         result.put("withdrawalAmount", withdrawalAmount.getTotalWithdrawalAmount());
         //存入未核销金额