|
|
@@ -1,6 +1,7 @@
|
|
|
package com.ydtech.modules.admin.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
@@ -27,10 +28,7 @@ import com.ydtech.utils.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service("SysGeographyPositionService")
|
|
|
@@ -103,12 +101,24 @@ public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPos
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public SysPcAddressNumVo queryPcNum() {
|
|
|
+ public SysPcAddressNumVo queryPcNum(SysGeographyPositionDto sysGeographyPositionDto) {
|
|
|
SysPcAddressNumVo sysPcAddressNumVo = new SysPcAddressNumVo();
|
|
|
|
|
|
- Long all = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>().in(SysGeographyPosition::getSource, Arrays.asList("1", "2")));
|
|
|
- Long channelNum = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>().eq(SysGeographyPosition::getSource, 1));
|
|
|
- Long proxyNum = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>().eq(SysGeographyPosition::getSource, 2));
|
|
|
+ Long all = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>()
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getProvince()), SysGeographyPosition::getProvince, sysGeographyPositionDto.getProvince())
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getCity()), SysGeographyPosition::getCity, sysGeographyPositionDto.getCity())
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
|
|
|
+ .in(SysGeographyPosition::getSource, Arrays.asList("1", "2")));
|
|
|
+ Long channelNum = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>()
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getProvince()), SysGeographyPosition::getProvince, sysGeographyPositionDto.getProvince())
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getCity()), SysGeographyPosition::getCity, sysGeographyPositionDto.getCity())
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
|
|
|
+ .eq(SysGeographyPosition::getSource, 1));
|
|
|
+ Long proxyNum = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>()
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getProvince()), SysGeographyPosition::getProvince, sysGeographyPositionDto.getProvince())
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getCity()), SysGeographyPosition::getCity, sysGeographyPositionDto.getCity())
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
|
|
|
+ .eq(SysGeographyPosition::getSource, 2));
|
|
|
sysPcAddressNumVo.setAllNum(all);
|
|
|
sysPcAddressNumVo.setProxyNum(proxyNum);
|
|
|
sysPcAddressNumVo.setChannelNum(channelNum);
|
|
|
@@ -118,13 +128,30 @@ public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPos
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<RegionInfoVo> queryRegionInfo(Integer type) {
|
|
|
+ public List<RegionInfoVo> queryRegionInfo(SysGeographyPositionDto sysGeographyPositionDto) {
|
|
|
List<RegionInfoVo> regionInfoVos = new ArrayList<>();
|
|
|
//全部:null 渠道:1 代理:2
|
|
|
- List<SysGeographyPosition> sysPcAddresses = sysGeographyPositionMapper.selectList(new LambdaQueryWrapper<SysGeographyPosition>()
|
|
|
+ List<SysGeographyPosition> sysGeographyPositionList = sysGeographyPositionMapper.selectList(new LambdaQueryWrapper<SysGeographyPosition>()
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getProvince()), SysGeographyPosition::getProvince, sysGeographyPositionDto.getProvince())
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getCity()), SysGeographyPosition::getCity, sysGeographyPositionDto.getCity())
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
|
|
|
.in(SysGeographyPosition::getSource, Arrays.asList("1", "2"))
|
|
|
- .eq(type != 0, SysGeographyPosition::getSource, type));
|
|
|
- Map<String, List<SysGeographyPosition>> map = sysPcAddresses.stream().collect(Collectors.groupingBy(SysGeographyPosition::getDistrict));
|
|
|
+ .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getSource()), SysGeographyPosition::getSource, sysGeographyPositionDto.getSource()));
|
|
|
+
|
|
|
+ if (CollectionUtil.isEmpty(sysGeographyPositionList)) return regionInfoVos;
|
|
|
+
|
|
|
+ Map<String, List<SysGeographyPosition>> map;
|
|
|
+ if (StringUtils.isEmpty(sysGeographyPositionDto.getProvince())) {
|
|
|
+ map = sysGeographyPositionList.stream().collect(Collectors.groupingBy(SysGeographyPosition::getProvince));
|
|
|
+ }else {
|
|
|
+ if (StringUtils.isNotEmpty(sysGeographyPositionDto.getCity())) {
|
|
|
+ map = sysGeographyPositionList.stream().collect(Collectors.groupingBy(SysGeographyPosition::getDistrict));
|
|
|
+
|
|
|
+ }else {
|
|
|
+ map = sysGeographyPositionList.stream().collect(Collectors.groupingBy(SysGeographyPosition::getCity));
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
for (Map.Entry<String, List<SysGeographyPosition>> entry : map.entrySet()) {
|
|
|
RegionInfoVo regionInfoVo = new RegionInfoVo();
|
|
|
@@ -132,6 +159,7 @@ public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPos
|
|
|
regionInfoVo.setNumber(entry.getValue().size());
|
|
|
regionInfoVos.add(regionInfoVo);
|
|
|
}
|
|
|
+
|
|
|
return regionInfoVos;
|
|
|
|
|
|
}
|