TRX 1 год назад
Родитель
Сommit
fb58548f4c

+ 2 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/OrganizationUserDao.java

@@ -25,6 +25,8 @@ public interface OrganizationUserDao extends MongoDao<OrganizationUser>, Organiz
     // 查询用户在机构的信息
     OrganizationUser findTopByOrganizationAndUser(Organization organization, UserAccount user);
 
+    OrganizationUser findTopByOrganizationAndUserAndProjectOid(Organization organization, UserAccount user, String projectOid);
+
     OrganizationUser findTopByOrganizationAndUserAndState(Organization organization, UserAccount user, UserState state);
 
     OrganizationUser findTopByCodeAndOrganization(String code, Organization organization);

+ 2 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/OrganizationUser.java

@@ -29,7 +29,8 @@ import java.util.List;
 @Document
 @EqualsAndHashCode(callSuper = true)
 @Builder
-@CompoundIndexes({@CompoundIndex(name = "organization_user", def = "{'organization': 1, 'user': 1 }", unique = true)})
+@CompoundIndexes({@CompoundIndex(name = "organization_user",
+        def = "{'organization': 1, 'user': 1, 'projectOid': 1 }", unique = true)})
 public class OrganizationUser extends SuperMain {
 
     @Schema(description = "机构信息")

+ 8 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationUserServiceImpl.java

@@ -161,6 +161,7 @@ public class OrganizationUserServiceImpl extends SuperService {
         OrgBindUserAllParam orgBindUserAllParam = new OrgBindUserAllParam();
         orgBindUserAllParam.setId(param.getId());
         orgBindUserAllParam.setUserId(userId);
+        // 要绑定的机构
         orgBindUserAllParam.setOrgOid(organization.getOid());
         orgBindUserAllParam.setCode(param.getCode());
         orgBindUserAllParam.setPositionId(param.getPositionId());
@@ -169,6 +170,7 @@ public class OrganizationUserServiceImpl extends SuperService {
         orgBindUserAllParam.setState(param.getState());
         orgBindUserAllParam.setIsAdmin(param.getIsAdmin());
         orgBindUserAllParam.setRemark(param.getRemark());
+        orgBindUserAllParam.setProjectOid(param.getProjectOid());
 
         // 绑定用户到机构
         ResultContent<OrganizationUser> bindUserContent = orgBindUser(orgBindUserAllParam);
@@ -201,7 +203,7 @@ public class OrganizationUserServiceImpl extends SuperService {
         if (ObjectUtils.isEmpty(userAccount)) {
             return ResultContent.buildFail(String.format("用户信息不存在:%s", param.getUserId()));
         }
-
+        String projectOid = param.getProjectOid();
         boolean isUpdate = false;
 
         // 要绑定的机构 (不是项目)
@@ -222,8 +224,11 @@ public class OrganizationUserServiceImpl extends SuperService {
             if (ObjectUtils.isEmpty(organizationUser)) {
                 return ResultContent.buildFail(String.format("数据不存在:%s", param.getId()));
             }
+            if (StringUtils.isEmpty(projectOid)) {
+                projectOid = organizationUser.getProjectOid();
+            }
         } else {
-            organizationUser = organizationUserDao.findTopByOrganizationAndUser(organization, userAccount);
+            organizationUser = organizationUserDao.findTopByOrganizationAndUserAndProjectOid(organization, userAccount, projectOid);
         }
 
         if (ObjectUtils.isEmpty(organizationUser)) {
@@ -288,7 +293,7 @@ public class OrganizationUserServiceImpl extends SuperService {
         // 设置部门
         organizationUser.setDepartment(department);
 
-        organizationUser.setProjectOid(oidAboutInfo.getProjectOid());
+        organizationUser.setProjectOid(projectOid);
         organizationUser.setAboutOid(oidAboutInfo.getOid());
         organizationUser.setAboutAuthType(oidAboutInfo.getAuthType());
         organizationUser.setAuthType(organization.getAuthType());

+ 2 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/user/DepartmentServiceImpl.java

@@ -50,9 +50,10 @@ public class DepartmentServiceImpl extends SuperService implements DepartmentSer
      */
     @Override
     public ResultContent<Department> addDepartment(DepartmentParam param) {
-        if (StringUtils.isEmpty(param.getOid())) {
+        if (StringUtils.isEmpty(param.getOrgOid())) {
             return ResultContent.buildFail(String.format("oid不能为空"));
         }
+        param.setOid(param.getOrgOid());
         OidAboutInfo aboutInfo = organizationManagerService.getOidAboutInfo(param.getOid());
 
         if (CommonUtil.longIsEmpty(param.getSort())) {