<?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.starry.admin.modules.system.mapper.SysOperationLogMapper">
    <resultMap type="com.starry.admin.modules.system.entity.SysOperationLogEntity" id="SysOperLogResult">
        <result property="operId" column="oper_id"/>
        <result property="title" column="title"/>
        <result property="businessType" column="business_type"/>
        <result property="method" column="method"/>
        <result property="requestMethod" column="request_method"/>
        <result property="operatorType" column="operator_type"/>
        <result property="operName" column="oper_name"/>
        <result property="operUrl" column="oper_url"/>
        <result property="operIp" column="oper_ip"/>
        <result property="operLocation" column="oper_location"/>
        <result property="operParam" column="oper_param"/>
        <result property="jsonResult" column="json_result"/>
        <result property="status" column="status"/>
        <result property="errorMsg" column="error_msg"/>
        <result property="operTime" column="oper_time"/>
        <result property="deptName" column="dept_name"/>
        <result property="deptId" column="dept_id"/>
        <result property="updatedTime" column="updated_time"/>
        <result property="updatedBy" column="updated_by"/>
        <result property="createdTime" column="created_time"/>
        <result property="createdBy" column="created_by"/>
        <result property="deleted" column="deleted"/>
    </resultMap>

    <sql id="selectXlOperLogVo">
        select oper_id,
               title,
               business_type,
               method,
               request_method,
               operator_type,
               oper_name,
               oper_url,
               oper_ip,
               oper_location,
               oper_param,
               json_result,
               status,
               error_msg,
               oper_time,
               dept_name,
               dept_id,
               updated_time,
               updated_by,
               created_time,
               created_by,
               deleted
        from sys_operation_log
    </sql>

    <select id="selectXlOperLogList" resultMap="SysOperLogResult">
        <include refid="selectXlOperLogVo"/>
        <where>
            deleted = 0
        </where>
        <if test="vo.title != null and vo.title != ''">
            AND title like concat('%', #{vo.title}, '%')
        </if>
        <if test="vo.businessType != null">
            AND business_type = #{vo.businessType}
        </if>
        <if test="vo.businessTypes != null and vo.businessTypes.length > 0">
            AND business_type in
            <foreach collection="vo.businessTypes" item="businessType" open="(" separator="," close=")">
                #{businessType}
            </foreach>
        </if>
        <if test="vo.operName != null and vo.operName != ''">
            AND oper_name like concat('%', #{vo.operName}, '%')
        </if>
        <if test="vo.beginTime != null and vo.beginTime != ''">
            and date_format(oper_time,'%y%m%d') &gt;= date_format(#{vo.beginTime},'%y%m%d')
        </if>
        <if test="vo.endTime != null and vo.endTime != ''">
            and date_format(oper_time,'%y%m%d') &lt;= date_format(#{vo.endTime},'%y%m%d')
        </if>
    </select>

    <select id="selectXlOperLogByOperId" parameterType="Long" resultMap="SysOperLogResult">
    </select>
</mapper>