From c59cbfa92147058b828f78ed35b15d4ef4a7ef94 Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期三, 26 六月 2024 14:47:25 +0800 Subject: [PATCH] 恢复Git删除的代码 --- hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java | 123 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 123 insertions(+), 0 deletions(-) diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java new file mode 100644 index 0000000..2d08603 --- /dev/null +++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java @@ -0,0 +1,123 @@ +package com.mes.role.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.mes.entity.request.GeneralRequest; +import com.mes.menu.entity.SysMenu; +import com.mes.role.entity.SysRole; +import com.mes.role.entity.SysRoleMenu; +import com.mes.role.entity.vo.SysRoleVO; +import com.mes.role.mapper.SysRoleMapper; +import com.mes.role.service.SysRoleMenuService; +import com.mes.role.service.SysRoleService; +import com.mes.userinfo.entity.SysUserRole; +import com.mes.userinfo.service.SysUserRoleService; +import com.mes.userinfo.service.SysUserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * <p> + * 瑙掕壊琛� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author zhoush + * @since 2024-04-11 + */ +@Service +@Slf4j +public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService { + + @Autowired + SysRoleMenuService sysRoleMenuService; + + @Autowired + SysUserService sysUserService; + + @Autowired + SysUserRoleService sysUserRoleService; + + @Override + @Transactional(rollbackFor = Exception.class) + public SysRole saveRole(SysRoleVO sysRoleVO) { + log.info("淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id"); + SysRole sysRole = new SysRole(); + BeanUtils.copyProperties(sysRoleVO, sysRole); + this.save(sysRole); + //淇濆瓨瑙掕壊鏉冮檺淇℃伅 + saveRoleMenu(sysRole.getId(), sysRoleVO.getMenuList()); + return sysRole; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String updateRole(SysRoleVO sysRoleVO) { + log.info("淇濆瓨瑙掕壊淇℃伅锛岀敓鎴愬搴旂殑瑙掕壊id"); + SysRole sysRole = new SysRole(); + BeanUtils.copyProperties(sysRoleVO, sysRole); + this.updateById(sysRole); + //淇濆瓨瑙掕壊鏉冮檺淇℃伅 + return saveRoleMenu(sysRole.getId(), sysRoleVO.getMenuList()); + } + + @Override + public List<SysRoleVO> queryRole(GeneralRequest request) { + MPJLambdaWrapper<SysRole> wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(SysRole.class) + .selectCollection(SysMenu.class, SysRoleVO::getMenuList) + .leftJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysRole::getId) + .leftJoin(SysMenu.class, SysMenu::getId, SysRoleMenu::getMenuId) + .like(StringUtils.hasText(request.getKey()), SysRole::getName, request.getKey()); + return baseMapper.selectJoinList(SysRoleVO.class, wrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String deleteRole(List<Long> ids) { + log.info("鍒犻櫎瑙掕壊淇℃伅"); + this.removeByIds(ids); + + log.info("鍒犻櫎涓棿琛ㄤ俊鎭�"); + sysUserRoleService.remove(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, ids)); + sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().in(SysRoleMenu::getRoleId, ids)); + + log.info("娓呯┖缂撳瓨涓殑鏉冮檺淇℃伅"); + ids.stream().forEach(id -> sysUserService.clearUserAuthorityInfoByRoleId(id)); + return "success"; + } + + /** + * 淇濆瓨瑙掕壊鏉冮檺淇℃伅 + * + * @param roleId + * @param menuList + * @return + */ + private String saveRoleMenu(Long roleId, List<SysMenu> menuList) { + log.info("閰嶇疆瑙掕壊鑿滃崟鍏冲績"); + List<SysRoleMenu> roleMenuList = menuList.stream().map(menu -> { + SysRoleMenu roleMenu = new SysRoleMenu(); + roleMenu.setRoleId(roleId); + roleMenu.setMenuId(menu.getId()); + return roleMenu; + }).collect(Collectors.toList()); + log.info("娓呯┖瑙掕壊鏉冮檺琛ㄤ腑璇ヨ鑹蹭俊鎭�"); + + + // 鍏堝垹闄ゅ師鏉ョ殑璁板綍锛屽啀淇濆瓨鏂扮殑 + sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId)); + sysRoleMenuService.saveBatch(roleMenuList); + + // 鍒犻櫎缂撳瓨 + sysUserService.clearUserAuthorityInfoByRoleId(roleId); + return "success"; + } +} -- Gitblit v1.8.0