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.DevicePermissionStream; import org.jeecg.modules.dnc.mapper.DevicePermissionStreamMapper; import org.jeecg.modules.dnc.utils.ValidateUtil; import org.jeecg.modules.dnc.service.IDevicePermissionStreamService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @Service public class DevicePermissionStreamServiceImpl extends ServiceImpl implements IDevicePermissionStreamService { @Override public DevicePermissionStream getByGroupIdAndUserId(String groupId, String userId) { if(!ValidateUtil.validateString(groupId) || !ValidateUtil.validateString(userId)) return null; List list = super.lambdaQuery().eq(DevicePermissionStream::getGroupId, groupId). eq(DevicePermissionStream::getUserId, userId).isNull(DevicePermissionStream::getDeviceId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public DevicePermissionStream getByDeviceIdAndUserId(String groupId, String deviceId, String userId) { if(!ValidateUtil.validateString(groupId) || !ValidateUtil.validateString(userId) || !ValidateUtil.validateString(deviceId)) return null; List list = super.lambdaQuery().eq(DevicePermissionStream::getGroupId, groupId). eq(DevicePermissionStream::getUserId, userId).eq(DevicePermissionStream::getDeviceId, deviceId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public List getDepartPermByGroupId(String groupId) { if(!ValidateUtil.validateString(groupId)) return null; List list = super.lambdaQuery().eq(DevicePermissionStream::getGroupId, groupId). isNull(DevicePermissionStream::getUserId).isNull(DevicePermissionStream::getDeviceId).list(); if(list == null || list.isEmpty()) return null; return list; } @Override public List getDepartPermByDeviceId(String groupId, String deviceId) { if(!ValidateUtil.validateString(groupId) || !ValidateUtil.validateString(deviceId)) return null; List list = super.lambdaQuery().eq(DevicePermissionStream::getGroupId, groupId). isNull(DevicePermissionStream::getUserId).eq(DevicePermissionStream::getDeviceId, deviceId).list(); if(list == null || list.isEmpty()) return null; return list; } @Override @Transactional(rollbackFor = {Exception.class}) public boolean removeByCollection(List permissionStreams) { if(permissionStreams == null || permissionStreams.isEmpty()) return false; if(permissionStreams.size() == 1) return super.removeById(permissionStreams.get(0).getPermId()); List ids = new ArrayList<>(); permissionStreams.forEach(item -> { ids.add(item.getPermId()); }); return super.removeByIds(ids); } @Override public DevicePermissionStream getByGroupIdAndDepartId(String groupId, String departId) { if(!ValidateUtil.validateString(groupId) || !ValidateUtil.validateString(departId)) return null; List list = super.lambdaQuery().eq(DevicePermissionStream::getGroupId, groupId).eq(DevicePermissionStream::getDepartId, departId) .isNull(DevicePermissionStream::getDeviceId).isNull(DevicePermissionStream::getUserId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public DevicePermissionStream getByDeviceIdAndDepartId(String groupId, String deviceId, String departId) { if(!ValidateUtil.validateString(groupId) || !ValidateUtil.validateString(departId) || !ValidateUtil.validateString(departId)) return null; List list = super.lambdaQuery().eq(DevicePermissionStream::getGroupId, groupId).eq(DevicePermissionStream::getDepartId, departId) .eq(DevicePermissionStream::getDeviceId, deviceId).isNull(DevicePermissionStream::getUserId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public List findByDepartId(String departId) { return super.lambdaQuery().eq(DevicePermissionStream::getDepartId, departId).list(); } @Override public List findByUserId(String userId) { return super.lambdaQuery().eq(DevicePermissionStream::getUserId, userId).list(); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteUserByGroupId(String groupId) { LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(DevicePermissionStream::getGroupId, groupId).isNull(DevicePermissionStream::getDeviceId).isNull(DevicePermissionStream::getDepartId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteDepartByGroupId(String groupId) { LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(DevicePermissionStream::getGroupId, groupId).isNull(DevicePermissionStream::getDeviceId).isNull(DevicePermissionStream::getUserId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteUserByDeviceId(String groupId, String deviceId) { LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(DevicePermissionStream::getGroupId, groupId).eq(DevicePermissionStream::getDeviceId, deviceId) .isNull(DevicePermissionStream::getDepartId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean deleteDepartByDeviceId(String groupId, String deviceId) { LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(DevicePermissionStream::getGroupId, groupId).eq(DevicePermissionStream::getDeviceId, deviceId) .isNull(DevicePermissionStream::getUserId); return super.remove(lambdaQueryWrapper); } }