fourcal/src/main/java/cn/palmte/work/service/SysPermissionService.java

158 lines
5.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package cn.palmte.work.service;
import cn.palmte.work.model.*;
import cn.palmte.work.utils.InterfaceUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import top.jfunc.common.db.bean.Page;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Service
public class SysPermissionService {
@Autowired
private SysPermissionRepositoryCustom sysPermissionRepositoryCustom;
@Autowired
private SysPermissionRepository sysPermissionRepository;
@Autowired
private SysRolePermissionRepository sysRolePermissionRepository;
@Autowired
private SysRoleRepository sysRoleRepository;
private static final Logger logger = LoggerFactory.getLogger(SysPermissionService.class);
/**
* 分页获取所有资源列表
*/
public Page<SysPermission> getAllPermissionListByPage(ConcurrentHashMap<String, String> searchInfo, String pageNumber) {
return sysPermissionRepositoryCustom.getAllPermissionListByPage(searchInfo, pageNumber);
}
public List<String> getAllPermissionList() {
return sysPermissionRepository.findAllPermissionUrls();
}
/**
* 批量删除资源
*/
public boolean deletePermissionByIDs(String[] ids) {
boolean deleted = true;
for (String id : ids) {
SysPermission permission = sysPermissionRepository.findOne(Integer.parseInt(id));
permission.setIsDeleted(1);
permission.setLastUpdatedBy(InterfaceUtil.getAdminId());// 当前登录人
permission.setLastUpdatedTime(new Date());
try {
sysPermissionRepository.save(permission);
} catch (Exception e) {
e.printStackTrace();
deleted = false;
break;
}
}
return deleted;
}
/**
* 添加资源
*/
@Transactional(rollbackFor = Exception.class)
public void addPermission(SysPermission sysPermission) {
sysPermission.setCreatedBy(InterfaceUtil.getAdminId()); // 当前登录人
sysPermission.setCreatedTime(new Date());
sysPermission.setLastUpdatedBy(InterfaceUtil.getAdminId());
sysPermission.setLastUpdatedTime(new Date());
sysPermission = sysPermissionRepository.saveAndFlush(sysPermission);
int permissionID = sysPermission.getId();
// 新增权限时,默认在角色-权限表中新增一组关系。默认给系统管理员授权。(注意:角色表中必须只要一个系统管理员角色。)即使用其它角色新增一个资源时,也是默认赋给系统管理员角色授权。
int superAdminRoleId = 1;
try {
SysRole sysRole = sysRoleRepository.findSuperAdminRole();
superAdminRoleId = sysRole.getId();
} catch (Exception e) {
e.printStackTrace();
}
SysRolePermission rolePermission = new SysRolePermission();
rolePermission.setRoleId(superAdminRoleId);// 即最高权限-系统管理员角色id。
rolePermission.setPermissionId(permissionID);
rolePermission.setCreatedBy(InterfaceUtil.getAdminId()); // 当前登录人
rolePermission.setCreatedTime(new Date());
rolePermission.setLastUpdatedBy(InterfaceUtil.getAdminId());
rolePermission.setLastUpdatedTime(new Date());
sysRolePermissionRepository.save(rolePermission);
}
/**
* 更新权限
*/
public void updatePermission(SysPermission sysPermission, String permissionID) {
SysPermission permission = sysPermissionRepository.findOne(Integer.parseInt(permissionID));
permission.setName(sysPermission.getName());
permission.setIcon(sysPermission.getIcon());
permission.setUrl(sysPermission.getUrl());
permission.setLevel(sysPermission.getLevel());
permission.setType(sysPermission.getType());
permission.setSort(sysPermission.getSort());
permission.setRemark(sysPermission.getRemark());
permission.setParentId(sysPermission.getParentId());
permission.setPermission(sysPermission.getPermission());
permission.setLastUpdatedBy(InterfaceUtil.getAdminId());
permission.setLastUpdatedTime(new Date());
sysPermissionRepository.saveAndFlush(permission);
}
public String check(SysPermission sysPermission, String permissionID) {
SysPermission byUrlEquals = sysPermissionRepository.findByUrlEquals(sysPermission.getUrl());
String message = "";
if ("-1".equals(permissionID)) {
if (null != byUrlEquals) {
message = "该URL已存在";
return message;
}
} else {
if (null != byUrlEquals && byUrlEquals.getId() != Integer.parseInt(permissionID)) {
message = "该URL已存在";
return message;
}
}
SysPermission byPermissionEquals = sysPermissionRepository.findByPermissionEquals(sysPermission.getPermission());
if ("-1".equals(permissionID)) {
if (null != byPermissionEquals) {
message = "该权限编码已存在!";
return message;
}
} else {
if (null != byPermissionEquals && byPermissionEquals.getId() != Integer.parseInt(permissionID)) {
message = "该权限编码已存在!";
return message;
}
}
return message;
}
}