guohongjin
2024-05-15 5b7639f0bd9e056738ec15100ed0532e965c6cd5
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
67
68
69
70
71
72
73
74
75
<?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="cn.stylefeng.roses.kernel.system.modular.home.mapper.SysStatisticsUrlMapper">
 
    <!--根据统计urlId集合获取菜单id集合-->
    <select id="getMenuIdsByStatUrlIdList" resultType="java.lang.Long">
        select stat_menu_id as statMenuId from sys_statistics_url stat
        <where>
            <if test="statUrlIds != null and statUrlIds.size() > 0">
                stat.stat_url_id in
                <foreach item="item" collection="statUrlIds" index="index" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        order by field(stat_url_id,
        <foreach item="item" collection="statUrlIds" index="index" open="" separator="," close=")">
            #{item}
        </foreach>
    </select>
 
    <!--根据统计urlId集合获取菜单id集合,oracle版本-->
    <select id="getMenuIdsByStatUrlIdList" resultType="java.lang.Long" databaseId="oracle">
        select stat_menu_id as statMenuId from sys_statistics_url stat
        <where>
            <if test="statUrlIds != null and statUrlIds.size() > 0">
                stat.stat_url_id in
                <foreach item="item" collection="statUrlIds" index="index" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        order by instr(
        <foreach item="item" collection="statUrlIds" index="index" open="'" separator="," close="'">
            ${item}
        </foreach>,stat_url_id)
    </select>
 
    <!--根据统计urlId集合获取菜单id集合,pgsql版本-->
    <select id="getMenuIdsByStatUrlIdList" resultType="java.lang.Long" databaseId="pgsql">
        select stat_menu_id as statMenuId from sys_statistics_url stat
        <where>
            <if test="statUrlIds != null and statUrlIds.size() > 0">
                stat.stat_url_id in
                <foreach item="item" collection="statUrlIds" index="index" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        order by case stat_url_id
        <foreach item="item" collection="statUrlIds" index="index" open="" separator="," close="">
            when ${item} then ${index}
        </foreach>
        end
    </select>
 
    <!--根据统计urlId集合获取菜单id集合,sql server版本-->
    <select id="getMenuIdsByStatUrlIdList" resultType="java.lang.Long" databaseId="mssql">
        select stat_menu_id as statMenuId from sys_statistics_url stat
        <where>
            <if test="statUrlIds != null and statUrlIds.size() > 0">
                stat.stat_url_id in
                <foreach item="item" collection="statUrlIds" index="index" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </where>
        order by charindex(CAST(stat_url_id AS VARCHAR),
        <foreach item="item" collection="statUrlIds" index="index" open="'" separator="," close="'">
            ${item}
        </foreach>
        )
    </select>
 
</mapper>