Browse Source

1、新增角色菜单表

machaoyi 1 năm trước cách đây
mục cha
commit
0aa0617371

+ 114 - 0
application/src/main/java/com/ctsi/SysRoleMenu/controller/SysRoleMenuController.java

@@ -0,0 +1,114 @@
+package com.ctsi.SysRoleMenu.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ctsi.SysUserRole.entity.SysUserRoleAddVO;
+import com.ctsi.entity.FramePage;
+import com.ctsi.utils.ApiResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.*;
+import com.ctsi.SysRoleMenu.entity.SysRoleMenu;
+import com.ctsi.SysRoleMenu.service.SysRoleMenuService;
+
+import javax.annotation.Resource;
+
+ /**
+ * 角色菜单表;(sys_role_menu)表控制层
+ * @author : machaoyi
+ * @date : 2024-1-12
+ */
+//@Api(tags = "角色菜单表对象功能接口")
+//@RestController
+//@RequestMapping("/sysRoleMenu")
+public class SysRoleMenuController{
+    @Resource
+    private SysRoleMenuService sysRoleMenuService;
+    private static final Logger log = LoggerFactory.getLogger(SysRoleMenuController.class);
+    
+    /** 
+     * 通过ID查询单条数据 
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    @ApiOperation("通过ID查询单条数据")
+    @GetMapping("{id}")
+    public ApiResult<SysRoleMenu> queryById(Long id){
+        try {
+            return ApiResult.success(sysRoleMenuService.queryById(id));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("查询失败",null);
+        }
+    }
+    
+    /** 
+     * 分页查询
+     *
+     * @param sysRoleMenu 筛选条件
+     * @return 查询结果
+     */
+    @ApiOperation("分页查询")
+    @GetMapping
+    public ApiResult<Page<SysRoleMenu>> paginQuery(SysRoleMenu sysRoleMenu, FramePage framePage){
+        try {
+            return ApiResult.success(sysRoleMenuService.paginQuery(sysRoleMenu, framePage.getPageNum(), framePage.getPageSize()));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("分页查询失败",null);
+        }    
+    }
+    
+    /** 
+     * 新增数据
+     *
+     * @param sysRoleMenu 实例对象
+     * @return 实例对象
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public ApiResult<SysRoleMenu> add(@RequestBody SysRoleMenu sysRoleMenu){
+        try {
+            return ApiResult.success(sysRoleMenuService.insert(sysRoleMenu));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("新增数据失败",null);
+        }
+    }
+    
+    /** 
+     * 更新数据
+     *
+     * @param sysRoleMenu 实例对象
+     * @return 实例对象
+     */
+    @ApiOperation("更新数据")
+    @PutMapping
+    public ApiResult<SysRoleMenu> edit(@RequestBody SysRoleMenu sysRoleMenu){
+        try {
+            return ApiResult.success(sysRoleMenuService.update(sysRoleMenu));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("更新数据失败",null);
+        }
+    }
+    
+    /** 
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    @ApiOperation("通过主键删除数据")
+    @DeleteMapping
+    public ApiResult<Boolean> deleteById(Long id){
+        try {
+            return ApiResult.success(sysRoleMenuService.deleteById(id));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("删除数据失败",null);
+        }
+    }
+}

+ 56 - 0
application/src/main/java/com/ctsi/SysRoleMenu/entity/SysRoleMenu.java

@@ -0,0 +1,56 @@
+package com.ctsi.SysRoleMenu.entity;
+
+import com.ctsi.utils.LongtoStringSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+ /**
+ * 角色菜单表;
+ * @author : machaoyi
+ * @date : 2024-1-12
+ */
+@ApiModel(value = "角色菜单表",description = "")
+@TableName("sys_role_menu")
+public class SysRoleMenu implements Serializable,Cloneable{
+    /** 主键id */
+    @ApiModelProperty(value = "主键id",notes = "")
+    @TableId
+    @JsonSerialize(using = LongtoStringSerialize.class)
+    private Long id ;
+    /** 角色id */
+    @ApiModelProperty(value = "角色id",notes = "")
+    private Long roleId ;
+    /** 菜单id */
+    @ApiModelProperty(value = "菜单id",notes = "")
+    private Long menuId ;
+
+    /** 主键id */
+    public Long getId(){
+        return this.id;
+    }
+    /** 主键id */
+    public void setId(Long id){
+        this.id=id;
+    }
+    /** 角色id */
+    public Long getRoleId(){
+        return this.roleId;
+    }
+    /** 角色id */
+    public void setRoleId(Long roleId){
+        this.roleId=roleId;
+    }
+    /** 菜单id */
+    public Long getMenuId(){
+        return this.menuId;
+    }
+    /** 菜单id */
+    public void setMenuId(Long menuId){
+        this.menuId=menuId;
+    }
+}

+ 26 - 0
application/src/main/java/com/ctsi/SysRoleMenu/mapper/SysRoleMenuMapper.java

@@ -0,0 +1,26 @@
+package com.ctsi.SysRoleMenu.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import com.ctsi.SysRoleMenu.entity.SysRoleMenu;
+
+ /**
+ * 角色菜单表;(sys_role_menu)表数据库访问层
+ * @author : machaoyi
+ * @date : 2024-1-12
+ */
+@Mapper
+public interface SysRoleMenuMapper  extends BaseMapper<SysRoleMenu>{
+    /** 
+     * 分页查询指定行数据
+     *
+     * @param page 分页参数
+     * @param wrapper 动态查询条件
+     * @return 分页对象列表
+     */
+    IPage<SysRoleMenu> selectByPage(IPage<SysRoleMenu> page , @Param(Constants.WRAPPER) Wrapper<SysRoleMenu> wrapper);
+}

+ 8 - 0
application/src/main/java/com/ctsi/SysRoleMenu/mapper/SysRoleMenuMapper.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.ctsi.SysRoleMenu.mapper.SysRoleMenuMapper">
+     <select id="selectByPage" resultType="com.ctsi.SysRoleMenu.entity.SysRoleMenu">
+        select * from sys_role_menu ${ew.customSqlSegment}
+    </select>
+</mapper>

+ 56 - 0
application/src/main/java/com/ctsi/SysRoleMenu/service/SysRoleMenuService.java

@@ -0,0 +1,56 @@
+package com.ctsi.SysRoleMenu.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ctsi.SysRole.entity.SysRoleMenuAddVO;
+import com.ctsi.SysRoleMenu.entity.SysRoleMenu;
+
+ /**
+ * 角色菜单表;(sys_role_menu)表服务接口
+ * @author : machaoyi
+ * @date : 2024-1-12
+ */
+public interface SysRoleMenuService{
+    
+    /** 
+     * 通过ID查询单条数据 
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    SysRoleMenu queryById(Long id);
+    
+    /**
+     * 分页查询
+     *
+     * @param sysRoleMenu 筛选条件
+     * @param current 当前页码
+     * @param size  每页大小
+     * @return
+     */
+    Page<SysRoleMenu> paginQuery(SysRoleMenu sysRoleMenu, long current, long size);
+    /** 
+     * 新增数据
+     *
+     * @param sysRoleMenu 实例对象
+     * @return 实例对象
+     */
+    SysRoleMenu insert(SysRoleMenu sysRoleMenu);
+    /** 
+     * 更新数据
+     *
+     * @param sysRoleMenu 实例对象
+     * @return 实例对象
+     */
+    SysRoleMenu update(SysRoleMenu sysRoleMenu);
+    /** 
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    boolean deleteById(Long id);
+
+     SysRoleMenuAddVO save(SysRoleMenuAddVO SysRoleMenuAddVO);
+
+     SysRoleMenuAddVO getRoleMenus(Long roleId);
+}

+ 141 - 0
application/src/main/java/com/ctsi/SysRoleMenu/service/impl/SysRoleMenuServiceImpl.java

@@ -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;
+     }
+}