Browse Source

20210423

recovery
zy_Java 4 years ago
parent
commit
bb43184ae2
  1. 2
      tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java
  2. 91
      tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
  3. 4
      tall/src/main/resources/application.yml

2
tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java

@ -41,7 +41,7 @@ public class RoleDto {
@ApiModelProperty("角色id")
private Long roleId;
@ApiModelProperty("成员Id")
private Long memberId;
private List<Long> memberId;
}
@Data

91
tall/src/main/java/com/ccsens/tall/service/ProRoleService.java

@ -647,44 +647,73 @@ public class ProRoleService implements IProRoleService {
@Override
public ProjectVo.RoleInfo saveMemberByRole(Long currentUserId, RoleDto.SaveMember saveMember) {
//检查成员是否为空
ProMember member = proMemberDao.selectByPrimaryKey(saveMember.getMemberId());
if (ObjectUtil.isNull(member)) {
throw new BaseException(CodeEnum.NOT_MEMBER);
ProRole role = proRoleDao.selectByPrimaryKey(saveMember.getRoleId());
if (ObjectUtil.isNull(role)) {
throw new BaseException(CodeEnum.ROLE_NOT_FOUND);
}
//检查角色是否为PM 是的话则需要更高权限
boolean isPm = isPmByRoleId(saveMember.getRoleId());
//检查当前用户的权限是否可以修改
int power = selectPowerByRoleName(currentUserId, member.getProjectId());
int power = selectPowerByRoleName(currentUserId, role.getProjectId());
if ((isPm && power < WebConstant.ROLE_POWER.ADMIN_POWER.value) || (!isPm && power < WebConstant.ROLE_POWER.OPERATION_POWER.value)) {
throw new BaseException(CodeEnum.NOT_POWER);
}
if(CollectionUtil.isNotEmpty(saveMember.getMemberId())){
//删除以前关联的成员
ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
memberRoleExample.createCriteria().andRoleIdEqualTo(saveMember.getRoleId());
List<ProMemberRole> memberRoleList = memberRoleDao.selectByExample(memberRoleExample);
if(CollectionUtil.isNotEmpty(memberRoleList)){
memberRoleList.forEach(proMemberRole -> {
proMemberRole.setRecStatus((byte) 2);
memberRoleDao.updateByPrimaryKeySelective(proMemberRole);
});
}
//添加当前新关联的成员
saveMember.getMemberId().forEach(memberId -> {
//添加成员与角色关联信息
ProMemberRole proMemberRole = new MemberRoleDto();
proMemberRole.setId(snowflake.nextId());
proMemberRole.setRoleId(saveMember.getRoleId());
proMemberRole.setMemberId(member.getId());
proMemberRole.setMemberId(memberId);
memberRoleDao.insertSelective(proMemberRole);
});
}
// //检查成员是否为空
// ProMember member = proMemberDao.selectByPrimaryKey(saveMember.getMemberId());
// if (ObjectUtil.isNull(member)) {
// throw new BaseException(CodeEnum.NOT_MEMBER);
// }
//
// //添加成员与角色关联信息
// ProMemberRole proMemberRole = new MemberRoleDto();
// proMemberRole.setId(snowflake.nextId());
// proMemberRole.setRoleId(saveMember.getRoleId());
// proMemberRole.setMemberId(member.getId());
// memberRoleDao.insertSelective(proMemberRole);
return getRoleInfoByRoleId(saveMember.getRoleId());
}
@Override
public void deleteMemberByRole(Long currentUserId, RoleDto.SaveMember saveMember) {
//检查参数是否正确
ProMember member = proMemberDao.selectByPrimaryKey(saveMember.getMemberId());
if (ObjectUtil.isNull(member)) {
throw new BaseException(CodeEnum.NOT_MEMBER);
ProRole role = proRoleDao.selectByPrimaryKey(saveMember.getRoleId());
if (ObjectUtil.isNull(role)) {
throw new BaseException(CodeEnum.ROLE_NOT_FOUND);
}
//检查被操作的角色是否是项目PM
boolean isPm = isPmByRoleId(saveMember.getRoleId());
//检查当前用户的权限是否可以修改
int power = selectPowerByRoleName(currentUserId, member.getProjectId());
int power = selectPowerByRoleName(currentUserId, role.getProjectId());
if ((isPm && power < WebConstant.ROLE_POWER.ADMIN_POWER.value) || (!isPm && power < WebConstant.ROLE_POWER.OPERATION_POWER.value)) {
throw new BaseException(CodeEnum.NOT_POWER);
}
if(CollectionUtil.isNotEmpty(saveMember.getMemberId())){
saveMember.getMemberId().forEach(memberId -> {
//删除角色与成员的关联信息
ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
memberRoleExample.createCriteria().andRoleIdEqualTo(saveMember.getRoleId()).andMemberIdEqualTo(member.getId());
memberRoleExample.createCriteria().andRoleIdEqualTo(saveMember.getRoleId()).andMemberIdEqualTo(memberId);
List<ProMemberRole> memberRoleList = memberRoleDao.selectByExample(memberRoleExample);
if (CollectionUtil.isEmpty(memberRoleList)) {
throw new BaseException(CodeEnum.NOT_MEMBER);
@ -693,10 +722,29 @@ public class ProRoleService implements IProRoleService {
memberRole.setRecStatus((byte) 2);
memberRoleDao.updateByPrimaryKeySelective(memberRole);
}
});
}
// //检查参数是否正确
// ProMember member = proMemberDao.selectByPrimaryKey(saveMember.getMemberId());
// if (ObjectUtil.isNull(member)) {
// throw new BaseException(CodeEnum.NOT_MEMBER);
// }
//
// //删除角色与成员的关联信息
// ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
// memberRoleExample.createCriteria().andRoleIdEqualTo(saveMember.getRoleId()).andMemberIdEqualTo(member.getId());
// List<ProMemberRole> memberRoleList = memberRoleDao.selectByExample(memberRoleExample);
// if (CollectionUtil.isEmpty(memberRoleList)) {
// throw new BaseException(CodeEnum.NOT_MEMBER);
// }
// for (ProMemberRole memberRole : memberRoleList) {
// memberRole.setRecStatus((byte) 2);
// memberRoleDao.updateByPrimaryKeySelective(memberRole);
// }
}
@Override
// public TaskVo.ProTaskInfo queryByProjectVirtualRole(RoleDto.ProjectId projectId) {
public List<TaskVo.NormalTask> queryByProjectVirtualRole(RoleDto.ProjectId projectId) {
TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo();
List<TaskVo.NormalTask> taskList = new ArrayList<>();
@ -850,13 +898,15 @@ public class ProRoleService implements IProRoleService {
//获取经理得id
ProRoleExample proRoleExample=new ProRoleExample();
proRoleExample.createCriteria().andRecStatusEqualTo((byte)0).andNameEqualTo(WebConstant.ROLE_NAME.PM.value).andParentIdEqualTo(0L).andProjectIdEqualTo(param.getParam().getProjectId());
//一级角色项目经理
List<Long> jili=proRoleMapper.selectByExample(proRoleExample).stream().map(action->action.getId()).collect(Collectors.toList());
//二级角色项目经理
ProRoleExample proRoleExample1=new ProRoleExample();
proRoleExample1.createCriteria().andRecStatusEqualTo((byte)0).andParentIdIn(jili);
List<ProRole> proRoles = proRoleMapper.selectByExample(proRoleExample1);
List<Long> jili1=proRoles.stream().map(action->action.getId()).collect(Collectors.toList());
// //一级角色项目经理
// List<Long> jili=proRoleMapper.selectByExample(proRoleExample).stream().map(action->action.getId()).collect(Collectors.toList());
// //二级角色项目经理
// ProRoleExample proRoleExample1=new ProRoleExample();
// proRoleExample1.createCriteria().andRecStatusEqualTo((byte)0).andParentIdIn(jili);
// List<ProRole> proRoles = proRoleMapper.selectByExample(proRoleExample1);
// List<Long> jili1=proRoles.stream().map(action->action.getId()).collect(Collectors.toList());
List<Long> jili1 = proRoleDao.getPmByByProjectId(param.getParam().getProjectId());
if(param.getParam().getIsShow()){
//展示的 增加的 不需要考虑是否为经理
@ -866,7 +916,6 @@ public class ProRoleService implements IProRoleService {
if((proMemberRoleShows.size()+param.getParam().getRoleIds().size())>10){
throw new BaseException(CodeEnum.CHAOGUOSHI);
}else {
if(param.getParam().getRoleIds().size()>0){
//查一下目前最大得排序是多少
Integer[] seq=new Integer[]{proMemberRoleShows.stream().mapToInt(action->action.getSequence()).max().getAsInt()};

4
tall/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: dev
include: util-dev,common
active: test
include: util-test,common

Loading…
Cancel
Save