|
@@ -450,14 +450,29 @@ public class UninstallAnalyseServiceImpl implements UninstallAnalyseService {
|
|
|
|
|
|
@Override
|
|
|
public List<UninstallOfterAPPOV> uninstallAfter(GetUninstallInsightDTO dto) {
|
|
|
- // 这里只做演示,实际可查stat_device_time或相关表
|
|
|
+
|
|
|
+ Map<String, LocalDate> timeRangeMap = new HashMap<>();
|
|
|
+
|
|
|
+ if (!StringUtils.isEmpty(dto.getCycle())) {
|
|
|
+ timeRangeMap = getTimeRangeMap(dto.getCycle());
|
|
|
+ }
|
|
|
+
|
|
|
QueryWrapper<MktDeviceTime> wrapper = new QueryWrapper<>();
|
|
|
- wrapper.eq("type", "after");
|
|
|
+ if (!StringUtils.isEmpty(dto.getType())){
|
|
|
+ wrapper.eq("type", dto.getType());
|
|
|
+ }
|
|
|
+ if (!timeRangeMap.isEmpty()){
|
|
|
+ wrapper.between("stat_date", timeRangeMap.get("startDate"), timeRangeMap.get("endDate"));
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(dto.getAppId())) wrapper.eq("app_id", dto.getAppId());
|
|
|
+ if (!StringUtils.isEmpty(dto.getChannel())) wrapper.eq("channel", dto.getChannel());
|
|
|
+ if (!StringUtils.isEmpty(dto.getVersion())) wrapper.eq("app_version", dto.getVersion());
|
|
|
List<MktDeviceTime> list = statDeviceTimeMapper.selectList(wrapper);
|
|
|
List<UninstallOfterAPPOV> result = new ArrayList<>();
|
|
|
for (MktDeviceTime entity : list) {
|
|
|
UninstallOfterAPPOV vo = new UninstallOfterAPPOV();
|
|
|
- vo.setAppName(entity.getTimeRange()); // 假设timeRange存appName
|
|
|
+ ConfigItem actionType = ConfigUtils.getConfigValue("app_type", entity.getType());
|
|
|
+ vo.setAppName(!StringUtils.isEmpty(actionType.getLabel()) ? actionType.getLabel() : ""); //
|
|
|
vo.setCount(entity.getDeviceCount());
|
|
|
vo.setProportion(entity.getRate() != null ? entity.getRate().toString() : null);
|
|
|
result.add(vo);
|
|
@@ -467,8 +482,23 @@ public class UninstallAnalyseServiceImpl implements UninstallAnalyseService {
|
|
|
|
|
|
@Override
|
|
|
public List<UninstallSYSOV> uninstallSys(GetUninstallInsightDTO dto) {
|
|
|
+
|
|
|
+ Map<String, LocalDate> timeRangeMap = new HashMap<>();
|
|
|
+
|
|
|
+ if (!StringUtils.isEmpty(dto.getCycle())) {
|
|
|
+ timeRangeMap = getTimeRangeMap(dto.getCycle());
|
|
|
+ }
|
|
|
+
|
|
|
QueryWrapper<MktDeviceTime> wrapper = new QueryWrapper<>();
|
|
|
- wrapper.eq("type", "sys");
|
|
|
+ if (!StringUtils.isEmpty(dto.getType())){
|
|
|
+ wrapper.eq("type", dto.getType());
|
|
|
+ }
|
|
|
+ if (!timeRangeMap.isEmpty()){
|
|
|
+ wrapper.between("stat_date", timeRangeMap.get("startDate"), timeRangeMap.get("endDate"));
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(dto.getAppId())) wrapper.eq("app_id", dto.getAppId());
|
|
|
+ if (!StringUtils.isEmpty(dto.getChannel())) wrapper.eq("channel", dto.getChannel());
|
|
|
+ if (!StringUtils.isEmpty(dto.getVersion())) wrapper.eq("app_version", dto.getVersion());
|
|
|
List<MktDeviceTime> list = statDeviceTimeMapper.selectList(wrapper);
|
|
|
Map<String, List<Map<String, Integer>>> sysMap = new LinkedHashMap<>();
|
|
|
for (MktDeviceTime entity : list) {
|