mirror of https://github.com/longtai-cn/hippo4j
parent
2a8f7537b9
commit
895a57a0c0
@ -0,0 +1,33 @@
|
|||||||
|
HELP.md
|
||||||
|
target/
|
||||||
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
|
!**/src/main/**/target/
|
||||||
|
!**/src/test/**/target/
|
||||||
|
|
||||||
|
### STS ###
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
.sts4-cache
|
||||||
|
|
||||||
|
### IntelliJ IDEA ###
|
||||||
|
.idea
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
|
||||||
|
### NetBeans ###
|
||||||
|
/nbproject/private/
|
||||||
|
/nbbuild/
|
||||||
|
/dist/
|
||||||
|
/nbdist/
|
||||||
|
/.nb-gradle/
|
||||||
|
build/
|
||||||
|
!**/src/main/**/build/
|
||||||
|
!**/src/test/**/build/
|
||||||
|
|
||||||
|
### VS Code ###
|
||||||
|
.vscode/
|
@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>com.github.dynamic-threadpool</groupId>
|
||||||
|
<artifactId>parent</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>auth</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.hutool</groupId>
|
||||||
|
<artifactId>hutool-all</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.PermissionInfo;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permission mapper.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:34
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface PermissionMapper extends BaseMapper<PermissionInfo> {
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.RoleInfo;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Role mapper.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:55
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface RoleMapper extends BaseMapper<RoleInfo> {
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.UserInfo;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User mapper.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 21:42
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface UserMapper extends BaseMapper<UserInfo> {
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.model;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permission info.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:33
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("permission")
|
||||||
|
public class PermissionInfo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* role
|
||||||
|
*/
|
||||||
|
private String role;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* resource
|
||||||
|
*/
|
||||||
|
private String resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* action
|
||||||
|
*/
|
||||||
|
private String action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gmtCreate
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private Date gmtCreate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gmtModified
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
private Date gmtModified;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* delFlag
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private Integer delFlag;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.model;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Role info.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:54
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("role")
|
||||||
|
public class RoleInfo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* role
|
||||||
|
*/
|
||||||
|
private String role;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* userName
|
||||||
|
*/
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gmtCreate
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private Date gmtCreate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gmtModified
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
private Date gmtModified;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* delFlag
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private Integer delFlag;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.model;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User info.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 21:37
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("user")
|
||||||
|
public class UserInfo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* userName
|
||||||
|
*/
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* password
|
||||||
|
*/
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gmtCreate
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private Date gmtCreate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gmtModified
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
private Date gmtModified;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* delFlag
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private Integer delFlag;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.model.biz.permission;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permission query page.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 21:47
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PermissionQueryPageReqDTO extends Page {
|
||||||
|
|
||||||
|
public PermissionQueryPageReqDTO(long current, long size) {
|
||||||
|
super(current, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.model.biz.permission;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permission resp dto.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PermissionRespDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* role
|
||||||
|
*/
|
||||||
|
private String role;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* source
|
||||||
|
*/
|
||||||
|
private String resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* action
|
||||||
|
*/
|
||||||
|
private String action;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.model.biz.role;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Role query page.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 21:47
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class RoleQueryPageReqDTO extends Page {
|
||||||
|
|
||||||
|
public RoleQueryPageReqDTO(long current, long size) {
|
||||||
|
super(current, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.model.biz.role;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Role resp dto.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:49
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class RoleRespDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* role
|
||||||
|
*/
|
||||||
|
private String role;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* userName
|
||||||
|
*/
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.model.biz.user;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User query page.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 21:47
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class UserQueryPageReqDTO extends Page {
|
||||||
|
|
||||||
|
public UserQueryPageReqDTO(long current, long size) {
|
||||||
|
super(current, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.model.biz.user;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User resp dto.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 21:51
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class UserRespDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* userName
|
||||||
|
*/
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* password
|
||||||
|
*/
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gmtCreate
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private Date gmtCreate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gmtModified
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private Date gmtModified;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.biz.permission.PermissionRespDTO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permission service.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:13
|
||||||
|
*/
|
||||||
|
public interface PermissionService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询权限列表.
|
||||||
|
*
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
IPage<PermissionRespDTO> listPermission(int pageNo, int pageSize);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增权限.
|
||||||
|
*
|
||||||
|
* @param role
|
||||||
|
* @param resource
|
||||||
|
* @param action
|
||||||
|
*/
|
||||||
|
void addPermission(String role, String resource, String action);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除权限.
|
||||||
|
*
|
||||||
|
* @param role
|
||||||
|
* @param resource
|
||||||
|
* @param action
|
||||||
|
*/
|
||||||
|
void deletePermission(String role, String resource, String action);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.biz.role.RoleRespDTO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Role service.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:45
|
||||||
|
*/
|
||||||
|
public interface RoleService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询角色列表.
|
||||||
|
*
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
IPage<RoleRespDTO> listRole(int pageNo, int pageSize);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增角色.
|
||||||
|
*
|
||||||
|
* @param role
|
||||||
|
* @param userName
|
||||||
|
*/
|
||||||
|
void addRole(String role, String userName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除角色.
|
||||||
|
*
|
||||||
|
* @param role
|
||||||
|
* @param userName
|
||||||
|
*/
|
||||||
|
void deleteRole(String role, String userName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据角色模糊搜索.
|
||||||
|
*
|
||||||
|
* @param role
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<String> getRoleLike(String role);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.biz.user.UserRespDTO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User service.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 21:34
|
||||||
|
*/
|
||||||
|
public interface UserService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询用户列表.
|
||||||
|
*
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
IPage<UserRespDTO> listUser(int pageNo, int pageSize);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增用户.
|
||||||
|
*
|
||||||
|
* @param userName
|
||||||
|
* @param password
|
||||||
|
*/
|
||||||
|
void addUser(String userName, String password);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改用户.
|
||||||
|
*
|
||||||
|
* @param userName
|
||||||
|
* @param password
|
||||||
|
*/
|
||||||
|
void updateUser(String userName, String password);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除用户.
|
||||||
|
*
|
||||||
|
* @param userName
|
||||||
|
*/
|
||||||
|
void deleteUser(String userName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户名模糊搜索.
|
||||||
|
*
|
||||||
|
* @param userName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<String> getUserLikeUsername(String userName);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.github.dynamic.threadpool.auth.mapper.PermissionMapper;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.PermissionInfo;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.biz.permission.PermissionQueryPageReqDTO;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.biz.permission.PermissionRespDTO;
|
||||||
|
import com.github.dynamic.threadpool.auth.service.PermissionService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permission service impl.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:32
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class PermissionServiceImpl implements PermissionService {
|
||||||
|
|
||||||
|
private final PermissionMapper permissionMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<PermissionRespDTO> listPermission(int pageNo, int pageSize) {
|
||||||
|
PermissionQueryPageReqDTO queryPage = new PermissionQueryPageReqDTO(pageNo, pageSize);
|
||||||
|
IPage<PermissionInfo> selectPage = permissionMapper.selectPage(queryPage, null);
|
||||||
|
|
||||||
|
return selectPage.convert(each -> BeanUtil.toBean(each, PermissionRespDTO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addPermission(String role, String resource, String action) {
|
||||||
|
LambdaQueryWrapper<PermissionInfo> queryWrapper = Wrappers.lambdaQuery(PermissionInfo.class)
|
||||||
|
.eq(PermissionInfo::getRole, role)
|
||||||
|
.eq(PermissionInfo::getResource, resource)
|
||||||
|
.eq(PermissionInfo::getAction, action);
|
||||||
|
PermissionInfo existPermissionInfo = permissionMapper.selectOne(queryWrapper);
|
||||||
|
if (existPermissionInfo != null) {
|
||||||
|
throw new RuntimeException("权限重复");
|
||||||
|
}
|
||||||
|
|
||||||
|
PermissionInfo insertPermission = new PermissionInfo();
|
||||||
|
insertPermission.setRole(role);
|
||||||
|
insertPermission.setResource(resource);
|
||||||
|
insertPermission.setAction(action);
|
||||||
|
permissionMapper.insert(insertPermission);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deletePermission(String role, String resource, String action) {
|
||||||
|
LambdaUpdateWrapper<PermissionInfo> updateWrapper = Wrappers.lambdaUpdate(PermissionInfo.class)
|
||||||
|
.eq(PermissionInfo::getRole, role)
|
||||||
|
.eq(PermissionInfo::getResource, resource)
|
||||||
|
.eq(PermissionInfo::getAction, action);
|
||||||
|
|
||||||
|
permissionMapper.delete(updateWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,74 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.github.dynamic.threadpool.auth.mapper.RoleMapper;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.RoleInfo;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.biz.role.RoleQueryPageReqDTO;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.biz.role.RoleRespDTO;
|
||||||
|
import com.github.dynamic.threadpool.auth.service.RoleService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Role service impl.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 22:53
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class RoleServiceImpl implements RoleService {
|
||||||
|
|
||||||
|
private final RoleMapper roleMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<RoleRespDTO> listRole(int pageNo, int pageSize) {
|
||||||
|
RoleQueryPageReqDTO queryPage = new RoleQueryPageReqDTO(pageNo, pageSize);
|
||||||
|
IPage<RoleInfo> selectPage = roleMapper.selectPage(queryPage, null);
|
||||||
|
|
||||||
|
return selectPage.convert(each -> BeanUtil.toBean(each, RoleRespDTO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addRole(String role, String userName) {
|
||||||
|
LambdaQueryWrapper<RoleInfo> queryWrapper = Wrappers.lambdaQuery(RoleInfo.class)
|
||||||
|
.eq(RoleInfo::getRole, role);
|
||||||
|
RoleInfo roleInfo = roleMapper.selectOne(queryWrapper);
|
||||||
|
if (roleInfo != null) {
|
||||||
|
throw new RuntimeException("角色名重复");
|
||||||
|
}
|
||||||
|
|
||||||
|
RoleInfo insertRole = new RoleInfo();
|
||||||
|
insertRole.setRole(role);
|
||||||
|
insertRole.setUserName(userName);
|
||||||
|
roleMapper.insert(insertRole);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteRole(String role, String userName) {
|
||||||
|
LambdaUpdateWrapper<RoleInfo> updateWrapper = Wrappers.lambdaUpdate(RoleInfo.class)
|
||||||
|
.eq(RoleInfo::getRole, role)
|
||||||
|
.eq(RoleInfo::getUserName, userName);
|
||||||
|
roleMapper.delete(updateWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getRoleLike(String role) {
|
||||||
|
LambdaQueryWrapper<RoleInfo> queryWrapper = Wrappers.lambdaQuery(RoleInfo.class)
|
||||||
|
.like(RoleInfo::getRole, role)
|
||||||
|
.select(RoleInfo::getRole);
|
||||||
|
|
||||||
|
List<RoleInfo> roleInfos = roleMapper.selectList(queryWrapper);
|
||||||
|
List<String> roleNames = roleInfos.stream().map(RoleInfo::getRole).collect(Collectors.toList());
|
||||||
|
|
||||||
|
return roleNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,86 @@
|
|||||||
|
package com.github.dynamic.threadpool.auth.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.crypto.SecureUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.github.dynamic.threadpool.auth.mapper.UserMapper;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.UserInfo;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.biz.user.UserQueryPageReqDTO;
|
||||||
|
import com.github.dynamic.threadpool.auth.model.biz.user.UserRespDTO;
|
||||||
|
import com.github.dynamic.threadpool.auth.service.UserService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User service impl.
|
||||||
|
*
|
||||||
|
* @author chen.ma
|
||||||
|
* @date 2021/10/30 21:40
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class UserServiceImpl implements UserService {
|
||||||
|
|
||||||
|
private final UserMapper userMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<UserRespDTO> listUser(int pageNo, int pageSize) {
|
||||||
|
UserQueryPageReqDTO queryPage = new UserQueryPageReqDTO(pageNo, pageSize);
|
||||||
|
IPage<UserInfo> selectPage = userMapper.selectPage(queryPage, null);
|
||||||
|
|
||||||
|
return selectPage.convert(each -> BeanUtil.toBean(each, UserRespDTO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addUser(String userName, String password) {
|
||||||
|
LambdaQueryWrapper<UserInfo> queryWrapper = Wrappers.lambdaQuery(UserInfo.class)
|
||||||
|
.eq(UserInfo::getUserName, userName);
|
||||||
|
UserInfo existUserInfo = userMapper.selectOne(queryWrapper);
|
||||||
|
if (existUserInfo != null) {
|
||||||
|
throw new RuntimeException("用户名重复");
|
||||||
|
}
|
||||||
|
|
||||||
|
UserInfo insertUser = new UserInfo();
|
||||||
|
insertUser.setUserName(userName);
|
||||||
|
// TODO 暂定为 Md5 加密
|
||||||
|
insertUser.setPassword(SecureUtil.md5(password));
|
||||||
|
userMapper.insert(insertUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateUser(String userName, String password) {
|
||||||
|
UserInfo userInfo = new UserInfo();
|
||||||
|
userInfo.setUserName(userName);
|
||||||
|
userInfo.setPassword(SecureUtil.md5(password));
|
||||||
|
|
||||||
|
LambdaUpdateWrapper<UserInfo> updateWrapper = Wrappers.lambdaUpdate(UserInfo.class)
|
||||||
|
.eq(UserInfo::getUserName, userName);
|
||||||
|
userMapper.update(userInfo, updateWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteUser(String userName) {
|
||||||
|
LambdaUpdateWrapper<UserInfo> updateWrapper = Wrappers.lambdaUpdate(UserInfo.class)
|
||||||
|
.eq(UserInfo::getUserName, userName);
|
||||||
|
userMapper.delete(updateWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getUserLikeUsername(String userName) {
|
||||||
|
LambdaQueryWrapper<UserInfo> queryWrapper = Wrappers.lambdaQuery(UserInfo.class)
|
||||||
|
.like(UserInfo::getUserName, userName)
|
||||||
|
.select(UserInfo::getUserName);
|
||||||
|
|
||||||
|
List<UserInfo> userInfos = userMapper.selectList(queryWrapper);
|
||||||
|
List<String> userNames = userInfos.stream().map(UserInfo::getUserName).collect(Collectors.toList());
|
||||||
|
|
||||||
|
return userNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in new issue