|
@@ -20,6 +20,7 @@ import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -78,13 +79,18 @@ public class CrmAnalyseServiceImpl extends ServiceImpl<CrmAnalyseMapper, TBCrm>
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public Map<String, List<CrmAnalyseResult>> region(Long startTime, Long endTime, ProductTypeEnum type) {
|
|
|
|
|
|
+ public List<CrmAnalyseResult> region(Long startTime, Long endTime, ProductTypeEnum type) {
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
|
|
- Map<String, List<CrmAnalyseResult>> map = new HashMap<>();
|
|
|
|
- map.put("day", this.baseMapper.region(startTime, endTime, Objects.nonNull(type) ? type.name() : null, dpr));
|
|
|
|
- map.put("lastDay", this.baseMapper.region(startTime - 365 * 24 * 60 * 60 * 1000L, endTime - 365 * 24 * 60 * 60 * 1000L, Objects.nonNull(type) ? type.name() : null, dpr));
|
|
|
|
- return map;
|
|
|
|
|
|
+ List<CrmAnalyseResult> region = this.baseMapper.region(startTime, endTime, Objects.nonNull(type) ? type.name() : null, dpr);
|
|
|
|
+ List<CrmAnalyseResult> region1 = this.baseMapper.region(startTime - 24 * 60 * 60 * 1000L, endTime - 24 * 60 * 60 * 1000L, Objects.nonNull(type) ? type.name() : null, dpr);
|
|
|
|
+
|
|
|
|
+ return region.stream().map(map->{
|
|
|
|
+ CrmAnalyseResult crmAnalyseResult = region1.stream().filter(map1 -> map1.getId().equals(map.getId()) && map1.getName().equals(map.getName())).findFirst().orElse(new CrmAnalyseResult());
|
|
|
|
+ map.setCompare(map.getCount()-crmAnalyseResult.getCount());
|
|
|
|
+ map.setRate(String.format("%.2f", Double.parseDouble(String.valueOf(map.getCount()-crmAnalyseResult.getCount()))*100 /map.getCount()) + "%");
|
|
|
|
+ return map;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|