| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 | <?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.welampiot.dao.GroupDao">    <select id="getListBySection" parameterType="java.util.List" resultType="com.welampiot.dto.GroupDTO">        select id,name from `group`        <if test="sectionList != null and !sectionList.isEmpty()">            where sectionid in            <foreach item="vo" collection="sectionList" open="(" separator="," close=")">                #{vo}            </foreach>        </if>    </select>    <select id="getListByVO" parameterType="com.welampiot.vo.GroupVO" resultType="com.welampiot.dto.GroupDTO">        select g.id,g.name,g.number,g.sectionid as sectionId,g.areaid as areaId,g.type,g.value,g.lampid as lampId,        (select count(id) from lampinfo where find_in_set(id,g.lampid)) as lampCount,g.onLight,g.offLight,g.day_or_night,g.patrolinterval as patrolInterval,g.devType,s.name as section,p.name as policy,        <choose>            <when test="version == 1">                gl.english_name as area            </when>            <when test="version == 2">                gl.ru_name as area            </when>            <otherwise>                gl.chinese_name as area            </otherwise>        </choose>        from `group` as g        left join section s on g.sectionid = s.id        left join global_location gl on gl.id = s.pid        left join policy p on g.value = p.id        where 1=1        <if test="sectionList != null and !sectionList.isEmpty()">            and g.sectionid in            <foreach item="vo" collection="sectionList" open="(" separator="," close=")">                #{vo}            </foreach>        </if>        <if test="devType != null">            and g.devType = #{devType}        </if>        <if test="keyword != null">            and g.name like '%#{keyword}%'        </if>        order by g.name asc        <if test="offset != null and limit != null">            limit #{offset},#{limit}        </if>    </select>    <select id="getCountByVO" parameterType="com.welampiot.dto.GroupDTO" resultType="Integer">        select count(*)        from `group` as g        where 1=1        <if test="sectionList != null and !sectionList.isEmpty()">            and g.sectionid in            <foreach item="vo" collection="sectionList" open="(" separator="," close=")">                #{vo}            </foreach>        </if>        <if test="devType != null">            and g.devType = #{devType}        </if>        <if test="keyword != null">            and g.name like '%#{keyword}%'        </if>    </select>    <select id="getDetailByVO" parameterType="com.welampiot.vo.GroupVO" resultType="com.welampiot.dto.GroupDTO">        select        g.name,g.number,g.id,g.areaid as areaId,g.sectionid as sectionId,(select count(id) from lampinfo where find_in_set(id,g.lampid)) as lampCount,g.type,g.value,s.name as section,g.lampid as lampId,        <choose>            <when test="version == 1">                gl.english_name as area            </when>            <when test="version == 2">                gl.ru_name as area            </when>            <otherwise>                gl.chinese_name as area            </otherwise>        </choose>        from `group` as g        left join section s on g.sectionid = s.id        left join global_location gl on gl.id = s.pid        where g.id=#{id}        <if test="sectionList != null and !sectionList.isEmpty()">            and g.sectionid in            <foreach item="vo" collection="sectionList" open="(" separator="," close=")">                #{vo}            </foreach>        </if>        limit 1    </select>    <insert id="add" parameterType="com.welampiot.dto.GroupDTO" useGeneratedKeys="true" keyProperty="id"    >        insert into `group` (name,number,lampid,areaid,sectionid,lampcount,createtime,devType,updatetime        )        values        (#{name},#{number},#{lampId},#{areaId},#{sectionId},#{lampCount},#{createTime},#{devType},#{updateTime}        )    </insert>    <select id="checkData" resultType="Integer" parameterType="com.welampiot.dto.GroupDTO">        select count(id) from `group`        where 1=1        <if test="sectionId != null">            and sectionid = #{sectionId}        </if>        <if test="name != null">            and name = #{name}        </if>        <if test="number != null">            and number = #{number}        </if>        <if test="id != null">            and id != #{id}        </if>    </select>    <update id="update" parameterType="com.welampiot.dto.GroupDTO" useGeneratedKeys="true" keyProperty="id"    >        update `group` set        name = #{name},        number = #{number},        lampid = #{lampId},        areaid = #{areaId},        sectionid = #{sectionId},        lampcount = #{lampCount},        devType = #{devType},        updatetime = #{updateTime}        where id = #{id}    </update>    <delete id="deleteById">        delete from `group` where id=#{id};    </delete>        <select id="getGroupListByDTO" resultType="GroupDTO">        select g.name,g.id,g.value,g.type,g.offLight,g.onLight,g.updatetime as updateTime,g.lampcount as lampCount,g.color_temp as colarTemp,s.timezone        from `group` g        left join section s on g.sectionid = s.id        where 1=1        <if test="keyword != null and keyword != ''">            and g.name like '%${keyword}%'        </if>        <if test="sectionList != null and !sectionList.isEmpty()">            and g.sectionid in            <foreach collection="sectionList" item="dto" open="(" separator="," close=")">                #{dto}            </foreach>        </if>        <choose>            <when test="devType == 0">                and g.devType = 0            </when>            <when test="devType == 1">                and g.devType = 1            </when>        </choose>    </select>    <select id="findPolicyNameByValue" resultType="String">        select p.name        from policy p        where p.id = #{id}    </select>    <select id="getGroupTotalByDTO" resultType="Integer">        select count(g.id)        from `group` g        where 1=1        <if test="sectionList != null and !sectionList.isEmpty()">            and g.sectionid in            <foreach collection="sectionList" item="item" open="(" separator="," close=")">                #{item}            </foreach>        </if>        <if test="areaId != null and areaId != 0">            and g.areaid = #{areaId}        </if>    </select>    <select id="getGroupDTOById" resultType="GroupDTO">        select            g.id,            g.lampid as lampId,            g.devType,            g.patrolinterval as patrolInterval,            g.type,            g.value        from `group` g        where g.id = #{id}    </select>    <update id="updateGroupLampId" parameterType="GroupDTO">        update            `group` g        set            g.lampid = #{lampId}        where            g.id = #{id}    </update>    <select id="getListByIds" resultType="GroupDTO">        select id,lampid,number from `group`        <trim prefix="where" suffixOverrides="and|or">            <if test="ids !=null">                id in                <foreach collection="ids" open="(" close=")" item="id" separator=",">                    #{id}                </foreach>            </if>        </trim>    </select></mapper>
 |