|
|
@@ -75,27 +75,38 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
@Override
|
|
|
public List<RelationalVo> relationalQuery(String id) {
|
|
|
List<RelationalVo> list = new ArrayList<>();
|
|
|
- List<RelationalVo> partnerUsers = baseMapper.selectByUserId(id);
|
|
|
+
|
|
|
+ Integer grade = baseMapper.selectGradeIntMin(id);
|
|
|
+ List<RelationalVo> partnerUsers = baseMapper.selectByUserId(id,grade);
|
|
|
+ if (1 < grade){
|
|
|
+ querySuperiors(list, grade,partnerUsers);
|
|
|
+ }
|
|
|
list.addAll(partnerUsers);
|
|
|
- querySuperiors(list,partnerUsers.get(0).getReferrerId());
|
|
|
- //querySubordinates(list,partnerUser);
|
|
|
- List<RelationalVo> partnerUserVos = BeanUtil.copyToList(list, RelationalVo.class);
|
|
|
- return partnerUserVos;
|
|
|
+ querySubordinates(partnerUsers, grade,list);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
+ public void querySuperiors(List<RelationalVo> list,Integer grade,List<RelationalVo> partnerUsers){
|
|
|
+ if (CollectionUtil.isEmpty(partnerUsers)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String userId = partnerUsers.get(0).getUserId();
|
|
|
+ grade --;
|
|
|
+ List<RelationalVo> relationalVos = baseMapper.selectQuerySuperiors(userId,grade);
|
|
|
+ list.addAll(relationalVos);
|
|
|
+ querySuperiors( list, grade, relationalVos);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- public void querySuperiors(List<RelationalVo> list, String id){
|
|
|
- while (StringUtils.isNotBlank(id)) {
|
|
|
- List<RelationalVo> relationalVos = baseMapper.selectByUserId(id);
|
|
|
- if (CollectionUtil.isNotEmpty(relationalVos)){
|
|
|
- list.addAll(relationalVos);
|
|
|
- querySuperiors( list,relationalVos.get(0).getReferrerId());
|
|
|
- }else {
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
+ public void querySubordinates(List<RelationalVo> partnerUsers,Integer grade,List<RelationalVo> list){
|
|
|
+ if (CollectionUtil.isEmpty(partnerUsers)){
|
|
|
+ return;
|
|
|
}
|
|
|
+ String userId = partnerUsers.get(0).getUserId();
|
|
|
+ grade ++;
|
|
|
+ List<RelationalVo> relationalVos = baseMapper.selectByReferrerId(userId,grade);
|
|
|
+ list.addAll(relationalVos);
|
|
|
+ querySubordinates(relationalVos, grade,list);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -242,6 +253,10 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
|
|
|
public void getLevelUserId(String userId,Set<String> list){
|
|
|
List<String> level = baseMapper.selectByLevelUserId(userId);
|
|
|
+ boolean b = containsOnlyId(level, userId);
|
|
|
+ if (CollectionUtil.isNotEmpty(level) && b){
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (CollectionUtil.isNotEmpty(level)){
|
|
|
list.addAll(level);
|
|
|
for (String s : level) {
|
|
|
@@ -250,6 +265,11 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public static boolean containsOnlyId(List<String> list, String targetId) {
|
|
|
+ return list != null
|
|
|
+ && !list.isEmpty()
|
|
|
+ && list.stream().allMatch(targetId::equals);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
@Override
|