58 lines
1.8 KiB
Java
58 lines
1.8 KiB
Java
package com.example.springdemo.service;
|
|
|
|
import com.example.springdemo.dao.PermissionsRepository;
|
|
import com.example.springdemo.dao.RolesPermissionsRepository;
|
|
import com.example.springdemo.entities.RBAC.Permissions;
|
|
import jakarta.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
@Service
|
|
public class PermissionsServiceImpl implements PermissionsService {
|
|
@Resource
|
|
private PermissionsRepository permissionsRepository;
|
|
|
|
@Resource
|
|
private RolesPermissionsRepository rolesPermissionsRepository;
|
|
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public Permissions addPermission(Permissions permission) {
|
|
return permissionsRepository.save(permission);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public Permissions updatePermission(Permissions permission) {
|
|
return permissionsRepository.save(permission);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void deletePermissionById(Long permissionId) {
|
|
if (this.checkPermissionsRolesIfExist(permissionId)) {
|
|
//删除权限与角色的关联关系
|
|
rolesPermissionsRepository.deleteByPermissionsId(permissionId);
|
|
}
|
|
//删除权限
|
|
permissionsRepository.deleteById(permissionId);
|
|
}
|
|
|
|
private boolean checkPermissionsRolesIfExist(Long permissionId) {
|
|
return rolesPermissionsRepository.findByPermissionsId(permissionId).isPresent();
|
|
}
|
|
|
|
@Override
|
|
public Optional<Permissions> findById(Long permissionId) {
|
|
return permissionsRepository.findById(permissionId);
|
|
}
|
|
|
|
@Override
|
|
public List<Permissions> findAllPermissions() {
|
|
return permissionsRepository.findAll();
|
|
}
|
|
}
|