Blame view

OprMemDictMapper.xml 7.42 KB
涂亚平 committed
1 2 3 4 5 6
<?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.subsidy.mapper.OprMemDictMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.subsidy.model.OprMemDictDO">
涂亚平 committed
7 8 9 10 11 12
        <id column="id" property="id"/>
        <result column="create_date" property="createDate"/>
        <result column="update_date" property="updateDate"/>
        <result column="delete_date" property="deleteDate"/>
        <result column="user_id" property="userId"/>
        <result column="opr_type" property="oprType"/>
涂亚平 committed
13 14 15 16 17 18 19 20 21 22
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        create_date,
        update_date,
        delete_date,
        id, user_id, opr_type
    </sql>

邓敏 committed
23

涂亚平 committed
24 25
    <select id="getHistory" resultType="com.subsidy.vo.opr.GetHistoryVO">
        SELECT
涂亚平 committed
26 27 28 29 30 31
        t.id,
        t2.user_name,
        t3.company_name,
        t.opr_type,
        t.create_date,
        t.result
涂亚平 committed
32
        FROM
涂亚平 committed
33 34 35
        opr_mem_dict t
        LEFT JOIN member t2 ON t.user_id = t2.id
        LEFT JOIN company_dict t3 ON t2.company_id = t3.id
涂亚平 committed
36
        WHERE
涂亚平 committed
37 38 39 40 41 42 43 44
        t.delete_date IS NULL
        AND t2.delete_date IS NULL
        AND t3.delete_date IS NULL
        <if test="userName != null and userName !=''">
            and t2.user_name like concat('%',#{userName} ,'%')
        </if>
        AND DATE_FORMAT( t.create_date, '%Y-%m-%d' ) BETWEEN DATE_FORMAT( #{startDate}, '%Y-%m-%d' )
        AND DATE_FORMAT( #{endDate}, '%Y-%m-%d' )
涂亚平 committed
45
        ORDER BY
涂亚平 committed
46
        t.create_date DESC
涂亚平 committed
47
    </select>
邓敏 committed
48 49 50 51 52 53 54

    <select id="getRecordByDate" resultType="com.subsidy.model.OprMemDictDO">
        SELECT
            *
        FROM
            opr_mem_dict
        WHERE
55
            create_date &lt; (NOW() -interval 1 day)
邓敏 committed
56
    </select>
涂亚平 committed
57 58

    <select id="getLatestLoginInfo" parameterType="long" resultType="com.subsidy.model.OprMemDictDO">
涂亚平 committed
59 60
        SELECT t.id,
            t.ip_address,
涂亚平 committed
61 62 63
            t.opr_type,
            t.result,
            t.user_id,
涂亚平 committed
64
            t.create_date
涂亚平 committed
65 66 67 68
        FROM
            opr_mem_dict t
        WHERE
            t.delete_date IS NULL
涂亚平 committed
69
            AND t.result = 1
涂亚平 committed
70
            AND t.user_id = #{userId}
涂亚平 committed
71 72
            and DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( now(), '%Y-%m-%d' )
            order by t.id desc
涂亚平 committed
73
            limit 1
涂亚平 committed
74
    </select>
涂亚平 committed
75

涂亚平 committed
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
    <select id="getLatestLogoutInfo" parameterType="long" resultType="com.subsidy.model.OprMemDictDO">
        SELECT t.id,
            t.ip_address,
            t.opr_type,
            t.result,
            t.user_id,
            t.create_date
        FROM
            opr_mem_dict t
        WHERE
            t.delete_date IS NULL
            AND t.result = 1
            AND t.user_id =#{userId}
            and t.opr_type = '登出'
            and DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( now(), '%Y-%m-%d' )
            order by t.id desc
            limit 1
    </select>
涂亚平 committed
94 95


涂亚平 committed
96 97 98 99 100 101 102 103
    <!--    <update id="deleteData" parameterType="com.subsidy.model.OprMemDictDO">-->
    <!--        DELETE-->
    <!--        FROM-->
    <!--            opr_mem_dict-->
    <!--        WHERE-->
    <!--            delete_date IS NULL-->
    <!--            AND id = #{id}-->
    <!--    </update>-->
涂亚平 committed
104 105 106

    <select id="onlineUsers" resultType="long">
        SELECT
涂亚平 committed
107
        distinct t1.user_id
涂亚平 committed
108
        FROM
涂亚平 committed
109 110 111 112 113 114 115 116
        (
        SELECT
        id,
        user_id,
        opr_type,
        max( create_date ) AS time1
        FROM
        opr_mem_dict
涂亚平 committed
117
        WHERE
涂亚平 committed
118 119 120
        DATE_FORMAT( create_date, '%Y-%m-%d ' ) = DATE_FORMAT( now(), '%Y-%m-%d ' )
        AND result = 1
        AND opr_type = "登录"
涂亚平 committed
121
        and delete_date IS NULL
涂亚平 committed
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
        GROUP BY
        user_id
        ORDER BY
        create_date DESC
        ) t1
        LEFT JOIN (
        SELECT
        id,
        user_id,
        opr_type,
        max( create_date ) AS time2
        FROM
        opr_mem_dict
        WHERE
        DATE_FORMAT( create_date, '%Y-%m-%d ' ) = DATE_FORMAT( now(), '%Y-%m-%d ' )
        AND result = 1
        AND opr_type = "登出"
涂亚平 committed
139
        and delete_date is null
涂亚平 committed
140 141 142 143 144 145 146 147 148 149
        GROUP BY
        user_id
        ORDER BY
        create_date DESC
        ) t2 ON t1.user_id = t2.user_id
        WHERE
        t2.id IS NULL
        OR t2.time2 &lt; t1.time1
    </select>

涂亚平 committed
150
    <select id="insertLastStudyRecord" resultType="com.subsidy.vo.opr.InsertLastStudyRecordVO">
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
      SELECT
     t1.member_id,
     t1.sign_in_date,
     t1.ip_address,
     DATE_ADD(t2.mt,INTERVAL FLOOR(RAND()*100) SECOND) as mt
 FROM
     (
     SELECT DISTINCT
         t.sign_in_date,
         t.member_id,
         t.ip_address
     FROM
         sign_in_record t
     WHERE
         t.delete_date IS NULL
     AND DATE_FORMAT( t.sign_in_date, '%Y-%m-%d' ) = DATE_FORMAT( now(), '%Y-%m-%d' )) t1
     LEFT JOIN (
     SELECT
         t1.member_id,
         max( t1.maxtime ) AS mt
     FROM
         (
         SELECT
             member_id,
             max( create_date ) AS maxtime
         FROM
             vod_play_history
         WHERE
             delete_date IS NULL
             AND DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( now(), '%Y-%m-%d' )
         GROUP BY
             member_id UNION ALL
         SELECT
             member_id,
             max( create_date ) AS maxtime
         FROM
             exercise_done_result
         WHERE
             delete_date IS NULL
             AND DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( now(), '%Y-%m-%d' )
         GROUP BY
             member_id UNION ALL
         SELECT
             ask_id,
             max( create_date ) AS maxtime
         FROM
             answering_question
         WHERE
             delete_date IS NULL
             AND DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( now(), '%Y-%m-%d' )
         GROUP BY
             ask_id UNION ALL
      SELECT member_id,
            max( create_date ) AS maxtime
     from
         activity_detection
     where delete_date is null
     and DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( now(), '%Y-%m-%d' )
     GROUP BY member_id
         ) t1
     GROUP BY
     t1.member_id
     ) t2 ON t1.member_id = t2.member_id
涂亚平 committed
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
    </select>

    <select id="shutdownUser" resultType="long">
        SELECT
        t1.user_id
        FROM
        (
        SELECT
        t.user_id,
        max( t.create_date ) AS log_out
        FROM
        opr_mem_dict t
        WHERE
        t.delete_date IS NULL
        AND DATE_FORMAT( t.create_date, '%Y-%m-%d' ) = DATE_FORMAT( now(), '%Y-%m-%d' )
        AND t.opr_type = '登出'
        GROUP BY
        t.user_id
        ) t1
        LEFT JOIN (
        SELECT
        t.member_id,
        max( t.create_date ) AS play_time
        FROM
        vod_play_history t
        WHERE
        t.delete_date IS NULL
        AND DATE_FORMAT( t.create_date, '%Y-%m-%d' ) = DATE_FORMAT( now(), '%Y-%m-%d' )
        GROUP BY
        t.member_id
        ) t2 ON t1.user_id = t2.member_id
        WHERE
        t2.member_id IS NOT NULL
        AND t1.log_out &lt; t2.play_time
    </select>

    <insert id="insertOrUpdate">
        insert into opr_mem_dict(user_id,opr_type,result,ip_address,create_date)
        values (#{userId},#{oprType},#{result},#{ipAddress},#{createDate})
        on duplicate key update
        user_id=values(user_id),
        opr_type=values(opr_type),
        result=values(result),
        ip_address=values(ip_address),
        create_date=values(create_date)
    </insert>

涂亚平 committed
261
</mapper>