From f67a9179771330913b107ba5b200f49e50e749e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Wed, 2 Apr 2025 16:53:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=9D=83=E9=99=90=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/ShopStaffPagePermission.java | 2 ++ .../service/impl/ShopPagePathServiceImpl.java | 13 +++---- .../ShopStaffPagePermissionServiceImpl.java | 36 +++++++++++++------ 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopStaffPagePermission.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopStaffPagePermission.java index 6987e8d1..56c18790 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopStaffPagePermission.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopStaffPagePermission.java @@ -41,4 +41,6 @@ public class ShopStaffPagePermission implements Serializable { */ private Long pagePathId; + private Integer isUse; + } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPagePathServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPagePathServiceImpl.java index a52f0363..3d169f2c 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPagePathServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPagePathServiceImpl.java @@ -34,20 +34,21 @@ public class ShopPagePathServiceImpl extends ServiceImpl detail(Long staffId) { - Set pageIdList = shopStaffPagePermissionMapper.selectListByQuery(new QueryWrapper().eq(ShopStaffPagePermission::getShopId, - StpKit.USER.getShopId()).eq(ShopStaffPagePermission::getStaffId, staffId)).stream().map(ShopStaffPagePermission::getPagePathId).collect(Collectors.toSet()); - if (pageIdList.isEmpty()) { + List shopStaffPagePermissions = shopStaffPagePermissionMapper.selectListByQuery(new QueryWrapper().eq(ShopStaffPagePermission::getShopId, + StpKit.USER.getShopId()).eq(ShopStaffPagePermission::getStaffId, staffId)); + if (shopStaffPagePermissions.isEmpty()) { list().forEach(item -> { ShopStaffPagePermission permission = new ShopStaffPagePermission(); permission.setShopId(StpKit.USER.getShopId()); permission.setStaffId(staffId); permission.setPagePathId(item.getId()); -// shopStaffPagePermissionMapper.insert(permission); -// pageIdList.add(permission.getPagePathId()); + permission.setIsUse(1); + shopStaffPagePermissionMapper.insert(permission); }); - return new ArrayList<>(); + return list(); } + Set pageIdList = shopStaffPagePermissions.stream().filter(item -> item.getIsUse() == 1).map(ShopStaffPagePermission::getPagePathId).collect(Collectors.toSet()); return list(new QueryWrapper().in(ShopPagePath::getId, pageIdList)); } } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffPagePermissionServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffPagePermissionServiceImpl.java index 03df7cf6..bd62b0eb 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffPagePermissionServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffPagePermissionServiceImpl.java @@ -16,6 +16,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collector; +import java.util.stream.Collectors; /** * 服务层实现。 @@ -43,19 +47,29 @@ public class ShopStaffPagePermissionServiceImpl extends ServiceImpl pagePermissions = new ArrayList<>(); - remove(new QueryWrapper().eq(ShopStaffPagePermission::getStaffId, pagePathPermissionAddDTO.getStaffId())); + Map map = list(new QueryWrapper().eq(ShopStaffPagePermission::getStaffId, + pagePathPermissionAddDTO.getStaffId())).stream().collect(Collectors.toMap(ShopStaffPagePermission::getPagePathId, item -> item)); + pagePathPermissionAddDTO.getPagePathIdList().forEach(item -> { - long count1 = count(new QueryWrapper().eq(ShopStaffPagePermission::getStaffId, shopStaff).eq(ShopStaffPagePermission::getPagePathId, item)); - if (count1 > 0) { - return; + ShopStaffPagePermission permission1 = map.get(item); + if (permission1 == null) { + ShopStaffPagePermission permission = new ShopStaffPagePermission(); + permission.setShopId(shopId); + permission.setPagePathId(item); + permission.setStaffId(pagePathPermissionAddDTO.getStaffId()); + permission.setIsUse(1); + save(permission); + }else { + permission1.setIsUse(1); + updateById(permission1); + map.remove(item); } - ShopStaffPagePermission permission = new ShopStaffPagePermission(); - permission.setShopId(shopId); - permission.setPagePathId(item); - permission.setStaffId(pagePathPermissionAddDTO.getStaffId()); - pagePermissions.add(permission); + }); - return saveBatch(pagePermissions); + Set collect = map.values().stream().map(ShopStaffPagePermission::getId).collect(Collectors.toSet()); + if (!collect.isEmpty()) { + updateChain().set(ShopStaffPagePermission::getIsUse, 0).in(ShopStaffPagePermission::getId, collect); + } + return true; } }