13693261870
2025-07-08 810ad9dbaa8553299a4516790a9f546a9b84905e
se-system/src/main/resources/mapper/data/LayerMapper.xml
@@ -1,51 +1,98 @@
<?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.terra.system.mapper.data.LayerMapper">
    <select id="selectLayers" resultType="com.terra.system.entity.sys.LayerEntity">
        select distinct d.*, e.proxy, e.pubid
        from lf.sys_user a
        inner join lf.sys_role_user b on a.id = b.userid
        inner join lf.sys_role_layer c on b.roleid = c.roleid
        inner join lf.sys_layer d on c.layerid = d.id
        left join lf.sys_res e on d.resid = e.id and e.status = 2
        <where>
            d.status = 1 and d.flag = 0
            <if test="uid != null">
                and a.uid = #{uid}
            </if>
        </where>
        order by d.id;
    </select>
    <select id="selectProjectLayers" resultType="com.terra.system.entity.sys.LayerEntity">
        select distinct d.*, e.proxy
        from lf.sys_user a
        inner join lf.sys_role_user b on a.id = b.userid
        inner join lf.sys_role_layer c on b.roleid = c.roleid
        inner join lf.sys_layer d on c.layerid = d.id
        left join lf.sys_res e on d.resid = e.id and e.status = 2
        <where>
            d.status = 1 and d.flag = 1
            <if test="uid != null">
                and a.uid = #{uid}
            </if>
        </where>
        order by d.id;
    </select>
    <select id="selectCount" resultType="java.lang.Integer">
        select count(*) from lf.sys_layer
        <where>
            <if test="cnName != null">
                upper(cn_name) like #{cnName}
            <if test="name != null">
                upper(cn_name) like #{name} or upper(en_name) like #{name}
            </if>
        </where>
    </select>
    <select id="selectByPage" resultType="com.terra.system.entity.data.LayerEntity">
    <select id="selectByPage" resultType="com.terra.system.entity.sys.LayerEntity">
        select * from lf.sys_layer
        <where>
            <if test="cnName != null">
                upper(cn_name) like #{cnName}
            <if test="name != null">
                upper(cn_name) like #{name} or upper(en_name) like #{name}
            </if>
        </where>
        order by id
        order by id desc
        limit #{limit} offset #{offset}
    </select>
    <select id="selectAll" resultType="com.terra.system.entity.data.LayerEntity">
        select a.*,
         (select ns from lf.sys_dict b where b.field = 'gid' and b.tab = a.en_name) "ns",
         (select json from lf.sys_publish c where c.id = a.pubid)
        from lf.sys_layer a
        order by id;
    <select id="selectAll" resultType="com.terra.system.entity.sys.LayerEntity">
        select *
        from lf.sys_layer
        <where>
            <if test="flag != null">
                flag = #{flag}
            </if>
        </where>
        order by id desc;
    </select>
    <select id="selectById" resultType="com.terra.system.entity.data.LayerEntity">
    <select id="selectById" resultType="com.terra.system.entity.sys.LayerEntity">
        select * from lf.sys_layer where id = #{id}
    </select>
    <insert id="insert" parameterType="com.terra.system.entity.data.LayerEntity">
    <select id="selectIdByName" resultType="java.lang.Integer">
        select id from lf.sys_dir where name = #{name};
    </select>
    <select id="selectMaxOrderNumByPid" resultType="java.lang.Integer">
        select coalesce(max(order_num), 0) + 1 from lf.sys_layer where pid = #{pid};
    </select>
    <select id="selectByResId" resultType="com.terra.system.entity.sys.LayerEntity">
        select * from lf.sys_layer where resid = #{resid} limit 1;
    </select>
    <insert id="insert" parameterType="com.terra.system.entity.sys.LayerEntity">
        insert into lf.sys_layer
        (pid,cn_name,en_name,url,test_url,type,icon,level,order_num,is_show,create_user,create_time,bak,serve_type,data_type,elev,is_project)
        (pid,cn_name,en_name,url,is_layer,is_show,icon,level,order_num,status,create_user,create_time,bak,elev,resid,type,data,tab,category,flag,unit)
        values
        (#{pid},#{cnName},#{enName},#{url},#{testUrl},#{type},#{icon},#{level},#{orderNum},#{isShow},#{createUser},now(),#{bak},#{serveType},#{dataType},#{elev},#{isProject})
        (#{pid},#{cnName},#{enName},#{url},#{isLayer},#{isShow},#{icon},#{level},#{orderNum},#{status},#{createUser},now(),#{bak},#{elev},#{resid},#{type},#{data},#{tab},#{category},#{flag},#{unit})
    </insert>
    <insert id="inserts">
        insert into lf.sys_layer
        (pid,cn_name,en_name,url,test_url,type,icon,level,order_num,is_show,create_user,create_time,bak,serve_type,data_type,elev,is_project)
        (pid,cn_name,en_name,url,is_layer,is_show,icon,level,order_num,status,create_user,create_time,bak,elev,resid,type,data,tab,category,flag,unit)
        values
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.pid},#{item.cnName},#{item.enName},#{item.url},#{item.testUrl},#{item.type},#{item.icon},#{item.level},#{item.orderNum},#{item.isShow},#{item.createUser},now(),#{item.bak},#{item.serveType},#{item.dataType},#{item.elev},#{item.isProject})
            (#{item.pid},#{item.cnName},#{item.enName},#{item.url},#{item.isLayer},#{item.isShow},#{item.icon},#{item.level},#{item.orderNum},#{item.status},#{item.createUser},now(),#{item.bak},#{item.elev},#{item.resid},#{item.type},#{item.data},#{item.tab},#{item.category},#{item.flag},#{item.unit})
        </foreach>
    </insert>
@@ -62,16 +109,14 @@
    <update id="update">
        update lf.sys_layer
        set pid=#{pid},cn_name=#{cnName},en_name=#{enName},url=#{url},test_url=#{testUrl},type=#{type},icon=#{icon},level=#{level},order_num=#{orderNum},is_show=#{isShow},update_user=#{updateUser},update_time=now(),bak=#{bak},serve_type=#{serveType},data_type=#{dataType},elev=#{elev},is_project=#{isProject}
        set pid=#{pid},cn_name=#{cnName},en_name=#{enName},url=#{url},is_layer=#{isLayer},is_show=#{isShow},icon=#{icon},level=#{level},order_num=#{orderNum},status=#{status},update_user=#{updateUser},update_time=now(),bak=#{bak},elev=#{elev},resid=#{resid},type=#{type},data=#{data},tab=#{tab},category=#{category},flag=#{flag},unit=#{unit}
        where id=#{id}
    </update>
    <update id="updates">
        <foreach collection="list" item="item" index="index" separator=";">
            update lf.sys_layer
            <set>
                pid=#{item.pid},cn_name=#{item.cnName},en_name=#{item.enName},url=#{item.url},test_url=#{item.testUrl},type=#{item.type},icon=#{item.icon},level=#{item.level},order_num=#{item.orderNum},is_show=#{item.isShow},update_user=#{item.updateUser},update_time=now(),bak=#{item.bak},serve_type=#{item.serveType},data_type=#{item.dataType},elev=#{item.elev},is_project=#{item.isProject}
            </set>
            set pid=#{item.pid},cn_name=#{item.cnName},en_name=#{item.enName},url=#{item.url},is_layer=#{item.isLayer},is_show=#{item.isShow},icon=#{item.icon},level=#{item.level},order_num=#{item.orderNum},status=#{item.status},update_user=#{item.updateUser},update_time=now(),bak=#{item.bak},elev=#{item.elev},resid=#{item.resid},type=#{item.type},data=#{item.data},tab=#{item.tab},category=#{item.category},flag=#{item.flag},unit=#{item.unit}
            where id = #{item.id}
        </foreach>
    </update>