/** * Copyright (c) 2018 人人开源 All rights reserved. *

* https://www.renren.io *

* 版权所有,侵权必究! */ package com.zt.modules.sys.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zt.common.constant.Constant; import com.zt.common.db.query.QueryFilter; import com.zt.common.exception.ErrorCode; import com.zt.common.exception.RenException; import com.zt.common.service.BaseService; import com.zt.core.context.UserContext; import com.zt.core.sys.model.SysDept; import com.zt.core.sys.model.SysUser; import com.zt.modules.sys.dao.SysRoleDao; import com.zt.modules.sys.dto.UserDto; import com.zt.modules.sys.model.SysMenu; import com.zt.modules.sys.model.SysRole; import com.zt.modules.sys.model.SysRoleMenu; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.zt.modules.sys.service.SysMenuService; import java.util.List; import java.util.stream.Collectors; /** * 角色 * * @author hehz */ @Service public class SysRoleService extends BaseService { @Autowired private SysRoleMenuService sysRoleMenuService; @Autowired private SysRoleUserService sysRoleUserService; @Autowired private SysRoleDataScopeService sysRoleDataScopeService; @Autowired private SysDeptService sysDeptService; @Autowired private SysMenuService sysMenuService; public List page(QueryFilter queryFilter) { // 只查自己所属租户下的 QueryWrapper queryWrapper = queryFilter.getWrapper(); queryWrapper.eq("tenant_id", UserContext.getUser().getTenantId()); queryWrapper.eq("type", Constant.RoleType.NORMAL); return super.query(queryFilter); } public List list(Long companyId) { QueryFilter queryFilter = new QueryFilter(); QueryWrapper queryWrapper = queryFilter.getWrapper(); queryWrapper.eq("company_id", companyId); queryWrapper.eq("type", Constant.RoleType.NORMAL); return super.query(queryFilter); } /** * 查询sysRole,条件是companyId下的role和其父级部门里面的全部roles * @param companyId * @return */ public List listWithParents(final Long companyId) { QueryFilter queryFilter = new QueryFilter(); QueryWrapper queryWrapper = queryFilter.getWrapper(); queryWrapper.eq(Constant.TableColumn.IS_DELETE, Constant.Bool.NO); queryWrapper.ne("type","1"); List allList=baseDao.selectList(queryWrapper); /* SysDept company=sysDeptService.get(companyId); List sysRoles=allList.stream().filter(sysRole -> { if(sysRole.getCompanyId().equals(companyId)){ return true; }else{ if(company.getPids()!=null){ String[] pids=company.getPids().split(","); for(String pid:pids){ if(sysRole.getCompanyId().equals(new Long(pid))){ return true; } } } } return false; }).collect(Collectors.toList()); */ return allList; } public List getRoleUsers(Long roleID){ return sysRoleUserService.getRoleUsers(roleID); } @Transactional(rollbackFor = Exception.class) public void insert(SysRole entity) { if (entity.getType() == 0) { entity.setType(Constant.RoleType.NORMAL); } if (entity.getCompanyId() == null || entity.getCompanyId() == 0) { throw new RenException(ErrorCode.PARAMS_GET_ERROR); } // 保存角色 super.insert(entity); /* List allList = sysMenuService.getAllList(); for(SysMenu sysMenu:allList){ SysRoleMenu sysRoleMenu = new SysRoleMenu(); sysRoleMenu.setMenuId(sysMenu.getId()); sysRoleMenu.setRoleId(entity.getId()); sysRoleMenu.setDelete(true); sysRoleMenuService.insert(sysRoleMenu); }*/ } @Transactional(rollbackFor = Exception.class) public void update(SysRole entity) { // 更新角色 super.update(entity); // 更新角色数据权限关系 // sysRoleDataScopeService.saveOrUpdate(entity.getId(), // entity.getDeptIdList()); } @Transactional(rollbackFor = Exception.class) public void delete(Long[] ids) { // 删除角色 this.deleteLogic(ids); // 删除角色用户关系 sysRoleUserService.deleteByRoleIds(ids); // 删除角色菜单关系 sysRoleMenuService.deleteByRoleIds(ids); // 删除角色数据权限关系 sysRoleDataScopeService.deleteByRoleIds(ids); } public List getByIds(List roleIds) { return baseDao.selectList(new QueryWrapper().lambda().in(SysRole::getId, roleIds)); } public List getAllList() { List roleList = baseDao.selectList(new QueryWrapper().eq(Constant.TableColumn.IS_DELETE, Constant.Bool.NO).orderByAsc(Constant.TableColumn.SORT)); return roleList; } }