package com.stylefeng.guns.modular.system.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.node.ZTreeNode; import com.stylefeng.guns.core.util.Convert; import com.stylefeng.guns.modular.system.dao.MenuMapper; import com.stylefeng.guns.modular.system.dao.RelationMapper; import com.stylefeng.guns.modular.system.dao.RoleMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.IRoleService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; @Service public class RoleServiceImpl extends ServiceImpl implements IRoleService { @Resource private RoleMapper roleMapper; @Resource private RelationMapper relationMapper; @Resource private MenuMapper menuMapper; @Override @Transactional(readOnly = false) public void setAuthority(Integer roleId, String ids) { // 删除该角色所有的权限 this.roleMapper.deleteRolesById(roleId); // 添加新的权限 for (Long id : Convert.toLongArray(true, Convert.toStrArray(",", ids))) { Relation relation = new Relation(); relation.setRoleid(roleId); relation.setMenuid(id); this.relationMapper.insert(relation); } } @Override @Transactional(readOnly = false) public void delRoleById(Integer roleId) { //删除角色 this.roleMapper.deleteById(roleId); // 删除该角色所有的权限 this.roleMapper.deleteRolesById(roleId); } @Override public List> selectRoles(String condition) { return this.baseMapper.selectRoles(condition); } @Override public int deleteRolesById(Integer roleId) { return this.baseMapper.deleteRolesById(roleId); } @Override public List roleTreeList() { return this.baseMapper.roleTreeList(); } @Override public List roleTreeListByRoleId(String[] roleId) { return this.baseMapper.roleTreeListByRoleId(roleId); } @Override public List selectAuthority(String roleid) { return relationMapper.selectList(new EntityWrapper().eq("roleid",roleid)); } @Override public List getRelation() { List pcode = menuMapper.selectList(new EntityWrapper().eq("pcode", 0)); for (Menu menu : pcode) { ArrayList menuOnes = new ArrayList<>(); List pcode1 = menuMapper.selectList(new EntityWrapper().eq("pcode", menu.getId()).eq("levels",2)); /*for (Menu menu1 : pcode1) { MenuOne menuOne = new MenuOne(); BeanUtil.copyProperties(menu1,menuOne); menuOne.setChildren(null); menuOnes.add(menuOne); }*/ if(pcode1.size()==0){ List pcode2 = menuMapper.selectList(new EntityWrapper().eq("pcode", menu.getId()).eq("levels",3)); menu.setChildren(pcode2); } menu.setList(pcode1); } for (Menu menu : pcode) { List list = menu.getList(); for (Menu menu1 : list) { menu1.setChildren(menuMapper.selectList(new EntityWrapper().eq("pcode",menu1.getId()))); } } return pcode; } @Override public List getDept(Integer deptid) { return roleMapper.getDept(deptid); } @Override public void setAuthorityOne(List relations) { Integer roleid = relations.get(0).getRoleid(); // 删除该角色所有的权限 this.roleMapper.deleteRolesById(roleid); for (Relation relation : relations) { this.relationMapper.insert(relation); } } @Override public List getRelation1(List collect) { return menuMapper.selectList(new EntityWrapper().in("id",collect).orderBy("num",true)); } }