算单日报表数据
This commit is contained in:
@@ -12,6 +12,7 @@ import org.springframework.http.ResponseEntity;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -39,8 +40,8 @@ public class LbDailyUserTradeReportController {
|
|||||||
if (tradeReport.getId() == null || tradeReport.getId().trim().isEmpty()) {
|
if (tradeReport.getId() == null || tradeReport.getId().trim().isEmpty()) {
|
||||||
tradeReport.setId(UUID.randomUUID().toString());
|
tradeReport.setId(UUID.randomUUID().toString());
|
||||||
}
|
}
|
||||||
if (tradeReport.getYestodaySellAmt() == null) {
|
if (tradeReport.getYestodayBuyAmt() == null) {
|
||||||
tradeReport.setYestodaySellAmt(BigDecimal.ZERO);
|
tradeReport.setYestodayBuyAmt(BigDecimal.ZERO);
|
||||||
}
|
}
|
||||||
if (tradeReport.getDailySellAmt() == null) {
|
if (tradeReport.getDailySellAmt() == null) {
|
||||||
tradeReport.setDailySellAmt(BigDecimal.ZERO);
|
tradeReport.setDailySellAmt(BigDecimal.ZERO);
|
||||||
@@ -241,4 +242,109 @@ public class LbDailyUserTradeReportController {
|
|||||||
return ResponseEntity.internalServerError().body(result);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ public class LbDailyUserTradeReport implements Serializable {
|
|||||||
private String nickname;
|
private String nickname;
|
||||||
|
|
||||||
@Schema(description = "昨日买入金额")
|
@Schema(description = "昨日买入金额")
|
||||||
@TableField("yestoday_sell_amt")
|
@TableField("yestoday_buy_amt")
|
||||||
private BigDecimal yestodaySellAmt;
|
private BigDecimal yestodayBuyAmt;
|
||||||
|
|
||||||
@Schema(description = "当日卖出金额")
|
@Schema(description = "当日卖出金额")
|
||||||
@TableField("daily_sell_amt")
|
@TableField("daily_sell_amt")
|
||||||
|
|||||||
@@ -3,10 +3,14 @@ package com.rj.service;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.rj.entity.LbDailyUserTradeReport;
|
import com.rj.entity.LbDailyUserTradeReport;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 当天用户交易报表 服务类
|
* 当天用户交易报表 服务类
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public interface ILbDailyUserTradeReportService extends IService<LbDailyUserTradeReport> {
|
public interface ILbDailyUserTradeReportService extends IService<LbDailyUserTradeReport> {
|
||||||
|
Map<String, Object> calculateReportSumByDateAndTenant(LocalDate reportDate, String tenantId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,19 @@
|
|||||||
package com.rj.service.impl;
|
package com.rj.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.rj.entity.LbDailyUserTradeReport;
|
import com.rj.entity.LbDailyUserTradeReport;
|
||||||
import com.rj.mapper.LbDailyUserTradeReportMapper;
|
import com.rj.mapper.LbDailyUserTradeReportMapper;
|
||||||
import com.rj.service.ILbDailyUserTradeReportService;
|
import com.rj.service.ILbDailyUserTradeReportService;
|
||||||
import org.springframework.stereotype.Service;
|
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>
|
* <p>
|
||||||
* 当天用户交易报表 服务实现类
|
* 当天用户交易报表 服务实现类
|
||||||
@@ -14,4 +22,65 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class LbDailyUserTradeReportServiceImpl extends ServiceImpl<LbDailyUserTradeReportMapper, LbDailyUserTradeReport>
|
public class LbDailyUserTradeReportServiceImpl extends ServiceImpl<LbDailyUserTradeReportMapper, LbDailyUserTradeReport>
|
||||||
implements ILbDailyUserTradeReportService {
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,8 +99,8 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
|
|||||||
|
|
||||||
LambdaQueryWrapper<LbDailyUserTrade> yesterdayWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<LbDailyUserTrade> yesterdayWrapper = new LambdaQueryWrapper<>();
|
||||||
yesterdayWrapper.eq(LbDailyUserTrade::getTenantId, normalizedTenantId)
|
yesterdayWrapper.eq(LbDailyUserTrade::getTenantId, normalizedTenantId)
|
||||||
.eq(LbDailyUserTrade::getReportDate, yesterday)
|
.eq(LbDailyUserTrade::getReportDate, yesterday);
|
||||||
.eq(LbDailyUserTrade::getUserId, trade.getUserId());
|
// .eq(LbDailyUserTrade::getUserId, trade.getUserId());
|
||||||
if (StringUtils.isNotBlank(trade.getNickname())) {
|
if (StringUtils.isNotBlank(trade.getNickname())) {
|
||||||
yesterdayWrapper.eq(LbDailyUserTrade::getNickname, trade.getNickname().trim());
|
yesterdayWrapper.eq(LbDailyUserTrade::getNickname, trade.getNickname().trim());
|
||||||
}
|
}
|
||||||
@@ -108,7 +108,7 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
|
|||||||
.orderByDesc(LbDailyUserTrade::getUpdatedAt)
|
.orderByDesc(LbDailyUserTrade::getUpdatedAt)
|
||||||
.last("limit 1");
|
.last("limit 1");
|
||||||
LbDailyUserTrade lastDateRecord = this.getOne(yesterdayWrapper, false);
|
LbDailyUserTrade lastDateRecord = this.getOne(yesterdayWrapper, false);
|
||||||
BigDecimal yestodaySellAmt = lastDateRecord == null || lastDateRecord.getDailyBuyAmt() == null
|
BigDecimal yestodayBuyAmt = lastDateRecord == null || lastDateRecord.getDailyBuyAmt() == null
|
||||||
? BigDecimal.ZERO
|
? BigDecimal.ZERO
|
||||||
: lastDateRecord.getDailyBuyAmt();
|
: lastDateRecord.getDailyBuyAmt();
|
||||||
|
|
||||||
@@ -117,12 +117,13 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
|
|||||||
report.setTenantId(normalizedTenantId);
|
report.setTenantId(normalizedTenantId);
|
||||||
report.setUserId(trade.getUserId());
|
report.setUserId(trade.getUserId());
|
||||||
report.setNickname(trade.getNickname());
|
report.setNickname(trade.getNickname());
|
||||||
report.setYestodaySellAmt(yestodaySellAmt);
|
report.setYestodayBuyAmt(yestodayBuyAmt);
|
||||||
report.setDailySellAmt(dailySellAmt);
|
report.setDailySellAmt(dailySellAmt);
|
||||||
report.setDailyBuyAmt(dailyBuyAmt);
|
report.setDailyBuyAmt(dailyBuyAmt);
|
||||||
report.setServiceAmt(dailyBuyAmt.multiply(SERVICE_RATE));
|
report.setServiceAmt(dailyBuyAmt.multiply(SERVICE_RATE));
|
||||||
report.setDiffAmt(diffAmt);
|
report.setDiffAmt(diffAmt);
|
||||||
report.setReportDate(reportDate.atStartOfDay());
|
report.setReportDate(reportDate.atStartOfDay());
|
||||||
|
report.setDataType("report_detail");
|
||||||
report.setCreatedAt(now);
|
report.setCreatedAt(now);
|
||||||
report.setUpdatedAt(now);
|
report.setUpdatedAt(now);
|
||||||
reportList.add(report);
|
reportList.add(report);
|
||||||
@@ -395,15 +396,23 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
|
|||||||
String tenantId = defaultTenantId == null ? "" : defaultTenantId;
|
String tenantId = defaultTenantId == null ? "" : defaultTenantId;
|
||||||
String userId = readString(row, headerMap.get("userId"), formatter);
|
String userId = readString(row, headerMap.get("userId"), formatter);
|
||||||
String nickname = readString(row, headerMap.get("nickname"), formatter);
|
String nickname = readString(row, headerMap.get("nickname"), formatter);
|
||||||
|
if (tenantId.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
LbDailyUserTrade matchedTrade = null;
|
||||||
|
if (StringUtils.isBlank(userId) && StringUtils.isNotBlank(nickname)) {
|
||||||
|
matchedTrade = findLatestTradeByNickname(tenantId, nickname);
|
||||||
|
if (matchedTrade != null && StringUtils.isNotBlank(matchedTrade.getUserId())) {
|
||||||
|
userId = matchedTrade.getUserId();
|
||||||
|
}
|
||||||
|
}
|
||||||
if (userId.isEmpty()) {
|
if (userId.isEmpty()) {
|
||||||
userId = nickname;
|
userId = nickname;
|
||||||
}
|
}
|
||||||
if (userId.isEmpty()) {
|
if (userId.isEmpty()) {
|
||||||
userId = "AUTO_" + UUID.randomUUID().toString().replace("-", "");
|
userId = "AUTO_" + UUID.randomUUID().toString().replace("-", "");
|
||||||
}
|
}
|
||||||
if (tenantId.isEmpty()) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
LbDailyUserTrade trade = new LbDailyUserTrade();
|
LbDailyUserTrade trade = new LbDailyUserTrade();
|
||||||
trade.setId(UUID.randomUUID().toString());
|
trade.setId(UUID.randomUUID().toString());
|
||||||
@@ -412,8 +421,18 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
|
|||||||
trade.setNickname(nickname);
|
trade.setNickname(nickname);
|
||||||
trade.setDailySellAmt(readDecimal(row, headerMap.get("dailySellAmt"), formatter));
|
trade.setDailySellAmt(readDecimal(row, headerMap.get("dailySellAmt"), formatter));
|
||||||
trade.setDailyBuyAmt(readDecimal(row, headerMap.get("dailyBuyAmt"), formatter));
|
trade.setDailyBuyAmt(readDecimal(row, headerMap.get("dailyBuyAmt"), formatter));
|
||||||
trade.setPromoterId(readString(row, headerMap.get("promoterId"), formatter));
|
String promoterId = readString(row, headerMap.get("promoterId"), formatter);
|
||||||
trade.setPromoterName(readString(row, headerMap.get("promoterName"), formatter));
|
String promoterName = readString(row, headerMap.get("promoterName"), formatter);
|
||||||
|
if (matchedTrade != null) {
|
||||||
|
if (StringUtils.isBlank(promoterId) && StringUtils.isNotBlank(matchedTrade.getPromoterId())) {
|
||||||
|
promoterId = matchedTrade.getPromoterId();
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(promoterName) && StringUtils.isNotBlank(matchedTrade.getPromoterName())) {
|
||||||
|
promoterName = matchedTrade.getPromoterName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
trade.setPromoterId(promoterId);
|
||||||
|
trade.setPromoterName(promoterName);
|
||||||
trade.setDescContent(readString(row, headerMap.get("descContent"), formatter));
|
trade.setDescContent(readString(row, headerMap.get("descContent"), formatter));
|
||||||
|
|
||||||
BigDecimal sell = trade.getDailySellAmt() == null ? BigDecimal.ZERO : trade.getDailySellAmt();
|
BigDecimal sell = trade.getDailySellAmt() == null ? BigDecimal.ZERO : trade.getDailySellAmt();
|
||||||
@@ -430,6 +449,15 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
|
|||||||
return trade;
|
return trade;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private LbDailyUserTrade findLatestTradeByNickname(String tenantId, String nickname) {
|
||||||
|
LambdaQueryWrapper<LbDailyUserTrade> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(LbDailyUserTrade::getTenantId, tenantId)
|
||||||
|
.eq(LbDailyUserTrade::getNickname, nickname.trim())
|
||||||
|
.orderByDesc(LbDailyUserTrade::getUpdatedAt)
|
||||||
|
.last("limit 1");
|
||||||
|
return this.getOne(wrapper, false);
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isEmptyRow(Row row, DataFormatter formatter) {
|
private boolean isEmptyRow(Row row, DataFormatter formatter) {
|
||||||
for (Cell cell : row) {
|
for (Cell cell : row) {
|
||||||
if (!formatter.formatCellValue(cell).trim().isEmpty()) {
|
if (!formatter.formatCellValue(cell).trim().isEmpty()) {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<result column="tenant_id" property="tenantId"/>
|
<result column="tenant_id" property="tenantId"/>
|
||||||
<result column="user_id" property="userId"/>
|
<result column="user_id" property="userId"/>
|
||||||
<result column="nickname" property="nickname"/>
|
<result column="nickname" property="nickname"/>
|
||||||
<result column="yestoday_sell_amt" property="yestodaySellAmt"/>
|
<result column="yestoday_buy_amt" property="yestodayBuyAmt"/>
|
||||||
<result column="daily_sell_amt" property="dailySellAmt"/>
|
<result column="daily_sell_amt" property="dailySellAmt"/>
|
||||||
<result column="daily_buy_amt" property="dailyBuyAmt"/>
|
<result column="daily_buy_amt" property="dailyBuyAmt"/>
|
||||||
<result column="service_amt" property="serviceAmt"/>
|
<result column="service_amt" property="serviceAmt"/>
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
id, tenant_id, user_id, nickname, yestoday_sell_amt, daily_sell_amt, daily_buy_amt, service_amt, diff_amt, dikou_amt,
|
id, tenant_id, user_id, nickname, yestoday_buy_amt, daily_sell_amt, daily_buy_amt, service_amt, diff_amt, dikou_amt,
|
||||||
desc_content, data_type, created_at, updated_at, report_date
|
desc_content, data_type, created_at, updated_at, report_date
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user