Просмотр исходного кода

渠道列表功能优化,渠道tree结构展示方式,增加查看子渠道列表和上级渠道
渠道列表状态操作btn统一放到操作区,不作为单独列

guanglong 3 лет назад
Родитель
Сommit
a76b0d13d0

+ 28 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelMgrController.java

@@ -27,8 +27,10 @@ import ma.glasnost.orika.MapperFacade;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -135,6 +137,7 @@ public class ChannelMgrController extends BaseApiController {
 			queryWrapper.eq("t1.parent_id", channel.getParentId());
 		}
 		queryWrapper.gt("t1.level", 0);
+		queryWrapper.eq(null != channel && null != channel.getLevel(),"t1.level", channel.getLevel());
 		queryWrapper.likeRight(null != channel && StringUtils.isNotBlank(channel.getMobile()), "t1.mobile", channel.getMobile());
 		queryWrapper.likeRight(null != channel && StringUtils.isNotBlank(channel.getName()), "t1.name", channel.getName());
 		queryWrapper.eq(null != channel && null != channel.getProvinceId(), "t1.province_id", channel.getProvinceId());
@@ -338,6 +341,31 @@ public class ChannelMgrController extends BaseApiController {
 			int userCnt = channelUserRelService.getChannelTotalUserCnt(channelVO.getChannelNo());
 			channelVO.setSiteCnt(siteCnt);
 			channelVO.setUserCnt(userCnt);
+			
+			String[] noArray = channelVO.getChannelNo().split("\\.");
+			if(null != noArray && noArray.length > 0) {
+				List<String> noList = new ArrayList<String>();
+				String parentNo = "";
+				for (int i = 0; i < noArray.length; i++) {
+					if(null != noArray[i] && StringUtils.isNotBlank(noArray[i])) {
+						parentNo += (i>0?".":"")+noArray[i];
+						if(StringUtils.isNotBlank(parentNo) && !parentNo.equals(channelVO.getChannelNo())) {
+							noList.add(parentNo);
+						}
+					}
+				}
+				if(noList.size() > 0 ) {
+					LambdaQueryWrapper<Channel> queryWrapper = new LambdaQueryWrapper<Channel>();
+					queryWrapper.gt(Channel::getLevel, 0);
+					queryWrapper.in(Channel::getChannelNo,noList);
+					queryWrapper.orderByAsc(Channel::getLevel);
+					List<Channel> list = channelService.list(queryWrapper);
+					if(null != list && list.size() >0) {
+						String names = list.stream().map(Channel::getName).collect(Collectors.joining(" > "));
+						channelVO.setParentsName(names);
+					}
+				}
+			}
 		}
 	    // 查询渠道销售额、佣金收入、订单数等
 	    ChannelOperDataVO channelOperDataVO = channelService.getChannelTotalOperData(channelVO.getChannelNo());

+ 4 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelVO.java

@@ -13,9 +13,13 @@ import lombok.Data;
 public class ChannelVO extends Channel {
   long siteCnt;   // 经销网点数
   long userCnt;   // 经销用户数
+  
   String parentName; // 上级渠道名称
+  
   long orderCnt;   // 订单数
   int childCnt;  // 子渠道数量
   ChannelOperDataVO operData;  // 经营数据
   // SysUser sysUser;  // 关联的用户账号信息
+  
+  String parentsName; // 所有上级渠道名称 eg: 一级渠道 > 上N级渠道 ** > 上级渠道
 }