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 findById(Long permissionId) { return permissionsRepository.findById(permissionId); } @Override public List findAllPermissions() { return permissionsRepository.findAll(); } }