算单日报表数据
This commit is contained in:
@@ -1,11 +1,19 @@
|
||||
package com.rj.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.rj.entity.LbDailyUserTradeReport;
|
||||
import com.rj.mapper.LbDailyUserTradeReportMapper;
|
||||
import com.rj.service.ILbDailyUserTradeReportService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 当天用户交易报表 服务实现类
|
||||
@@ -14,4 +22,65 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class LbDailyUserTradeReportServiceImpl extends ServiceImpl<LbDailyUserTradeReportMapper, LbDailyUserTradeReport>
|
||||
implements ILbDailyUserTradeReportService {
|
||||
|
||||
private static final String DATA_TYPE_REPORT_SUM = "report_sum";
|
||||
|
||||
@Override
|
||||
public Map<String, Object> calculateReportSumByDateAndTenant(LocalDate reportDate, String tenantId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
LocalDateTime start = reportDate.atStartOfDay();
|
||||
LocalDateTime end = reportDate.plusDays(1).atStartOfDay();
|
||||
|
||||
LambdaQueryWrapper<LbDailyUserTradeReport> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(LbDailyUserTradeReport::getTenantId, tenantId)
|
||||
.ge(LbDailyUserTradeReport::getReportDate, start)
|
||||
.lt(LbDailyUserTradeReport::getReportDate, end)
|
||||
.ne(LbDailyUserTradeReport::getDataType, DATA_TYPE_REPORT_SUM);
|
||||
|
||||
BigDecimal yestodayBuyAmt = BigDecimal.ZERO;
|
||||
BigDecimal dailySellAmt = BigDecimal.ZERO;
|
||||
BigDecimal dailyBuyAmt = BigDecimal.ZERO;
|
||||
BigDecimal serviceAmt = BigDecimal.ZERO;
|
||||
BigDecimal diffAmt = BigDecimal.ZERO;
|
||||
BigDecimal dikouAmt = BigDecimal.ZERO;
|
||||
|
||||
for (LbDailyUserTradeReport item : list(queryWrapper)) {
|
||||
yestodayBuyAmt = yestodayBuyAmt.add(defaultZero(item.getYestodayBuyAmt()));
|
||||
dailySellAmt = dailySellAmt.add(defaultZero(item.getDailySellAmt()));
|
||||
dailyBuyAmt = dailyBuyAmt.add(defaultZero(item.getDailyBuyAmt()));
|
||||
serviceAmt = serviceAmt.add(defaultZero(item.getServiceAmt()));
|
||||
diffAmt = diffAmt.add(defaultZero(item.getDiffAmt()));
|
||||
dikouAmt = dikouAmt.add(defaultZero(item.getDikouAmt()));
|
||||
}
|
||||
|
||||
LbDailyUserTradeReport summary = new LbDailyUserTradeReport();
|
||||
summary.setId(UUID.randomUUID().toString());
|
||||
|
||||
summary.setTenantId(tenantId);
|
||||
summary.setDataType(DATA_TYPE_REPORT_SUM);
|
||||
summary.setReportDate(start);
|
||||
summary.setYestodayBuyAmt(yestodayBuyAmt);
|
||||
summary.setDailySellAmt(dailySellAmt);
|
||||
summary.setDailyBuyAmt(dailyBuyAmt);
|
||||
summary.setServiceAmt(serviceAmt);
|
||||
summary.setDiffAmt(diffAmt);
|
||||
summary.setDikouAmt(dikouAmt);
|
||||
summary.setDescContent("系统汇总记录");
|
||||
summary.setCreatedAt(LocalDateTime.now());
|
||||
summary.setUpdatedAt(LocalDateTime.now());
|
||||
|
||||
boolean success = save(summary);
|
||||
result.put("success", success);
|
||||
if (success) {
|
||||
result.put("message", "汇总成功");
|
||||
result.put("data", summary);
|
||||
return result;
|
||||
}
|
||||
result.put("message", "汇总失败");
|
||||
return result;
|
||||
}
|
||||
|
||||
private BigDecimal defaultZero(BigDecimal value) {
|
||||
return value == null ? BigDecimal.ZERO : value;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user