luodangjia
2024-12-10 2eb44e7d245d82afd32ad2c46eaba6efa8a3d9a0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?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.ruoyi.system.mapper.SysOperLogMapper">
 
    <resultMap type="SysOperLog" id="SysOperLogResult">
        <id     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="deptName"       column="dept_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="costTime"       column="cost_time"      />
        <result property="companyName"       column="companyName"      />
        <result property="roleName"       column="roleName"      />
        <result property="phonenumber"       column="phonenumber"      />
        <result property="userId"       column="userId"      />
        <result property="nickName"       column="nickName"      />
    </resultMap>
 
    <sql id="selectOperLogVo">
        select oper_id, title, business_type, `method`, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param,
               json_result, status, error_msg, oper_time, cost_time,companyName,roleName,phonenumber,userId,nickName
        from sys_oper_log
    </sql>
    
    <insert id="insertOperlog" parameterType="SysOperLog">
        insert into sys_oper_log(title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param, json_result, status, error_msg, cost_time,companyName,roleName,phonenumber,userId,nickName, oper_time)
        values (#{title}, #{businessType}, #{method}, #{requestMethod}, #{operatorType}, #{operName}, #{deptName}, #{operUrl}, #{operIp}, #{operLocation}, #{operParam}, #{jsonResult}, #{status}, #{errorMsg}, #{costTime},#{companyName},#{roleName},#{phonenumber},#{userId},#{nickName}, sysdate())
    </insert>
    
    <select id="selectOperLogList" parameterType="SysOperLog" resultMap="SysOperLogResult">
        <include refid="selectOperLogVo"/>
        <where>
            <if test="operIp != null and operIp != ''">
                AND oper_ip like concat('%', #{operIp}, '%')
            </if>
            <if test="title != null and title != ''">
                AND title like concat('%', #{title}, '%')
            </if>
            <if test="businessType != null">
                AND business_type = #{businessType}
            </if>
            <if test="businessTypes != null and businessTypes.length > 0">
                AND business_type in
                <foreach collection="businessTypes" item="businessType" open="(" separator="," close=")">
                     #{businessType}
                </foreach> 
            </if>
            <if test="status != null">
                AND status = #{status}
            </if>
            <if test="operName != null and operName != ''">
                AND oper_name like concat('%', #{operName}, '%')
            </if>
            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
                AND oper_time &gt;= #{params.beginTime}
            </if>
            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
                AND oper_time &lt;= #{params.endTime}
            </if>
        </where>
        order by oper_id desc
    </select>
    
    <delete id="deleteOperLogByIds" parameterType="Long">
         delete from sys_oper_log where oper_id in
         <foreach collection="operIds" item="operId" open="(" separator="," close=")">
             #{operId}
        </foreach> 
     </delete>
     
     <select id="selectOperLogById" parameterType="Long" resultMap="SysOperLogResult">
        <include refid="selectOperLogVo"/>
        where oper_id = #{operId}
    </select>
    <select id="selectOperLogPageList" resultType="com.ruoyi.system.vo.SysOperLogVO">
        select sol.oper_id AS operId, sol.title AS title, sol.business_type AS businessType, sol.`method` AS method, sol.request_method AS requestMethod,
               sol.operator_type AS operatorType,sol.oper_name AS operName,sol.dept_name AS deptName, sol.oper_url AS operUrl, sol.oper_ip AS operIp,
               sol.oper_location AS operLocation, sol.oper_param AS operLocation,sol.json_result AS jsonResult, sol.status AS status,sol.error_msg AS errorMsg,
               sol.oper_time AS operTime, sol.cost_time AS costTime,sol.companyName AS companyName,sol.roleName AS roleName,sol.phonenumber AS phonenumber,
               sol.userId AS userId,sol.nickName AS nickName
        from sys_oper_log sol
        <where>
            <if test="query.companyName != null and query.companyName != ''">
                AND sol.companyName LIKE concat('%',#{query.companyName},'%')
            </if>
            <if test="query.roleName != null and query.roleName != ''">
                AND sol.roleName LIKE concat('%',#{query.roleName},'%')
            </if>
            <if test="query.nickName != null and query.nickName != ''">
                AND sol.nickName LIKE concat('%',#{query.nickName},'%')
            </if>
            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                AND DATE_FORMAT(sol.oper_time, '%Y-%m-%d %H:%i:%s') &gt;= #{query.startTime}
                AND DATE_FORMAT(sol.oper_time, '%Y-%m-%d %H:%i:%s') &lt;= #{query.endTime}
            </if>
        </where>
        ORDER BY sol.oper_time DESC
    </select>
 
    <update id="cleanOperLog">
        truncate table sys_oper_log
    </update>
 
</mapper>