|
|
@ -32,7 +32,7 @@ import java.util.List; |
|
|
|
*/ |
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) |
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|
|
|
public class ProMemberService implements IProMemberService { |
|
|
|
@Resource |
|
|
|
private ProMemberDao proMemberDao; |
|
|
@ -67,26 +67,26 @@ public class ProMemberService implements IProMemberService { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
*该用户是否是角色下的成员 |
|
|
|
* 该用户是否是角色下的成员 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public Boolean userIsBelongRole(Long userId, Long roleId,Integer imitation) { |
|
|
|
public Boolean userIsBelongRole(Long userId, Long roleId, Integer imitation) { |
|
|
|
boolean flag = false; |
|
|
|
//如果该角色是全体成员返回true
|
|
|
|
ProRole role = proRoleDao.selectByPrimaryKey(roleId); |
|
|
|
if(ObjectUtil.isNull(role)){ |
|
|
|
if (ObjectUtil.isNull(role)) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
if(role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)){ |
|
|
|
if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)) { |
|
|
|
flag = true; |
|
|
|
} |
|
|
|
if(imitation != null && imitation == 1){ |
|
|
|
if (imitation != null && imitation == 1) { |
|
|
|
SysImitationExample sysImitationExample = new SysImitationExample(); |
|
|
|
sysImitationExample.createCriteria().andUserIdEqualTo(userId).andRoleIdEqualTo(roleId); |
|
|
|
if(imitationMapper.countByExample(sysImitationExample) != 0){ |
|
|
|
if (imitationMapper.countByExample(sysImitationExample) != 0) { |
|
|
|
flag = true; |
|
|
|
} |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
ProMemberRoleExample memberRoleExample = new ProMemberRoleExample(); |
|
|
|
memberRoleExample.createCriteria().andRoleIdEqualTo(roleId); |
|
|
|
List<ProMemberRole> memberRoleList = proMemberRoleDao.selectByExample(memberRoleExample); |
|
|
@ -106,21 +106,21 @@ public class ProMemberService implements IProMemberService { |
|
|
|
* 获取用户在项目中所属的所有角色 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<ProRole> selectRolesByUserIdAndProjectId(Long userId, Long projectId,Integer imitation) { |
|
|
|
public List<ProRole> selectRolesByUserIdAndProjectId(Long userId, Long projectId, Integer imitation) { |
|
|
|
List<ProRole> roleList = new ArrayList<>(); |
|
|
|
if(imitation != null && imitation == 1){ |
|
|
|
if (imitation != null && imitation == 1) { |
|
|
|
SysImitationExample imitationExample = new SysImitationExample(); |
|
|
|
imitationExample.createCriteria().andProjectIdEqualTo(projectId).andUserIdEqualTo(userId); |
|
|
|
List<SysImitation> sysImitationList = imitationMapper.selectByExample(imitationExample); |
|
|
|
if(CollectionUtil.isNotEmpty(sysImitationList)){ |
|
|
|
for(SysImitation sysImitation: sysImitationList){ |
|
|
|
if (CollectionUtil.isNotEmpty(sysImitationList)) { |
|
|
|
for (SysImitation sysImitation : sysImitationList) { |
|
|
|
ProRole role = proRoleDao.selectByPrimaryKey(sysImitation.getRoleId()); |
|
|
|
if(ObjectUtil.isNotNull(role)){ |
|
|
|
if (ObjectUtil.isNotNull(role)) { |
|
|
|
roleList.add(role); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
roleList = proRoleDao.selectRolesByProjectIdAndUserId(projectId, userId); |
|
|
|
if (CollectionUtil.isEmpty(roleList)) { |
|
|
|
ProRoleExample roleExample = new ProRoleExample(); |
|
|
@ -136,11 +136,11 @@ public class ProMemberService implements IProMemberService { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public MemberVo.MemberInfo getProMemberByProjectIdAndUserId(Long projectId, Long currentUserId) { |
|
|
|
return proMemberDao.selectByProjectIdAndUserId(projectId,currentUserId); |
|
|
|
return proMemberDao.selectByProjectIdAndUserId(projectId, currentUserId); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<MemberVo.MemberInfo> getAuthedMemberByProjectId(Long projectId) { |
|
|
|
return proMemberDao.selectAuthedMemberByProjectId(projectId); |
|
|
@ -155,7 +155,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
ProMemberExample memberExample = new ProMemberExample(); |
|
|
|
memberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId); |
|
|
|
List<ProMember> proMemberList = proMemberDao.selectByExample(memberExample); |
|
|
|
if(CollectionUtil.isNotEmpty(proMemberList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(proMemberList)) { |
|
|
|
member = proMemberList.get(0); |
|
|
|
} |
|
|
|
return member; |
|
|
@ -165,12 +165,12 @@ public class ProMemberService implements IProMemberService { |
|
|
|
* 查找角色下的所有成员 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<ProMember> selectByRole(Long roleId){ |
|
|
|
public List<ProMember> selectByRole(Long roleId) { |
|
|
|
ProRole role = proRoleDao.selectByPrimaryKey(roleId); |
|
|
|
if(ObjectUtil.isNull(role)){ |
|
|
|
if (ObjectUtil.isNull(role)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_ROLE); |
|
|
|
} |
|
|
|
if(role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)){ |
|
|
|
if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)) { |
|
|
|
ProMemberExample proMemberExample = new ProMemberExample(); |
|
|
|
proMemberExample.createCriteria().andProjectIdEqualTo(role.getProjectId()); |
|
|
|
return proMemberDao.selectByExample(proMemberExample); |
|
|
@ -192,6 +192,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询用户在项目中的成员信息 |
|
|
|
* |
|
|
|
* @param userId 用户id |
|
|
|
* @param projectId 项目id |
|
|
|
* @return 返回成员信息 |
|
|
@ -202,15 +203,16 @@ public class ProMemberService implements IProMemberService { |
|
|
|
ProMemberExample memberExample = new ProMemberExample(); |
|
|
|
memberExample.createCriteria().andProjectIdEqualTo(projectId).andUserIdEqualTo(userId); |
|
|
|
List<ProMember> proMemberList = proMemberDao.selectByExample(memberExample); |
|
|
|
if(CollectionUtil.isNotEmpty(proMemberList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(proMemberList)) { |
|
|
|
memberInfo = new MemberVo.MemberInfo(); |
|
|
|
BeanUtil.copyProperties(proMemberList.get(0),memberInfo); |
|
|
|
BeanUtil.copyProperties(proMemberList.get(0), memberInfo); |
|
|
|
} |
|
|
|
return memberInfo; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 游戏中查询用户的信息 |
|
|
|
* |
|
|
|
* @param userId 用户id |
|
|
|
* @return 返回成员信息 |
|
|
|
*/ |
|
|
@ -218,7 +220,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
public MemberVo.MemberInfo getUserInfoByUserId(Long userId) { |
|
|
|
MemberVo.MemberInfo memberInfo = null; |
|
|
|
SysUser user = userDao.selectByPrimaryKey(userId); |
|
|
|
if(ObjectUtil.isNotNull(user)){ |
|
|
|
if (ObjectUtil.isNotNull(user)) { |
|
|
|
memberInfo = new MemberVo.MemberInfo(); |
|
|
|
memberInfo.setUserId(user.getId()); |
|
|
|
memberInfo.setNickname(user.getNickname()); |
|
|
@ -231,7 +233,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
@Override |
|
|
|
public List<Long> getMemberIdByProjectId(Long projectId) { |
|
|
|
List<Long> memberIdList = null; |
|
|
|
if(ObjectUtil.isNotNull(projectId)) { |
|
|
|
if (ObjectUtil.isNotNull(projectId)) { |
|
|
|
ProMemberExample memberExample = new ProMemberExample(); |
|
|
|
memberExample.createCriteria().andProjectIdEqualTo(projectId).andUserIdNotEqualTo(0L); |
|
|
|
List<ProMember> proMemberList = proMemberDao.selectByExample(memberExample); |
|
|
@ -256,7 +258,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
ProMemberExample memberExample = new ProMemberExample(); |
|
|
|
memberExample.createCriteria().andProjectIdEqualTo(saveMember.getProjectId()).andPhoneEqualTo(saveMember.getPhone()); |
|
|
|
List<ProMember> memberList = proMemberDao.selectByExample(memberExample); |
|
|
|
if(CollectionUtil.isNotEmpty(memberList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(memberList)) { |
|
|
|
throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE); |
|
|
|
} |
|
|
|
//通过手机号查找用户
|
|
|
@ -271,13 +273,14 @@ public class ProMemberService implements IProMemberService { |
|
|
|
|
|
|
|
//获取奖惩干系人
|
|
|
|
Long stakeholderId = null; |
|
|
|
if(StrUtil.isNotEmpty(saveMember.getStakeholderPhone())){ |
|
|
|
if (StrUtil.isNotEmpty(saveMember.getStakeholderName())){ |
|
|
|
if (StrUtil.isNotEmpty(saveMember.getStakeholderPhone())) { |
|
|
|
ProMemberExample stakeholderExample = new ProMemberExample(); |
|
|
|
stakeholderExample.createCriteria().andProjectIdEqualTo(saveMember.getProjectId()).andPhoneEqualTo(saveMember.getStakeholderPhone()); |
|
|
|
List<ProMember> stakeholderList = proMemberDao.selectByExample(stakeholderExample); |
|
|
|
if(CollectionUtil.isNotEmpty(stakeholderList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(stakeholderList)) { |
|
|
|
stakeholderId = stakeholderList.get(0).getId(); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
//添加奖惩干系人
|
|
|
|
Long stakeholderUserId = userService.selectUserIdByPhone(saveMember.getPhone()); |
|
|
|
ProMember stakeholder = new ProMember(); |
|
|
@ -294,7 +297,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
proRoleExample.createCriteria().andProjectIdEqualTo(saveMember.getProjectId()) |
|
|
|
.andNameEqualTo(WebConstant.ROLE_NAME.MoneyStakeholder.phase).andParentIdNotEqualTo(0L); |
|
|
|
List<ProRole> roleList = proRoleDao.selectByExample(proRoleExample); |
|
|
|
if(CollectionUtil.isNotEmpty(roleList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(roleList)) { |
|
|
|
//2.然后添加关联信息
|
|
|
|
ProMemberRole proMemberRole = new MemberRoleDto(); |
|
|
|
proMemberRole.setId(snowflake.nextId()); |
|
|
@ -303,6 +306,9 @@ public class ProMemberService implements IProMemberService { |
|
|
|
proMemberRoleDao.insertSelective(proMemberRole); |
|
|
|
} |
|
|
|
} |
|
|
|
}else { |
|
|
|
throw new BaseException(CodeEnum.WBS_NOT_PHONE.addMsg(saveMember.getStakeholderName())); |
|
|
|
} |
|
|
|
} |
|
|
|
proMember.setStakeholderId(stakeholderId); |
|
|
|
proMemberDao.insertSelective(proMember); |
|
|
@ -311,7 +317,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
memberInfo.setPhone(proMember.getPhone()); |
|
|
|
memberInfo.setUserId(proMember.getUserId()); |
|
|
|
//添加成员与角色的关联
|
|
|
|
if(CollectionUtil.isNotEmpty(saveMember.getRoleId())){ |
|
|
|
if (CollectionUtil.isNotEmpty(saveMember.getRoleId())) { |
|
|
|
saveMember.getRoleId().forEach(roleId -> { |
|
|
|
ProMemberRole proMemberRole = new MemberRoleDto(); |
|
|
|
proMemberRole.setId(snowflake.nextId()); |
|
|
@ -321,11 +327,11 @@ public class ProMemberService implements IProMemberService { |
|
|
|
}); |
|
|
|
} |
|
|
|
//添加用户关注项目信息
|
|
|
|
if(ObjectUtil.isNotNull(userId)) { |
|
|
|
if (ObjectUtil.isNotNull(userId)) { |
|
|
|
//查找此用户是否以关注项目
|
|
|
|
UserAttentionExample attentionExample = new UserAttentionExample(); |
|
|
|
attentionExample.createCriteria().andProjectIdEqualTo(saveMember.getProjectId()).andUserIdEqualTo(userId); |
|
|
|
if(userAttentionDao.countByExample(attentionExample) <= 0){ |
|
|
|
if (userAttentionDao.countByExample(attentionExample) <= 0) { |
|
|
|
UserAttention userAttention = new UserAttention(); |
|
|
|
userAttention.setId(snowflake.nextId()); |
|
|
|
userAttention.setUserId(userId); |
|
|
@ -343,7 +349,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
public void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember) { |
|
|
|
//查找要删除的成员
|
|
|
|
ProMember proMember = proMemberDao.selectByPrimaryKey(deleteMember.getMemberId()); |
|
|
|
if(ObjectUtil.isNull(proMember)){ |
|
|
|
if (ObjectUtil.isNull(proMember)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_MEMBER); |
|
|
|
} |
|
|
|
//检查操作者的权限
|
|
|
@ -358,7 +364,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
ProMemberRoleExample proMemberRoleExample = new ProMemberRoleExample(); |
|
|
|
proMemberRoleExample.createCriteria().andMemberIdEqualTo(proMember.getId()); |
|
|
|
List<ProMemberRole> proMemberRoleList = proMemberRoleDao.selectByExample(proMemberRoleExample); |
|
|
|
if(CollectionUtil.isNotEmpty(proMemberRoleList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(proMemberRoleList)) { |
|
|
|
proMemberRoleList.forEach(proMemberRole -> { |
|
|
|
proMemberRole.setRecStatus((byte) 2); |
|
|
|
proMemberRoleDao.updateByPrimaryKeySelective(proMemberRole); |
|
|
@ -368,7 +374,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
UserAttentionExample userAttentionExample = new UserAttentionExample(); |
|
|
|
userAttentionExample.createCriteria().andUserIdEqualTo(proMember.getUserId()).andProjectIdEqualTo(proMember.getProjectId()); |
|
|
|
List<UserAttention> userAttentionList = userAttentionDao.selectByExample(userAttentionExample); |
|
|
|
if(CollectionUtil.isNotEmpty(userAttentionList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(userAttentionList)) { |
|
|
|
userAttentionList.forEach(userAttention -> { |
|
|
|
userAttention.setRecStatus((byte) 2); |
|
|
|
userAttentionDao.updateByPrimaryKeySelective(userAttention); |
|
|
@ -380,7 +386,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
public ProjectVo.MembersByProject updateMemberInfo(Long currentUserId, MemberDto.UpdateMemberInfo updateMemberInfo) throws Exception { |
|
|
|
//查找要修改的成员
|
|
|
|
ProMember proMember = proMemberDao.selectByPrimaryKey(updateMemberInfo.getMemberId()); |
|
|
|
if(ObjectUtil.isNull(proMember)){ |
|
|
|
if (ObjectUtil.isNull(proMember)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_MEMBER); |
|
|
|
} |
|
|
|
//检查操作者的权限,权限不足或不是成员本人,不可以修改
|
|
|
@ -388,21 +394,21 @@ public class ProMemberService implements IProMemberService { |
|
|
|
if (power < 2 && proMember.getUserId().longValue() != currentUserId.longValue()) { |
|
|
|
throw new BaseException(CodeEnum.NOT_POWER); |
|
|
|
} |
|
|
|
if(StrUtil.isNotEmpty(updateMemberInfo.getMemberName())){ |
|
|
|
if (StrUtil.isNotEmpty(updateMemberInfo.getMemberName())) { |
|
|
|
proMember.setNickname(updateMemberInfo.getMemberName()); |
|
|
|
} |
|
|
|
if(StrUtil.isNotEmpty(updateMemberInfo.getPhone())){ |
|
|
|
if (StrUtil.isNotEmpty(updateMemberInfo.getPhone())) { |
|
|
|
proMember.setPhone(updateMemberInfo.getPhone()); |
|
|
|
} |
|
|
|
//修改奖惩干系人
|
|
|
|
Long stakeholderId = null; |
|
|
|
if(ObjectUtil.isNotNull(updateMemberInfo.getStakeholderPhone())){ |
|
|
|
if (ObjectUtil.isNotNull(updateMemberInfo.getStakeholderPhone())) { |
|
|
|
ProMemberExample stakeholderExample = new ProMemberExample(); |
|
|
|
stakeholderExample.createCriteria().andProjectIdEqualTo(proMember.getProjectId()).andPhoneEqualTo(updateMemberInfo.getStakeholderPhone()); |
|
|
|
List<ProMember> stakeholderList = proMemberDao.selectByExample(stakeholderExample); |
|
|
|
if(CollectionUtil.isNotEmpty(stakeholderList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(stakeholderList)) { |
|
|
|
stakeholderId = stakeholderList.get(0).getId(); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
//添加奖惩干系人
|
|
|
|
Long stakeholderUserId = userService.selectUserIdByPhone(updateMemberInfo.getPhone()); |
|
|
|
ProMember stakeholder = new ProMember(); |
|
|
@ -419,7 +425,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
proRoleExample.createCriteria().andProjectIdEqualTo(proMember.getProjectId()) |
|
|
|
.andNameEqualTo(WebConstant.ROLE_NAME.MoneyStakeholder.phase).andParentIdNotEqualTo(0L); |
|
|
|
List<ProRole> roleList = proRoleDao.selectByExample(proRoleExample); |
|
|
|
if(CollectionUtil.isNotEmpty(roleList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(roleList)) { |
|
|
|
//2.然后添加关联信息
|
|
|
|
ProMemberRole proMemberRole = new MemberRoleDto(); |
|
|
|
proMemberRole.setId(snowflake.nextId()); |
|
|
@ -458,7 +464,7 @@ public class ProMemberService implements IProMemberService { |
|
|
|
ProMemberExample proMemberExample = new ProMemberExample(); |
|
|
|
proMemberExample.createCriteria().andProjectIdEqualTo(memberByPhone.getProjectId()).andPhoneEqualTo(memberByPhone.getPhone()); |
|
|
|
List<ProMember> memberList = proMemberDao.selectByExample(proMemberExample); |
|
|
|
if(CollectionUtil.isNotEmpty(memberList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(memberList)) { |
|
|
|
member = new ProjectVo.MemberList(); |
|
|
|
member.setMemberId(memberList.get(0).getId()); |
|
|
|
member.setMemberName(memberList.get(0).getNickname()); |
|
|
|