xiangpei
2025-04-18 ccadf9480d4e6a9dcc227a2a0b1f9ae0612e36fd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.monkeylessey.sys.mapper.SysMenuMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.monkeylessey.sys.domain.vo.SysMenuVO">
        <id column="id" property="id" />
        <result column="menu_name" property="menuName" />
        <result column="menu_type" property="menuType" />
        <result column="status" property="status" />
        <result column="menu_path" property="menuPath" />
        <result column="router_name" property="routerName" />
        <result column="router_component" property="routerComponent" />
        <result column="permission" property="permission" />
        <result column="order_num" property="orderNum" />
        <result column="parent_id" property="parentId" />
        <result column="gmt_create" property="gmtCreate" />
        <result column="create_by" property="createBy" />
        <result column="gmt_update" property="gmtUpdate" />
        <result column="update_by" property="updateBy" />
        <collection property="children" column="id" ofType="com.monkeylessey.sys.domain.vo.SysMenuVO" javaType="list" select="selectChildren"></collection>
    </resultMap>
 
    <select id="selectMenuAndChildrenByPage" parameterType="com.monkeylessey.sys.domain.query.SysMenuQuery" resultMap="BaseResultMap">
        select
               *
        from
             sys_menu
        <where>
            parent_id = 0 and deleted = 0
            <if test="status != null and status != '' ">and status = #{status}</if>
            <if test="menuType != null and menuType != '' ">and menu_type = #{menuType}</if>
            <if test="menuName != null and menuName != '' ">and menu_name like concat('%', #{menuType}, '%') </if>
        </where>
        order by
            order_num ASC
        <if test="currentPage != null and pageSize != null">limit #{currentPage},#{pageSize}</if>
 
    </select>
 
    <select id="selectMenuCount" parameterType="com.monkeylessey.sys.domain.query.SysMenuQuery" resultType="long">
        select
             count(*)
        from
             sys_menu
        <where>
            parent_id = 0 and deleted = 0
            <if test="status != null and status != '' ">and status = #{status}</if>
            <if test="menuType != null and menuType != '' ">and menu_type = #{menuType}</if>
            <if test="menuName != null and menuName != '' ">and menu_name like concat('%', #{menuType}, '%') </if>
        </where>
    </select>
 
    <select id="selectChildren" resultMap="BaseResultMap">
        select * from sys_menu where parent_id = #{id} and deleted = 0 order by order_num
    </select>
 
    <select id="selectMenuById" resultMap="BaseResultMap">
        select * from sys_menu where id = #{menuId} and deleted = 0
    </select>
 
 
 
</mapper>