|
@@ -14,7 +14,6 @@ import com.pig4cloud.pig.statistics.api.vo.user.*;
|
|
import com.pig4cloud.pig.statistics.mapper.MktStatActiveUserMapper;
|
|
import com.pig4cloud.pig.statistics.mapper.MktStatActiveUserMapper;
|
|
import com.pig4cloud.pig.statistics.mapper.MktStatNewUserMapper;
|
|
import com.pig4cloud.pig.statistics.mapper.MktStatNewUserMapper;
|
|
import com.pig4cloud.pig.statistics.mapper.MktStatUserAnalysisMapper;
|
|
import com.pig4cloud.pig.statistics.mapper.MktStatUserAnalysisMapper;
|
|
-import com.pig4cloud.pig.statistics.mapper.MktStatUserRetentionMapper;
|
|
|
|
import com.pig4cloud.pig.statistics.service.UserAnalyseService;
|
|
import com.pig4cloud.pig.statistics.service.UserAnalyseService;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -60,8 +59,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
// 1. 生成时间轴
|
|
// 1. 生成时间轴
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
result.setDates(dates);
|
|
result.setDates(dates);
|
|
- LocalDateTime fromDate = getStartTime(reqDto.getFromDate().toString(), "day");
|
|
|
|
- LocalDateTime toDate = getEndTime(reqDto.getToDate().toString(), "day");
|
|
|
|
|
|
|
|
// 2. 处理版本列表(为空时按null处理)
|
|
// 2. 处理版本列表(为空时按null处理)
|
|
List<String> versions = reqDto.getVersion();
|
|
List<String> versions = reqDto.getVersion();
|
|
@@ -77,20 +74,12 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
trend.setVersion(version == null ? "All" : version);
|
|
trend.setVersion(version == null ? "All" : version);
|
|
trend.setKey("newUser");
|
|
trend.setKey("newUser");
|
|
|
|
|
|
- // 计算每个时间点的活跃用户数
|
|
|
|
|
|
+ // 计算每个时间点的新增用户数
|
|
List<Long> counts = dates.stream()
|
|
List<Long> counts = dates.stream()
|
|
.map(date -> {
|
|
.map(date -> {
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
- // 如果startTime早于fromDate
|
|
|
|
- if (startTime.isBefore(fromDate)) {
|
|
|
|
- startTime = fromDate;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果endTime晚于toDate
|
|
|
|
- if (endTime.isAfter(toDate)) {
|
|
|
|
- endTime = toDate;
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
return statNewUserCount(startTime, endTime, reqDto.getAppId(), version, reqDto.getChannel());
|
|
return statNewUserCount(startTime, endTime, reqDto.getAppId(), version, reqDto.getChannel());
|
|
})
|
|
})
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
@@ -102,6 +91,44 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public GetNewUserTrendVO getUpgradeUserTrend(UserAnalyseQueryBaseDTO reqDto) {
|
|
|
|
+ GetNewUserTrendVO result = new GetNewUserTrendVO();
|
|
|
|
+ // 1. 生成时间轴
|
|
|
|
+ List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
|
|
+ result.setDates(dates);
|
|
|
|
+
|
|
|
|
+ // 2. 处理版本列表(为空时按null处理)
|
|
|
|
+ List<String> versions = reqDto.getVersion();
|
|
|
|
+ List<String> processVersions = (versions == null || versions.isEmpty())
|
|
|
|
+ ? Collections.singletonList(null)
|
|
|
|
+ : versions.stream().filter(v -> v != null && !v.isEmpty()).toList();
|
|
|
|
+
|
|
|
|
+ // 3. 处理每个版本的数据
|
|
|
|
+ List<TrendBaseVO> voList = processVersions.stream()
|
|
|
|
+ .map(version -> {
|
|
|
|
+ TrendBaseVO trend = new TrendBaseVO();
|
|
|
|
+ trend.setName("升级用户");
|
|
|
|
+ trend.setVersion(version == null ? "All" : version);
|
|
|
|
+ trend.setKey("upgradeUser");
|
|
|
|
+
|
|
|
|
+ // 计算每个时间点的升级用户数
|
|
|
|
+ List<Long> counts = dates.stream()
|
|
|
|
+ .map(date -> {
|
|
|
|
+ LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
|
|
+ LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
|
|
+
|
|
|
|
+ return statUpgradeUserCount(startTime, endTime, reqDto.getAppId(), version, null, reqDto.getChannel());
|
|
|
|
+ })
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ trend.setData(counts);
|
|
|
|
+ return trend;
|
|
|
|
+ })
|
|
|
|
+ .toList();
|
|
|
|
+ result.setItems(voList);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 分页查询新增趋势详情
|
|
* 分页查询新增趋势详情
|
|
* @param reqDto 请求参数
|
|
* @param reqDto 请求参数
|
|
@@ -118,8 +145,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
if (dates.isEmpty()) {
|
|
if (dates.isEmpty()) {
|
|
return page; // 无数据直接返回
|
|
return page; // 无数据直接返回
|
|
}
|
|
}
|
|
- LocalDateTime fromDate = getStartTime(reqDto.getFromDate().toString(), "day");
|
|
|
|
- LocalDateTime toDate = getEndTime(reqDto.getToDate().toString(), "day");
|
|
|
|
|
|
|
|
// 获取渠道和版本
|
|
// 获取渠道和版本
|
|
List<String> channel = reqDto.getChannel();
|
|
List<String> channel = reqDto.getChannel();
|
|
@@ -134,15 +159,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
// 获取时间范围
|
|
// 获取时间范围
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
- // 如果startTime早于fromDate
|
|
|
|
- if (startTime.isBefore(fromDate)) {
|
|
|
|
- startTime = fromDate;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果endTime晚于toDate
|
|
|
|
- if (endTime.isAfter(toDate)) {
|
|
|
|
- endTime = toDate;
|
|
|
|
- }
|
|
|
|
// 查询新增用户数
|
|
// 查询新增用户数
|
|
BigDecimal newUser = BigDecimal.valueOf(statNewUserCount(startTime, endTime, reqDto.getAppId(), version, channel));
|
|
BigDecimal newUser = BigDecimal.valueOf(statNewUserCount(startTime, endTime, reqDto.getAppId(), version, channel));
|
|
// 查询活跃用户数
|
|
// 查询活跃用户数
|
|
@@ -297,10 +313,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
result.setDates(dates);
|
|
result.setDates(dates);
|
|
|
|
|
|
- LocalDateTime fromDate = getStartTime(reqDto.getFromDate().toString(), "day");
|
|
|
|
- LocalDateTime toDate = getEndTime(reqDto.getToDate().toString(), "day");
|
|
|
|
-
|
|
|
|
-
|
|
|
|
// 2. 处理版本列表(为空时按null处理)
|
|
// 2. 处理版本列表(为空时按null处理)
|
|
List<String> versions = reqDto.getVersion();
|
|
List<String> versions = reqDto.getVersion();
|
|
List<String> processVersions = (versions == null || versions.isEmpty())
|
|
List<String> processVersions = (versions == null || versions.isEmpty())
|
|
@@ -320,15 +332,7 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
.map(date -> {
|
|
.map(date -> {
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
- // 如果startTime早于fromDate
|
|
|
|
- if (startTime.isBefore(fromDate)) {
|
|
|
|
- startTime = fromDate;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果endTime晚于toDate
|
|
|
|
- if (endTime.isAfter(toDate)) {
|
|
|
|
- endTime = toDate;
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
return statActiveUserCount(startTime, endTime, reqDto.getAppId(), version, reqDto.getChannel());
|
|
return statActiveUserCount(startTime, endTime, reqDto.getAppId(), version, reqDto.getChannel());
|
|
})
|
|
})
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
@@ -349,8 +353,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
public GetActiveUserBaseVO getActiveCompose(UserAnalyseQueryBaseDTO reqDto) {
|
|
public GetActiveUserBaseVO getActiveCompose(UserAnalyseQueryBaseDTO reqDto) {
|
|
// 1. 获取时间坐标轴
|
|
// 1. 获取时间坐标轴
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
- LocalDateTime fromDate = getStartTime(reqDto.getFromDate().toString(), "day");
|
|
|
|
- LocalDateTime toDate = getEndTime(reqDto.getToDate().toString(), "day");
|
|
|
|
|
|
|
|
// 获取版本信息
|
|
// 获取版本信息
|
|
String version = null;
|
|
String version = null;
|
|
@@ -364,16 +366,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
for (String date : dates) {
|
|
for (String date : dates) {
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
-
|
|
|
|
- // 如果startTime早于fromDate
|
|
|
|
- if (startTime.isBefore(fromDate)) {
|
|
|
|
- startTime = fromDate;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果endTime晚于toDate
|
|
|
|
- if (endTime.isAfter(toDate)) {
|
|
|
|
- endTime = toDate;
|
|
|
|
- }
|
|
|
|
// 活跃用户数
|
|
// 活跃用户数
|
|
BigDecimal activeCount = BigDecimal.valueOf(statActiveUserCount(startTime, endTime, reqDto.getAppId(), version, reqDto.getChannel()));
|
|
BigDecimal activeCount = BigDecimal.valueOf(statActiveUserCount(startTime, endTime, reqDto.getAppId(), version, reqDto.getChannel()));
|
|
activeCounts.add( activeCount);
|
|
activeCounts.add( activeCount);
|
|
@@ -523,8 +515,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
}
|
|
}
|
|
// 1. 生成时间轴
|
|
// 1. 生成时间轴
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
- LocalDateTime fromDate = getStartTime(reqDto.getFromDate().toString(), "day");
|
|
|
|
- LocalDateTime toDate = getEndTime(reqDto.getToDate().toString(), "day");
|
|
|
|
|
|
|
|
// 2. 定义存储列表
|
|
// 2. 定义存储列表
|
|
List<BigDecimal> activeList = new ArrayList<>();
|
|
List<BigDecimal> activeList = new ArrayList<>();
|
|
@@ -534,15 +524,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
for (String date : dates) {
|
|
for (String date : dates) {
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
- // 如果startTime早于fromDate
|
|
|
|
- if (startTime.isBefore(fromDate)) {
|
|
|
|
- startTime = fromDate;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果endTime晚于toDate
|
|
|
|
- if (endTime.isAfter(toDate)) {
|
|
|
|
- endTime = toDate;
|
|
|
|
- }
|
|
|
|
// 4. 查询、计算累计用户数
|
|
// 4. 查询、计算累计用户数
|
|
BigDecimal totalUser = BigDecimal.valueOf(statNewUserCount(null, endTime, reqDto.getAppId(), null, null));
|
|
BigDecimal totalUser = BigDecimal.valueOf(statNewUserCount(null, endTime, reqDto.getAppId(), null, null));
|
|
userList.add(totalUser);
|
|
userList.add(totalUser);
|
|
@@ -593,8 +574,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
|
|
|
|
// 1. 生成时间轴
|
|
// 1. 生成时间轴
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
- LocalDateTime fromDate = getStartTime(reqDto.getFromDate().toString(), "day");
|
|
|
|
- LocalDateTime toDate = getEndTime(reqDto.getToDate().toString(), "day");
|
|
|
|
|
|
|
|
// 2. 定义存储列表
|
|
// 2. 定义存储列表
|
|
List<BigDecimal> activeList = new ArrayList<>();
|
|
List<BigDecimal> activeList = new ArrayList<>();
|
|
@@ -604,15 +583,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
for (String date : dates) {
|
|
for (String date : dates) {
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
- // 如果startTime早于fromDate
|
|
|
|
- if (startTime.isBefore(fromDate)) {
|
|
|
|
- startTime = fromDate;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果endTime晚于toDate
|
|
|
|
- if (endTime.isAfter(toDate)) {
|
|
|
|
- endTime = toDate;
|
|
|
|
- }
|
|
|
|
// 4. 查询、计算累计用户数
|
|
// 4. 查询、计算累计用户数
|
|
BigDecimal totalUser = BigDecimal.valueOf(statNewUserCount(null, endTime, reqDto.getAppId(), null, null));
|
|
BigDecimal totalUser = BigDecimal.valueOf(statNewUserCount(null, endTime, reqDto.getAppId(), null, null));
|
|
userList.add(totalUser);
|
|
userList.add(totalUser);
|
|
@@ -667,8 +637,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
if (dates.isEmpty()) {
|
|
if (dates.isEmpty()) {
|
|
return page; // 无数据直接返回
|
|
return page; // 无数据直接返回
|
|
}
|
|
}
|
|
- LocalDateTime fromDate = getStartTime(reqDto.getFromDate().toString(), "day");
|
|
|
|
- LocalDateTime toDate = getEndTime(reqDto.getToDate().toString(), "day");
|
|
|
|
|
|
|
|
// 获取渠道和版本
|
|
// 获取渠道和版本
|
|
List<String> channel = reqDto.getChannel();
|
|
List<String> channel = reqDto.getChannel();
|
|
@@ -682,15 +650,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
// 获取时间范围
|
|
// 获取时间范围
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
- // 如果startTime早于fromDate
|
|
|
|
- if (startTime.isBefore(fromDate)) {
|
|
|
|
- startTime = fromDate;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果endTime晚于toDate
|
|
|
|
- if (endTime.isAfter(toDate)) {
|
|
|
|
- endTime = toDate;
|
|
|
|
- }
|
|
|
|
// 查询活跃用户数量
|
|
// 查询活跃用户数量
|
|
BigDecimal activeCount = BigDecimal.valueOf(statActiveUserCount(startTime, endTime, reqDto.getAppId(), version, channel));
|
|
BigDecimal activeCount = BigDecimal.valueOf(statActiveUserCount(startTime, endTime, reqDto.getAppId(), version, channel));
|
|
// 查询活跃用户中的新增用户数
|
|
// 查询活跃用户中的新增用户数
|
|
@@ -764,8 +723,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
// 1. 生成时间轴
|
|
// 1. 生成时间轴
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
List<String> dates = generateTimeAxis(reqDto.getFromDate(), reqDto.getToDate(), reqDto.getTimeUnit());
|
|
result.setDates(dates);
|
|
result.setDates(dates);
|
|
- LocalDateTime fromDate = getStartTime(reqDto.getFromDate().toString(), "day");
|
|
|
|
- LocalDateTime toDate = getEndTime(reqDto.getToDate().toString(), "day");
|
|
|
|
|
|
|
|
// 2. 处理版本列表(为空时按null处理)
|
|
// 2. 处理版本列表(为空时按null处理)
|
|
List<String> versions = reqDto.getVersion();
|
|
List<String> versions = reqDto.getVersion();
|
|
@@ -786,15 +743,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
.map(date -> {
|
|
.map(date -> {
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime startTime = getStartTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
LocalDateTime endTime = getEndTime(date, reqDto.getTimeUnit());
|
|
- // 如果startTime早于fromDate
|
|
|
|
- if (startTime.isBefore(fromDate)) {
|
|
|
|
- startTime = fromDate;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果endTime晚于toDate
|
|
|
|
- if (endTime.isAfter(toDate)) {
|
|
|
|
- endTime = toDate;
|
|
|
|
- }
|
|
|
|
return statLaunchCount(startTime, endTime, reqDto.getAppId(), version, reqDto.getChannel());
|
|
return statLaunchCount(startTime, endTime, reqDto.getAppId(), version, reqDto.getChannel());
|
|
})
|
|
})
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
@@ -835,9 +783,9 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
boolean isRangeType = "week".equals(timeUnit) || "month".equals(timeUnit);
|
|
boolean isRangeType = "week".equals(timeUnit) || "month".equals(timeUnit);
|
|
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
|
|
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
|
|
// 查询时间范围内总启动次数
|
|
// 查询时间范围内总启动次数
|
|
- LocalDateTime fromDate = getStartTime(reqDto.getFromDate().toString(), "day");
|
|
|
|
- LocalDateTime toDate = getEndTime(reqDto.getToDate().toString(), "day");
|
|
|
|
- BigDecimal totalLaunch = BigDecimal.valueOf(statLaunchCount(fromDate, toDate, reqDto.getAppId(), version, channel));
|
|
|
|
|
|
+ LocalDateTime fromTime = getStartTime(dates.get(0), reqDto.getTimeUnit());
|
|
|
|
+ LocalDateTime toTime = getEndTime(dates.get(dates.size() - 1), reqDto.getTimeUnit());
|
|
|
|
+ BigDecimal totalLaunch = BigDecimal.valueOf(statLaunchCount(fromTime, toTime, reqDto.getAppId(), version, channel));
|
|
// 查询结果
|
|
// 查询结果
|
|
List<PageLaunchDetailVO> result = new ArrayList<>(dates.size());
|
|
List<PageLaunchDetailVO> result = new ArrayList<>(dates.size());
|
|
for (String date : dates) {
|
|
for (String date : dates) {
|
|
@@ -849,16 +797,6 @@ public class UserAnalyseServiceImpl implements UserAnalyseService {
|
|
if(startTime == null || endTime == null){
|
|
if(startTime == null || endTime == null){
|
|
throw new BusinessException("时间范围错误");
|
|
throw new BusinessException("时间范围错误");
|
|
}
|
|
}
|
|
-
|
|
|
|
- // 如果startTime早于fromDate
|
|
|
|
- if (startTime.isBefore(fromDate)) {
|
|
|
|
- startTime = fromDate;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果endTime晚于toDate
|
|
|
|
- if (endTime.isAfter(toDate)) {
|
|
|
|
- endTime = toDate;
|
|
|
|
- }
|
|
|
|
// 查询启动次数
|
|
// 查询启动次数
|
|
BigDecimal launch = BigDecimal.valueOf(statLaunchCount(startTime, endTime, reqDto.getAppId(), version, channel));
|
|
BigDecimal launch = BigDecimal.valueOf(statLaunchCount(startTime, endTime, reqDto.getAppId(), version, channel));
|
|
// 计算启动占比
|
|
// 计算启动占比
|