package com.ydtech.modules.admin.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ydtech.modules.admin.dao.InsRolePermissionsMapper; import com.ydtech.modules.admin.model.InsRoleMenuPermissions; import com.ydtech.modules.admin.model.InsRolePermissions; import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto; import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto; import com.ydtech.modules.admin.service.InsRoleMenuPermissionsService; import com.ydtech.modules.admin.service.InsRolePermissionsService; import com.ydtech.modules.base.controller.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @Service public class InsRolePermissionsServiceImpl extends ServiceImpl implements InsRolePermissionsService { @Autowired private InsRoleMenuPermissionsService insRoleMenuPermissionsService; /** * 新增角色关联权限 * * @param insRolePermissionsDto */ @Override @Transactional public void insertAndUpdate(InsRolePermissionsDto insRolePermissionsDto) { ArrayList insRolePermissionsArrayList = new ArrayList<>(); //先查看是否存在已配置该权限 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("role_id", insRolePermissionsDto.getRoleId()) .eq("menu_id", insRolePermissionsDto.getMenuId()); List insRolePermissions = baseMapper.selectList(queryWrapper); List ids = insRolePermissions.stream().map(InsRolePermissions::getId).collect(Collectors.toList()); //删除已配置的权限 if(!ids.isEmpty()){ baseMapper.deleteBatchIds(ids); } List permissionsIdList = insRolePermissionsDto.getPermissionsIdList(); for (String s : permissionsIdList) { InsRolePermissions insRolePermissions1 = new InsRolePermissions(); String userId = BaseController.getUserId(); insRolePermissions1.setUserId(userId); insRolePermissions1.setRoleId(insRolePermissionsDto.getRoleId()); insRolePermissions1.setMenuId(insRolePermissionsDto.getMenuId()); insRolePermissions1.setPermissionsId(s); insRolePermissions1.setCreateTime(LocalDateTime.now()); insRolePermissionsArrayList.add(insRolePermissions1); } this.saveBatch(insRolePermissionsArrayList); } @Override @Transactional public void saveAndUpdateRuleMenu(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) { insRoleMenuPermissionsService.saveAndUpdateRuleMenu(insRoleMenuPermissionsDto); } /** * @param * @return 获取数据权限菜单列表 */ @Override public List getInsRoleMenuPermissions(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) { return insRoleMenuPermissionsService.getInsRoleMenuPermissions(insRoleMenuPermissionsDto); } /** * @param * @return 获取菜单数据权限 */ @Override public List getInsRolePermissionsDtoList(InsRolePermissionsDto insRolePermissionsDto) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("menu_id",insRolePermissionsDto.getMenuId()) .eq("role_id",insRolePermissionsDto.getRoleId()); return baseMapper.selectList(queryWrapper); } /** * * @param insRolePermissionsDto * @return 通过角色 菜单id 获取 权限规则 */ @Override public List getInsRolePermissionsServiceList(InsRolePermissionsDto insRolePermissionsDto) { return baseMapper.getInsRolePermissionsServiceList(insRolePermissionsDto); } }