|
@@ -0,0 +1,141 @@
|
|
|
|
|
+package com.ctsi.SysRoleMenu.service.impl;
|
|
|
|
|
+
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
|
|
+import com.ctsi.SysRole.entity.SysRoleMenuAddVO;
|
|
|
|
|
+import com.ctsi.SysUserRole.entity.SysUserRole;
|
|
|
|
|
+import com.ctsi.SysUserRole.entity.SysUserRoleAddVO;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
|
|
|
|
+import com.ctsi.SysRoleMenu.entity.SysRoleMenu;
|
|
|
|
|
+import com.ctsi.SysRoleMenu.mapper.SysRoleMenuMapper;
|
|
|
|
|
+import com.ctsi.SysRoleMenu.service.SysRoleMenuService;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 角色菜单表;(sys_role_menu)表服务实现类
|
|
|
|
|
+ * @author : machaoyi
|
|
|
|
|
+ * @date : 2024-1-12
|
|
|
|
|
+ */
|
|
|
|
|
+@Service
|
|
|
|
|
+public class SysRoleMenuServiceImpl implements SysRoleMenuService{
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private SysRoleMenuMapper sysRoleMenuMapper;
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 通过ID查询单条数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param id 主键
|
|
|
|
|
+ * @return 实例对象
|
|
|
|
|
+ */
|
|
|
|
|
+ public SysRoleMenu queryById(Long id){
|
|
|
|
|
+ return sysRoleMenuMapper.selectById(id);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 分页查询
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param sysRoleMenu 筛选条件
|
|
|
|
|
+ * @param current 当前页码
|
|
|
|
|
+ * @param size 每页大小
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public Page<SysRoleMenu> paginQuery(SysRoleMenu sysRoleMenu, long current, long size){
|
|
|
|
|
+ //1. 构建动态查询条件
|
|
|
|
|
+ LambdaQueryWrapper<SysRoleMenu> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ //2. 执行分页查询
|
|
|
|
|
+ Page<SysRoleMenu> pagin = new Page<>(current , size , true);
|
|
|
|
|
+ IPage<SysRoleMenu> selectResult = sysRoleMenuMapper.selectPage(pagin , queryWrapper);
|
|
|
|
|
+ pagin.setPages(selectResult.getPages());
|
|
|
|
|
+ pagin.setTotal(selectResult.getTotal());
|
|
|
|
|
+ pagin.setRecords(selectResult.getRecords());
|
|
|
|
|
+ //3. 返回结果
|
|
|
|
|
+ return pagin;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 新增数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param sysRoleMenu 实例对象
|
|
|
|
|
+ * @return 实例对象
|
|
|
|
|
+ */
|
|
|
|
|
+ public SysRoleMenu insert(SysRoleMenu sysRoleMenu){
|
|
|
|
|
+ sysRoleMenuMapper.insert(sysRoleMenu);
|
|
|
|
|
+ return sysRoleMenu;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 更新数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param sysRoleMenu 实例对象
|
|
|
|
|
+ * @return 实例对象
|
|
|
|
|
+ */
|
|
|
|
|
+ public SysRoleMenu update(SysRoleMenu sysRoleMenu){
|
|
|
|
|
+ //1. 根据条件动态更新
|
|
|
|
|
+ LambdaUpdateChainWrapper<SysRoleMenu> chainWrapper = new LambdaUpdateChainWrapper<SysRoleMenu>(sysRoleMenuMapper);
|
|
|
|
|
+ //2. 设置主键,并更新
|
|
|
|
|
+ chainWrapper.eq(SysRoleMenu::getId, sysRoleMenu.getId());
|
|
|
|
|
+ boolean ret = chainWrapper.update();
|
|
|
|
|
+ //3. 更新成功了,查询最最对象返回
|
|
|
|
|
+ if(ret){
|
|
|
|
|
+ return queryById(sysRoleMenu.getId());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ return sysRoleMenu;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 通过主键删除数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param id 主键
|
|
|
|
|
+ * @return 是否成功
|
|
|
|
|
+ */
|
|
|
|
|
+ public boolean deleteById(Long id){
|
|
|
|
|
+ int total = sysRoleMenuMapper.deleteById(id);
|
|
|
|
|
+ return total > 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 保存角色菜单
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param SysRoleMenuAddVO 实例对象
|
|
|
|
|
+ * @return 实例对象
|
|
|
|
|
+ */
|
|
|
|
|
+ public SysRoleMenuAddVO save(SysRoleMenuAddVO SysRoleMenuAddVO){
|
|
|
|
|
+ LambdaQueryWrapper<SysRoleMenu> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq(SysRoleMenu::getRoleId,SysRoleMenuAddVO.getRoleId());
|
|
|
|
|
+ sysRoleMenuMapper.delete(queryWrapper);
|
|
|
|
|
+ for (Long menuId : SysRoleMenuAddVO.getMenuId()) {
|
|
|
|
|
+ SysRoleMenu sysRoleMenu = new SysRoleMenu();
|
|
|
|
|
+ sysRoleMenu.setRoleId(SysRoleMenuAddVO.getRoleId());
|
|
|
|
|
+ sysRoleMenu.setMenuId(menuId);
|
|
|
|
|
+ sysRoleMenuMapper.insert(sysRoleMenu);
|
|
|
|
|
+ }
|
|
|
|
|
+ return SysRoleMenuAddVO;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取角色菜单信息
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param roleId 角色id
|
|
|
|
|
+ * @return 实例对象
|
|
|
|
|
+ */
|
|
|
|
|
+ public SysRoleMenuAddVO getRoleMenus(Long roleId){
|
|
|
|
|
+ SysRoleMenuAddVO SysRoleMenuAddVO = new SysRoleMenuAddVO();
|
|
|
|
|
+ SysRoleMenuAddVO.setRoleId(roleId);
|
|
|
|
|
+ LambdaQueryWrapper<SysRoleMenu> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq(SysRoleMenu::getRoleId,roleId);
|
|
|
|
|
+ List<SysRoleMenu> sysRoleMenuList = sysRoleMenuMapper.selectList(queryWrapper);
|
|
|
|
|
+ List<Long> menuId = new ArrayList<>();
|
|
|
|
|
+ for (SysRoleMenu sysRoleMenu : sysRoleMenuList) {
|
|
|
|
|
+ menuId.add(sysRoleMenu.getMenuId());
|
|
|
|
|
+ }
|
|
|
|
|
+ SysRoleMenuAddVO.setMenuId(menuId);
|
|
|
|
|
+ return SysRoleMenuAddVO;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|