From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 25 六月 2025 11:51:38 +0800 Subject: [PATCH] Merge branch 'mdc_hyjs_master' --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentPermissionServiceImpl.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 104 insertions(+), 0 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentPermissionServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentPermissionServiceImpl.java new file mode 100644 index 0000000..5897a38 --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentPermissionServiceImpl.java @@ -0,0 +1,104 @@ +package org.jeecg.modules.dnc.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.dnc.entity.ComponentPermission; +import org.jeecg.modules.dnc.mapper.ComponentPermissionMapper; +import org.jeecg.modules.dnc.ucenter.UserDepartExt; +import org.jeecg.modules.dnc.utils.ValidateUtil; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.dnc.service.IComponentPermissionService; +import org.apache.commons.collections4.ListUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +@Service +public class ComponentPermissionServiceImpl extends ServiceImpl<ComponentPermissionMapper, ComponentPermission> implements IComponentPermissionService { + @Override + public ComponentPermission getByComponentIdAndUserId(String componentId, String userId) { + if(!ValidateUtil.validateString(componentId) || !ValidateUtil.validateString(userId)) + return null; + List<ComponentPermission> permissions = super.lambdaQuery().eq(ComponentPermission::getComponentId, componentId).eq(ComponentPermission::getUserId, userId).list(); + if(permissions == null || permissions.isEmpty()) + return null; + return permissions.get(0); + } + + @Override + @Transactional(rollbackFor = {Exception.class}) + public boolean deleteByComponentId(String componentId) { + if(!ValidateUtil.validateString(componentId)) + return false; + LambdaQueryWrapper<ComponentPermission> lambdaQueryWrapper = Wrappers.lambdaQuery(); + lambdaQueryWrapper.eq(ComponentPermission::getComponentId, componentId); + return super.remove(lambdaQueryWrapper); + } + + @Override + public List<UserDepartExt> getUserPermsByComponentId(String componentId) { + return super.getBaseMapper().getUserPermsByComponentId(componentId); + } + + @Override + public List<SysUser> getUserNonPermsByComponentId(String componentId) { + return super.getBaseMapper().getUserNonPermsByComponentId(componentId); + } + + @Override + @Transactional(rollbackFor = {Exception.class}) + public boolean removeByCollection(List<ComponentPermission> permissionList) { + if(permissionList == null || permissionList.isEmpty()) + return false; + if(permissionList.size() == 1) + return super.removeById(permissionList.get(0).getId()); + List<String> ids = new ArrayList<>(); + permissionList.forEach(item -> { + ids.add(item.getId()); + }); + return super.removeByIds(ids); + } + + @Override + public List<ComponentPermission> getByComponentId(String componentId) { + List<ComponentPermission> list = super.lambdaQuery().eq(ComponentPermission::getComponentId, componentId).list(); + if(list == null) + list = Collections.emptyList(); + return list; + } + + @Override + public List<ComponentPermission> getByComponentIdsAndUserIds(List<String> componentIds, List<String> userIds) { + if(componentIds == null || componentIds.isEmpty() || userIds == null || userIds.isEmpty()) + return null; + List<ComponentPermission> total = new ArrayList<>(); + List<List<String>> compListArr; + List<List<String>> userListArr; + if(componentIds.size() > 1000){ + compListArr = ListUtils.partition(componentIds, 100); + }else { + compListArr = ListUtils.partition(componentIds, 1000); + } + if(userIds.size() > 1000){ + userListArr = ListUtils.partition(userIds, 100); + }else { + userListArr = ListUtils.partition(userIds, 1000); + } + for(List<String> compList : compListArr) { + for(List<String> userList : userListArr){ + LambdaQueryWrapper<ComponentPermission> queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.in(ComponentPermission::getComponentId, compList); + queryWrapper.in(ComponentPermission::getUserId, userList); + List<ComponentPermission> list = super.list(queryWrapper); + if(list != null && !list.isEmpty()){ + total.addAll(list); + } + } + } + return total; + } +} -- Gitblit v1.9.3