Browse Source

Merge remote-tracking branch 'origin/tall3' into tall3

tall3
ma 4 years ago
parent
commit
10702feaef
  1. 287
      common/src/main/java/com/ccsens/common/service/ProRoleService.java

287
common/src/main/java/com/ccsens/common/service/ProRoleService.java

@ -1,5 +1,6 @@
package com.ccsens.common.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@ -56,6 +57,7 @@ public class ProRoleService implements IProRoleService {
RoleVo.RoleInfo RoleInfo = new RoleVo.RoleInfo();
//不显示的角色
List<RoleVo.RoleInfo> invisibleList = new ArrayList<>();
List<RoleVo.RoleInfo> invisibleList1 = new ArrayList<>();
//查询当前用户所属的角色的list
List<Long> roleIds = new ArrayList<>();
//对自己不可见的角色的list
@ -69,12 +71,12 @@ public class ProRoleService implements IProRoleService {
List<ProRole> proRoles = new ArrayList<>();
//排序后的
List<ProRole> proRoles1 = new ArrayList<>();
if (proMembers.size()!=0) {
if (CollectionUtil.isNotEmpty(proMembers)) {
//判断用户是成员是不是有角色 通过成员id来判断
ProRoleMemberExample proRoleMemberExample = new ProRoleMemberExample();
proRoleMemberExample.createCriteria().andMemberIdEqualTo(proMembers.get(0).getId());
List<ProRoleMember> proRoleMembers = proRoleMemberMapper.selectByExample(proRoleMemberExample);
if (ObjectUtil.isNotNull(proRoleMembers)) {
if (CollectionUtil.isNotEmpty(proRoleMembers)) {
//用户不是关注者 否 不是才是关注者
//用户有角色 角色是那个 查询当前用户所属的角色
Long roleId1 = 0L;
@ -83,7 +85,7 @@ public class ProRoleService implements IProRoleService {
Long roleId = proRoleMember.getRoleId();//查询当前用户所属的角色 后端 前端
roleIds.add(roleId);
ProRoleRepulsionExample proRoleRepulsionExample = new ProRoleRepulsionExample();
proRoleRepulsionExample.createCriteria().andRoleIdEqualTo(roleId);
proRoleRepulsionExample.createCriteria().andRepulsionRoleIdEqualTo(roleId);
List<ProRoleRepulsion> proRoleRepulsions = proRoleRepulsionMapper.selectByExample(proRoleRepulsionExample);
for (ProRoleRepulsion proRoleRepulsion : proRoleRepulsions) {
roleId1 = proRoleRepulsion.getRoleId();//对自己不可见的角色
@ -110,7 +112,6 @@ public class ProRoleService implements IProRoleService {
}
}
}
//进行排序 把项目经理拿出来
Iterator<ProRole> iterator5 = proRoles.iterator();
while (iterator5.hasNext()) {
@ -121,7 +122,6 @@ public class ProRoleService implements IProRoleService {
iterator5.remove(); //把项目经理角色拿出去
}
}
/*for (int i = 0; i < proRoles.size(); i++) {
String PM = labelDao.queryIsPm(proRoles.get(i).getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是项目经理
@ -162,228 +162,155 @@ public class ProRoleService implements IProRoleService {
proRoles1.add(proRoles.get(i));
}
}else{ //用户是游客 是 查询所有 未设置对谁不可见信息 的角色 通过角色id去查找 role_id
ProRoleExample proRoleExample = new ProRoleExample();
proRoleExample.createCriteria().andProjectIdEqualTo(param.getProjectId());
proRoles = proRoleMapper.selectByExample(proRoleExample);
if (ObjectUtil.isNotNull(proRoles)) {
Iterator<ProRole> iterator = proRoles.iterator();
while (iterator.hasNext()) {
ProRole proRole = iterator.next();
//查看是否设置不可见
ProRoleRepulsionExample proRoleRepulsionExample = new ProRoleRepulsionExample();
proRoleRepulsionExample.createCriteria().andRepulsionRoleIdEqualTo(proRole.getId());
List<ProRoleRepulsion> proRoleRepulsions = proRoleRepulsionMapper.selectByExample(proRoleRepulsionExample);
if (proRoleRepulsions.size()!=0) {
//查到就是设置过了 移除
iterator.remove();
}
}
Iterator<ProRole> iterator1 = proRoles.iterator();
while (iterator1.hasNext()) {
ProRole proRole = iterator1.next();
String PM = labelDao.queryIsPm(proRole.getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是项目经理
proRoles1.add(proRole);
iterator1.remove(); //把项目经理角色拿出去
}
}
//进行排序 把我的角色拿出来 本来就没有我的角色 不需要判断
//进行排序 把其他角色拿出来
for (int i = 0; i < proRoles.size(); i++) {
proRoles1.add(proRoles.get(i));
}
}
}
} else { //用户是游客 是 查询所有 未设置对谁不可见信息 的角色 通过角色id去查找 role_id
ProRoleExample proRoleExample = new ProRoleExample();
proRoleExample.createCriteria().andProjectIdEqualTo(param.getProjectId());
proRoles = proRoleMapper.selectByExample(proRoleExample);
if (ObjectUtil.isNotNull(proRoles)) {
/*for (ProRole proRole : proRoles) {
ProRoleRepulsionExample proRoleRepulsionExample = new ProRoleRepulsionExample();
proRoleRepulsionExample.createCriteria().andRoleIdEqualTo(proRole.getId());
List<ProRoleRepulsion> proRoleRepulsions = proRoleRepulsionMapper.selectByExample(proRoleRepulsionExample);
if (ObjectUtil.isNotNull(proRoleRepulsions)) {
//查到就是设置过了 移除
proRoles.remove(proRole);
}
}*/
Iterator<ProRole> iterator = proRoles.iterator();
while (iterator.hasNext()) {
ProRole proRole = iterator.next();
//查看是否设置不可见
ProRoleRepulsionExample proRoleRepulsionExample = new ProRoleRepulsionExample();
proRoleRepulsionExample.createCriteria().andRoleIdEqualTo(proRole.getId());
proRoleRepulsionExample.createCriteria().andRepulsionRoleIdEqualTo(proRole.getId());
List<ProRoleRepulsion> proRoleRepulsions = proRoleRepulsionMapper.selectByExample(proRoleRepulsionExample);
if (proRoleRepulsions.size()!=0) {
//查到就是设置过了 移除
iterator.remove();
}
}
//进行排序 把项目经理拿出来
/*for (int i = 0; i < proRoles.size(); i++) {
String PM = labelDao.queryIsPm(proRoles.get(i).getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是项目经理
ProRole proRole = proRoles.get(i);
proRoles1.add(proRole);
proRoles.remove(proRole); //把项目经理角色拿出去
}
}*/
Iterator<ProRole> iterator1 = proRoles.iterator();
while (iterator1.hasNext()) {
ProRole proRole = iterator1.next();
String PM = labelDao.queryIsPm(proRole.getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是项目经理
proRoles1.add(proRole);
proRoles.remove(proRole); //把项目经理角色拿出去
iterator1.remove(); //把项目经理角色拿出去
}
}
//进行排序 把我的角色拿出来 本来就没有我的角色 不需要判断
/*for (int i = 0; i < proRoles.size(); i++) {
//是否是mine 判断是不是自己的角色// 0否 1是
if(!roleIds.isEmpty()){
for (Long roleId : roleIds) {
Long id = proRoles.get(i).getId();
if (roleId.equals(id)) {
proRoles1.add(proRoles.get(i));
proRoles.remove(proRoles.get(i)); //把我的角色拿出去
}
}
}
}*/
/*for (int i = 0; i < proRoles.size(); i++) {
//是否是mine 判断是不是自己的角色// 0否 1是
if(!roleIds.isEmpty()){
Iterator<Long> iterator2 = roleIds.iterator();
while (iterator2.hasNext()) {
Long roleId = iterator2.next();
Long id = proRoles.get(i).getId();
if (roleId.equals(id)) {
proRoles1.add(proRoles.get(i));
proRoles.remove(proRoles.get(i)); //把我的角色拿出去
}
}
}
}*/
//进行排序 把其他角色拿出来
for (int i = 0; i < proRoles.size(); i++) {
proRoles1.add(proRoles.get(i));
}
}
}
//根据项目id和userId查询当前用户配置的角色栏信息
ProRoleShowExample proRoleShowExample = new ProRoleShowExample();
proRoleShowExample.createCriteria().andProjectIdEqualTo(param.getProjectId()).andUserIdEqualTo(userId);
List<ProRoleShow> proRoleShows = proRoleShowMapper.selectByExample(proRoleShowExample);
//循环所有的角色,判断是否在配置信息内 将角色信息放入“显示角色”的数组内 将角色放入“隐藏角色"数组
if (proRoleShows.size()!=0) {
for (int i = 0; i < proRoles1.size(); i++) {
for (ProRoleShow proRoleShow : proRoleShows) {
Long roleId = proRoleShow.getRoleId(); //配置信息的id
Long id = proRoles1.get(i).getId(); //项目下的角色
if(roleId.equals(id)){ //一样就是配置过
RoleVo.RoleInfo RoleInfo1 = new RoleVo.RoleInfo();
RoleInfo1.setId(proRoles1.get(i).getId());
RoleInfo1.setName(proRoles1.get(i).getName());
//是否是pm 0否 1 是 //通过标签来定义 5 和 2 34是
//通过角色表里面的标签id 去 标签表查询 label_type_id =5 在去标签类型表查5 和 level =2
String PM = labelDao.queryIsPm(proRoles1.get(i).getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是
RoleInfo1.setPm(1L);
} else {
RoleInfo1.setPm(0L);
}
//是否是mine 判断是不是自己的角色// 0否 1是
if(roleIds.size()!=0){
for (Long roleId1 : roleIds) {
Long id1 = proRoles1.get(i).getId();
if (roleId1.equals(id1)) {
RoleInfo1.setMine(1L);
} else {
RoleInfo1.setMine(0L);
}
}
}else {
RoleInfo1.setMine(0L);
}
//排序
RoleInfo1.setSequence(Long.valueOf(proRoleShow.getSequence()));
visibleList.add(RoleInfo1);
}else{
//未配置过了
RoleVo.RoleInfo RoleInfo1 = new RoleVo.RoleInfo();
RoleInfo1.setId(proRoles1.get(i).getId());
RoleInfo1.setName(proRoles1.get(i).getName());
//是否是pm
String PM = labelDao.queryIsPm(proRoles1.get(i).getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是
RoleInfo1.setPm(1L);
} else {
RoleInfo1.setPm(0L);
}
/*//是否是mine 判断是不是自己的角色// 0否 1是
for (Long roleId1 : roleIds) {
Long id1 = proRoles1.get(i).getId();
if (roleId1.equals(id1)) {
RoleInfo1.setMine(1L);
} else {
RoleInfo1.setMine(0L);
}
}*/
//是否是mine 判断是不是自己的角色// 0否 1是
if(roleIds.size()!=0){
for (Long roleId1 : roleIds) {
Long id1 = proRoles1.get(i).getId();
if (roleId1.equals(id1)) {
RoleInfo1.setMine(1L);
} else {
RoleInfo1.setMine(0L);
}
}
}else {
RoleInfo1.setMine(0L);
}
//排序
RoleInfo1.setSequence((long) i+1);
invisibleList.add(RoleInfo1);
if (proRoleShows.size()!=0) { //配置过的
//通过
Iterator<ProRole> iterator = proRoles1.iterator();
while (iterator.hasNext()) {
ProRole proRole = iterator.next();
//用户下的角色id 去除 proRoleShows下的
Long id = proRole.getId();
for (int i = 0; i < proRoleShows.size(); i++) {
Long roleId = proRoleShows.get(i).getRoleId();
if(id.equals(roleId)){
iterator.remove();
}
}
/*ProRoleShowExample proRoleShowExample1 = new ProRoleShowExample();
proRoleShowExample.createCriteria().andRoleIdEqualTo(proRoles1.get(i).getId()).andProjectIdEqualTo(param.getProjectId()).andUserIdEqualTo(userId);
List<ProRoleShow> proRoleShows1 = proRoleShowMapper.selectByExample(proRoleShowExample1);*/
/*if (ObjectUtil.isNotNull(proRoleShows1)) {
//配置过了 将角色信总放入“显示角色"的数组内
RoleVo.RoleInfo RoleInfo1 = new RoleVo.RoleInfo();
RoleInfo1.setId(proRoles1.get(i).getId());
RoleInfo1.setName(proRoles1.get(i).getName());
//是否是pm 0否 1 是 //通过标签来定义 5 和 2 34是
//通过角色表里面的标签id 去 标签表查询 label_type_id =5 在去标签类型表查5 和 level =2
String PM = labelDao.queryIsPm(proRoles1.get(i).getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是
RoleInfo.setPm(1L);
} else {
RoleInfo.setPm(0L);
}
//是否是mine 判断是不是自己的角色// 0否 1是
for (Long roleId : roleIds) {
Long id = proRoles1.get(i).getId();
if (roleId.equals(id)) {
}
//proRoles1里面就是没有设置过的
for (int i = 0; i < proRoles1.size(); i++) {
RoleVo.RoleInfo RoleInfo1 = new RoleVo.RoleInfo();
RoleInfo1.setId(proRoles1.get(i).getId());
RoleInfo1.setName(proRoles1.get(i).getName());
//是否是pm
String PM = labelDao.queryIsPm(proRoles1.get(i).getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是
RoleInfo1.setPm(1L);
} else {
RoleInfo1.setPm(0L);
}
//是否是mine 判断是不是自己的角色// 0否 1是
if(roleIds.size()!=0){
for (Long roleId1 : roleIds) {
Long id1 = proRoles1.get(i).getId();
if (roleId1.equals(id1)) {
RoleInfo1.setMine(1L);
} else {
RoleInfo1.setMine(0L);
}
}
//排序
RoleInfo1.setSequence(Long.valueOf(proRoleShows1.get(0).getSequence()));
visibleList.add(RoleInfo1);
}else {
RoleInfo1.setMine(0L);
}
//排序
RoleInfo1.setSequence((long) i+1);
invisibleList.add(RoleInfo1);
}
//proRoleShows里面就是设置过的
for (ProRoleShow proRoleShow : proRoleShows) {
ProRoleExample proRoleExample = new ProRoleExample();
proRoleExample.createCriteria().andIdEqualTo(proRoleShow.getRoleId());
List<ProRole> proRoles2 = proRoleMapper.selectByExample(proRoleExample);
RoleVo.RoleInfo RoleInfo1 = new RoleVo.RoleInfo();
RoleInfo1.setId(proRoles2.get(0).getId());
RoleInfo1.setName(proRoles2.get(0).getName());
//是否是pm 0否 1 是 //通过标签来定义 5 和 2 34是
//通过角色表里面的标签id 去 标签表查询 label_type_id =5 在去标签类型表查5 和 level =2
String PM = labelDao.queryIsPm(proRoles2.get(0).getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是
RoleInfo1.setPm(1L);
} else {
//未配置过了
RoleInfo.setId(proRoles1.get(i).getId());
RoleInfo.setName(proRoles1.get(i).getName());
//是否是pm
String PM = labelDao.queryIsPm(proRoles1.get(i).getLabelId());
if (StrUtil.isNotEmpty(PM)) { //是
RoleInfo.setPm(1L);
} else {
RoleInfo.setPm(0L);
}
//是否是mine 判断是不是自己的角色// 0否 1是
for (Long roleId : roleIds) {
Long id = proRoles1.get(i).getId();
if (roleId.equals(id)) {
RoleInfo.setMine(1L);
RoleInfo1.setPm(0L);
}
//是否是mine 判断是不是自己的角色// 0否 1是
if(roleIds.size()!=0){
for (Long roleId1 : roleIds) {
Long id1 = proRoles2.get(0).getId();
if (roleId1.equals(id1)) {
RoleInfo1.setMine(1L);
} else {
RoleInfo.setMine(0L);
RoleInfo1.setMine(0L);
}
}
//排序
RoleInfo.setSequence((long) i);
invisibleList.add(RoleInfo);
}*/
}else {
RoleInfo1.setMine(0L);
}
//排序
RoleInfo1.setSequence(Long.valueOf(proRoleShow.getSequence()));
visibleList.add(RoleInfo1);
}
} else {
//循环查询到的角色,放入“显示角色”的数组内 数组长度大于等于5
@ -413,7 +340,6 @@ public class ProRoleService implements IProRoleService {
}else {
RoleInfo1.setMine(0L);
}
//排序
RoleInfo1.setSequence((long) i+1);
visibleList.add(RoleInfo1);
@ -421,7 +347,6 @@ public class ProRoleService implements IProRoleService {
}
if (proRoles1.size() >= 6) {
for (int i = 0; i < 5; i++) {
RoleVo.RoleInfo RoleInfo1 = new RoleVo.RoleInfo();
RoleInfo1.setId(proRoles1.get(i).getId());

Loading…
Cancel
Save