目录
一、控制器类
package com.dragonwu.controller;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dragonwu.domain.SysPrivilege;
import com.dragonwu.model.R;
import com.dragonwu.service.SysPrivilegeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
/**
* 权限管理的控制器
* 1 查询
* 2 修改
* 3 新增
* 4 删除
* 权限管理的权限:
* 查询:sys_privilege_query
* 修改:sys_privilege_update
* 新增:sys_privilege_create
* 删除:sys_privilege_delete
*/
@RestController
@RequestMapping("/privileges")
@Api(tags = "权限的管理")
public class SysPrivilegeController {
@Autowired
private SysPrivilegeService sysPrivilegeService ;
/**
* 权限数据的分页查询
* @param page
* @return
*/
@GetMapping
@ApiOperation(value = "分页查询权限数据")
@ApiImplicitParams({
@ApiImplicitParam(name = "current" ,value = "当前页") ,
@ApiImplicitParam(name = "size" ,value = "每页显示的大小") ,
})
@PreAuthorize("hasAuthority('sys_privilege_query')")
public R<Page<SysPrivilege>> findByPage(@ApiIgnore Page<SysPrivilege> page){
// 查询时,我们将最近新增的、修改的数据优先展示-> 排序->lastUpdateTime
page.addOrder(OrderItem.desc("last_update_time")) ;
Page<SysPrivilege> sysPrivilegePage = sysPrivilegeService.page(page);
return R.ok(sysPrivilegePage) ;
}
@PostMapping
@ApiOperation(value = "新增一个权限")
@PreAuthorize("hasAuthority('sys_privilege_create')")
@ApiImplicitParams({
@ApiImplicitParam(name = "sysPrivilege" ,value = "sysPrivilege 的json数据")
})
public R add(@RequestBody @Validated SysPrivilege sysPrivilege){
// 新增时,我们需要给我们的新增对象填充一些属性
// String userIdStr = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString();
// sysPrivilege.setCreateBy(Long.valueOf(userIdStr));
// sysPrivilege.setCreated(new Date());
// sysPrivilege.setLastUpdateTime(new Date());
boolean save = sysPrivilegeService.save(sysPrivilege);
if(save){
return R.ok("新增成功") ;
}
return R.fail("新增失败") ;
}
@PatchMapping
@ApiOperation(value = "修改一个权限")
@PreAuthorize("hasAuthority('sys_privilege_update')")
@ApiImplicitParams({
@ApiImplicitParam(name = "sysPrivilege" ,value = "sysPrivilege 的json数据")
})
public R update(@RequestBody @Validated SysPrivilege sysPrivilege){
// // 新增时,我们需要给我们的新增对象填充一些属性
// String userIdStr = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString();
// sysPrivilege.setModifyBy(Long.valueOf(userIdStr));
// sysPrivilege.setLastUpdateTime(new Date());
boolean save = sysPrivilegeService.updateById(sysPrivilege);
if(save){
return R.ok("修改成功") ;
}
return R.fail("修改失败") ;
}
}
package com.dragonwu.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sun.istack.NotNull;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* author: Dragon Wu
* date: 2022-05-18 19:08
*/
/**
* 权限配置
*/
@ApiModel(value="com-dragonwu-domain-SysPrivilege")
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "sys_privilege")
public class SysPrivilege {
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键")
private Long id;
/**
* 所属菜单Id
*/
@TableField(value = "menu_id")
@ApiModelProperty(value="所属菜单Id")
@NotNull
private Long menuId;
/**
* 功能点名称
*/
@TableField(value = "name")
@ApiModelProperty(value="功能点名称")
@NotNull
private String name;
/**
* 功能描述
*/
@TableField(value = "description")
@ApiModelProperty(value="功能描述")
private String description;
@TableField(value = "url")
@ApiModelProperty(value="")
private String url;
@TableField(value = "method")
@ApiModelProperty(value="")
private String method;
/**
* 创建人
*/
@TableField(value = "create_by")
@ApiModelProperty(value="创建人")
private Long createBy;
/**
* 修改人
*/
@TableField(value = "modify_by")
@ApiModelProperty(value="修改人")
private Long modifyBy;
/**
* 创建时间
*/
@TableField(value = "created")
@ApiModelProperty(value="创建时间")
private Date created;
/**
* 修改时间
*/
@TableField(value = "last_update_time")
@ApiModelProperty(value="修改时间")
private Date lastUpdateTime;
}
二、启动认证中心,启动服务测试
没有问题!