package com.lxzn.nc.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 com.lxzn.framework.domain.nc.PermissionStream; import com.lxzn.framework.domain.nc.ProductDepartment; import com.lxzn.framework.domain.ucenter.DepartmentUser; import com.lxzn.framework.utils.ValidateUtil; import com.lxzn.nc.dao.PermissionStreamMapper; import com.lxzn.nc.service.IPermissionStreamService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @Service public class PermissionStreamServiceImpl extends ServiceImpl implements IPermissionStreamService { @Override public PermissionStream getByProductIdAndUserId(String productId, String userId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(userId)) return null; List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId). eq(PermissionStream::getUserId, userId).isNull(PermissionStream::getComponentId).isNull(PermissionStream::getPartsId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public PermissionStream getByComponentIdAndUserId(String productId, String componentId, String userId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(userId) || !ValidateUtil.validateString(componentId)) return null; List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId). eq(PermissionStream::getUserId, userId).eq(PermissionStream::getComponentId, componentId) .isNull(PermissionStream::getPartsId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public PermissionStream getByPartsIdAndUserId(String productId, String componentId, String partsId, String userId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(userId) || !ValidateUtil.validateString(componentId) || !ValidateUtil.validateString(partsId)) return null; List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId). eq(PermissionStream::getUserId, userId).eq(PermissionStream::getComponentId, componentId) .eq(PermissionStream::getPartsId, partsId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public List getByProductId(String productId) { if(!ValidateUtil.validateString(productId)) return null; List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId). isNull(PermissionStream::getUserId).isNull(PermissionStream::getComponentId).isNull(PermissionStream::getPartsId).list(); if(list == null || list.isEmpty()) return null; return list; } @Override public List getByComponentId(String productId, String componentId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(componentId)) return null; List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId). isNull(PermissionStream::getUserId).eq(PermissionStream::getComponentId, componentId) .isNull(PermissionStream::getPartsId).list(); if(list == null || list.isEmpty()) return null; return list; } @Override public List getByPartsId(String productId, String componentId, String partsId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(componentId) || !ValidateUtil.validateString(partsId)) return null; List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId). isNull(PermissionStream::getUserId).eq(PermissionStream::getComponentId, componentId) .eq(PermissionStream::getPartsId, partsId).list(); if(list == null || list.isEmpty()) return null; return list; } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteUserPermsByProductId(String productId) { if(!ValidateUtil.validateString(productId)) return false; LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(PermissionStream::getProductId, productId).isNull(PermissionStream::getDepartId) .isNull(PermissionStream::getComponentId).isNull(PermissionStream::getPartsId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteUserPermsByComponentId(String productId, String componentId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(componentId)) return false; LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(PermissionStream::getProductId, productId).isNull(PermissionStream::getDepartId) .eq(PermissionStream::getComponentId, componentId).isNull(PermissionStream::getPartsId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteUserPermsByPartsId(String productId, String componentId, String partsId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(componentId) || !ValidateUtil.validateString(partsId)) return false; LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(PermissionStream::getProductId, productId).isNull(PermissionStream::getDepartId) .eq(PermissionStream::getComponentId, componentId).eq(PermissionStream::getPartsId, partsId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteDepartPermsByProductId(String productId) { if(!ValidateUtil.validateString(productId)) return false; LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(PermissionStream::getProductId, productId).isNull(PermissionStream::getUserId) .isNull(PermissionStream::getComponentId).isNull(PermissionStream::getPartsId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteDepartPermsByComponentId(String productId, String componentId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(componentId)) return false; LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(PermissionStream::getProductId, productId).isNull(PermissionStream::getUserId) .eq(PermissionStream::getComponentId, componentId).isNull(PermissionStream::getPartsId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteDepartPermsByPartsId(String productId, String componentId, String partsId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(componentId) || !ValidateUtil.validateString(partsId)) return false; LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(PermissionStream::getProductId, productId).isNull(PermissionStream::getUserId) .eq(PermissionStream::getComponentId, componentId).eq(PermissionStream::getPartsId, partsId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean removeByCollection(List permissionStreamList) { if(permissionStreamList == null || permissionStreamList.isEmpty()) return false; if(permissionStreamList.size() == 1) { return super.removeById(permissionStreamList.get(0).getStreamId()); } List ids = new ArrayList<>(); permissionStreamList.forEach(item -> { ids.add(item.getStreamId()); }); return super.removeByIds(ids); } @Override public PermissionStream getByProductIdAndDepartId(String productId, String departId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(departId)) return null; List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId).eq(PermissionStream::getDepartId, departId) .isNull(PermissionStream::getComponentId).isNull(PermissionStream::getPartsId) .isNull(PermissionStream::getUserId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public PermissionStream getByComponentIdAndDepartId(String productId, String componentId, String departId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(departId) || !ValidateUtil.validateString(componentId)) return null; List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId).eq(PermissionStream::getDepartId, departId) .eq(PermissionStream::getComponentId, componentId).isNull(PermissionStream::getPartsId) .isNull(PermissionStream::getUserId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public PermissionStream getByPartsIdAndDepartId(String productId, String componentId, String partsId, String departId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(departId) || !ValidateUtil.validateString(componentId) || !ValidateUtil.validateString(partsId)) return null; List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId).eq(PermissionStream::getDepartId, departId) .eq(PermissionStream::getComponentId, componentId).eq(PermissionStream::getPartsId, partsId) .isNull(PermissionStream::getUserId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public List findByDepartId(String departId) { return super.lambdaQuery().eq(PermissionStream::getDepartId, departId).list(); } @Override public List findByUserId(String userId) { return super.lambdaQuery().eq(PermissionStream::getUserId, userId).list(); } @Override public List getAllByProductId(String productId) { if(!ValidateUtil.validateString(productId)) { return null; } List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId). isNull(PermissionStream::getComponentId).isNull(PermissionStream::getPartsId).list(); if(list == null || list.isEmpty()) { return null; } return list; } @Override public List getAllByComponentId(String productId, String componentId) { if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(componentId)) { return null; } List list = super.lambdaQuery().eq(PermissionStream::getProductId, productId). eq(PermissionStream::getComponentId, componentId) .isNull(PermissionStream::getPartsId).list(); if(list == null || list.isEmpty()) { return null; } return list; } }