Ver Fonte

人数统计,区域人员概况

helixiao há 2 anos atrás
pai
commit
dc1333bcf0

+ 6 - 6
src/main/java/com/ydtech/modules/admin/controller/SysPcAddressController.java

@@ -74,16 +74,16 @@ public class SysPcAddressController extends BaseController{
         return sysPcAddressService.findLocationsWithinRadius(adressRangeDto);
     }
 
-    @GetMapping("/queryPcNum")
+    @PostMapping("/queryPcNum")
     @ApiOperation(value = "人员数量概览")
-    public HttpResult<SysPcAddressNumVo> queryPcNum() {
-        return HttpResult.ok("success", this.sysPcAddressService.queryPcNum());
+    public HttpResult<SysPcAddressNumVo> queryPcNum(@RequestBody SysPcAddressDto sysPcAddressDto) {
+        return HttpResult.ok("success", this.sysPcAddressService.queryPcNum(sysPcAddressDto));
     }
 
-    @GetMapping("/queryRegionInfo/{type}")
+    @PostMapping("/queryRegionInfo")
     @ApiOperation(value = "区域人员概览")
-    public HttpResult<List<RegionInfoVo>> queryRegionInfo(@PathVariable("type") @ApiParam("全部:0   渠道:1 代理:2") Integer type) {
-        return HttpResult.ok("success", this.sysPcAddressService.queryRegionInfo(type));
+    public HttpResult<List<RegionInfoVo>> queryRegionInfo(@RequestBody SysPcAddressDto sysPcAddressDto) {
+        return HttpResult.ok("success", this.sysPcAddressService.queryRegionInfo(sysPcAddressDto));
     }
 
 

+ 6 - 6
src/main/java/com/ydtech/modules/admin/controller/websocket/SysGeographyPositionController.java

@@ -47,16 +47,16 @@ public class SysGeographyPositionController {
         return HttpResult.ok("success", this.sysGeographyPositionService.queryPositionList(sysGeographyPositionPageDto));
     }
 
-    @GetMapping("/queryPcNum")
+    @PostMapping("/queryPcNum")
     @ApiOperation(value = "人员数量概览")
-    public HttpResult<SysPcAddressNumVo> queryPcNum() {
-        return HttpResult.ok("success", this.sysGeographyPositionService.queryPcNum());
+    public HttpResult<SysPcAddressNumVo> queryPcNum(@RequestBody SysGeographyPositionDto sysGeographyPositionDto) {
+        return HttpResult.ok("success", this.sysGeographyPositionService.queryPcNum(sysGeographyPositionDto));
     }
 
-    @GetMapping("/queryRegionInfo/{type}")
+    @PostMapping("/queryRegionInfo/{type}")
     @ApiOperation(value = "区域人员概览")
-    public HttpResult<List<RegionInfoVo>> queryRegionInfo(@PathVariable("type") @ApiParam("全部:0  渠道:1 代理:2")  Integer type) {
-        return HttpResult.ok("success", this.sysGeographyPositionService.queryRegionInfo(type));
+    public HttpResult<List<RegionInfoVo>> queryRegionInfo(@RequestBody SysGeographyPositionDto sysGeographyPositionDto) {
+        return HttpResult.ok("success", this.sysGeographyPositionService.queryRegionInfo(sysGeographyPositionDto));
     }
 
     @PostMapping("/locations")

+ 1 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysGeographyPositionVo.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.admin.model.vo;
 
 import com.ydtech.modules.admin.model.SysGeographyPosition;
+import com.ydtech.modules.admin.model.dto.SysPcAddressNumVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 2 - 2
src/main/java/com/ydtech/modules/admin/service/SysGeographyPositionService.java

@@ -20,9 +20,9 @@ public interface SysGeographyPositionService extends IService<SysGeographyPositi
 
     BasePageResult<SysGeographyPositionRecord> queryPositionList(SysGeographyPositionPageDto sysGeographyPositionPageDto);
 
-    SysPcAddressNumVo queryPcNum();
+    SysPcAddressNumVo queryPcNum(SysGeographyPositionDto sysGeographyPositionDto);
 
-    List<RegionInfoVo> queryRegionInfo(Integer type);
+    List<RegionInfoVo> queryRegionInfo(SysGeographyPositionDto sysGeographyPositionDto);
 
     List<SysGeographyPositionInfoVo> findLocationsWithinRadius(AdressRangeDto adressRangeDto);
 }

+ 2 - 3
src/main/java/com/ydtech/modules/admin/service/SysPcAddressService.java

@@ -5,7 +5,6 @@ import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.po.SysPcAddress;
 import com.ydtech.modules.admin.model.vo.RegionInfoVo;
-import com.ydtech.modules.order.entity.BasePageResult;
 
 import java.util.List;
 
@@ -33,7 +32,7 @@ public interface SysPcAddressService extends IService<SysPcAddress> {
     List<SysPcAddress> findLocationsWithinRadius(AdressRangeDto adressRangeDto);
 
 
-    SysPcAddressNumVo queryPcNum();
+    SysPcAddressNumVo queryPcNum(SysPcAddressDto sysPcAddressDto);
 
-    List<RegionInfoVo> queryRegionInfo(Integer type);
+    List<RegionInfoVo> queryRegionInfo(SysPcAddressDto sysPcAddressDto);
 }

+ 40 - 12
src/main/java/com/ydtech/modules/admin/service/impl/SysGeographyPositionServiceImpl.java

@@ -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;
 
     }

+ 41 - 9
src/main/java/com/ydtech/modules/admin/service/impl/SysPcAddressServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.admin.dao.SysDeptMapper;
@@ -76,6 +77,7 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
 
     @Override
     public List<SysPcAddress> getEveryone(SysPcAddressDto sysPcAddressDto) {
+
         List<SysPcAddress> sysPcAddresses = sysPcAddressMapper.selectList(new LambdaQueryWrapper<SysPcAddress>()
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getProvince()), SysPcAddress::getProvince, sysPcAddressDto.getProvince())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
@@ -96,28 +98,58 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
     }
 
     @Override
-    public SysPcAddressNumVo queryPcNum() {
+    public SysPcAddressNumVo queryPcNum(SysPcAddressDto sysPcAddressDto) {
         SysPcAddressNumVo sysPcAddressNumVo = new SysPcAddressNumVo();
 
-        Long all = sysPcAddressMapper.selectCount(new LambdaQueryWrapper<SysPcAddress>().in(SysPcAddress::getSource, Arrays.asList("1","2")));
-        Long channelNum = sysPcAddressMapper.selectCount(new LambdaQueryWrapper<SysPcAddress>().eq(SysPcAddress::getSource,1));
-        Long proxyNum = sysPcAddressMapper.selectCount(new LambdaQueryWrapper<SysPcAddress>().eq(SysPcAddress::getSource,2));
+        //区域数量统计
+        Long all = sysPcAddressMapper.selectCount(new LambdaQueryWrapper<SysPcAddress>()
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getProvince()), SysPcAddress::getProvince, sysPcAddressDto.getProvince())
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
+                .in(SysPcAddress::getSource, Arrays.asList("1","2")));
+        Long channelNum = sysPcAddressMapper.selectCount(new LambdaQueryWrapper<SysPcAddress>()
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getProvince()), SysPcAddress::getProvince, sysPcAddressDto.getProvince())
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
+                .eq(SysPcAddress::getSource,1));
+        Long proxyNum = sysPcAddressMapper.selectCount(new LambdaQueryWrapper<SysPcAddress>()
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getProvince()), SysPcAddress::getProvince, sysPcAddressDto.getProvince())
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
+                .eq(SysPcAddress::getSource,2));
         sysPcAddressNumVo.setAllNum(all);
         sysPcAddressNumVo.setProxyNum(proxyNum);
         sysPcAddressNumVo.setChannelNum(channelNum);
 
-
         return sysPcAddressNumVo;
     }
 
     @Override
-    public List<RegionInfoVo> queryRegionInfo(Integer type) {
+    public List<RegionInfoVo> queryRegionInfo(SysPcAddressDto sysPcAddressDto) {
         List<RegionInfoVo> regionInfoVos = new ArrayList<>();
         //全部:null   渠道:1 代理:2
         List<SysPcAddress> sysPcAddresses = sysPcAddressMapper.selectList(new LambdaQueryWrapper<SysPcAddress>()
-                .in(SysPcAddress::getSource, Arrays.asList("1","2"))
-                .eq(type != 0,SysPcAddress::getSource, type));
-        Map<String, List<SysPcAddress>> map = sysPcAddresses.stream().collect(Collectors.groupingBy(SysPcAddress::getDistrict));
+                        .eq(StringUtils.isNotEmpty(sysPcAddressDto.getProvince()), SysPcAddress::getProvince, sysPcAddressDto.getProvince())
+                        .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
+                        .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
+                        .in(SysPcAddress::getSource, Arrays.asList("1","2"))
+                        .eq(StringUtils.isNotEmpty(sysPcAddressDto.getSource()), SysPcAddress::getSource, sysPcAddressDto.getSource()));
+
+        if (CollectionUtil.isEmpty(sysPcAddresses)) return regionInfoVos;
+
+        Map<String, List<SysPcAddress>> map;
+        if (CollectionUtil.isEmpty(sysPcAddresses)) return regionInfoVos;
+        if (StringUtils.isEmpty(sysPcAddressDto.getProvince())){
+            map = sysPcAddresses.stream().collect(Collectors.groupingBy(SysPcAddress::getProvince));
+        }else{
+            if (StringUtils.isNotEmpty(sysPcAddressDto.getCity())) {
+                map = sysPcAddresses.stream().collect(Collectors.groupingBy(SysPcAddress::getDistrict));
+
+            }else {
+                map = sysPcAddresses.stream().collect(Collectors.groupingBy(SysPcAddress::getCity));
+
+            }
+        }
 
         for (Map.Entry<String, List<SysPcAddress>> entry : map.entrySet()) {
             RegionInfoVo regionInfoVo = new RegionInfoVo();