Commit 21e01e9f by chamberone

feat: 用户添加权限资源模块

1 parent 8713b158
package com.dituhui.pea.pojo; package com.dituhui.pea.pojo;
import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.Date;
import lombok.Data;
/** /**
* 资源信息 * 资源信息
* @author zl
*/ */
@Data @Data
public class ResourceInfo { public class ResourceInfo {
...@@ -30,20 +28,8 @@ public class ResourceInfo { ...@@ -30,20 +28,8 @@ public class ResourceInfo {
*/ */
private String description; private String description;
/** /**
* 创建人 * 资源类型1菜单2功能点3所属组织
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/ */
private Date updatedTime; private Integer type;
} }
package com.dituhui.pea.pojo; package com.dituhui.pea.pojo;
import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.Date;
import lombok.Data;
/** /**
* 角色信息 * 角色信息
* @author zl
*/ */
@Data @Data
public class RoleInfo { public class RoleInfo {
...@@ -30,22 +28,5 @@ public class RoleInfo { ...@@ -30,22 +28,5 @@ public class RoleInfo {
*/ */
@NotBlank(message = "角色条件不能为空!") @NotBlank(message = "角色条件不能为空!")
private String extra; private String extra;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
} }
...@@ -23,6 +23,6 @@ public class UserLoginDTO { ...@@ -23,6 +23,6 @@ public class UserLoginDTO {
private String token; private String token;
private List<RoleInfo> roles; private List<RoleInfo> roles;
private List<ResourceInfo> resource; private List<ResourceInfo> resources;
} }
...@@ -11,8 +11,6 @@ import java.util.List; ...@@ -11,8 +11,6 @@ import java.util.List;
/** /**
* 资源表 用户对某种具体权限或者功能的描述(Resource)表数据库访问层 * 资源表 用户对某种具体权限或者功能的描述(Resource)表数据库访问层
* *
* @author makejava
* @since 2020-12-09 15:33:27
*/ */
public interface ResourceDao extends JpaRepository<ResourceEntity, String>, public interface ResourceDao extends JpaRepository<ResourceEntity, String>,
JpaSpecificationExecutor<ResourceEntity>, CrudRepository<ResourceEntity, String> { JpaSpecificationExecutor<ResourceEntity>, CrudRepository<ResourceEntity, String> {
......
package com.dituhui.pea.user.dao; package com.dituhui.pea.user.dao;
import com.dituhui.pea.user.entity.RoleResourceEntity; import com.dituhui.pea.user.entity.RoleResourceEntity;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.CrudRepository;
...@@ -9,33 +11,40 @@ import org.springframework.data.repository.CrudRepository; ...@@ -9,33 +11,40 @@ import org.springframework.data.repository.CrudRepository;
/** /**
* 角色资源表(RoleResource)表数据库访问层 * 角色资源表(RoleResource)表数据库访问层
* *
* @author zl
* @since 2020-12-09 15:33:55
*/ */
public interface RoleResourceDao extends JpaRepository<RoleResourceEntity, String>, public interface RoleResourceDao extends JpaRepository<RoleResourceEntity, String>,
JpaSpecificationExecutor<RoleResourceEntity>, CrudRepository<RoleResourceEntity, String> { JpaSpecificationExecutor<RoleResourceEntity>, CrudRepository<RoleResourceEntity, String> {
/** /**
* 根据角色ID和资源ID查询 * 根据角色ID和资源ID查询
* @param roleId 角色ID *
* @param resourceId 资源ID * @param roleId 角色ID
* @return * @param resourceId 资源ID
*/ * @return
RoleResourceEntity findByRoleIdAndResourceId(String roleId, String resourceId); */
RoleResourceEntity findByRoleIdAndResourceId(String roleId, String resourceId);
/** /**
* 根据角色ID删除对应的资源关系 * 根据角色ID查询
* @param roleId 角色ID *
*/ * @param roleIds 角色ID
void deleteByRoleId(String roleId); * @return
*/
/** List<RoleResourceEntity> findByRoleIdIn(List<String> roleIds);
* 根据角色ID和资源ID删除
* @param roleId 角色ID /**
* @param resourceId 资源ID * 根据角色ID删除对应的资源关系
*/ *
void deleteByRoleIdAndResourceId(String roleId, String resourceId); * @param roleId 角色ID
*/
void deleteByRoleId(String roleId);
/**
* 根据角色ID和资源ID删除
*
* @param roleId 角色ID
* @param resourceId 资源ID
*/
void deleteByRoleIdAndResourceId(String roleId, String resourceId);
} }
...@@ -56,6 +56,11 @@ public class ResourceEntity implements Serializable { ...@@ -56,6 +56,11 @@ public class ResourceEntity implements Serializable {
@Column(name = "CREATED_BY") @Column(name = "CREATED_BY")
private String createdBy; private String createdBy;
/** /**
* 名称
*/
@Column(name = "parent_id")
private String parentId;
/**
* 创建时间 * 创建时间
*/ */
@Column(name = "CREATED_TIME") @Column(name = "CREATED_TIME")
......
...@@ -19,16 +19,20 @@ import com.dituhui.pea.enums.RedisKeyGroup; ...@@ -19,16 +19,20 @@ import com.dituhui.pea.enums.RedisKeyGroup;
import com.dituhui.pea.enums.StatusCodeEnum; import com.dituhui.pea.enums.StatusCodeEnum;
import com.dituhui.pea.enums.ThirdPartyEnum; import com.dituhui.pea.enums.ThirdPartyEnum;
import com.dituhui.pea.exception.BusinessException; import com.dituhui.pea.exception.BusinessException;
import com.dituhui.pea.pojo.ResourceInfo;
import com.dituhui.pea.pojo.RoleInfo; import com.dituhui.pea.pojo.RoleInfo;
import com.dituhui.pea.pojo.ThirdUserInfo; import com.dituhui.pea.pojo.ThirdUserInfo;
import com.dituhui.pea.pojo.UserInfo; import com.dituhui.pea.pojo.UserInfo;
import com.dituhui.pea.pojo.UserLoginDTO; import com.dituhui.pea.pojo.UserLoginDTO;
import com.dituhui.pea.user.commom.RedisService; import com.dituhui.pea.user.commom.RedisService;
import com.dituhui.pea.user.constant.TextConstant; import com.dituhui.pea.user.constant.TextConstant;
import com.dituhui.pea.user.dao.ResourceDao;
import com.dituhui.pea.user.dao.RoleDao; import com.dituhui.pea.user.dao.RoleDao;
import com.dituhui.pea.user.dao.RoleResourceDao;
import com.dituhui.pea.user.dao.UserDao; import com.dituhui.pea.user.dao.UserDao;
import com.dituhui.pea.user.dao.UserRoleDao; import com.dituhui.pea.user.dao.UserRoleDao;
import com.dituhui.pea.user.entity.RoleEntity; import com.dituhui.pea.user.entity.RoleEntity;
import com.dituhui.pea.user.entity.RoleResourceEntity;
import com.dituhui.pea.user.entity.UserEntity; import com.dituhui.pea.user.entity.UserEntity;
import com.dituhui.pea.user.entity.UserRoleEntity; import com.dituhui.pea.user.entity.UserRoleEntity;
import com.dituhui.pea.user.factory.ThirdStrategy; import com.dituhui.pea.user.factory.ThirdStrategy;
...@@ -71,6 +75,12 @@ public class UserService { ...@@ -71,6 +75,12 @@ public class UserService {
@Autowired @Autowired
RoleDao roleDao; RoleDao roleDao;
@Autowired
RoleResourceDao roleResourceDao;
@Autowired
ResourceDao resourceDao;
public Result<?> userLogin(String account, String password) { public Result<?> userLogin(String account, String password) {
UserEntity user = userDao.findByAccountAndPassword(account, SecureUtil.md5(password)); UserEntity user = userDao.findByAccountAndPassword(account, SecureUtil.md5(password));
log.info("{}/{} login", account, password); log.info("{}/{} login", account, password);
...@@ -84,16 +94,23 @@ public class UserService { ...@@ -84,16 +94,23 @@ public class UserService {
// 获取角色 // 获取角色
List<UserRoleEntity> userRoles = userRoleDao.findByUserId(user.getId()); List<UserRoleEntity> userRoles = userRoleDao.findByUserId(user.getId());
if (CollectionUtils.isNotEmpty(userRoles)) { if (CollectionUtils.isNotEmpty(userRoles)) {
List<RoleEntity> roles = roleDao List<String> ids = userRoles.stream().map(r -> r.getRoleId()).collect(Collectors.toList());
.findAllById(userRoles.stream().map(r -> r.getRoleId()).collect(Collectors.toList())); List<RoleEntity> roles = roleDao.findAllById(ids);
if (CollectionUtils.isNotEmpty(roles)) { if (CollectionUtils.isNotEmpty(roles)) {
userDTO.setRoles(roles.stream().map(r -> BeanUtil.copyProperties(r, RoleInfo.class)) userDTO.setRoles(roles.stream().map(r -> BeanUtil.copyProperties(r, RoleInfo.class))
.collect(Collectors.toList())); .collect(Collectors.toList()));
// 获取资源
List<RoleResourceEntity> roleResources = roleResourceDao.findByRoleIdIn(ids);
if (CollectionUtils.isNotEmpty(roleResources)) {
List<String> resourceIds = roleResources.stream().map(r -> r.getResourceId())
.collect(Collectors.toList());
userDTO.setResources(resourceDao.findAllById(resourceIds).stream()
.map(r -> BeanUtil.copyProperties(r, ResourceInfo.class)).collect(Collectors.toList()));
}
} }
} }
// 获取资源
userDTO.setToken(uuid); userDTO.setToken(uuid);
return Result.success(userDTO); return Result.success(userDTO);
} else { } else {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!