<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd"> <mapper namespace="com.mortals.xhx.module.device.dao.ibatis.DeviceDaoImpl"> <!-- 字段和属性映射 --> <resultMap type="DeviceEntity" id="DeviceEntity-Map"> <id property="id" column="id" /> <result property="deviceName" column="deviceName" /> <result property="deviceCode" column="deviceCode" /> <result property="deviceType" column="deviceType" /> <result property="deviceMac" column="deviceMac" /> <result property="ip" column="ip" /> <result property="centernum" column="centernum" /> <result property="port" column="port" /> <result property="siteNum" column="siteNum" /> <result property="deviceFirmId" column="deviceFirmId" /> <result property="deviceFirmname" column="deviceFirmname" /> <result property="deviceOnlineStatus" column="deviceOnlineStatus" /> <result property="status" column="status" /> <result property="deviceSource" column="deviceSource" /> <result property="deviceRemark" column="deviceRemark" /> <result property="onlineTime" column="onlineTime" /> <result property="offlineTime" column="offlineTime" /> <result property="createUserId" column="createUserId" /> <result property="createTime" column="createTime" /> <result property="updateUserId" column="updateUserId" /> <result property="updateTime" column="updateTime" /> </resultMap> <!-- 表所有列 --> <sql id="_columns"> <trim suffixOverrides="," suffix=""> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))"> a.id, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceName') or colPickMode == 1 and data.containsKey('deviceName')))"> a.deviceName, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceCode') or colPickMode == 1 and data.containsKey('deviceCode')))"> a.deviceCode, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceType') or colPickMode == 1 and data.containsKey('deviceType')))"> a.deviceType, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceMac') or colPickMode == 1 and data.containsKey('deviceMac')))"> a.deviceMac, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ip') or colPickMode == 1 and data.containsKey('ip')))"> a.ip, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('centernum') or colPickMode == 1 and data.containsKey('centernum')))"> a.centernum, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('port') or colPickMode == 1 and data.containsKey('port')))"> a.port, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteNum') or colPickMode == 1 and data.containsKey('siteNum')))"> a.siteNum, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceFirmId') or colPickMode == 1 and data.containsKey('deviceFirmId')))"> a.deviceFirmId, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceFirmname') or colPickMode == 1 and data.containsKey('deviceFirmname')))"> a.deviceFirmname, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceOnlineStatus') or colPickMode == 1 and data.containsKey('deviceOnlineStatus')))"> a.deviceOnlineStatus, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('status') or colPickMode == 1 and data.containsKey('status')))"> a.status, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceSource') or colPickMode == 1 and data.containsKey('deviceSource')))"> a.deviceSource, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceRemark') or colPickMode == 1 and data.containsKey('deviceRemark')))"> a.deviceRemark, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('onlineTime') or colPickMode == 1 and data.containsKey('onlineTime')))"> a.onlineTime, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('offlineTime') or colPickMode == 1 and data.containsKey('offlineTime')))"> a.offlineTime, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))"> a.createUserId, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))"> a.createTime, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))"> a.updateUserId, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))"> a.updateTime, </if> </trim> </sql> <!-- 新增 区分主键自增加还是业务插入 --> <insert id="insert" parameterType="DeviceEntity" useGeneratedKeys="true" keyProperty="id"> insert into mortals_stp_device (deviceName,deviceCode,deviceType,deviceMac,ip,centernum,port,siteNum,deviceFirmId,deviceFirmname,deviceOnlineStatus,status,deviceSource,deviceRemark,onlineTime,offlineTime,createUserId,createTime,updateUserId,updateTime) VALUES (#{deviceName},#{deviceCode},#{deviceType},#{deviceMac},#{ip},#{centernum},#{port},#{siteNum},#{deviceFirmId},#{deviceFirmname},#{deviceOnlineStatus},#{status},#{deviceSource},#{deviceRemark},#{onlineTime},#{offlineTime},#{createUserId},#{createTime},#{updateUserId},#{updateTime}) </insert> <!-- 批量新增 --> <insert id="insertBatch" parameterType="paramDto"> insert into mortals_stp_device (deviceName,deviceCode,deviceType,deviceMac,ip,centernum,port,siteNum,deviceFirmId,deviceFirmname,deviceOnlineStatus,status,deviceSource,deviceRemark,onlineTime,offlineTime,createUserId,createTime,updateUserId,updateTime) VALUES <foreach collection="data.dataList" item="item" index="index" separator="," > (#{item.deviceName},#{item.deviceCode},#{item.deviceType},#{item.deviceMac},#{item.ip},#{item.centernum},#{item.port},#{item.siteNum},#{item.deviceFirmId},#{item.deviceFirmname},#{item.deviceOnlineStatus},#{item.status},#{item.deviceSource},#{item.deviceRemark},#{item.onlineTime},#{item.offlineTime},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime}) </foreach> </insert> <!-- 根据ParamDto更新 --> <update id="update" parameterType="paramDto"> update mortals_stp_device as a set <trim suffixOverrides="," suffix=""> <if test="(colPickMode==0 and data.containsKey('deviceName')) or (colPickMode==1 and !data.containsKey('deviceName'))"> a.deviceName=#{data.deviceName}, </if> <if test="(colPickMode==0 and data.containsKey('deviceCode')) or (colPickMode==1 and !data.containsKey('deviceCode'))"> a.deviceCode=#{data.deviceCode}, </if> <if test="(colPickMode==0 and data.containsKey('deviceType')) or (colPickMode==1 and !data.containsKey('deviceType'))"> a.deviceType=#{data.deviceType}, </if> <if test="(colPickMode==0 and data.containsKey('deviceTypeIncrement')) or (colPickMode==1 and !data.containsKey('deviceTypeIncrement'))"> a.deviceType=ifnull(a.deviceType,0) + #{data.deviceTypeIncrement}, </if> <if test="(colPickMode==0 and data.containsKey('deviceMac')) or (colPickMode==1 and !data.containsKey('deviceMac'))"> a.deviceMac=#{data.deviceMac}, </if> <if test="(colPickMode==0 and data.containsKey('ip')) or (colPickMode==1 and !data.containsKey('ip'))"> a.ip=#{data.ip}, </if> <if test="(colPickMode==0 and data.containsKey('centernum')) or (colPickMode==1 and !data.containsKey('centernum'))"> a.centernum=#{data.centernum}, </if> <if test="(colPickMode==0 and data.containsKey('port')) or (colPickMode==1 and !data.containsKey('port'))"> a.port=#{data.port}, </if> <if test="(colPickMode==0 and data.containsKey('siteNum')) or (colPickMode==1 and !data.containsKey('siteNum'))"> a.siteNum=#{data.siteNum}, </if> <if test="(colPickMode==0 and data.containsKey('deviceFirmId')) or (colPickMode==1 and !data.containsKey('deviceFirmId'))"> a.deviceFirmId=#{data.deviceFirmId}, </if> <if test="(colPickMode==0 and data.containsKey('deviceFirmIdIncrement')) or (colPickMode==1 and !data.containsKey('deviceFirmIdIncrement'))"> a.deviceFirmId=ifnull(a.deviceFirmId,0) + #{data.deviceFirmIdIncrement}, </if> <if test="(colPickMode==0 and data.containsKey('deviceFirmname')) or (colPickMode==1 and !data.containsKey('deviceFirmname'))"> a.deviceFirmname=#{data.deviceFirmname}, </if> <if test="(colPickMode==0 and data.containsKey('deviceOnlineStatus')) or (colPickMode==1 and !data.containsKey('deviceOnlineStatus'))"> a.deviceOnlineStatus=#{data.deviceOnlineStatus}, </if> <if test="(colPickMode==0 and data.containsKey('deviceOnlineStatusIncrement')) or (colPickMode==1 and !data.containsKey('deviceOnlineStatusIncrement'))"> a.deviceOnlineStatus=ifnull(a.deviceOnlineStatus,0) + #{data.deviceOnlineStatusIncrement}, </if> <if test="(colPickMode==0 and data.containsKey('status')) or (colPickMode==1 and !data.containsKey('status'))"> a.status=#{data.status}, </if> <if test="(colPickMode==0 and data.containsKey('statusIncrement')) or (colPickMode==1 and !data.containsKey('statusIncrement'))"> a.status=ifnull(a.status,0) + #{data.statusIncrement}, </if> <if test="(colPickMode==0 and data.containsKey('deviceSource')) or (colPickMode==1 and !data.containsKey('deviceSource'))"> a.deviceSource=#{data.deviceSource}, </if> <if test="(colPickMode==0 and data.containsKey('deviceSourceIncrement')) or (colPickMode==1 and !data.containsKey('deviceSourceIncrement'))"> a.deviceSource=ifnull(a.deviceSource,0) + #{data.deviceSourceIncrement}, </if> <if test="(colPickMode==0 and data.containsKey('deviceRemark')) or (colPickMode==1 and !data.containsKey('deviceRemark'))"> a.deviceRemark=#{data.deviceRemark}, </if> <if test="(colPickMode==0 and data.containsKey('onlineTime')) or (colPickMode==1 and !data.containsKey('onlineTime'))"> a.onlineTime=#{data.onlineTime}, </if> <if test="(colPickMode==0 and data.containsKey('offlineTime')) or (colPickMode==1 and !data.containsKey('offlineTime'))"> a.offlineTime=#{data.offlineTime}, </if> <if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))"> a.createUserId=#{data.createUserId}, </if> <if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))"> a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement}, </if> <if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))"> a.createTime=#{data.createTime}, </if> <if test="(colPickMode==0 and data.containsKey('updateUserId')) or (colPickMode==1 and !data.containsKey('updateUserId'))"> a.updateUserId=#{data.updateUserId}, </if> <if test="(colPickMode==0 and data.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !data.containsKey('updateUserIdIncrement'))"> a.updateUserId=ifnull(a.updateUserId,0) + #{data.updateUserIdIncrement}, </if> <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))"> a.updateTime=#{data.updateTime}, </if> </trim> <trim suffixOverrides="where" suffix=""> where <trim prefixOverrides="and" prefix=""> <include refid="_condition_"/> </trim> </trim> </update> <!-- 批量更新 --> <update id="updateBatch" parameterType="paramDto"> update mortals_stp_device as a <trim prefix="set" suffixOverrides=","> <trim prefix="deviceName=(case" suffix="ELSE deviceName end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('deviceName')) or (colPickMode==1 and !item.containsKey('deviceName'))"> when a.id=#{item.id} then #{item.deviceName} </if> </foreach> </trim> <trim prefix="deviceCode=(case" suffix="ELSE deviceCode end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('deviceCode')) or (colPickMode==1 and !item.containsKey('deviceCode'))"> when a.id=#{item.id} then #{item.deviceCode} </if> </foreach> </trim> <trim prefix="deviceType=(case" suffix="ELSE deviceType end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <choose> <when test="(colPickMode==0 and item.containsKey('deviceType')) or (colPickMode==1 and !item.containsKey('deviceType'))"> when a.id=#{item.id} then #{item.deviceType} </when> <when test="(colPickMode==0 and item.containsKey('deviceTypeIncrement')) or (colPickMode==1 and !item.containsKey('deviceTypeIncrement'))"> when a.id=#{item.id} then ifnull(a.deviceType,0) + #{item.deviceTypeIncrement} </when> </choose> </foreach> </trim> <trim prefix="deviceMac=(case" suffix="ELSE deviceMac end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('deviceMac')) or (colPickMode==1 and !item.containsKey('deviceMac'))"> when a.id=#{item.id} then #{item.deviceMac} </if> </foreach> </trim> <trim prefix="ip=(case" suffix="ELSE ip end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('ip')) or (colPickMode==1 and !item.containsKey('ip'))"> when a.id=#{item.id} then #{item.ip} </if> </foreach> </trim> <trim prefix="centernum=(case" suffix="ELSE centernum end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('centernum')) or (colPickMode==1 and !item.containsKey('centernum'))"> when a.id=#{item.id} then #{item.centernum} </if> </foreach> </trim> <trim prefix="port=(case" suffix="ELSE port end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('port')) or (colPickMode==1 and !item.containsKey('port'))"> when a.id=#{item.id} then #{item.port} </if> </foreach> </trim> <trim prefix="siteNum=(case" suffix="ELSE siteNum end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('siteNum')) or (colPickMode==1 and !item.containsKey('siteNum'))"> when a.id=#{item.id} then #{item.siteNum} </if> </foreach> </trim> <trim prefix="deviceFirmId=(case" suffix="ELSE deviceFirmId end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <choose> <when test="(colPickMode==0 and item.containsKey('deviceFirmId')) or (colPickMode==1 and !item.containsKey('deviceFirmId'))"> when a.id=#{item.id} then #{item.deviceFirmId} </when> <when test="(colPickMode==0 and item.containsKey('deviceFirmIdIncrement')) or (colPickMode==1 and !item.containsKey('deviceFirmIdIncrement'))"> when a.id=#{item.id} then ifnull(a.deviceFirmId,0) + #{item.deviceFirmIdIncrement} </when> </choose> </foreach> </trim> <trim prefix="deviceFirmname=(case" suffix="ELSE deviceFirmname end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('deviceFirmname')) or (colPickMode==1 and !item.containsKey('deviceFirmname'))"> when a.id=#{item.id} then #{item.deviceFirmname} </if> </foreach> </trim> <trim prefix="deviceOnlineStatus=(case" suffix="ELSE deviceOnlineStatus end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <choose> <when test="(colPickMode==0 and item.containsKey('deviceOnlineStatus')) or (colPickMode==1 and !item.containsKey('deviceOnlineStatus'))"> when a.id=#{item.id} then #{item.deviceOnlineStatus} </when> <when test="(colPickMode==0 and item.containsKey('deviceOnlineStatusIncrement')) or (colPickMode==1 and !item.containsKey('deviceOnlineStatusIncrement'))"> when a.id=#{item.id} then ifnull(a.deviceOnlineStatus,0) + #{item.deviceOnlineStatusIncrement} </when> </choose> </foreach> </trim> <trim prefix="status=(case" suffix="ELSE status end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <choose> <when test="(colPickMode==0 and item.containsKey('status')) or (colPickMode==1 and !item.containsKey('status'))"> when a.id=#{item.id} then #{item.status} </when> <when test="(colPickMode==0 and item.containsKey('statusIncrement')) or (colPickMode==1 and !item.containsKey('statusIncrement'))"> when a.id=#{item.id} then ifnull(a.status,0) + #{item.statusIncrement} </when> </choose> </foreach> </trim> <trim prefix="deviceSource=(case" suffix="ELSE deviceSource end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <choose> <when test="(colPickMode==0 and item.containsKey('deviceSource')) or (colPickMode==1 and !item.containsKey('deviceSource'))"> when a.id=#{item.id} then #{item.deviceSource} </when> <when test="(colPickMode==0 and item.containsKey('deviceSourceIncrement')) or (colPickMode==1 and !item.containsKey('deviceSourceIncrement'))"> when a.id=#{item.id} then ifnull(a.deviceSource,0) + #{item.deviceSourceIncrement} </when> </choose> </foreach> </trim> <trim prefix="deviceRemark=(case" suffix="ELSE deviceRemark end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('deviceRemark')) or (colPickMode==1 and !item.containsKey('deviceRemark'))"> when a.id=#{item.id} then #{item.deviceRemark} </if> </foreach> </trim> <trim prefix="onlineTime=(case" suffix="ELSE onlineTime end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('onlineTime')) or (colPickMode==1 and !item.containsKey('onlineTime'))"> when a.id=#{item.id} then #{item.onlineTime} </if> </foreach> </trim> <trim prefix="offlineTime=(case" suffix="ELSE offlineTime end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('offlineTime')) or (colPickMode==1 and !item.containsKey('offlineTime'))"> when a.id=#{item.id} then #{item.offlineTime} </if> </foreach> </trim> <trim prefix="createUserId=(case" suffix="ELSE createUserId end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <choose> <when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))"> when a.id=#{item.id} then #{item.createUserId} </when> <when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))"> when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement} </when> </choose> </foreach> </trim> <trim prefix="createTime=(case" suffix="ELSE createTime end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))"> when a.id=#{item.id} then #{item.createTime} </if> </foreach> </trim> <trim prefix="updateUserId=(case" suffix="ELSE updateUserId end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <choose> <when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))"> when a.id=#{item.id} then #{item.updateUserId} </when> <when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))"> when a.id=#{item.id} then ifnull(a.updateUserId,0) + #{item.updateUserIdIncrement} </when> </choose> </foreach> </trim> <trim prefix="updateTime=(case" suffix="ELSE updateTime end),"> <foreach collection="data.dataList" item="item" index="index" separator="" > <if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))"> when a.id=#{item.id} then #{item.updateTime} </if> </foreach> </trim> </trim> where id in <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")"> #{item.id} </foreach> </update> <!-- 根据主健查询 --> <select id="getByKey" parameterType="paramDto" resultMap="DeviceEntity-Map"> select <include refid="_columns"/> from mortals_stp_device as a where a.id=#{condition.id} </select> <!-- 根据主健删除 --> <delete id="deleteByKey" parameterType="paramDto"> delete a.* from mortals_stp_device as a where a.id=#{condition.id} </delete> <!-- 根据主健删除一批,针对单一主健有效 --> <delete id="deleteByKeys"> delete from mortals_stp_device where id in <foreach collection="array" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach> </delete> <!-- 根据paramDto删除一批 --> <delete id="deleteByMap" parameterType="paramDto"> delete a.* from mortals_stp_device as a <trim suffixOverrides="where" suffix=""> where <trim prefixOverrides="and" prefix=""> <include refid="_condition_"/> </trim> </trim> </delete> <!-- 获取列表 --> <select id="getList" parameterType="paramDto" resultMap="DeviceEntity-Map"> select <include refid="_columns"/> from mortals_stp_device as a <trim suffixOverrides="where" suffix=""> where <trim prefixOverrides="and" prefix=""> <include refid="_condition_"/> </trim> </trim> <include refid="_orderCols_"/> </select> <!-- 获取 --> <select id="getListCount" parameterType="paramDto" resultType="int"> select count(1) from mortals_stp_device as a <trim suffixOverrides="where" suffix=""> where <trim prefixOverrides="and" prefix=""> <include refid="_condition_"/> </trim> </trim> </select> <!-- 条件映射 --> <sql id="_condition_"> <if test="condition != null and !condition.isEmpty()"> <!-- 条件映射-普通条件 --> <include refid="_condition_param_"> <property name="_conditionParam_" value="condition"/> <property name="_conditionType_" value="and"/> </include> <!-- 条件映射-集合之间使用AND,集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) --> <if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()"> and <foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and "> <trim prefixOverrides="or" prefix="(" suffix=")"> <include refid="_condition_param_"> <property name="_conditionParam_" value="andCondition"/> <property name="_conditionType_" value="or"/> </include> </trim> </foreach> </if> <!-- 条件映射-集合之间使用OR,集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) --> <if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()"> and <foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or "> <trim prefixOverrides="and" prefix="(" suffix=")"> <include refid="_condition_param_"> <property name="_conditionParam_" value="orCondition"/> <property name="_conditionType_" value="and"/> </include> </trim> </foreach> </if> </if> </sql> <!-- 条件映射-代参数 --> <sql id="_condition_param_"> <bind name="conditionParamRef" value="${_conditionParam_}"/> <if test="conditionParamRef.containsKey('id')"> <if test="conditionParamRef.id != null"> ${_conditionType_} a.id=#{${_conditionParam_}.id} </if> </if> <if test="conditionParamRef.containsKey('id')"> <if test="conditionParamRef.id != null "> ${_conditionType_} a.id = #{${_conditionParam_}.id} </if> <if test="conditionParamRef.id == null"> ${_conditionType_} a.id is null </if> </if> <if test="conditionParamRef.containsKey('idList')"> ${_conditionType_} a.id in <foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null"> ${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart} </if> <if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null"> ${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd} </if> <if test="conditionParamRef.containsKey('deviceName')"> <if test="conditionParamRef.deviceName != null and conditionParamRef.deviceName != ''"> ${_conditionType_} a.deviceName like #{${_conditionParam_}.deviceName} </if> <if test="conditionParamRef.deviceName == null"> ${_conditionType_} a.deviceName is null </if> </if> <if test="conditionParamRef.containsKey('deviceNameList')"> ${_conditionType_} a.deviceName in <foreach collection="conditionParamRef.deviceNameList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('deviceCode')"> <if test="conditionParamRef.deviceCode != null and conditionParamRef.deviceCode != ''"> ${_conditionType_} a.deviceCode like #{${_conditionParam_}.deviceCode} </if> <if test="conditionParamRef.deviceCode == null"> ${_conditionType_} a.deviceCode is null </if> </if> <if test="conditionParamRef.containsKey('deviceCodeList')"> ${_conditionType_} a.deviceCode in <foreach collection="conditionParamRef.deviceCodeList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('deviceType')"> <if test="conditionParamRef.deviceType != null "> ${_conditionType_} a.deviceType = #{${_conditionParam_}.deviceType} </if> <if test="conditionParamRef.deviceType == null"> ${_conditionType_} a.deviceType is null </if> </if> <if test="conditionParamRef.containsKey('deviceTypeList')"> ${_conditionType_} a.deviceType in <foreach collection="conditionParamRef.deviceTypeList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('deviceTypeStart') and conditionParamRef.deviceTypeStart != null"> ${_conditionType_} a.deviceType <![CDATA[ >= ]]> #{${_conditionParam_}.deviceTypeStart} </if> <if test="conditionParamRef.containsKey('deviceTypeEnd') and conditionParamRef.deviceTypeEnd != null"> ${_conditionType_} a.deviceType <![CDATA[ <= ]]> #{${_conditionParam_}.deviceTypeEnd} </if> <if test="conditionParamRef.containsKey('deviceMac')"> <if test="conditionParamRef.deviceMac != null and conditionParamRef.deviceMac != ''"> ${_conditionType_} a.deviceMac like #{${_conditionParam_}.deviceMac} </if> <if test="conditionParamRef.deviceMac == null"> ${_conditionType_} a.deviceMac is null </if> </if> <if test="conditionParamRef.containsKey('deviceMacList')"> ${_conditionType_} a.deviceMac in <foreach collection="conditionParamRef.deviceMacList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('ip')"> <if test="conditionParamRef.ip != null and conditionParamRef.ip != ''"> ${_conditionType_} a.ip like #{${_conditionParam_}.ip} </if> <if test="conditionParamRef.ip == null"> ${_conditionType_} a.ip is null </if> </if> <if test="conditionParamRef.containsKey('ipList')"> ${_conditionType_} a.ip in <foreach collection="conditionParamRef.ipList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('centernum')"> <if test="conditionParamRef.centernum != null and conditionParamRef.centernum != ''"> ${_conditionType_} a.centernum like #{${_conditionParam_}.centernum} </if> <if test="conditionParamRef.centernum == null"> ${_conditionType_} a.centernum is null </if> </if> <if test="conditionParamRef.containsKey('centernumList')"> ${_conditionType_} a.centernum in <foreach collection="conditionParamRef.centernumList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('port')"> <if test="conditionParamRef.port != null and conditionParamRef.port != ''"> ${_conditionType_} a.port like #{${_conditionParam_}.port} </if> <if test="conditionParamRef.port == null"> ${_conditionType_} a.port is null </if> </if> <if test="conditionParamRef.containsKey('portList')"> ${_conditionType_} a.port in <foreach collection="conditionParamRef.portList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('siteNum')"> <if test="conditionParamRef.siteNum != null and conditionParamRef.siteNum != ''"> ${_conditionType_} a.siteNum like #{${_conditionParam_}.siteNum} </if> <if test="conditionParamRef.siteNum == null"> ${_conditionType_} a.siteNum is null </if> </if> <if test="conditionParamRef.containsKey('siteNumList')"> ${_conditionType_} a.siteNum in <foreach collection="conditionParamRef.siteNumList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('deviceFirmId')"> <if test="conditionParamRef.deviceFirmId != null "> ${_conditionType_} a.deviceFirmId = #{${_conditionParam_}.deviceFirmId} </if> <if test="conditionParamRef.deviceFirmId == null"> ${_conditionType_} a.deviceFirmId is null </if> </if> <if test="conditionParamRef.containsKey('deviceFirmIdList')"> ${_conditionType_} a.deviceFirmId in <foreach collection="conditionParamRef.deviceFirmIdList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('deviceFirmIdStart') and conditionParamRef.deviceFirmIdStart != null"> ${_conditionType_} a.deviceFirmId <![CDATA[ >= ]]> #{${_conditionParam_}.deviceFirmIdStart} </if> <if test="conditionParamRef.containsKey('deviceFirmIdEnd') and conditionParamRef.deviceFirmIdEnd != null"> ${_conditionType_} a.deviceFirmId <![CDATA[ <= ]]> #{${_conditionParam_}.deviceFirmIdEnd} </if> <if test="conditionParamRef.containsKey('deviceFirmname')"> <if test="conditionParamRef.deviceFirmname != null and conditionParamRef.deviceFirmname != ''"> ${_conditionType_} a.deviceFirmname like #{${_conditionParam_}.deviceFirmname} </if> <if test="conditionParamRef.deviceFirmname == null"> ${_conditionType_} a.deviceFirmname is null </if> </if> <if test="conditionParamRef.containsKey('deviceFirmnameList')"> ${_conditionType_} a.deviceFirmname in <foreach collection="conditionParamRef.deviceFirmnameList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('deviceOnlineStatus')"> <if test="conditionParamRef.deviceOnlineStatus != null "> ${_conditionType_} a.deviceOnlineStatus = #{${_conditionParam_}.deviceOnlineStatus} </if> <if test="conditionParamRef.deviceOnlineStatus == null"> ${_conditionType_} a.deviceOnlineStatus is null </if> </if> <if test="conditionParamRef.containsKey('deviceOnlineStatusList')"> ${_conditionType_} a.deviceOnlineStatus in <foreach collection="conditionParamRef.deviceOnlineStatusList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('deviceOnlineStatusStart') and conditionParamRef.deviceOnlineStatusStart != null"> ${_conditionType_} a.deviceOnlineStatus <![CDATA[ >= ]]> #{${_conditionParam_}.deviceOnlineStatusStart} </if> <if test="conditionParamRef.containsKey('deviceOnlineStatusEnd') and conditionParamRef.deviceOnlineStatusEnd != null"> ${_conditionType_} a.deviceOnlineStatus <![CDATA[ <= ]]> #{${_conditionParam_}.deviceOnlineStatusEnd} </if> <if test="conditionParamRef.containsKey('status')"> <if test="conditionParamRef.status != null "> ${_conditionType_} a.status = #{${_conditionParam_}.status} </if> <if test="conditionParamRef.status == null"> ${_conditionType_} a.status is null </if> </if> <if test="conditionParamRef.containsKey('statusList')"> ${_conditionType_} a.status in <foreach collection="conditionParamRef.statusList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('statusStart') and conditionParamRef.statusStart != null"> ${_conditionType_} a.status <![CDATA[ >= ]]> #{${_conditionParam_}.statusStart} </if> <if test="conditionParamRef.containsKey('statusEnd') and conditionParamRef.statusEnd != null"> ${_conditionType_} a.status <![CDATA[ <= ]]> #{${_conditionParam_}.statusEnd} </if> <if test="conditionParamRef.containsKey('deviceSource')"> <if test="conditionParamRef.deviceSource != null "> ${_conditionType_} a.deviceSource = #{${_conditionParam_}.deviceSource} </if> <if test="conditionParamRef.deviceSource == null"> ${_conditionType_} a.deviceSource is null </if> </if> <if test="conditionParamRef.containsKey('deviceSourceList')"> ${_conditionType_} a.deviceSource in <foreach collection="conditionParamRef.deviceSourceList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('deviceSourceStart') and conditionParamRef.deviceSourceStart != null"> ${_conditionType_} a.deviceSource <![CDATA[ >= ]]> #{${_conditionParam_}.deviceSourceStart} </if> <if test="conditionParamRef.containsKey('deviceSourceEnd') and conditionParamRef.deviceSourceEnd != null"> ${_conditionType_} a.deviceSource <![CDATA[ <= ]]> #{${_conditionParam_}.deviceSourceEnd} </if> <if test="conditionParamRef.containsKey('deviceRemark')"> <if test="conditionParamRef.deviceRemark != null and conditionParamRef.deviceRemark != ''"> ${_conditionType_} a.deviceRemark like #{${_conditionParam_}.deviceRemark} </if> <if test="conditionParamRef.deviceRemark == null"> ${_conditionType_} a.deviceRemark is null </if> </if> <if test="conditionParamRef.containsKey('deviceRemarkList')"> ${_conditionType_} a.deviceRemark in <foreach collection="conditionParamRef.deviceRemarkList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('onlineTime')"> <if test="conditionParamRef.onlineTime != null "> ${_conditionType_} a.onlineTime = #{${_conditionParam_}.onlineTime} </if> <if test="conditionParamRef.onlineTime == null"> ${_conditionType_} a.onlineTime is null </if> </if> <if test="conditionParamRef.containsKey('onlineTimeStart') and conditionParamRef.onlineTimeStart != null and conditionParamRef.onlineTimeStart!=''"> ${_conditionType_} a.onlineTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.onlineTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="conditionParamRef.containsKey('onlineTimeEnd') and conditionParamRef.onlineTimeEnd != null and conditionParamRef.onlineTimeEnd!=''"> ${_conditionType_} a.onlineTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.onlineTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="conditionParamRef.containsKey('offlineTime')"> <if test="conditionParamRef.offlineTime != null "> ${_conditionType_} a.offlineTime = #{${_conditionParam_}.offlineTime} </if> <if test="conditionParamRef.offlineTime == null"> ${_conditionType_} a.offlineTime is null </if> </if> <if test="conditionParamRef.containsKey('offlineTimeStart') and conditionParamRef.offlineTimeStart != null and conditionParamRef.offlineTimeStart!=''"> ${_conditionType_} a.offlineTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.offlineTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="conditionParamRef.containsKey('offlineTimeEnd') and conditionParamRef.offlineTimeEnd != null and conditionParamRef.offlineTimeEnd!=''"> ${_conditionType_} a.offlineTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.offlineTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="conditionParamRef.containsKey('createUserId')"> <if test="conditionParamRef.createUserId != null "> ${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId} </if> <if test="conditionParamRef.createUserId == null"> ${_conditionType_} a.createUserId is null </if> </if> <if test="conditionParamRef.containsKey('createUserIdList')"> ${_conditionType_} a.createUserId in <foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null"> ${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart} </if> <if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null"> ${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd} </if> <if test="conditionParamRef.containsKey('createTime')"> <if test="conditionParamRef.createTime != null "> ${_conditionType_} a.createTime = #{${_conditionParam_}.createTime} </if> <if test="conditionParamRef.createTime == null"> ${_conditionType_} a.createTime is null </if> </if> <if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''"> ${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''"> ${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="conditionParamRef.containsKey('updateUserId')"> <if test="conditionParamRef.updateUserId != null "> ${_conditionType_} a.updateUserId = #{${_conditionParam_}.updateUserId} </if> <if test="conditionParamRef.updateUserId == null"> ${_conditionType_} a.updateUserId is null </if> </if> <if test="conditionParamRef.containsKey('updateUserIdList')"> ${_conditionType_} a.updateUserId in <foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null"> ${_conditionType_} a.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart} </if> <if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null"> ${_conditionType_} a.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd} </if> <if test="conditionParamRef.containsKey('updateTime')"> <if test="conditionParamRef.updateTime != null "> ${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime} </if> <if test="conditionParamRef.updateTime == null"> ${_conditionType_} a.updateTime is null </if> </if> <if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''"> ${_conditionType_} a.updateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''"> ${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if> </sql> <sql id="_orderCols_"> <if test="orderColList != null and !orderColList.isEmpty()"> order by <trim suffixOverrides="," suffix=""> <foreach collection="orderColList" open="" close="" index="index" item="item" separator=","> ${item.colName} ${item.sortKind} </foreach> </trim> </if> <if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()"> order by <trim suffixOverrides="," suffix=""> <if test="orderCol.containsKey('id')"> a.id <if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if> , </if> <if test="orderCol.containsKey('deviceName')"> a.deviceName <if test='orderCol.deviceName != null and "DESC".equalsIgnoreCase(orderCol.deviceName)'>DESC</if> , </if> <if test="orderCol.containsKey('deviceCode')"> a.deviceCode <if test='orderCol.deviceCode != null and "DESC".equalsIgnoreCase(orderCol.deviceCode)'>DESC</if> , </if> <if test="orderCol.containsKey('deviceType')"> a.deviceType <if test='orderCol.deviceType != null and "DESC".equalsIgnoreCase(orderCol.deviceType)'>DESC</if> , </if> <if test="orderCol.containsKey('deviceMac')"> a.deviceMac <if test='orderCol.deviceMac != null and "DESC".equalsIgnoreCase(orderCol.deviceMac)'>DESC</if> , </if> <if test="orderCol.containsKey('ip')"> a.ip <if test='orderCol.ip != null and "DESC".equalsIgnoreCase(orderCol.ip)'>DESC</if> , </if> <if test="orderCol.containsKey('centernum')"> a.centernum <if test='orderCol.centernum != null and "DESC".equalsIgnoreCase(orderCol.centernum)'>DESC</if> , </if> <if test="orderCol.containsKey('port')"> a.port <if test='orderCol.port != null and "DESC".equalsIgnoreCase(orderCol.port)'>DESC</if> , </if> <if test="orderCol.containsKey('siteNum')"> a.siteNum <if test='orderCol.siteNum != null and "DESC".equalsIgnoreCase(orderCol.siteNum)'>DESC</if> , </if> <if test="orderCol.containsKey('deviceFirmId')"> a.deviceFirmId <if test='orderCol.deviceFirmId != null and "DESC".equalsIgnoreCase(orderCol.deviceFirmId)'>DESC</if> , </if> <if test="orderCol.containsKey('deviceFirmname')"> a.deviceFirmname <if test='orderCol.deviceFirmname != null and "DESC".equalsIgnoreCase(orderCol.deviceFirmname)'>DESC</if> , </if> <if test="orderCol.containsKey('deviceOnlineStatus')"> a.deviceOnlineStatus <if test='orderCol.deviceOnlineStatus != null and "DESC".equalsIgnoreCase(orderCol.deviceOnlineStatus)'>DESC</if> , </if> <if test="orderCol.containsKey('status')"> a.status <if test='orderCol.status != null and "DESC".equalsIgnoreCase(orderCol.status)'>DESC</if> , </if> <if test="orderCol.containsKey('deviceSource')"> a.deviceSource <if test='orderCol.deviceSource != null and "DESC".equalsIgnoreCase(orderCol.deviceSource)'>DESC</if> , </if> <if test="orderCol.containsKey('deviceRemark')"> a.deviceRemark <if test='orderCol.deviceRemark != null and "DESC".equalsIgnoreCase(orderCol.deviceRemark)'>DESC</if> , </if> <if test="orderCol.containsKey('onlineTime')"> a.onlineTime <if test='orderCol.onlineTime != null and "DESC".equalsIgnoreCase(orderCol.onlineTime)'>DESC</if> , </if> <if test="orderCol.containsKey('offlineTime')"> a.offlineTime <if test='orderCol.offlineTime != null and "DESC".equalsIgnoreCase(orderCol.offlineTime)'>DESC</if> , </if> <if test="orderCol.containsKey('createUserId')"> a.createUserId <if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if> , </if> <if test="orderCol.containsKey('createTime')"> a.createTime <if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if> , </if> <if test="orderCol.containsKey('updateUserId')"> a.updateUserId <if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if> , </if> <if test="orderCol.containsKey('updateTime')"> a.updateTime <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if> , </if> </trim> </if> </sql> <sql id="_group_by_"> <if test="groupList != null and !groupList.isEmpty()"> GROUP BY <trim suffixOverrides="," suffix=""> <foreach collection="groupList" open="" close="" index="index" item="item" separator=","> ${item} </foreach> </trim> </if> </sql> </mapper>