<?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.base.system.oper.dao.ibatis.OperLogDaoImpl"> <!-- 字段和属性映射 --> <resultMap type="OperLogEntity" id="OperLogEntity-Map"> <result property="id" column="id" /> <result property="platformMark" column="platformMark" /> <result property="userId" column="userId" /> <result property="userName" column="userName" /> <result property="loginName" column="loginName" /> <result property="requestUrl" column="requestUrl" /> <result property="content" column="content" /> <result property="ip" column="ip" /> <result property="logDate" column="logDate" /> <result property="operType" column="operType" /> </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 as id, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('platformMark') or colPickMode == 1 and data.containsKey('platformMark')))"> a.platformMark as platformMark, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('userId') or colPickMode == 1 and data.containsKey('userId')))"> a.userId as userId, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('userName') or colPickMode == 1 and data.containsKey('userName')))"> a.userName as userName, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('loginName') or colPickMode == 1 and data.containsKey('loginName')))"> a.loginName as loginName, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('requestUrl') or colPickMode == 1 and data.containsKey('requestUrl')))"> a.requestUrl as requestUrl, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('content') or colPickMode == 1 and data.containsKey('content')))"> a.content as content, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ip') or colPickMode == 1 and data.containsKey('ip')))"> a.ip as ip, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('logDate') or colPickMode == 1 and data.containsKey('logDate')))"> a.logDate as logDate, </if> <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('operType') or colPickMode == 1 and data.containsKey('operType')))"> a.operType as operType, </if> </trim> </sql> <!-- 新增 --> <insert id="insert" parameterType="OperLogEntity" useGeneratedKeys="true" keyProperty="id"> insert into mortals_iot_oper_log (platformMark,userId,userName,loginName,requestUrl, content,ip,logDate,operType )VALUES(#{platformMark},#{userId},#{userName},#{loginName},#{requestUrl}, #{content},#{ip},#{logDate},#{operType}) </insert> <!-- 批量新增 --> <insert id="insertBatch" parameterType="paramDto"> insert into mortals_iot_oper_log (platformMark,userId,userName,loginName,requestUrl, content,ip,logDate,operType ) VALUES <foreach collection="data.dataList" item="item" index="index" separator="," > (#{item.platformMark},#{item.userId},#{item.userName},#{item.loginName},#{item.requestUrl}, #{item.content},#{item.ip},#{item.logDate},#{item.operType}) </foreach> </insert> <!-- 根据ParamDto更新 --> <update id="update" parameterType="paramDto"> update mortals_iot_oper_log as a set <trim suffixOverrides="," suffix=""> <if test="(colPickMode==0 and data.containsKey('platformMark')) or (colPickMode==1 and !data.containsKey('platformMark'))"> a.platformMark=#{data.platformMark}, </if> <if test="(colPickMode==0 and data.containsKey('userId')) or (colPickMode==1 and !data.containsKey('userId'))"> a.userId=#{data.userId}, </if> <if test="(colPickMode==0 and data.containsKey('userIdIncrement')) or (colPickMode==1 and !data.containsKey('userIdIncrement'))"> a.userId=ifnull(a.userId,0) + #{data.userIdIncrement}, </if> <if test="(colPickMode==0 and data.containsKey('userName')) or (colPickMode==1 and !data.containsKey('userName'))"> a.userName=#{data.userName}, </if> <if test="(colPickMode==0 and data.containsKey('loginName')) or (colPickMode==1 and !data.containsKey('loginName'))"> a.loginName=#{data.loginName}, </if> <if test="(colPickMode==0 and data.containsKey('requestUrl')) or (colPickMode==1 and !data.containsKey('requestUrl'))"> a.requestUrl=#{data.requestUrl}, </if> <if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))"> a.content=#{data.content}, </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('logDate')) or (colPickMode==1 and !data.containsKey('logDate'))"> a.logDate=#{data.logDate}, </if> <if test="(colPickMode==0 and data.containsKey('operType')) or (colPickMode==1 and !data.containsKey('operType'))"> a.operType=#{data.operType}, </if> <if test="(colPickMode==0 and data.containsKey('operTypeIncrement')) or (colPickMode==1 and !data.containsKey('operTypeIncrement'))"> a.operType=ifnull(a.operType,0) + #{data.operTypeIncrement}, </if> </trim> <trim suffixOverrides="where" suffix=""> where <trim prefixOverrides="and" prefix=""> <include refid="_condition_"/> </trim> </trim> </update> <!-- 根据主健查询 --> <select id="getByKey" parameterType="paramDto" resultMap="OperLogEntity-Map"> select <include refid="_columns"/> from mortals_iot_oper_log as a where a.id=#{condition.id} </select> <!-- 根据主健删除 --> <delete id="deleteByKey" parameterType="paramDto"> delete a.* from mortals_iot_oper_log as a where a.id=#{condition.id} </delete> <!-- 根据主健删除一批,针对单一主健有效 --> <delete id="deleteByKeys"> delete from mortals_iot_oper_log 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_iot_oper_log as a <trim suffixOverrides="where" suffix=""> where <trim prefixOverrides="and" prefix=""> <include refid="_condition_"/> </trim> </trim> </delete> <!-- 获取列表 --> <select id="getList" parameterType="paramDto" resultMap="OperLogEntity-Map"> select <include refid="_columns"/> from mortals_iot_oper_log 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_iot_oper_log 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()"> <if test="condition.containsKey('id')"> <if test="condition.id != null"> and a.id=#{condition.id} </if> </if> <if test="condition.containsKey('id')"> <if test="condition.id != null "> and a.id = #{condition.id} </if> <if test="condition.id == null"> and a.id is null </if> </if> <if test="condition.containsKey('idList')"> and a.id in <foreach collection="condition.idList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="condition.containsKey('idStart') and condition.idStart != null"> <![CDATA[ and a.id >= #{condition.idStart} ]]> </if> <if test="condition.containsKey('idEnd') and condition.idEnd != null"> <![CDATA[ and a.id <= #{condition.idEnd} ]]> </if> <if test="condition.containsKey('platformMark')"> <if test="condition.platformMark != null and condition.platformMark != ''"> and a.platformMark like #{condition.platformMark} </if> <if test="condition.platformMark == null"> and a.platformMark is null </if> </if> <if test="condition.containsKey('platformMarkList')"> and a.platformMark in <foreach collection="condition.platformMarkList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="condition.containsKey('userId')"> <if test="condition.userId != null "> and a.userId = #{condition.userId} </if> <if test="condition.userId == null"> and a.userId is null </if> </if> <if test="condition.containsKey('userIdList')"> and a.userId in <foreach collection="condition.userIdList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="condition.containsKey('userIdStart') and condition.userIdStart != null"> <![CDATA[ and a.userId >= #{condition.userIdStart} ]]> </if> <if test="condition.containsKey('userIdEnd') and condition.userIdEnd != null"> <![CDATA[ and a.userId <= #{condition.userIdEnd} ]]> </if> <if test="condition.containsKey('userName')"> <if test="condition.userName != null and condition.userName != ''"> and a.userName like #{condition.userName} </if> <if test="condition.userName == null"> and a.userName is null </if> </if> <if test="condition.containsKey('userNameList')"> and a.userName in <foreach collection="condition.userNameList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="condition.containsKey('loginName')"> <if test="condition.loginName != null and condition.loginName != ''"> and a.loginName like #{condition.loginName} </if> <if test="condition.loginName == null"> and a.loginName is null </if> </if> <if test="condition.containsKey('loginNameList')"> and a.loginName in <foreach collection="condition.loginNameList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="condition.containsKey('requestUrl')"> <if test="condition.requestUrl != null and condition.requestUrl != ''"> and a.requestUrl like #{condition.requestUrl} </if> <if test="condition.requestUrl == null"> and a.requestUrl is null </if> </if> <if test="condition.containsKey('requestUrlList')"> and a.requestUrl in <foreach collection="condition.requestUrlList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="condition.containsKey('content')"> <if test="condition.content != null and condition.content != ''"> and a.content like #{condition.content} </if> <if test="condition.content == null"> and a.content is null </if> </if> <if test="condition.containsKey('contentList')"> and a.content in <foreach collection="condition.contentList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="condition.containsKey('ip')"> <if test="condition.ip != null and condition.ip != ''"> and a.ip like #{condition.ip} </if> <if test="condition.ip == null"> and a.ip is null </if> </if> <if test="condition.containsKey('ipList')"> and a.ip in <foreach collection="condition.ipList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="condition.containsKey('logDate')"> <if test="condition.logDate != null "> and a.logDate = #{condition.logDate} </if> <if test="condition.logDate == null"> and a.logDate is null </if> </if> <if test="condition.containsKey('logDateStart') and condition.logDateStart != null and condition.logDateStart!=''"> <![CDATA[ and a.logDate >= STR_TO_DATE(left(concat(#{condition.logDateStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') ]]> </if> <if test="condition.containsKey('logDateEnd') and condition.logDateEnd != null and condition.logDateEnd!=''"> <![CDATA[ and a.logDate <= STR_TO_DATE(left(concat(#{condition.logDateEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') ]]> </if> <if test="condition.containsKey('operType')"> <if test="condition.operType != null "> and a.operType = #{condition.operType} </if> <if test="condition.operType == null"> and a.operType is null </if> </if> <if test="condition.containsKey('operTypeList')"> and a.operType in <foreach collection="condition.operTypeList" open="(" close=")" index="index" item="item" separator=","> #{item} </foreach> </if> <if test="condition.containsKey('operTypeStart') and condition.operTypeStart != null"> <![CDATA[ and a.operType >= #{condition.operTypeStart} ]]> </if> <if test="condition.containsKey('operTypeEnd') and condition.operTypeEnd != null"> <![CDATA[ and a.operType <= #{condition.operTypeEnd} ]]> </if> </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"> ${orderCol.id} </if> , </if> <if test="orderCol.containsKey('platformMark')"> a.platformMark <if test="orderCol.platformMark!= null"> ${orderCol.platformMark} </if> , </if> <if test="orderCol.containsKey('userId')"> a.userId <if test="orderCol.userId!= null"> ${orderCol.userId} </if> , </if> <if test="orderCol.containsKey('userName')"> a.userName <if test="orderCol.userName!= null"> ${orderCol.userName} </if> , </if> <if test="orderCol.containsKey('loginName')"> a.loginName <if test="orderCol.loginName!= null"> ${orderCol.loginName} </if> , </if> <if test="orderCol.containsKey('requestUrl')"> a.requestUrl <if test="orderCol.requestUrl!= null"> ${orderCol.requestUrl} </if> , </if> <if test="orderCol.containsKey('content')"> a.content <if test="orderCol.content!= null"> ${orderCol.content} </if> , </if> <if test="orderCol.containsKey('ip')"> a.ip <if test="orderCol.ip!= null"> ${orderCol.ip} </if> , </if> <if test="orderCol.containsKey('logDate')"> a.logDate <if test="orderCol.logDate!= null"> ${orderCol.logDate} </if> , </if> <if test="orderCol.containsKey('operType')"> a.operType <if test="orderCol.operType!= null"> ${orderCol.operType} </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>