diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/RolePermissionService.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/RolePermissionService.java new file mode 100644 index 00000000..a6f87836 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/RolePermissionService.java @@ -0,0 +1,15 @@ +package com.jero.common.service; + + +public interface RolePermissionService { + + /** + * @Description 根据菜单权限code 判断当前用户是否有权限(true:全部数据,false:当前登录人数据) + * @Author lqt + * @Date 2021/10/24 + * @Param permission 菜单code + * @Return + * @Exception + */ + boolean getRolePermission(String permission); +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/RolePermissionServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/RolePermissionServiceImpl.java new file mode 100644 index 00000000..cb0c41ab --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/RolePermissionServiceImpl.java @@ -0,0 +1,69 @@ +package com.jero.common.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.common.RoleCommon; +import com.jero.common.exception.JeroBootException; +import com.jero.common.service.RolePermissionService; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.system.entity.SysPermission; +import com.jero.modules.system.entity.SysRole; +import com.jero.modules.system.entity.SysRolePermission; +import com.jero.modules.system.service.ISysPermissionService; +import com.jero.modules.system.service.ISysRolePermissionService; +import com.jero.modules.system.service.ISysRoleService; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class RolePermissionServiceImpl implements RolePermissionService { + + @Resource + private ISysPermissionService sysPermissionService; + @Resource + private ISysRolePermissionService sysRolePermissionService; + @Resource + private ISysRoleService sysRoleService; + + @Override + public boolean getRolePermission(String permission) { + if(StringUtils.isEmpty(permission)){ + throw new JeroBootException("菜单权限编码不能为空!"); + } + LambdaQueryWrapper querySysPermission = new LambdaQueryWrapper<>(); + querySysPermission.eq(SysPermission::getPerms,permission); + List listSysPermission = sysPermissionService.list(querySysPermission); + if(CollectionUtils.isEmpty(listSysPermission)){ + throw new JeroBootException("菜单权限编码不存在!"); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List list = new ArrayList<>(Arrays.asList(sysUser.getRoleCode().split(","))); + if(list.contains(RoleCommon.XMFZR)){ + list.remove(RoleCommon.XMFZR); + } + if(!CollectionUtils.isEmpty(list)){ + LambdaQueryWrapper querySysRole = new LambdaQueryWrapper<>(); + querySysRole.in(SysRole::getRoleCode,list); + List listSysRole = sysRoleService.list(querySysRole); + if(CollectionUtils.isEmpty(listSysRole)){ + return false; + } + + List listRoleId = listSysRole.stream().map(SysRole::getId).collect(Collectors.toList()); + LambdaQueryWrapper querySysRolePermission = new LambdaQueryWrapper<>(); + querySysRolePermission.in(SysRolePermission::getRoleId,listRoleId); + querySysRolePermission.eq(SysRolePermission::getPermissionId,listSysPermission.get(0).getId()); + List listSysRolePermission = sysRolePermissionService.list(querySysRolePermission); + if(!CollectionUtils.isEmpty(listSysRolePermission)){ + return true; + } + } + return false; + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java index 955293fb..8bcf8f47 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java @@ -20,6 +20,7 @@ import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.common.ProjectCommon; import com.jero.common.common.RoleCommon; import com.jero.common.service.ProjectDetailService; +import com.jero.common.service.RolePermissionService; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; @@ -98,6 +99,8 @@ public class PayCommonProjectController extends JeroController"); + if(!rolePermissionService.getRolePermission(perms) && !Objects.equals(payCommonProject.getPrincipalId(), sysUser.getId())){ + sb.append(payCommonProject.getChargeProject() + "项目不可操作!
"); } if(!StringUtils.isEmpty(sb)){ return sb; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupServiceImpl.java index 3b486f3e..1df6c819 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupServiceImpl.java @@ -4,13 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.jero.common.api.vo.Result; -import com.jero.common.common.RoleCommon; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.RolePermissionService; import com.jero.common.system.vo.LoginUser; import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.service.IPayIncomeContractAssociatedService; -import com.jero.contract.service.IPayIncomeContractService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.project.entity.*; @@ -22,7 +20,6 @@ import com.jero.statistics.entity.*; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -46,18 +43,18 @@ import java.util.stream.Collectors; */ @Service public class PayWorkingGroupServiceImpl extends ServiceImpl implements IPayWorkingGroupService { - @Autowired + @Resource private IPayWorkingGroupService payWorkingGroupService; - @Autowired + @Resource private IPayWorkingGroupSubItemService payWorkingGroupSubItemService; - @Autowired + @Resource private IPayIncomeContractAssociatedService payIncomeContractAssociatedService; @Resource private PayWorkingGroupMapper payWorkingGroupMapper; - @Autowired + @Resource private ISysUserService sysUserService; - @Autowired - private IPayIncomeContractService payIncomeContractService; + @Resource + private RolePermissionService rolePermissionService; @Override public IPage queryPageList(Page page, PayWorkingGroup payWorkingGroup) { @@ -80,7 +77,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl{ PayWorkingGroup payWorkingGroupOld = payWorkingGroupService.getById(p); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if(Objects.equals(sysUser.getRoleCode(), RoleCommon.XMFZR) && !Objects.equals(payWorkingGroupOld.getPrincipalIdA(),sysUser.getId())){ + if(!rolePermissionService.getRolePermission("workingGroupProject:edit") && !Objects.equals(payWorkingGroupOld.getPrincipalIdA(),sysUser.getId())){ sb.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!
"); } LambdaQueryWrapper query = new LambdaQueryWrapper<>();