Browse Source

我的客户、我的渠道、我的渠道网点的导出接口

v1.0
Yen 2 years ago
parent
commit
0e7b5509ba
  1. 53
      src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelMyController.java
  2. 94
      src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java
  3. 116
      src/main/java/com/qs/serve/modules/bms/controller/my/BmsSupplierMyController.java
  4. 3
      src/main/java/com/qs/serve/modules/bms/service/BmsChannelPointService.java
  5. 4
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java

53
src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelMyController.java

@ -44,6 +44,7 @@ public class BmsChannelMyController {
private BmsChannelService bmsChannelService; private BmsChannelService bmsChannelService;
private BmsMasterUserService bmsMasterUserService; private BmsMasterUserService bmsMasterUserService;
private SysPostUserService postUserService; private SysPostUserService postUserService;
private BmsSupplierService bmsSupplierService;
private BmsSupplierChannelService bmsSupplierChannelService; private BmsSupplierChannelService bmsSupplierChannelService;
/** /**
@ -64,6 +65,58 @@ public class BmsChannelMyController {
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }
/**
* 导出列表
* @param param
* @return
*/
@GetMapping("/export")
public R<List<BmsChannel>> export(BmsChannel param){
LambdaQueryWrapper<BmsChannel> channelWrapper = new LambdaQueryWrapper<>(param);
channelWrapper.orderByDesc(BmsChannel::getCreateTime);
if(param.getSelectStartTime()!=null) {
channelWrapper.ge(BmsChannel::getCreateTime, param.getSelectStartTime());
channelWrapper.isNotNull(BmsChannel::getCreateBy);
}
if(param.getSelectEndTime()!=null) {
channelWrapper.le(BmsChannel::getCreateTime, param.getSelectEndTime());
channelWrapper.isNotNull(BmsChannel::getCreateBy);
}
if(CollectionUtil.isNotEmpty(param.getSelectIds())){
channelWrapper.in(BmsChannel::getId, param.getSelectIds());
}
//过滤为当前负责人
LambdaQueryWrapper<BmsMasterUser> masterLqw = new LambdaQueryWrapper<>();
masterLqw.eq(BmsMasterUser::getType,MasterUserType.Channel);
masterLqw.eq(BmsMasterUser::getUserId,AuthContextUtils.getSysUserId());
List<BmsMasterUser> masterUsers = bmsMasterUserService.list(masterLqw);
List<String> ids = masterUsers.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList());
ids.add("#");
channelWrapper.in(BmsChannel::getId,ids);
List<BmsChannel> list = bmsChannelService.list(channelWrapper);
List<Long> channelIds = list.stream().map(a->a.getId()).collect(Collectors.toList());
if(channelIds.size()>0) {
LambdaQueryWrapper<BmsSupplierChannel> supplierChannelLambdaQueryWrapper = new LambdaQueryWrapper<>();
supplierChannelLambdaQueryWrapper.in(BmsSupplierChannel::getChannelId, channelIds);
List<BmsSupplierChannel> supplierChannelList = bmsSupplierChannelService.list(supplierChannelLambdaQueryWrapper);
List<String> supplierIds = supplierChannelList.stream().map(a->a.getSupplierId().toString()).distinct().collect(Collectors.toList());
if(supplierIds.size()>0){
LambdaQueryWrapper<BmsSupplier> supplierLqw = new LambdaQueryWrapper();
supplierLqw.in(BmsSupplier::getId,supplierIds);
List<BmsSupplier> supplierList = bmsSupplierService.list(supplierLqw);
list.forEach(a->{
List<String> supplierIdList = supplierChannelList.stream().filter(b->b.getChannelId().equals(a.getId())).map(b->b.getSupplierId()+"").collect(Collectors.toList());
List<String> supplierNames = supplierList.stream().filter(b->supplierIdList.contains(b.getId())).map(b->b.getName()).collect(Collectors.toList());
a.setSupplierNames(supplierNames);
});
}
}
return R.ok(list);
}
/** /**
* 翻页(下属负责的渠道) * 翻页(下属负责的渠道)

94
src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.dto.RowParam;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
@ -59,9 +60,96 @@ public class BmsChannelPointMyController {
private SysUserService sysUserService; private SysUserService sysUserService;
private BmsRegionUserService bmsRegionUserService; private BmsRegionUserService bmsRegionUserService;
private SysPostUserService postUserService; private SysPostUserService postUserService;
private BmsChannelService bmsChannelService;
private BmsMasterUserService bmsMasterUserService; private BmsMasterUserService bmsMasterUserService;
private BmsSupplierChannelService bmsSupplierChannelService; private BmsSupplierChannelService bmsSupplierChannelService;
/**
* 导出
* @param param
* @return
*/
@GetMapping("/export")
@PreAuthorize("hasRole('bms:channelPoint:query')")
public R<List<BmsChannelPoint>> export(BmsChannelPoint param){
LambdaQueryWrapper<BmsChannelPoint> lqw = new LambdaQueryWrapper<>(param);
lqw.orderByDesc(BmsChannelPoint::getCreateTime);
if(param.getSelectStartTime()!=null) {
lqw.ge(BmsChannelPoint::getCreateTime, param.getSelectStartTime());
lqw.isNotNull(BmsChannelPoint::getCreateBy);
}
if(param.getSelectEndTime()!=null) {
lqw.le(BmsChannelPoint::getCreateTime, param.getSelectEndTime());
lqw.isNotNull(BmsChannelPoint::getCreateBy);
}
if(CollectionUtil.isNotEmpty(param.getSelectIds())){
lqw.in(BmsChannelPoint::getId, param.getSelectIds());
}
//过滤为当前负责人
LambdaQueryWrapper<BmsMasterUser> masterLqw = new LambdaQueryWrapper<>();
masterLqw.in(BmsMasterUser::getType,MasterUserType.Channel,MasterUserType.Point);
masterLqw.eq(BmsMasterUser::getUserId,AuthContextUtils.getSysUserId());
List<BmsMasterUser> masterUsers = bmsMasterUserService.list(masterLqw);
Map<String,List<BmsMasterUser>> masterUsersMap = masterUsers.stream().collect(Collectors.groupingBy(BmsMasterUser::getType));
List<BmsMasterUser> channelMasterList = masterUsersMap.get(MasterUserType.Channel);
List<BmsMasterUser> pointMasterList = masterUsersMap.get(MasterUserType.Point);
List<String> channelIds = new ArrayList<>();
List<String> pointIds = new ArrayList<>();
channelIds.add("#");
pointIds.add("#");
if(CollectionUtil.isNotEmpty(channelMasterList)){
List<String> channelMasterIdsTmp = channelMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList());
channelIds.addAll(channelMasterIdsTmp);
}
if(CollectionUtil.isNotEmpty(pointMasterList)){
List<String> pointMasterIdsTmp = pointMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList());
pointIds.addAll(pointMasterIdsTmp);
}
lqw.and(qw->{
qw.in(BmsChannelPoint::getChannelId,channelIds).or().in(BmsChannelPoint::getId,pointIds);
});
List<BmsChannelPoint> list = bmsChannelPointService.list(lqw);
List<String> bizRegionIds = new ArrayList<>();
bizRegionIds.addAll(list.stream().filter(a->a.getBizRegionId()!=null).map(a->a.getBizRegionId()).collect(Collectors.toList()));
bizRegionIds = bizRegionIds.stream().distinct().collect(Collectors.toList());
List<BmsRegion2> region2List = new ArrayList<>();
if(bizRegionIds.size()>0){
LambdaQueryWrapper<BmsRegion2> region2LambdaQueryWrapper = new LambdaQueryWrapper<>();
region2LambdaQueryWrapper.in(BmsRegion2::getId,bizRegionIds);
region2List = bmsRegion2Service.list(region2LambdaQueryWrapper);
}
Map<String,BmsRegion2> idToBizRegion = region2List.stream().collect(Collectors.toMap(BmsRegion2::getId, a->a));
for (BmsChannelPoint channelPoint : list) {
Long channelId = channelPoint.getChannelId();
BmsChannel channel = bmsChannelService.getById(channelId);
if(channel!=null){
channelPoint.setChannelName(channel.getChannelName());
channelPoint.setChannelCode(channel.getChannelCode());
channelPoint.setChannelType(channel.getChannelType());
}
if(StringUtils.hasText(channelPoint.getBizRegionPath())){
String[] bizRegions = channelPoint.getBizRegionPath().split("_");
if(bizRegions.length>0){
channelPoint.setBizRegionName(bizRegions[bizRegions.length-1]);
}
BmsRegion2 region2 = idToBizRegion.get(channelPoint.getBizRegionId());
if(region2!=null){
channelPoint.setBizRegionCode(region2.getCode());
}
}
if(StringUtils.hasText(channelPoint.getSaleRegionPath())){
String[] regions = channelPoint.getSaleRegionPath().split("_");
if(regions.length>0){
channelPoint.setSaleRegionName(regions[regions.length-1]);
}
}
}
return R.ok(list);
}
/** /**
* 我负责的网店 * 我负责的网店
@ -74,7 +162,7 @@ public class BmsChannelPointMyController {
if(count<1L){ if(count<1L){
return R.byEmptyList(); return R.byEmptyList();
} }
List<BmsChannelPoint> list = bmsChannelPointService.selectChannelPointMyList(param, Arrays.asList(AuthContextUtils.getSysUserId())); List<BmsChannelPoint> list = bmsChannelPointService.selectChannelPointMyList(param, Arrays.asList(AuthContextUtils.getSysUserId()),new RowParam(true));
List<String> bizRegionIds = new ArrayList<>(); List<String> bizRegionIds = new ArrayList<>();
bizRegionIds.addAll(list.stream().filter(a->a.getBizRegionId()!=null).map(a->a.getBizRegionId()).collect(Collectors.toList())); bizRegionIds.addAll(list.stream().filter(a->a.getBizRegionId()!=null).map(a->a.getBizRegionId()).collect(Collectors.toList()));
@ -131,7 +219,7 @@ public class BmsChannelPointMyController {
if(count < 1L){ if(count < 1L){
return R.byEmptyList(); return R.byEmptyList();
} }
List<BmsChannelPoint> pageList = bmsChannelPointService.selectChannelPointMyList(param, userIds); List<BmsChannelPoint> pageList = bmsChannelPointService.selectChannelPointMyList(param, userIds,new RowParam(true));
List<String> bizRegionIds = new ArrayList<>(); List<String> bizRegionIds = new ArrayList<>();
bizRegionIds.addAll(pageList.stream().filter(a->a.getBizRegionId()!=null).map(a->a.getBizRegionId()).collect(Collectors.toList())); bizRegionIds.addAll(pageList.stream().filter(a->a.getBizRegionId()!=null).map(a->a.getBizRegionId()).collect(Collectors.toList()));
bizRegionIds = bizRegionIds.stream().distinct().collect(Collectors.toList()); bizRegionIds = bizRegionIds.stream().distinct().collect(Collectors.toList());
@ -184,7 +272,7 @@ public class BmsChannelPointMyController {
if(count < 1L){ if(count < 1L){
return R.byEmptyList(); return R.byEmptyList();
} }
List<BmsChannelPoint> pageList = bmsChannelPointService.selectChannelPointMyList(param, userIds); List<BmsChannelPoint> pageList = bmsChannelPointService.selectChannelPointMyList(param, userIds,new RowParam(true));
List<String> bizRegionIds = new ArrayList<>(); List<String> bizRegionIds = new ArrayList<>();
bizRegionIds.addAll(pageList.stream().filter(a->a.getBizRegionId()!=null).map(a->a.getBizRegionId()).collect(Collectors.toList())); bizRegionIds.addAll(pageList.stream().filter(a->a.getBizRegionId()!=null).map(a->a.getBizRegionId()).collect(Collectors.toList()));
bizRegionIds = bizRegionIds.stream().distinct().collect(Collectors.toList()); bizRegionIds = bizRegionIds.stream().distinct().collect(Collectors.toList());

116
src/main/java/com/qs/serve/modules/bms/controller/my/BmsSupplierMyController.java

@ -8,6 +8,7 @@ import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2; import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierExcelBo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierTreeVo; import com.qs.serve.modules.bms.entity.vo.BmsSupplierTreeVo;
import com.qs.serve.modules.bms.service.BmsRegion2Service; import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService; import com.qs.serve.modules.bms.service.BmsRegionService;
@ -21,10 +22,8 @@ import com.qs.serve.modules.wx.entity.WxUser;
import com.qs.serve.modules.wx.service.WxUserService; import com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -235,6 +234,30 @@ public class BmsSupplierMyController {
} }
@PostMapping("/exportExcel")
@PreAuthorize("hasRole('bms:supplier:query')")
public R<List<BmsSupplierExcelBo>> exportExcel(@RequestBody BmsSupplier param){
param = this.initQueryParam(param);
param.setCurrUserId(AuthContextUtils.getSysUserId());
List<BmsSupplier> list = bmsSupplierService.selectSupplierList(param);
initSupplierList(list);
initParentList(list);
List<BmsSupplierExcelBo> boList = list.stream().map(a->BmsSupplierExcelBo.toExcelBo(a)).collect(Collectors.toList());
return R.ok(boList);
}
private void initParentList(List<BmsSupplier> list){
for (BmsSupplier supplier : list) {
if(StringUtils.hasText(supplier.getPid())&&!supplier.getPid().equals("0")){
BmsSupplier parentInfo = bmsSupplierService.getById(supplier.getPid());
supplier.setParentRegionInfo(parentInfo);
}else {
supplier.setPid(null);
}
}
}
/** /**
* 显示关联 * 显示关联
@ -351,5 +374,90 @@ public class BmsSupplierMyController {
hisUserSupplierService.selectListSupplier(param); hisUserSupplierService.selectListSupplier(param);
return R.ok(); return R.ok();
} }
private BmsSupplier initQueryParam(BmsSupplier param){
//兼容 前端接错参数
if(param.getSupplierName()!=null){
param.setName(param.getSupplierName());
}
if(param.getSupplierCode()!=null){
param.setCode(param.getSupplierCode());
}
if(StringUtils.hasText(param.getRegion2Label())){
LambdaQueryWrapper<BmsRegion2> region2LambdaQueryWrapper = new LambdaQueryWrapper<>();
region2LambdaQueryWrapper.like(BmsRegion2::getPathNames,param.getRegion2Label());
List<BmsRegion2> region2List = bmsRegion2Service.list(region2LambdaQueryWrapper);
if(region2List.size()>0) {
param.setRegion2Ids(region2List.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setRegion2Ids(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegion2FirstName())){
LambdaQueryWrapper<BmsRegion2> region2LambdaQueryWrapper = new LambdaQueryWrapper<>();
region2LambdaQueryWrapper.like(BmsRegion2::getName,param.getSearchRegion2FirstName());
List<BmsRegion2> region2List = bmsRegion2Service.list(region2LambdaQueryWrapper);
if(region2List.size()>0) {
param.setSearchRegion2First(region2List.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegion2First(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegion2SecondName())){
LambdaQueryWrapper<BmsRegion2> region2LambdaQueryWrapper = new LambdaQueryWrapper<>();
region2LambdaQueryWrapper.like(BmsRegion2::getName,param.getSearchRegion2SecondName());
List<BmsRegion2> region2List = bmsRegion2Service.list(region2LambdaQueryWrapper);
if(region2List.size()>0) {
param.setSearchRegion2Second(region2List.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegion2Second(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegion2ThirdName())){
LambdaQueryWrapper<BmsRegion2> region2LambdaQueryWrapper = new LambdaQueryWrapper<>();
region2LambdaQueryWrapper.like(BmsRegion2::getName,param.getSearchRegion2ThirdName());
List<BmsRegion2> region2List = bmsRegion2Service.list(region2LambdaQueryWrapper);
if(region2List.size()>0) {
param.setSearchRegion2Third(region2List.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegion2Third(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getRegionLabel())){
LambdaQueryWrapper<BmsRegion> regionLambdaQueryWrapper = new LambdaQueryWrapper<>();
regionLambdaQueryWrapper.like(BmsRegion::getPathNames,param.getRegionLabel());
List<BmsRegion> regionList = bmsRegionService.list(regionLambdaQueryWrapper);
if(regionList.size()>0) {
param.setRegionIds(regionList.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setRegion2Ids(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegionFirstName())){
LambdaQueryWrapper<BmsRegion> regionLambdaQueryWrapper = new LambdaQueryWrapper<>();
regionLambdaQueryWrapper.like(BmsRegion::getName,param.getSearchRegionFirstName());
List<BmsRegion> regionList = bmsRegionService.list(regionLambdaQueryWrapper);
if(regionList.size()>0) {
param.setSearchRegionFirst(regionList.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegionFirst(Arrays.asList("#"));
}
}
if(StringUtils.hasText(param.getSearchRegionSecondName())){
LambdaQueryWrapper<BmsRegion> regionLambdaQueryWrapper = new LambdaQueryWrapper<>();
regionLambdaQueryWrapper.like(BmsRegion::getName,param.getSearchRegionSecondName());
List<BmsRegion> regionList = bmsRegionService.list(regionLambdaQueryWrapper);
if(regionList.size()>0) {
param.setSearchRegionSecond(regionList.stream().map(a -> a.getId()).collect(Collectors.toList()));
}else{
param.setSearchRegionSecond(Arrays.asList("#"));
}
}
return param;
}
} }

3
src/main/java/com/qs/serve/modules/bms/service/BmsChannelPointService.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.bms.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.common.model.dto.RowParam;
import com.qs.serve.modules.bms.entity.BmsChannelPoint; import com.qs.serve.modules.bms.entity.BmsChannelPoint;
import com.qs.serve.modules.bms.entity.bo.BmsChannelPointBo; import com.qs.serve.modules.bms.entity.bo.BmsChannelPointBo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -20,7 +21,7 @@ public interface BmsChannelPointService extends IService<BmsChannelPoint> {
List<BmsChannelPoint> selectChannelPointList(BmsChannelPoint channelPoint); List<BmsChannelPoint> selectChannelPointList(BmsChannelPoint channelPoint);
List<BmsChannelPoint> selectChannelPointMyList(BmsChannelPoint channelPoint, List<String> userIds); List<BmsChannelPoint> selectChannelPointMyList(BmsChannelPoint channelPoint, List<String> userIds, RowParam rowParam);
Long selectCountChannelPointMyList(BmsChannelPoint channelPoint, List<String> userIds); Long selectCountChannelPointMyList(BmsChannelPoint channelPoint, List<String> userIds);

4
src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java

@ -122,8 +122,8 @@ public class BmsChannelPointServiceImpl extends ServiceImpl<BmsChannelPointMappe
} }
@Override @Override
public List<BmsChannelPoint> selectChannelPointMyList(BmsChannelPoint channelPoint, List<String> userIds) { public List<BmsChannelPoint> selectChannelPointMyList(BmsChannelPoint channelPoint, List<String> userIds,RowParam rowParam) {
return baseMapper.selectPointByUserIds(channelPoint, userIds,channelPoint.getSupplierId(),new RowParam(true)); return baseMapper.selectPointByUserIds(channelPoint, userIds,channelPoint.getSupplierId(),rowParam);
} }
@Override @Override

Loading…
Cancel
Save