Commit 21e01e9f by chamberone

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

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