|
|
@@ -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());
|
|
|
//存入未核销金额
|