add[project]: 团队成员,新增、删除接口
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user