|
|
@@ -154,8 +154,10 @@ public class OrganizationUserServiceImpl extends SuperService {
|
|
|
String projectOid = param.getProjectOid();
|
|
|
// 判断是否存在
|
|
|
UserAccount userAccount = userCountDao.findTopByLoginName(loginName);
|
|
|
+
|
|
|
if (ObjectUtils.isNotEmpty(userAccount)) {
|
|
|
- OrganizationUser tempOrgUser = organizationUserDao.findTopByUserAndProjectOid(userAccount, projectOid);
|
|
|
+ // 判断是否存在
|
|
|
+ OrganizationUser tempOrgUser = organizationUserDao.findTopByUserAndProjectOidAndIsOrg(userAccount, projectOid, Boolean.TRUE);
|
|
|
if (ObjectUtils.isNotEmpty(tempOrgUser)) {
|
|
|
if (ObjectUtils.isEmpty(temp) || !temp.getId().equals(tempOrgUser.getId())) {
|
|
|
return ResultContent.buildFail(String.format("用户已加入该项目:%s", loginName));
|
|
|
@@ -236,7 +238,8 @@ public class OrganizationUserServiceImpl extends SuperService {
|
|
|
|
|
|
OrganizationUser codeTemp = null;
|
|
|
if (StringUtils.isNotEmpty(param.getCode())) {
|
|
|
- codeTemp = organizationUserDao.findTopByCodeAndOrganization(param.getCode(), organization);
|
|
|
+ // code 在整个项目部重复
|
|
|
+ codeTemp = organizationUserDao.findTopByCodeAndProjectOid(param.getCode(), projectOid);
|
|
|
}
|
|
|
OrganizationUser organizationUser = null;
|
|
|
if (StringUtils.isNotEmpty(param.getId())) {
|
|
|
@@ -357,6 +360,7 @@ public class OrganizationUserServiceImpl extends SuperService {
|
|
|
List<OrganizationUser> oldList = organizationUserDao.findByOrganizationAndIsAdmin(organization, Boolean.TRUE);
|
|
|
|
|
|
List<String> newIds = new ArrayList<>();
|
|
|
+ // 得到项目的管理员角色
|
|
|
List<Role> adminRole = roleServiceImpl.getOrgAdminRoles(organization.getOid());
|
|
|
for (UserAccount userAccount : userAccounts) {
|
|
|
OrgBindUserParam _param = new OrgBindUserParam();
|
|
|
@@ -365,7 +369,7 @@ public class OrganizationUserServiceImpl extends SuperService {
|
|
|
_param.setIsAdmin(Boolean.TRUE);
|
|
|
_param.setRoleIds(adminRole.stream().map(it -> it.getId()).collect(Collectors.toList()));
|
|
|
_param.setProjectOid(organization.getOid());
|
|
|
- OrganizationUser temp = buildOrgUserInfo(_param);
|
|
|
+ OrganizationUser temp = buildProjectManagerUserInfo(_param);
|
|
|
if (temp != null) {
|
|
|
newIds.add(temp.getId());
|
|
|
}
|
|
|
@@ -401,12 +405,12 @@ public class OrganizationUserServiceImpl extends SuperService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 用户绑定机构
|
|
|
+ * 项目的管理员绑定到项目中
|
|
|
*
|
|
|
* @param param
|
|
|
* @return
|
|
|
*/
|
|
|
- private OrganizationUser buildOrgUserInfo(OrgBindUserParam param) {
|
|
|
+ private OrganizationUser buildProjectManagerUserInfo(OrgBindUserParam param) {
|
|
|
Organization organization = param.getOrganization();
|
|
|
UserAccount userAccount = param.getUserAccount();
|
|
|
Boolean isAdmin = param.getIsAdmin();
|
|
|
@@ -419,10 +423,12 @@ public class OrganizationUserServiceImpl extends SuperService {
|
|
|
organizationUser = new OrganizationUser();
|
|
|
organizationUser.setState(UserState.Normal);
|
|
|
organizationUser.setCode("");
|
|
|
+ initEntityNoCheckOid(organizationUser);
|
|
|
} else {
|
|
|
if (ObjectUtils.isNotEmpty(organizationUser.getRoles())) {
|
|
|
roles = organizationUser.getRoles();
|
|
|
}
|
|
|
+ initUpdateEntity(organizationUser);
|
|
|
}
|
|
|
if (ObjectUtils.isNotEmpty(param.getRoleIds())) {
|
|
|
roles.addAll(roleDao.findByIdIn(param.getRoleIds()));
|
|
|
@@ -438,13 +444,16 @@ public class OrganizationUserServiceImpl extends SuperService {
|
|
|
organizationUser.setIsAdmin(isAdmin);
|
|
|
|
|
|
organizationUser.setAboutOid(organization.getOid());
|
|
|
- organizationUser.setAuthType(organization.getAuthType());
|
|
|
-
|
|
|
organizationUser.setProjectOid(param.getProjectOid());
|
|
|
if (ObjectUtils.isNotEmpty(roles)) {
|
|
|
roles = roles.stream().distinct().collect(Collectors.toUnmodifiableList());
|
|
|
}
|
|
|
organizationUser.setRoles(roles);
|
|
|
+ if (organization.getAuthType() == AuthType.Platform || organization.getAuthType() == AuthType.Project) {
|
|
|
+ organizationUser.setIsOrg(Boolean.FALSE);
|
|
|
+ } else {
|
|
|
+ organizationUser.setIsOrg(Boolean.TRUE);
|
|
|
+ }
|
|
|
organizationUserDao.save(organizationUser);
|
|
|
|
|
|
// 绑定角色
|