summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhangshuai <[email protected]>2024-10-18 17:54:28 +0800
committerzhangshuai <[email protected]>2024-10-18 17:54:28 +0800
commit705f8c7c71890a1cef93b26d800d840622e99de3 (patch)
tree0406f677ea15bff8e126de72ec049af57399f62d
parent524e9f8880a33f1440370cf5fc6092ead7a16c45 (diff)
fix:ASW-107 修复 member 修改时 member 被清空
-rw-r--r--src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java b/src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java
index 161d904..f80a5e3 100644
--- a/src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java
+++ b/src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java
@@ -2,6 +2,7 @@ package net.geedge.asw.module.workspace.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.geedge.asw.common.util.ASWException;
import net.geedge.asw.common.util.RCode;
@@ -50,9 +51,22 @@ public class WorkspaceMemberServiceImpl extends ServiceImpl<WorkspaceMemberDao,
@Override
@Transactional(rollbackFor = Exception.class)
public List<WorkspaceMemberEntity> updateMember(String workspaceId, List<WorkspaceMemberEntity> memberList) {
- validateInfo(workspaceId, memberList);
- workspaceMemberService.remove(new LambdaQueryWrapper<WorkspaceMemberEntity>().eq(WorkspaceMemberEntity::getWorkspaceId, workspaceId));
- workspaceMemberService.saveBatch(memberList);
+ List<WorkspaceMemberEntity> list = this.list(new LambdaQueryWrapper<WorkspaceMemberEntity>().eq(WorkspaceMemberEntity::getWorkspaceId, workspaceId));
+ List<String> userIds = list.stream().map(x -> x.getUserId()).toList();
+ for (WorkspaceMemberEntity member : memberList) {
+ String userId = member.getUserId();
+ if (!userIds.contains(userId)) {
+ this.update(new LambdaUpdateWrapper<WorkspaceMemberEntity>()
+ .eq(WorkspaceMemberEntity::getUserId, userId)
+ .eq(WorkspaceMemberEntity::getWorkspaceId, workspaceId)
+ .set(WorkspaceMemberEntity::getRoleId, member.getRoleId()));
+ }else {
+ member.setWorkspaceId(workspaceId);
+ member.setCreateTimestamp(System.currentTimeMillis());
+ member.setCreateUserId(StpUtil.getLoginIdAsString());
+ this.save(member);
+ }
+ }
Map params = T.MapUtil.builder("workspaceId", workspaceId).build();
List<WorkspaceMemberEntity> memberEntityList = workspaceMemberService.queryList(params);
return memberEntityList;