add[project]: 团队成员,新增、删除接口

This commit is contained in:
2026-04-15 16:00:25 +08:00
parent 8c53c9efd2
commit 73ef6809ba
5 changed files with 137 additions and 0 deletions

View File

@@ -466,5 +466,31 @@ public class SimulationNodeController implements ISimulationNodeFeignClient {
return nodeService.togglePinProject(req.getNodeId(), req.getPinned());
}
/**
* 新增团队成员
*
* @param req
* @return
*/
@SysLog("新增团队成员")
@PostMapping("/addNodeMember")
@Operation(summary = "新增团队成员", description = "新增团队成员")
public SdmResponse addNodeMember(@RequestBody SpdmAddNodeMemberReq req) {
return nodeService.addNodeMember(req);
}
/**
* 删除团队成员
*
* @param req
* @return
*/
@SysLog("删除团队成员")
@PostMapping("/deleteNodeMember")
@Operation(summary = "删除团队成员", description = "删除团队成员")
public SdmResponse deleteNodeMember(@RequestBody SpdmDeleteNodeMemberReq req) {
return nodeService.deleteNodeMember(req);
}
}

View File

@@ -0,0 +1,17 @@
package com.sdm.project.model.req;
import com.sdm.project.model.bo.TaskNodeTag;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class SpdmAddNodeMemberReq {
String projectId;
List<Long> addNodeMemberIdList;
}

View File

@@ -0,0 +1,16 @@
package com.sdm.project.model.req;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class SpdmDeleteNodeMemberReq {
String projectId;
List<Long> deleteNodeMemberIdList;
}

View File

@@ -117,4 +117,18 @@ public interface INodeService extends IService<SimulationNode> {
SdmResponse exportProjectByScript(HttpServletResponse httpservletResponse, ProjectExportExcelFormat projectExportExcelFormat);
/**
* 新增团队成员
* @param req
* @return
*/
SdmResponse addNodeMember(SpdmAddNodeMemberReq req);
/**
* 删除团队成员
* @param req
* @return
*/
SdmResponse deleteNodeMember(SpdmDeleteNodeMemberReq req);
}

View File

@@ -5223,4 +5223,68 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
return SdmResponse.success(resultResponse);
}
@Override
public SdmResponse addNodeMember(SpdmAddNodeMemberReq req) {
log.info("addNodeMember params{}",req);
String projectId = req.getProjectId();
List<Long> addNodeMemberIdList = req.getAddNodeMemberIdList();
if (StringUtils.isBlank(projectId) || CollectionUtils.isEmpty(addNodeMemberIdList)) {
return SdmResponse.failed("参数不能为空");
}
Long userId = ThreadLocalContext.getUserId();
String currentDateTime = DateUtils.getCurrentDateTime();
List<SimulationNodeMember> nodeMemberList = new ArrayList<>();
for (Long addNodeMemberId : addNodeMemberIdList) {
SimulationNodeMember simulationNodeMember = new SimulationNodeMember();
simulationNodeMember.setNodeId(projectId);
simulationNodeMember.setUserId(addNodeMemberId);
simulationNodeMember.setCreator(userId);
simulationNodeMember.setCreateTime(currentDateTime);
simulationNodeMember.setType(NodeMemberTypeEnum.PARTICIPANT.getCode());
nodeMemberList.add(simulationNodeMember);
}
simulationNodeMemberService.saveBatch(nodeMemberList);
// 批量设置权限
List<BatchUpdatePermissionReq.FilePermissionItem> filePermissions = new ArrayList<>();
BatchUpdatePermissionReq.FilePermissionItem memberItem = new BatchUpdatePermissionReq.FilePermissionItem();
memberItem.setUuid(projectId);
Map<Long, Byte> memberPermissions = new HashMap<>();
for (Long addNodeMemberId : addNodeMemberIdList) {
memberPermissions.put(addNodeMemberId, FilePermissionEnum. BASE.getValue());
memberItem.setUserPermissions(memberPermissions);
filePermissions.add(memberItem);
}
// 批量更新权限
BatchUpdatePermissionReq batchReq = new BatchUpdatePermissionReq();
batchReq.setFilePermissions(filePermissions);
CompletableFuture.runAsync(() -> {
log.info("新增团队成员,批量更新权限,参数为:{}", batchReq);
SdmResponse response = dataFeignClient.batchUpdatePermission(batchReq);
log.info("新增团队成员,批量更新权限结果:{}", response);
if (!response.isSuccess()) {
log.error("新增团队成员,批量更新权限失败:{}", response.getMessage());
}
});
return SdmResponse.success();
}
@Override
public SdmResponse deleteNodeMember(SpdmDeleteNodeMemberReq req) {
String projectId = req.getProjectId();
List<Long> deleteNodeMemberIdList = req.getDeleteNodeMemberIdList();
if (StringUtils.isBlank(projectId) || CollectionUtils.isEmpty(deleteNodeMemberIdList)) {
return SdmResponse.failed("参数不能为空");
}
simulationNodeMemberService.remove(
new LambdaQueryWrapper<SimulationNodeMember>().eq(SimulationNodeMember::getNodeId, projectId)
.in(SimulationNodeMember::getUserId,deleteNodeMemberIdList)
.eq(SimulationNodeMember::getType,NodeMemberTypeEnum.PARTICIPANT.getCode()));
for (Long deleteNodeMemberId : deleteNodeMemberIdList) {
deletePermission(deleteNodeMemberId, projectId);
}
return SdmResponse.success();
}
}