| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package com.ydtech.modules.admin.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.ydtech.modules.admin.dao.SysDeptMapper;
- import com.ydtech.modules.admin.dao.SysGeographyPositionMapper;
- import com.ydtech.modules.admin.dao.SysGeographyPositionRecordMapper;
- import com.ydtech.modules.admin.model.SysDept;
- import com.ydtech.modules.admin.model.SysGeographyPosition;
- import com.ydtech.modules.admin.model.SysGeographyPositionRecord;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.admin.model.dto.SysGeographyPositionDto;
- import com.ydtech.modules.admin.model.dto.SysGeographyPositionPageDto;
- import com.ydtech.modules.admin.model.dto.SysPcAddressNumVo;
- import com.ydtech.modules.admin.model.vo.RegionInfoVo;
- import com.ydtech.modules.admin.model.vo.SysGeographyPositionInfoVo;
- import com.ydtech.modules.admin.model.vo.SysGeographyPositionVo;
- import com.ydtech.modules.admin.service.SysGeographyPositionRecordService;
- import com.ydtech.modules.admin.service.SysGeographyPositionService;
- import com.ydtech.modules.admin.service.SysUserService;
- import com.ydtech.modules.order.entity.BasePageResult;
- import com.ydtech.utils.StringUtils;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- @Service("SysGeographyPositionService")
- public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPositionMapper, SysGeographyPosition> implements SysGeographyPositionService {
- @Resource
- private SysGeographyPositionMapper sysGeographyPositionMapper;
- @Resource
- private SysGeographyPositionRecordMapper sysGeographyPositionRecordMapper;
- @Resource
- private SysGeographyPositionRecordService sysGeographyPositionRecordService;
- @Resource
- private SysUserService sysUserService;
- @Resource
- private SysDeptMapper sysDeptMapper;
- @Override
- public SysGeographyPositionVo queryPosition(SysGeographyPositionDto sysGeographyPositionDto) {
- SysGeographyPositionVo sysGeographyPositionVo = new SysGeographyPositionVo();
- List<SysGeographyPosition> list = 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())
- .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getSource()), SysGeographyPosition::getSource, sysGeographyPositionDto.getSource())
- .orderByDesc(SysGeographyPosition::getCreateTime));
- if (list.size()==0) return new SysGeographyPositionVo();
- List<SysGeographyPositionInfoVo> sysGeographyPositionList = BeanUtil.copyToList(list, SysGeographyPositionInfoVo.class);
- //填充机构名
- for (SysGeographyPositionInfoVo sysGeographyPositionInfoVo : sysGeographyPositionList) {
- SysUser sysUser = sysUserService.getById(sysGeographyPositionInfoVo.getId());
- if (sysUser == null) continue;
- SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
- .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0));
- if (sysDept == null) continue;
- sysGeographyPositionInfoVo.setDeptName(sysDept.getName());
- }
- sysGeographyPositionVo.setList(sysGeographyPositionList);
- Long aLong = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>().eq(SysGeographyPosition::getStatus, 1));
- sysGeographyPositionVo.setManNum(aLong);
- return sysGeographyPositionVo;
- }
- @Override
- public BasePageResult<SysGeographyPositionRecord> queryPositionList(SysGeographyPositionPageDto sysGeographyPositionPageDto) {
- Page<SysGeographyPositionRecord> page = new Page<>(sysGeographyPositionPageDto.getPageNum(), sysGeographyPositionPageDto.getPageSize());
- LambdaQueryWrapper<SysGeographyPositionRecord> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(StringUtils.isNotEmpty(sysGeographyPositionPageDto.getId()),SysGeographyPositionRecord::getUserId, sysGeographyPositionPageDto.getId());
- wrapper.orderByDesc(SysGeographyPositionRecord::getCreateTime);
- Page<SysGeographyPositionRecord> insOrdersPage = sysGeographyPositionRecordService.page(page, wrapper);
- return new BasePageResult<>(sysGeographyPositionPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
- insOrdersPage.getRecords());
- }
- @Override
- public SysPcAddressNumVo queryPcNum() {
- SysPcAddressNumVo sysPcAddressNumVo = new SysPcAddressNumVo();
- Long all = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>());
- Long channelNum = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>().eq(SysGeographyPosition::getSource,1));
- Long proxyNum = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>().eq(SysGeographyPosition::getSource,2));
- sysPcAddressNumVo.setAllNum(all);
- sysPcAddressNumVo.setProxyNum(proxyNum);
- sysPcAddressNumVo.setChannelNum(channelNum);
- return sysPcAddressNumVo;
- }
- @Override
- public List<RegionInfoVo> queryRegionInfo(Integer type) {
- List<RegionInfoVo> regionInfoVos = new ArrayList<>();
- //全部:0 渠道:1 代理:2
- List<SysGeographyPosition> sysPcAddresses = sysGeographyPositionMapper.selectList(new LambdaQueryWrapper<SysGeographyPosition>()
- .eq(type!=0,SysGeographyPosition::getSource, 1));
- Map<String, List<SysGeographyPosition>> map = sysPcAddresses.stream().collect(Collectors.groupingBy(SysGeographyPosition::getDistrict));
- for (Map.Entry<String, List<SysGeographyPosition>> entry : map.entrySet()) {
- RegionInfoVo regionInfoVo = new RegionInfoVo();
- regionInfoVo.setDistrictName(entry.getKey());
- regionInfoVo.setNumber(entry.getValue().size());
- regionInfoVos.add(regionInfoVo);
- }
- return regionInfoVos;
- }
- }
|