SpringDemo/src/main/java/com/example/springdemo/service/PermissionsServiceImpl.java
2023-11-12 19:36:20 +08:00

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();
}
}