diff options
| author | zhangshuai <[email protected]> | 2024-10-18 17:54:28 +0800 |
|---|---|---|
| committer | zhangshuai <[email protected]> | 2024-10-18 17:54:28 +0800 |
| commit | 705f8c7c71890a1cef93b26d800d840622e99de3 (patch) | |
| tree | 0406f677ea15bff8e126de72ec049af57399f62d | |
| parent | 524e9f8880a33f1440370cf5fc6092ead7a16c45 (diff) | |
fix:ASW-107 修复 member 修改时 member 被清空
| -rw-r--r-- | src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java | 20 |
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; |
