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<DevicePermissionStreamMapper, DevicePermissionStream> implements IDevicePermissionStreamService {
|
@Override
|
public DevicePermissionStream getByGroupIdAndUserId(String groupId, String userId) {
|
if(!ValidateUtil.validateString(groupId) || !ValidateUtil.validateString(userId))
|
return null;
|
List<DevicePermissionStream> 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<DevicePermissionStream> 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<DevicePermissionStream> getDepartPermByGroupId(String groupId) {
|
if(!ValidateUtil.validateString(groupId))
|
return null;
|
List<DevicePermissionStream> 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<DevicePermissionStream> getDepartPermByDeviceId(String groupId, String deviceId) {
|
if(!ValidateUtil.validateString(groupId) || !ValidateUtil.validateString(deviceId))
|
return null;
|
List<DevicePermissionStream> 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<DevicePermissionStream> permissionStreams) {
|
if(permissionStreams == null || permissionStreams.isEmpty())
|
return false;
|
if(permissionStreams.size() == 1)
|
return super.removeById(permissionStreams.get(0).getPermId());
|
List<String> 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<DevicePermissionStream> 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<DevicePermissionStream> 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<DevicePermissionStream> findByDepartId(String departId) {
|
return super.lambdaQuery().eq(DevicePermissionStream::getDepartId, departId).list();
|
}
|
|
@Override
|
public List<DevicePermissionStream> findByUserId(String userId) {
|
return super.lambdaQuery().eq(DevicePermissionStream::getUserId, userId).list();
|
}
|
|
@Override
|
@Transactional(rollbackFor = {Exception.class})
|
public boolean deleteUserByGroupId(String groupId) {
|
LambdaQueryWrapper<DevicePermissionStream> 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<DevicePermissionStream> 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<DevicePermissionStream> 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<DevicePermissionStream> lambdaQueryWrapper = Wrappers.lambdaQuery();
|
lambdaQueryWrapper.eq(DevicePermissionStream::getGroupId, groupId).eq(DevicePermissionStream::getDeviceId, deviceId)
|
.isNull(DevicePermissionStream::getUserId);
|
return super.remove(lambdaQueryWrapper);
|
}
|
}
|