Browse Source

角色查询完成

huangqizheng/feature-20250718222252-导出修改完毕
sunjiabei 1 month ago
parent
commit
009571b7d0
  1. 1
      src/main/java/com/example/demo/controller/RoleController.java
  2. 6
      src/main/java/com/example/demo/domain/vo/RoleVo.java
  3. 23
      src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java
  4. 4
      src/main/resources/mapper/RoleMapper.xml

1
src/main/java/com/example/demo/controller/RoleController.java

@ -68,6 +68,7 @@ public class RoleController {
return Result.success(roleService.selectBy(page.getPageNum(), page.getPageSize(), page.getRoleVo()));
}
} catch (Exception e) {
e.printStackTrace();
return Result.error("请检查筛选数据的格式");
}

6
src/main/java/com/example/demo/domain/vo/RoleVo.java

@ -2,6 +2,7 @@ package com.example.demo.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -20,6 +21,7 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RoleVo implements Serializable {
private static final long serialVersionUID = 1L;
@ -28,7 +30,7 @@ public class RoleVo implements Serializable {
private String roleKey; // 角色标识符
private Integer priority;//优先级
private Integer fatherId;//上级角色id
private Integer fatherName;//上级角色名称
private String fatherName;//上级角色名称
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime; // 创建时间
@ -36,4 +38,6 @@ public class RoleVo implements Serializable {
private Date updateTime; // 更新时间
List<Integer> menuIds;//拥有的菜单id
List<MenuVo> tree;//菜单树
}

23
src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java

@ -2,6 +2,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Role;
import com.example.demo.domain.vo.ConsumeUser;
import com.example.demo.domain.vo.MenuVo;
import com.example.demo.domain.vo.Result;
import com.example.demo.domain.vo.RoleVo;
import com.example.demo.mapper.RefundMapper;
@ -38,29 +39,28 @@ public class RoleServiceImpl implements RoleService {
@Transactional
public Result addRole(RoleVo roleVo) {
//校验角色
if(roleVo.getRoleName()==null|| roleVo.getRoleName().isEmpty()){
if (roleVo.getRoleName() == null || roleVo.getRoleName().isEmpty()) {
return Result.error("角色名为空");
}
if(roleMapper.selectByRoleName(roleVo.getRoleName())!=null){
if (roleMapper.selectByRoleName(roleVo.getRoleName()) != null) {
return Result.error("角色名重复");
}
if(roleVo.getPriority()==null){
if (roleVo.getPriority() == null) {
return Result.error("优先级为空");
}
if(roleVo.getMenuIds()==null||roleVo.getMenuIds().isEmpty()){
if (roleVo.getMenuIds() == null || roleVo.getMenuIds().isEmpty()) {
return Result.error("权限为空");
}
try {
roleMapper.addRole(roleVo);
Role role = roleMapper.selectByRoleName(roleVo.getRoleName());
if(role==null){
if (role == null) {
return Result.error("角色添加失败");
}else{
} else {
roleVo.setId(role.getId());
}
menuService.addPermission(roleVo);
}catch (Exception e)
{
} catch (Exception e) {
return Result.error("添加失败");
}
@ -83,6 +83,13 @@ public class RoleServiceImpl implements RoleService {
public PageInfo<RoleVo> selectBy(Integer pageNum, Integer pageSize, RoleVo roleVo) {
PageHelper.startPage(pageNum, pageSize);
List<RoleVo> roleVos = roleMapper.selectBy(roleVo);
// 遍历 roleVos 列表
for (RoleVo role : roleVos) {
// 获取每个角色的权限树
List<MenuVo> permissionTree = menuService.getPermissionTree(role.getId());
// 将权限树设置到角色对象中
role.setTree(permissionTree);
}
return new PageInfo<>(roleVos);
}
}

4
src/main/resources/mapper/RoleMapper.xml

@ -49,8 +49,8 @@
-- 自连接,通过 father_id 关联父角色
LEFT JOIN role father ON r.father_id = father.id
<where>
<if test="roleVo.roleName != null and roleVo.roleName != ''">
r.role_name LIKE CONCAT('%', #{roleVo.roleName}, '%')
<if test="roleName != null and roleName != ''">
r.role_name LIKE CONCAT('%', #{roleName}, '%')
</if>
</where>
ORDER BY r.priority DESC

Loading…
Cancel
Save