算单日报表数据
This commit is contained in:
@@ -12,6 +12,7 @@ import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.HashMap;
|
||||
@@ -39,8 +40,8 @@ public class LbDailyUserTradeReportController {
|
||||
if (tradeReport.getId() == null || tradeReport.getId().trim().isEmpty()) {
|
||||
tradeReport.setId(UUID.randomUUID().toString());
|
||||
}
|
||||
if (tradeReport.getYestodaySellAmt() == null) {
|
||||
tradeReport.setYestodaySellAmt(BigDecimal.ZERO);
|
||||
if (tradeReport.getYestodayBuyAmt() == null) {
|
||||
tradeReport.setYestodayBuyAmt(BigDecimal.ZERO);
|
||||
}
|
||||
if (tradeReport.getDailySellAmt() == null) {
|
||||
tradeReport.setDailySellAmt(BigDecimal.ZERO);
|
||||
@@ -241,4 +242,109 @@ public class LbDailyUserTradeReportController {
|
||||
return ResponseEntity.internalServerError().body(result);
|
||||
}
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete/by-date-and-tenant")
|
||||
@Operation(summary = "按日期和租户删除报表", description = "根据报表日期和租户ID删除当天用户交易报表记录")
|
||||
public ResponseEntity<Map<String, Object>> deleteByDateAndTenant(
|
||||
@Parameter(description = "报表日期,格式:yyyy-MM-dd", required = true)
|
||||
@RequestParam String reportDate,
|
||||
@Parameter(description = "租户ID", required = true)
|
||||
@RequestParam String tenantId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
if (tenantId == null || tenantId.trim().isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "tenantId不能为空");
|
||||
return ResponseEntity.badRequest().body(result);
|
||||
}
|
||||
if (reportDate == null || reportDate.trim().isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "reportDate不能为空");
|
||||
return ResponseEntity.badRequest().body(result);
|
||||
}
|
||||
|
||||
LocalDate parsedReportDate;
|
||||
try {
|
||||
parsedReportDate = LocalDate.parse(reportDate.trim());
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "报表日期格式错误,请使用 yyyy-MM-dd");
|
||||
return ResponseEntity.badRequest().body(result);
|
||||
}
|
||||
|
||||
LocalDateTime start = parsedReportDate.atStartOfDay();
|
||||
LocalDateTime end = parsedReportDate.plusDays(1).atStartOfDay();
|
||||
|
||||
LambdaQueryWrapper<LbDailyUserTradeReport> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(LbDailyUserTradeReport::getTenantId, tenantId.trim())
|
||||
.ge(LbDailyUserTradeReport::getReportDate, start)
|
||||
.lt(LbDailyUserTradeReport::getReportDate, end);
|
||||
|
||||
long deleteCount = lbDailyUserTradeReportService.count(queryWrapper);
|
||||
if (deleteCount == 0) {
|
||||
result.put("success", true);
|
||||
result.put("message", "未匹配到可删除记录");
|
||||
result.put("deleteCount", 0);
|
||||
return ResponseEntity.ok(result);
|
||||
}
|
||||
|
||||
boolean success = lbDailyUserTradeReportService.remove(queryWrapper);
|
||||
if (success) {
|
||||
result.put("success", true);
|
||||
result.put("message", "删除成功");
|
||||
result.put("deleteCount", deleteCount);
|
||||
return ResponseEntity.ok(result);
|
||||
}
|
||||
result.put("success", false);
|
||||
result.put("message", "删除失败");
|
||||
return ResponseEntity.badRequest().body(result);
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "删除异常:" + e.getMessage());
|
||||
return ResponseEntity.internalServerError().body(result);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/calculate-report-sum/by-date-and-tenant")
|
||||
@Operation(summary = "按日期和租户汇总报表", description = "根据报表日期和租户ID汇总报表字段并新增一条 report_sum 记录")
|
||||
public ResponseEntity<Map<String, Object>> calculateReportSumByDateAndTenant(
|
||||
@Parameter(description = "报表日期,格式:yyyy-MM-dd", required = true)
|
||||
@RequestParam String reportDate,
|
||||
@Parameter(description = "租户ID", required = true)
|
||||
@RequestParam String tenantId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
try {
|
||||
if (tenantId == null || tenantId.trim().isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "tenantId不能为空");
|
||||
return ResponseEntity.badRequest().body(result);
|
||||
}
|
||||
if (reportDate == null || reportDate.trim().isEmpty()) {
|
||||
result.put("success", false);
|
||||
result.put("message", "reportDate不能为空");
|
||||
return ResponseEntity.badRequest().body(result);
|
||||
}
|
||||
|
||||
LocalDate parsedReportDate;
|
||||
try {
|
||||
parsedReportDate = LocalDate.parse(reportDate.trim());
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "报表日期格式错误,请使用 yyyy-MM-dd");
|
||||
return ResponseEntity.badRequest().body(result);
|
||||
}
|
||||
|
||||
Map<String, Object> serviceResult = lbDailyUserTradeReportService
|
||||
.calculateReportSumByDateAndTenant(parsedReportDate, tenantId.trim());
|
||||
Boolean success = (Boolean) serviceResult.get("success");
|
||||
if (Boolean.TRUE.equals(success)) {
|
||||
return ResponseEntity.ok(serviceResult);
|
||||
}
|
||||
return ResponseEntity.badRequest().body(serviceResult);
|
||||
} catch (Exception e) {
|
||||
result.put("success", false);
|
||||
result.put("message", "汇总异常:" + e.getMessage());
|
||||
return ResponseEntity.internalServerError().body(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user