mcbaiyun 5 месяцев назад
Родитель
Сommit
adb2203f25

+ 88 - 0
src/main/java/com/smart/reader/controller/SysPermissionInfoController.java

@@ -0,0 +1,88 @@
+package com.smart.reader.controller;
+
+import com.smart.reader.common.Page;
+import com.smart.reader.common.R;
+import com.smart.reader.enums.SuccessResultCode;
+import com.smart.reader.exception.CustomException;
+import com.smart.reader.model.bo.SysPermissionInfoAddBo;
+import com.smart.reader.model.bo.SysPermissionInfoUpdateBo;
+import com.smart.reader.model.vo.SysPermissionInfoVo;
+import com.smart.reader.service.SysPermissionInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@RequestMapping("/api/v1/system/permissionInfo")
+@RestController
+@Validated
+@Api(tags = "权限管理", description = "权限管理相关接口")
+public class SysPermissionInfoController {
+    @Resource
+    private SysPermissionInfoService sysPermissionInfoService;
+
+    /**
+     * 新增权限数据
+     *
+     * @param sysPermissionInfo 实例对象
+     * @return 实例对象
+     */
+    @ApiOperation("新增权限数据")
+    @PostMapping("/add")
+    public R add(@RequestBody @Valid SysPermissionInfoAddBo sysPermissionInfo) throws CustomException {
+        sysPermissionInfoService.add(sysPermissionInfo);
+        return R.success(SuccessResultCode.SUCCESS.getCode(), SuccessResultCode.SUCCESS.getMsg());
+    }
+
+    @ApiOperation("删除权限数据")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "权限ID", required = true)
+    })
+    @DeleteMapping("/delete/{id}")
+    public R delete(@NotNull(message = "权限ID不能为空") @PathVariable("id") Long id) throws CustomException {
+        sysPermissionInfoService.delete(id);
+        return R.success(SuccessResultCode.SUCCESS.getCode(), SuccessResultCode.SUCCESS.getMsg());
+    }
+
+    @ApiOperation("批量删除权限数据")
+    @DeleteMapping("/batchDelete")
+    public R batchDelete(@RequestBody List<Long> ids) throws CustomException {
+        sysPermissionInfoService.batchDelete(ids);
+        return R.success(SuccessResultCode.SUCCESS.getCode(), "批量删除成功");
+    }
+
+    @ApiOperation("修改权限数据")
+    @PutMapping("/edit")
+    public R edit(@RequestBody @Valid SysPermissionInfoUpdateBo sysPermissionInfo) throws CustomException {
+        sysPermissionInfoService.edit(sysPermissionInfo);
+        return R.success(SuccessResultCode.SUCCESS.getCode(), SuccessResultCode.SUCCESS.getMsg());
+    }
+
+    @GetMapping("queryInfo")
+    @ApiOperation("获取权限列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "当前页", required = true, dataType = "int", defaultValue = "1"),
+            @ApiImplicitParam(name = "pageSize", value = "页大小", required = true, dataType = "int", defaultValue = "10"),
+    })
+    public R<Page<SysPermissionInfoVo>> queryInfo(int pageNum, int pageSize) {
+        Page<SysPermissionInfoVo> result = sysPermissionInfoService.queryInfo(pageNum, pageSize);
+        return R.success(SuccessResultCode.SUCCESS.getCode(), SuccessResultCode.SUCCESS.getMsg(), result);
+    }
+
+    @ApiOperation("根据权限ID查询权限详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "权限ID", required = true)
+    })
+    @GetMapping("/detail/{id}")
+    public R detail(@NotNull(message = "权限ID不能为空") @PathVariable("id") Long id) {
+        SysPermissionInfoVo sysPermissionInfoVo = sysPermissionInfoService.detail(id);
+        return R.success(SuccessResultCode.SUCCESS.getCode(), SuccessResultCode.SUCCESS.getMsg(), sysPermissionInfoVo);
+    }
+}

+ 26 - 0
src/main/java/com/smart/reader/dao/SysPermissionInfoMapper.java

@@ -0,0 +1,26 @@
+package com.smart.reader.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.smart.reader.model.po.SysPermissionInfo;
+import com.smart.reader.model.vo.SysPermissionInfoVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+@Mapper
+public interface SysPermissionInfoMapper extends BaseMapper<SysPermissionInfo> {
+    /**
+     * 查询权限信息列表
+     *
+     * @return 权限信息列表
+     */
+    List<SysPermissionInfoVo> queryInfo();
+
+    /**
+     * 根据ID查询权限详情
+     *
+     * @param id 权限ID
+     * @return 权限详情
+     */
+    SysPermissionInfoVo detail(@Param("id") Long id);
+}

+ 47 - 0
src/main/java/com/smart/reader/model/bo/SysPermissionInfoAddBo.java

@@ -0,0 +1,47 @@
+package com.smart.reader.model.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class SysPermissionInfoAddBo {
+    /** 描述;描述 */
+    @ApiModelProperty(name = "描述", notes = "描述")
+    private String description;
+
+    /** 权限编码;权限编码 */
+    @ApiModelProperty(name = "权限编码", notes = "权限编码")
+    @NotBlank(message="权限编码不能为空")
+    private String permissionCode;
+
+    /** 权限名称;权限名称 */
+    @ApiModelProperty(name = "权限名称", notes = "权限名称")
+    @NotBlank(message="权限名称不能为空")
+    private String permissionName;
+
+    /** 权限类型;权限类型:1.目录 2.菜单 3.按钮 */
+    @ApiModelProperty(name = "权限类型", notes = "权限类型:1.目录 2.菜单 3.按钮")
+    private Integer permissionType;
+
+    /** 级节点ID;级节点ID */
+    @ApiModelProperty(name = "级节点ID", notes = "级节点ID")
+    private Long parentId;
+
+    /** 图标;图标 */
+    @ApiModelProperty(name = "图标", notes = "图标")
+    private String permissionIcon;
+
+    /** 权限字串;权限字串 */
+    @ApiModelProperty(name = "权限字串", notes = "权限字串")
+    private String permissionStr;
+
+    /** 组件地址;组件地址 */
+    @ApiModelProperty(name = "组件地址", notes = "组件地址")
+    private String permissionComponent;
+
+    /** 排序字段;排序字段 */
+    @ApiModelProperty(name = "排序字段", notes = "排序字段")
+    private Integer sort;
+}

+ 51 - 0
src/main/java/com/smart/reader/model/bo/SysPermissionInfoUpdateBo.java

@@ -0,0 +1,51 @@
+package com.smart.reader.model.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+@Data
+public class SysPermissionInfoUpdateBo {
+    /** 权限ID;权限ID */
+    @ApiModelProperty(name="权限ID",notes="权限ID")
+    @NotNull(message="权限ID不能为空")
+    private Long id;
+
+    /** 描述;描述 */
+    @ApiModelProperty(name = "描述", notes = "描述")
+    private String description;
+
+    /** 权限编码;权限编码 */
+    @ApiModelProperty(name = "权限编码", notes = "权限编码")
+    private String permissionCode;
+
+    /** 权限名称;权限名称 */
+    @ApiModelProperty(name = "权限名称", notes = "权限名称")
+    private String permissionName;
+
+    /** 权限类型;权限类型:1.目录 2.菜单 3.按钮 */
+    @ApiModelProperty(name = "权限类型", notes = "权限类型:1.目录 2.菜单 3.按钮")
+    private Integer permissionType;
+
+    /** 级节点ID;级节点ID */
+    @ApiModelProperty(name = "级节点ID", notes = "级节点ID")
+    private Long parentId;
+
+    /** 图标;图标 */
+    @ApiModelProperty(name = "图标", notes = "图标")
+    private String permissionIcon;
+
+    /** 权限字串;权限字串 */
+    @ApiModelProperty(name = "权限字串", notes = "权限字串")
+    private String permissionStr;
+
+    /** 组件地址;组件地址 */
+    @ApiModelProperty(name = "组件地址", notes = "组件地址")
+    private String permissionComponent;
+
+    /** 排序字段;排序字段 */
+    @ApiModelProperty(name = "排序字段", notes = "排序字段")
+    private Integer sort;
+}

+ 47 - 0
src/main/java/com/smart/reader/model/po/SysPermissionInfo.java

@@ -0,0 +1,47 @@
+package com.smart.reader.model.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel(value = "权限信息表")
+@TableName("sys_permission_info")
+@Data
+public class SysPermissionInfo extends BaseEntity {
+    /** 描述;描述 */
+    @ApiModelProperty(name = "描述", notes = "描述")
+    private String description;
+
+    /** 权限编码;权限编码 */
+    @ApiModelProperty(name = "权限编码", notes = "权限编码")
+    private String permissionCode;
+
+    /** 权限名称;权限名称 */
+    @ApiModelProperty(name = "权限名称", notes = "权限名称")
+    private String permissionName;
+
+    /** 权限类型;权限类型:1.目录 2.菜单 3.按钮 */
+    @ApiModelProperty(name = "权限类型", notes = "权限类型:1.目录 2.菜单 3.按钮")
+    private Integer permissionType;
+
+    /** 级节点ID;级节点ID */
+    @ApiModelProperty(name = "级节点ID", notes = "级节点ID")
+    private Long parentId;
+
+    /** 图标;图标 */
+    @ApiModelProperty(name = "图标", notes = "图标")
+    private String permissionIcon;
+
+    /** 权限字串;权限字串 */
+    @ApiModelProperty(name = "权限字串", notes = "权限字串")
+    private String permissionStr;
+
+    /** 组件地址;组件地址 */
+    @ApiModelProperty(name = "组件地址", notes = "组件地址")
+    private String permissionComponent;
+
+    /** 排序字段;排序字段 */
+    @ApiModelProperty(name = "排序字段", notes = "排序字段")
+    private Integer sort;
+}

+ 48 - 0
src/main/java/com/smart/reader/model/vo/SysPermissionInfoVo.java

@@ -0,0 +1,48 @@
+package com.smart.reader.model.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.smart.reader.model.po.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel(value = "权限信息表")
+@TableName("sys_permission_info")
+@Data
+public class SysPermissionInfoVo extends BaseEntity {
+    /** 描述;描述 */
+    @ApiModelProperty(name = "描述", notes = "描述")
+    private String description;
+
+    /** 权限编码;权限编码 */
+    @ApiModelProperty(name = "权限编码", notes = "权限编码")
+    private String permissionCode;
+
+    /** 权限名称;权限名称 */
+    @ApiModelProperty(name = "权限名称", notes = "权限名称")
+    private String permissionName;
+
+    /** 权限类型;权限类型:1.目录 2.菜单 3.按钮 */
+    @ApiModelProperty(name = "权限类型", notes = "权限类型:1.目录 2.菜单 3.按钮")
+    private Integer permissionType;
+
+    /** 级节点ID;级节点ID */
+    @ApiModelProperty(name = "级节点ID", notes = "级节点ID")
+    private Long parentId;
+
+    /** 图标;图标 */
+    @ApiModelProperty(name = "图标", notes = "图标")
+    private String permissionIcon;
+
+    /** 权限字串;权限字串 */
+    @ApiModelProperty(name = "权限字串", notes = "权限字串")
+    private String permissionStr;
+
+    /** 组件地址;组件地址 */
+    @ApiModelProperty(name = "组件地址", notes = "组件地址")
+    private String permissionComponent;
+
+    /** 排序字段;排序字段 */
+    @ApiModelProperty(name = "排序字段", notes = "排序字段")
+    private Integer sort;
+}

+ 65 - 0
src/main/java/com/smart/reader/service/SysPermissionInfoService.java

@@ -0,0 +1,65 @@
+package com.smart.reader.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.smart.reader.common.Page;
+import com.smart.reader.exception.CustomException;
+import com.smart.reader.model.bo.SysPermissionInfoAddBo;
+import com.smart.reader.model.bo.SysPermissionInfoUpdateBo;
+import com.smart.reader.model.po.SysPermissionInfo;
+import com.smart.reader.model.vo.SysPermissionInfoVo;
+import java.util.List;
+
+public interface SysPermissionInfoService extends IService<SysPermissionInfo> {
+    /**
+     * 新增权限信息
+     *
+     * @param sysPermissionInfo
+     * @return
+     * @throws CustomException
+     */
+    Boolean add(SysPermissionInfoAddBo sysPermissionInfo) throws CustomException;
+
+    /**
+     * 查询权限信息并分页
+     *
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    Page<SysPermissionInfoVo> queryInfo(int pageNum, int pageSize);
+
+    /**
+     * 根据ID删除权限信息
+     *
+     * @param id
+     * @return
+     * @throws CustomException
+     */
+    Boolean delete(Long id) throws CustomException;
+
+    /**
+     * 批量删除权限信息
+     *
+     * @param ids 权限ID列表
+     * @return 操作结果
+     * @throws CustomException 删除失败时抛出异常
+     */
+    Boolean batchDelete(List<Long> ids) throws CustomException;
+
+    /**
+     * 修改权限数据
+     *
+     * @param sysPermissionInfo
+     * @return
+     * @throws CustomException
+     */
+    Boolean edit(SysPermissionInfoUpdateBo sysPermissionInfo) throws CustomException;
+
+    /**
+     * 根据权限ID查询权限详情
+     *
+     * @param id
+     * @return
+     */
+    SysPermissionInfoVo detail(Long id);
+}

+ 79 - 0
src/main/java/com/smart/reader/service/impl/SysPermissionInfoServiceImpl.java

@@ -0,0 +1,79 @@
+package com.smart.reader.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.smart.reader.common.Page;
+import com.smart.reader.dao.SysPermissionInfoMapper;
+import com.smart.reader.exception.CustomException;
+import com.smart.reader.model.bo.SysPermissionInfoAddBo;
+import com.smart.reader.model.bo.SysPermissionInfoUpdateBo;
+import com.smart.reader.model.po.SysPermissionInfo;
+import com.smart.reader.model.vo.SysPermissionInfoVo;
+import com.smart.reader.service.SysPermissionInfoService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+
+@Service
+public class SysPermissionInfoServiceImpl extends ServiceImpl<SysPermissionInfoMapper, SysPermissionInfo> implements SysPermissionInfoService {
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean add(SysPermissionInfoAddBo sysPermissionInfo) throws CustomException {
+        SysPermissionInfo permissionInfo = BeanUtil.copyProperties(sysPermissionInfo, SysPermissionInfo.class);
+        Boolean save = this.save(permissionInfo);
+        if (!save) {
+            throw new CustomException("权限数据添加失败");
+        }
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public Page<SysPermissionInfoVo> queryInfo(int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<SysPermissionInfoVo> tableInfoVos = this.baseMapper.queryInfo();
+        return new Page<>(pageNum, pageSize, tableInfoVos);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(Long id) throws CustomException {
+        boolean remove = this.removeById(id);
+        if (!remove) {
+            throw new CustomException("权限数据删除失败");
+        }
+        return Boolean.TRUE;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean batchDelete(List<Long> ids) throws CustomException {
+        boolean result = this.removeByIds(ids);
+        if (!result) {
+            throw new CustomException("批量删除失败");
+        }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean edit(SysPermissionInfoUpdateBo sysPermissionInfo) throws CustomException {
+        SysPermissionInfo permissionInfo = this.getById(sysPermissionInfo.getId());
+        if (ObjectUtil.isEmpty(permissionInfo)) {
+            throw new CustomException("权限数据不存在");
+        }
+        BeanUtil.copyProperties(sysPermissionInfo, permissionInfo);
+        boolean update = this.updateById(permissionInfo);
+        if (!update) {
+            throw new CustomException("权限数据修改失败");
+        }
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public SysPermissionInfoVo detail(Long id) {
+        return this.baseMapper.detail(id);
+    }
+}

+ 10 - 0
src/main/resources/mapper/SysPermissionInfoMapper.xml

@@ -0,0 +1,10 @@
+<?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.smart.reader.dao.SysPermissionInfoMapper">
+    <select id="queryInfo" resultType="com.smart.reader.model.vo.SysPermissionInfoVo">
+        select pi.* from `sys_permission_info` pi
+    </select>
+    <select id="detail" resultType="com.smart.reader.model.vo.SysPermissionInfoVo">
+        select pi.* from `sys_permission_info` pi where pi.id=#{id}
+    </select>
+</mapper>