完成步骤:
一. 会员权益的实体类
@Data
//会员权益信息对象
public class MemberDetail {
private static final long serialVersionUID = 1L;
//会员权益信息对象 - MemberDetail
/** 主键权益id */
@Field("right_id")
private Integer id;
/** 权益名称 */
@Field("right_name")
private String rightName;
/** 父类id */
@Field("parent_id")
private Integer parentId;
/** 层级 */
@Field("level")
private Integer level;
/** 状态 */
@Field("status")
private Integer status;
/** 是否有子导航栏 */
@Field("has_children")
private Integer hasChildren;
/** 子部门 */
private List<MemberDetail> children = new ArrayList<MemberDetail>();
}
二: 会员权益的controller
返回这种这种数据,的后端业务接口
/**
* 查询会员权益信息模块的父类id为0的列表
*
* @param memberDetail 包含查询条件的会员权益信息对象
* @return 包含符合条件的会员权益信息列表的 AjaxResult
*/
@GetMapping("/parentList")
public AjaxResult parentList(MemberDetail memberDetail)
{
List<MemberDetail> memberDetails = memberDetailNavService.selectparentList(memberDetail);
return success(memberDetails);
}
service和实现类
/**
* 查询会员权益信息模块的父类id为0的列表
*/
public List<MemberDetail> selectparentList(MemberDetail memberDetail);
/**
* 查询会员权益信息模块的父类id为0的列表
*/
@Override
public List<MemberDetail> selectparentList(MemberDetail memberDetail) {
List<MemberDetail> memberDetails = memberDetailNavMapper.selectparentList(memberDetail);
return memberDetails;
}
mapper代码
<!--
查询会员权益信息模块的父类ID为0的列表
参数:
- rightName: 权益名称,可选条件,用于模糊匹配权益名称
- parentId: 父类ID,可选条件,用于筛选父类ID为指定值的记录
- level: 权益级别,可选条件,用于筛选特定级别的记录
返回结果:
- 使用 MemberDetailResult resultMap 进行结果映射
-->
<select id="selectparentList" parameterType="MemberDetail" resultMap="MemberDetailResult">
<!-- 引用共享的查询条件 -->
<include refid="selectMemberDetailVo"/>
<where>
<!-- 根据条件动态生成查询条件 -->
<if test="rightName != null and rightName != ''"> and right_name like concat('%', #{rightName}, '%')</if>
<if test="parentId != null "> and parent_id = #{parentId}</if>
<if test="level != null "> and level = #{level}</if>
</where>
</select>