提交 99484a00 编写于 作者: Tyl666's avatar Tyl666

移动到自定义代码部分

上级 57561179
...@@ -22,7 +22,7 @@ import java.util.concurrent.CopyOnWriteArrayList; ...@@ -22,7 +22,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
@Primary @Primary
@Service("SysRoleExService") @Service("SysRoleExService")
public class SysRoleExService extends SysRoleServiceImpl { public class SysRoleExService extends SysRoleServiceImpl {
List<SysRole> result = new ArrayList<>(); List<String> result = new ArrayList<>();
@Override @Override
protected Class currentModelClass() { protected Class currentModelClass() {
...@@ -45,28 +45,22 @@ public class SysRoleExService extends SysRoleServiceImpl { ...@@ -45,28 +45,22 @@ public class SysRoleExService extends SysRoleServiceImpl {
*/ */
@Override @Override
public Page<SysRole> searchNoRepeat(SysRoleSearchContext context) { public Page<SysRole> searchNoRepeat(SysRoleSearchContext context) {
List<SysRole> newResult = new CopyOnWriteArrayList<>(); List<String> newResult = new CopyOnWriteArrayList<>();
String sysRoleid = (String) context.getParams().get("sys_roleid"); String sysRoleid = (String) context.getParams().get("sys_roleid");
com.baomidou.mybatisplus.extension.plugins.pagination.Page<SysRole> pages=baseMapper.searchNoRepeat(context.getPages(),context,context.getSelectCond());
List<SysRole> sysRoles = new ArrayList<>(); List<SysRole> sysRoles = new ArrayList<>();
SysRole currentSysRole = baseMapper.selectById(sysRoleid); SysRole currentSysRole = baseMapper.selectById(sysRoleid);
if(!ObjectUtils.isEmpty(currentSysRole)){ if(!ObjectUtils.isEmpty(currentSysRole)){
sysRoles.add(currentSysRole); sysRoles.add(currentSysRole);
selectChild(sysRoles); findSRelation(sysRoles);
// 加入父子级关联对象 newResult.addAll(findPRelation(sysRoleid,new ArrayList<String>()));
newResult.addAll(findPRelation(sysRoleid,new ArrayList<SysRole>()));
newResult.addAll(result); newResult.addAll(result);
result.clear(); result.clear();
} }
for (int i=0;i<newResult.size();i++){ String noRepeat = String.join(";", newResult);
for (int j=0;j<pages.getRecords().size();j++){ context.setN_sys_roleid_notin(noRepeat);
if (pages.getRecords().get(j).getRoleid().equals(newResult.get(i).getRoleid())){ com.baomidou.mybatisplus.extension.plugins.pagination.Page<SysRole> pages=baseMapper.searchNoRepeat(context.getPages(),context,context.getSelectCond());
pages.getRecords().remove(j); return new PageImpl<SysRole>(pages.getRecords(), context.getPageable(), pages.getTotal());
}
}
}
return new PageImpl<SysRole>(pages.getRecords(), context.getPageable(), pages.getTotal()-newResult.size());
} }
/** /**
...@@ -74,14 +68,13 @@ public class SysRoleExService extends SysRoleServiceImpl { ...@@ -74,14 +68,13 @@ public class SysRoleExService extends SysRoleServiceImpl {
* @param contextId * @param contextId
* @return * @return
*/ */
private List<SysRole> findPRelation(String contextId,List<SysRole> pList){ private List<String> findPRelation(String contextId,List<String> pList){
SysRole currentSysRole = baseMapper.selectById(contextId); SysRole currentSysRole = baseMapper.selectById(contextId);
// 查出当前id的所有父级别id // 查出当前id的所有父级别id
if (!ObjectUtils.isEmpty(currentSysRole)){ if (!ObjectUtils.isEmpty(currentSysRole)){
String proleId = currentSysRole.getProleid(); String proleId = currentSysRole.getProleid();
if(!StringUtils.isEmpty(proleId)){ if(!StringUtils.isEmpty(proleId)){
pList.add(currentSysRole); pList.add(currentSysRole.getRoleid());
return findPRelation(proleId,pList); return findPRelation(proleId,pList);
}else { }else {
return pList; return pList;
...@@ -95,23 +88,18 @@ public class SysRoleExService extends SysRoleServiceImpl { ...@@ -95,23 +88,18 @@ public class SysRoleExService extends SysRoleServiceImpl {
* @return * @return
*/ */
public void selectChild(List<SysRole> ids){ public void findSRelation(List<SysRole> ids){
//用来存取调用自身递归时的参数
List<SysRole> temp= new ArrayList<SysRole>(); List<SysRole> temp= new ArrayList<SysRole>();
//查询数据库中对应id的实体类
List<SysRole> sysEnterpriseOrgList = new ArrayList<SysRole>(); List<SysRole> sysEnterpriseOrgList = new ArrayList<SysRole>();
//遍历传递过来的参数ids
for (SysRole sRole :ids) { for (SysRole sRole :ids) {
//查询子级架构 sysEnterpriseOrgList = selectByProleid(sRole.getRoleid());
sysEnterpriseOrgList= selectByProleid(sRole.getRoleid());
//遍历list获取符合条件的对象的id值,一份存到temp中用作递归的参数,并存到全局变量中用来获取所有符合条件的id
for (SysRole s:sysEnterpriseOrgList) { for (SysRole s:sysEnterpriseOrgList) {
temp.add(s); temp.add(s);
result.add(s); result.add(s.getRoleid());
} }
} }
if(temp.size()!=0&&temp!=null){ if(!ObjectUtils.isEmpty(temp)){
selectChild(temp); findSRelation(temp);
} }
} }
} }
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册