1
13693261870
2022-09-16 762f2fb45db004618ba099aa3c0bd89dba1eb843
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?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.landtool.lanbase.modules.log.dao.LogLogininfoDao">
 
    <!-- 可根据自己的需求,是否要使用 -->
    <resultMap type="com.landtool.lanbase.modules.log.entity.LogLogininfo" id="logininfoMap">
        <result property="loginid" column="LOGINID"/>
        <result property="userid" column="USERID"/>
        <result property="appid" column="APPID"/>
        <result property="loginname" column="LOGINNAME"/>
        <result property="loginip" column="LOGINIP"/>
        <result property="logindate" column="LOGINDATE"/>
        <result property="logintype" column="LOGINTYPE"/>
        <result property="rstatus" column="RSTATUS"/>
        <result property="broserversion" column="BROSERVERSION"/>
        <result property="appurl" column="APPURL"/>
    </resultMap>
 
    <select id="queryObject" resultType="com.landtool.lanbase.modules.log.entity.LogLogininfo">
        select * from LOG_LOGININFO where LOGINID = #{value}
    </select>
 
    <select id="queryList" resultType="com.landtool.lanbase.modules.log.entity.LogLogininfo">
        select * from (
            SELECT *
            FROM(
                SELECT ROW_NUMBER() OVER(ORDER BY B.logindate DESC) AS rownumber,B.*
                    FROM (
                    
                        SELECT lli.*,ssi.APPFULLNAME,os.CHINESENAME FROM LOG_LOGININFO  lli
                        LEFT JOIN SYS_SYSTEMINFO ssi ON lli.appid=ssi.appid
                        LEFT JOIN ORG_USER os ON os.USERID=lli.USERID
                        <where>
                        <if test="UserName != null and UserName!=''">
                            AND (os.CHINESENAME LIKE ('%' || #{UserName} || '%') or os.loginname LIKE ('%' || #{UserName} || '%') or LOWER(os.spellfirst) LIKE ('%' || LOWER(#{UserName}) || '%'))
                        </if>
                        <if test="appid != null and appid!=''">
                            <!--AND lli.appid LIKE ('%' || #{appid} || '%') ID不需要用Like吧?如果是特殊需求请还原 ccr modify 2018-12-19 -->
                            AND cast(lli.appid as  varchar) = #{appid}
                        </if>
                        <if test="beginDate != null and beginDate !=''">
                            AND LOGINDATE >=to_timestamp(#{beginDate,jdbcType=VARCHAR},'yyyy-mm-dd hh24:mi:ss')
                        </if>
                        <if test="endDate != null and endDate !=''">
                        <![CDATA[AND LOGINDATE <= to_timestamp(#{endDate,jdbcType=VARCHAR},'yyyy-mm-dd hh24:mi:ss')]]>
 
                        </if>
                        </where>
              ) B
          ) A
          WHERE rownumber > #{lowerOffset} AND  <![CDATA[ rownumber <= ${upperOffset} ]]>
          )a order by
        <choose>
            <when test="sidx != null and sidx != ''">
                ${sidx} ${order}
            </when>
            <otherwise>
                logindate desc
            </otherwise>
        </choose>
    </select>
 
     <select id="queryTotal" resultType="int">
        select count(*) from LOG_LOGININFO lli
        LEFT join SYS_SYSTEMINFO ssi on lli.appid=ssi.appid
        LEFT join ORG_USER os on os.USERID=lli.USERID where 1=1
        <if test="UserName != null and UserName!=''">
            AND (os.CHINESENAME LIKE ('%' || #{UserName} || '%') or os.loginname LIKE ('%' || #{UserName} || '%') or LOWER(os.spellfirst) LIKE ('%' || LOWER(#{UserName}) || '%'))
        </if>
        <if test="appid != null and appid!=''">
            <!--AND lli.appid LIKE ('%' || #{appid} || '%') -->
            AND cast(lli.appid as varchar) = #{appid}
        </if>
        <if test="beginDate != null and beginDate !=''">
            AND LOGINDATE >=to_timestamp(#{beginDate,jdbcType=VARCHAR},'yyyy-mm-dd hh24:mi:ss')
            <!-- style "111", "yyyy/mm/dd" -->
            <!--CONVERT(datetime, #{beginDate}, 111)-->
 
        </if>
        <if test="endDate != null and endDate !=''">
            <![CDATA[ AND LOGINDATE <=to_timestamp(#{endDate,jdbcType=VARCHAR},'yyyy-mm-dd hh24:mi:ss')]]>
        <!--CONVERT(datetime, DATEADD(day, 1, #{endDate}), 111)-->
 
        </if>
    </select>
     
    <insert id="save" parameterType="com.landtool.lanbase.modules.log.entity.LogLogininfo">
        insert into LOG_LOGININFO
        (
            USERID, 
            APPID, 
            LOGINNAME, 
            LOGINIP, 
            LOGINDATE, 
            LOGINTYPE, 
            RSTATUS, 
            BROSERVERSION,
            APPURL
        )
        values
        (
            #{userid,jdbcType=BIGINT}, 
            #{appid,jdbcType=BIGINT}, 
            #{loginname,jdbcType=VARCHAR}, 
            #{loginip,jdbcType=VARCHAR}, 
            now(),
            #{logintype,jdbcType=BIGINT}, 
            #{rstatus,jdbcType=BIGINT}, 
            #{broserversion,jdbcType=VARCHAR},
            #{appurl,jdbcType=VARCHAR}
        )
    </insert>
     
    <update id="update" parameterType="com.landtool.lanbase.modules.log.entity.LogLogininfo">
        update LOG_LOGININFO
        <set>
            <if test="userid != null">USERID = #{userid}, </if>
            <if test="appid != null">APPID = #{appid}, </if>
            <if test="loginname != null">LOGINNAME = #{loginname}, </if>
            <if test="loginip != null">LOGINIP = #{loginip}, </if>
            <if test="logindate != null">LOGINDATE = #{logindate}, </if>
            <if test="logintype != null">LOGINTYPE = #{logintype}, </if>
            <if test="rstatus != null">RSTATUS = #{rstatus}, </if>
            <if test="broserversion != null">BROSERVERSION = #{broserversion}</if>
            <if test="appurl != null">APPURL = #{appurl}</if>
        </set>
        where LOGINID = #{loginid}
    </update>
    
    <delete id="delete">
        delete from LOG_LOGININFO where LOGINID = #{value}
    </delete>
    
    <delete id="deleteBatch">
        delete from LOG_LOGININFO where LOGINID in
        <foreach item="loginid" collection="array" open="(" separator="," close=")">
            #{loginid}
        </foreach>
    </delete>
 
</mapper>