Browse Source

角色查询部分实现

huangqizheng/feature-20250718222252-导出修改完毕
sunjiabei 1 month ago
parent
commit
53bf85aa4a
  1. 20
      src/main/java/com/example/demo/controller/RoleController.java
  2. 1
      src/main/java/com/example/demo/domain/vo/Page.java
  3. 1
      src/main/java/com/example/demo/domain/vo/RoleVo.java
  4. 3
      src/main/java/com/example/demo/mapper/RoleMapper.java
  5. 6
      src/main/java/com/example/demo/service/RoleService.java
  6. 11
      src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java
  7. 21
      src/main/resources/mapper/RoleMapper.xml

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

@ -48,10 +48,28 @@ public class RoleController {
} }
//获取上级角色的下属角色列表 //获取上级角色的下属角色列表
@PostMapping("/selectSub") @PostMapping("/selectSub")
public List<RoleVo> selectSub(Integer fatherId) {
public List<RoleVo> selectSub(Integer fatherId) {
return roleService.selectSubRole(fatherId); return roleService.selectSubRole(fatherId);
} }
//角色明细筛选
@PostMapping("/selectBy")
public Result selectBy(@RequestBody Page page) {
try {
//页码校验
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.error("页码数为空!");
}
//页面大小校验
if (ObjectUtils.isEmpty(page.getPageSize())) {
return Result.error("页大小为空!");
} else {
return Result.success(roleService.selectBy(page.getPageNum(), page.getPageSize(), page.getRoleVo()));
}
} catch (Exception e) {
return Result.error("请检查筛选数据的格式");
}
}
} }

1
src/main/java/com/example/demo/domain/vo/Page.java

@ -27,4 +27,5 @@ public class Page {
private RechargeAudit rechargeAudit; private RechargeAudit rechargeAudit;
private RefundAudit refundAudit; private RefundAudit refundAudit;
private RechargeUser rechargeUser; private RechargeUser rechargeUser;
private RoleVo roleVo;
} }

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

@ -28,6 +28,7 @@ public class RoleVo implements Serializable {
private String roleKey; // 角色标识符 private String roleKey; // 角色标识符
private Integer priority;//优先级 private Integer priority;//优先级
private Integer fatherId;//上级角色id private Integer fatherId;//上级角色id
private Integer fatherName;//上级角色名称
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime; // 创建时间 private Date createTime; // 创建时间

3
src/main/java/com/example/demo/mapper/RoleMapper.java

@ -33,4 +33,7 @@ public interface RoleMapper {
void addRole(RoleVo roleVo); void addRole(RoleVo roleVo);
//根据父级id查下属角色 //根据父级id查下属角色
List<RoleVo> selectByFatherId(Integer fatherId); List<RoleVo> selectByFatherId(Integer fatherId);
//分页查找角色
List<RoleVo> selectBy(RoleVo roleVo);
} }

6
src/main/java/com/example/demo/service/RoleService.java

@ -1,8 +1,10 @@
package com.example.demo.service; package com.example.demo.service;
import com.example.demo.domain.vo.ConsumeUser;
import com.example.demo.domain.vo.Result; import com.example.demo.domain.vo.Result;
import com.example.demo.domain.vo.RoleVo; import com.example.demo.domain.vo.RoleVo;
import com.github.pagehelper.PageInfo;
import java.util.List; import java.util.List;
@ -24,4 +26,8 @@ public interface RoleService {
List<RoleVo> selectAllRole(); List<RoleVo> selectAllRole();
//根据父级id查找下属角色 //根据父级id查找下属角色
List<RoleVo> selectSubRole(Integer fatherId); List<RoleVo> selectSubRole(Integer fatherId);
//分页查找角色
PageInfo<RoleVo> selectBy(Integer pageNum, Integer pageSize, RoleVo roleVo);
} }

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

@ -1,12 +1,15 @@
package com.example.demo.serviceImpl; package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Role; import com.example.demo.domain.entity.Role;
import com.example.demo.domain.vo.ConsumeUser;
import com.example.demo.domain.vo.Result; import com.example.demo.domain.vo.Result;
import com.example.demo.domain.vo.RoleVo; import com.example.demo.domain.vo.RoleVo;
import com.example.demo.mapper.RefundMapper; import com.example.demo.mapper.RefundMapper;
import com.example.demo.mapper.RoleMapper; import com.example.demo.mapper.RoleMapper;
import com.example.demo.service.MenuService; import com.example.demo.service.MenuService;
import com.example.demo.service.RoleService; import com.example.demo.service.RoleService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -74,6 +77,14 @@ public class RoleServiceImpl implements RoleService {
public List<RoleVo> selectSubRole(Integer fatherId) { public List<RoleVo> selectSubRole(Integer fatherId) {
return roleMapper.selectByFatherId(fatherId); return roleMapper.selectByFatherId(fatherId);
} }
//分页查找角色
@Override
public PageInfo<RoleVo> selectBy(Integer pageNum, Integer pageSize, RoleVo roleVo) {
PageHelper.startPage(pageNum, pageSize);
List<RoleVo> roleVos = roleMapper.selectBy(roleVo);
return new PageInfo<>(roleVos);
}
} }

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

@ -35,4 +35,25 @@
VALUES VALUES
(#{roleName}, #{priority}, #{fatherId}) (#{roleName}, #{priority}, #{fatherId})
</insert> </insert>
<!-- 查询筛选后角色记录 -->
<select id="selectBy" resultType="com.example.demo.domain.vo.RoleVo">
SELECT r.id AS id,
r.role_name AS roleName,
r.priority AS priority,
r.father_id AS fatherId,
-- 通过自连接查询父角色名称
father.role_name AS fatherName
FROM role r
-- 自连接,通过 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>
</where>
ORDER BY r.priority DESC
</select>
</mapper> </mapper>
Loading…
Cancel
Save