feat(用户身份状态管理): 成员移出组织/项目,原指派给这个成员的工作项/其他该怎么显示
校验产品指派负责人时仅对新加入的用户进行判断,防止对已离职的用户判断权限导致报错 Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
parent
4861d5015d
commit
688deb74ee
|
|
@ -2,10 +2,7 @@ package com.microservices.pms.common.service;
|
|||
|
||||
import com.microservices.pms.enterprise.domain.vo.GitLinkUserSimpleInfoVo;
|
||||
import com.microservices.pms.enterprise.domain.vo.GitlinkOrganizationTeamVo;
|
||||
import com.microservices.system.api.domain.SimpleGitlinkFileInfo;
|
||||
import com.microservices.system.api.domain.SimpleGitlinkUser;
|
||||
import com.microservices.system.api.domain.SimpleSysUser;
|
||||
import com.microservices.system.api.domain.SysFileInfo;
|
||||
import com.microservices.system.api.domain.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
|
@ -40,6 +37,8 @@ public interface IPmsCommonService
|
|||
public SimpleGitlinkUser getSimpleGitlinkUserByGitlinkUserId(Long gitlinkUserId);
|
||||
public SimpleGitlinkUser getSimpleGitlinkUserByUsername(String username);
|
||||
|
||||
SysUser getSysUserByGitlinkId(Long gitlinkUserId);
|
||||
|
||||
/**
|
||||
* 根据authorize查询gitlink组织下团队
|
||||
*
|
||||
|
|
|
|||
|
|
@ -174,7 +174,8 @@ public class PmsCommonServiceImpl implements IPmsCommonService {
|
|||
return userList;
|
||||
}
|
||||
|
||||
private SysUser getSysUserByGitlinkId(Long gitlinkUserId) {
|
||||
@Override
|
||||
public SysUser getSysUserByGitlinkId(Long gitlinkUserId) {
|
||||
if (gitlinkUserId == null) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ public interface IPmsEnterpriseService
|
|||
* 根据gitlink组织id创建企业
|
||||
*
|
||||
* @param gitlinkOrgId gitlink组织id
|
||||
* @param gitLinkUserToEnterpriseInputVo
|
||||
* @param gitLinkUserToEnterpriseInputVoList 列表
|
||||
* @return 企业标识
|
||||
*/
|
||||
String createByGitlinkOrgId(Long gitlinkOrgId, List<GitLinkUserToEnterpriseInputVo> gitLinkUserToEnterpriseInputVoList);
|
||||
|
|
|
|||
|
|
@ -28,11 +28,13 @@ import com.microservices.system.api.domain.SimpleSysUser;
|
|||
import com.microservices.system.api.domain.SysUser;
|
||||
import com.microservices.system.api.domain.SysUserDeptRole;
|
||||
import com.microservices.system.api.utils.FeignUtils;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
|
@ -51,7 +53,7 @@ public class PmsProductServiceImpl implements IPmsProductService
|
|||
@Autowired
|
||||
private IPmsEnterpriseService pmsEnterpriseService;
|
||||
@Autowired
|
||||
private IPmsCommonService commonService;
|
||||
private IPmsCommonService pmsCommonService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private IPmsProductRequirementService pmsProductRequirementService;
|
||||
|
|
@ -101,7 +103,7 @@ public class PmsProductServiceImpl implements IPmsProductService
|
|||
PmsProductDataVo pmsProductDataVo = pmsProduct.toPmsProductDataVo();
|
||||
// 设置需求负责人
|
||||
pmsProductDataVo.setProductAssigneeList(
|
||||
commonService.getSimpleSysUserListByGitlinkUserIdsAndCache(pmsProduct.getProductAssigneeGitlinkIds(), hashMap));
|
||||
pmsCommonService.getSimpleSysUserListByGitlinkUserIdsAndCache(pmsProduct.getProductAssigneeGitlinkIds(), hashMap));
|
||||
return pmsProductDataVo;
|
||||
}
|
||||
|
||||
|
|
@ -149,7 +151,7 @@ public class PmsProductServiceImpl implements IPmsProductService
|
|||
String[] gitlinkUserIds = gitlinkUserIdsStr.split(",");
|
||||
for (String gitlinkUserIdStr : gitlinkUserIds) {
|
||||
Long gitlinkUserId = Long.valueOf(gitlinkUserIdStr);
|
||||
SysUser productAssigneeUser = pmsEnterpriseService.getSysUserByGitLinkUserId(gitlinkUserId);
|
||||
SysUser productAssigneeUser = pmsCommonService.getSysUserByGitlinkId(gitlinkUserId);
|
||||
Boolean hasPerms = FeignUtils.getReturnData(
|
||||
remoteDeptService.checkUserInDeptHasPerms(pmsEnterprise.getDeptId(), productAssigneeUser.getUserId(), UserConstants.PMS_PERMS_PRODUCT_EDIT, SecurityConstants.INNER)
|
||||
);
|
||||
|
|
@ -192,14 +194,21 @@ public class PmsProductServiceImpl implements IPmsProductService
|
|||
&&!pmsProduct.getProductName().equals(oldPmsProduct.getProductName())){
|
||||
checkNameDuplicates(pmsProduct.getProductName(), pmsEnterprise.getEnterpriseIdentifier());
|
||||
}
|
||||
//处理指派负责人逻辑(默认传递过来的是GitLink用户ID,需同步创建系统用户同时使用GitLink用户ID)
|
||||
checkProductAssigneeGitlinkId(pmsProduct.getProductAssigneeGitlinkIds(), pmsEnterprise);
|
||||
// 考虑到用户有可能已离职,所以仅对新增的用户进行权限校验
|
||||
checkProductAssigneeGitlinkId(
|
||||
getNewAssigneeGitlinkIds(oldPmsProduct.getProductAssigneeGitlinkIds(), pmsProduct.getProductAssigneeGitlinkIds()), pmsEnterprise);
|
||||
pmsProduct.setUpdateBy(SecurityUtils.getUsername());
|
||||
pmsProduct.setUpdateTime(DateUtils.getNowDate());
|
||||
pmsProduct.setId(oldPmsProduct.getId());
|
||||
return pmsProductMapper.updatePmsProduct(pmsProduct);
|
||||
}
|
||||
|
||||
private String getNewAssigneeGitlinkIds(String oldAssigneeGitlinkIds, String newAssigneeGitlinkIds) {
|
||||
List<String> oldGitlinkUserIds = Arrays.asList(oldAssigneeGitlinkIds.split(","));
|
||||
List<String> newGitlinkUserIds = Arrays.asList(newAssigneeGitlinkIds.split(","));
|
||||
return String.join(",", ListUtils.subtract(newGitlinkUserIds, oldGitlinkUserIds));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updatePmsProductChange(String productIdentifier) {
|
||||
PmsProduct pmsProduct = selectPmsProductByIdentifier(productIdentifier);
|
||||
|
|
|
|||
Loading…
Reference in New Issue