| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- <?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.inspur.source.mapper.SmsbSourcePlayRecordMapper">
- <select id="playTopCountTimes" resultType="com.inspur.source.domain.vo.DashBoardPlayVo">
- SELECT
- mi.original_name AS fileName,
- spr.sourceNum
- FROM
- ( SELECT
- source_id, COUNT(*) AS sourceNum
- FROM smsb_source_play_record
- WHERE
- source_type = #{fileType} AND create_time between #{startTime} AND #{endTime}
- GROUP BY source_id
- ORDER BY sourceNum desc
- limit 5
- ) spr
- INNER JOIN smsb_minio_data mi ON spr.source_id = mi.id
- ORDER BY spr.sourceNum asc
- </select>
- <select id="selectSumDuration" resultType="com.inspur.source.domain.vo.DashBoardPlayVo">
- SELECT
- IFNULL( SUM( duration ), 0 ) AS sourceNum,
- source_type AS sourceType
- FROM
- smsb_source_play_record
- WHERE
- create_time between #{startTime} AND #{endTime}
- GROUP BY
- source_type
- </select>
- <select id="playTopCountDuration" resultType="com.inspur.source.domain.vo.DashBoardPlayVo">
- SELECT
- mi.original_name AS fileName,
- spr.sourceNum
- FROM
- ( SELECT
- IFNULL( SUM( duration ), 0 ) AS sourceNum, source_id
- FROM
- smsb_source_play_record
- WHERE
- source_type = #{fileType} AND create_time between #{startTime} AND #{endTime}
- GROUP BY source_id
- ORDER BY sourceNum desc
- LIMIT 5
- ) spr
- INNER JOIN smsb_minio_data mi ON spr.source_id = mi.id
- ORDER BY spr.sourceNum asc
- </select>
- <select id="sumOnlineTimeLine" resultType="com.inspur.source.domain.vo.DashBoardPlayVo">
- SELECT
- date_range.stat_date AS eventTime,
- COALESCE(SUM(t.duration), 0) AS sourceNum
- FROM (
- SELECT
- DATE_ADD(#{startTime}, INTERVAL t4.num DAY) AS stat_date
- FROM (
- SELECT
- (t3.num * 1000 + t2.num * 100 + t1.num * 10 + t0.num) AS num
- FROM
- (SELECT 0 num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0,
- (SELECT 0 num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1,
- (SELECT 0 num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2,
- (SELECT 0 num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3
- ) t4
- WHERE DATE_ADD(#{startTime}, INTERVAL t4.num DAY) <= #{endTime}
- ) date_range
- LEFT JOIN smsb_source_play_record t
- ON DATE(t.create_time) = date_range.stat_date
- AND t.create_time BETWEEN #{startTime} AND #{endTime} + INTERVAL 1 DAY - INTERVAL 1 SECOND
- AND t.source_type = #{fileType}
- GROUP BY date_range.stat_date
- ORDER BY date_range.stat_date
- </select>
- <select id="pushNumberStatistics" resultType="com.inspur.source.domain.vo.DashBoardPlayVo">
- SELECT
- COUNT( 1 ) AS totalNum,
- IFNULL( SUM( smsb.file_type = 1 ), 0 ) AS imageNum,
- IFNULL( SUM( smsb.file_type = 2 ), 0 ) AS videoNum
- FROM
- (
- SELECT
- sip.NAME,
- sip.id,
- sip.create_time,
- sipr.item_id,
- sifr.file_id,
- smd.type AS file_type
- FROM
- smsb_item_push sip
- LEFT JOIN smsb_item_push_rel sipr ON sip.id = sipr.push_id
- LEFT JOIN smsb_item_file_rel sifr ON sipr.item_id = sifr.item_id
- LEFT JOIN smsb_minio_data smd ON sifr.file_id = smd.id
- ) smsb
- </select>
- <select id="pushLineStatistics" resultType="com.inspur.source.domain.vo.DashBoardPlayVo">
- SELECT
- dates.date AS eventTime,
- COUNT(sip.id) AS sourceNum
- FROM (
- -- 生成近7天的日期(从7天前00:00:00到今天23:59:59)
- SELECT DATE_SUB(DATE(CURDATE()), INTERVAL 6 DAY) AS date UNION ALL
- SELECT DATE_SUB(DATE(CURDATE()), INTERVAL 5 DAY) UNION ALL
- SELECT DATE_SUB(DATE(CURDATE()), INTERVAL 4 DAY) UNION ALL
- SELECT DATE_SUB(DATE(CURDATE()), INTERVAL 3 DAY) UNION ALL
- SELECT DATE_SUB(DATE(CURDATE()), INTERVAL 2 DAY) UNION ALL
- SELECT DATE_SUB(DATE(CURDATE()), INTERVAL 1 DAY) UNION ALL
- SELECT DATE(CURDATE())
- ) AS dates
- LEFT JOIN smsb_item_push sip ON DATE(sip.create_time) = dates.date
- AND sip.create_time >= DATE_SUB(DATE(CURDATE()), INTERVAL 6 DAY) -- 7天前00:00:00
- AND sip.create_time < DATE_ADD(DATE(CURDATE()), INTERVAL 1 DAY) -- 今天23:59:59
- LEFT JOIN smsb_item_push_rel sipr ON sip.id = sipr.push_id
- LEFT JOIN smsb_item_file_rel sifr ON sipr.item_id = sifr.item_id
- LEFT JOIN smsb_minio_data smd ON sifr.file_id = smd.id
- GROUP BY dates.date
- ORDER BY dates.date;
- </select>
- <select id="querySourcePlaySummary" resultType="com.inspur.source.domain.vo.SmsbSourcePlaySummaryVo">
- SELECT
- source_id AS sourceId,
- COUNT( source_id ) AS playTimes,
- IFNULL(SUM( duration ), 0) AS playDuration,
- tenant_id AS tenant_id
- FROM
- smsb_source_play_record
- WHERE
- DATE ( create_time ) = CURDATE()
- GROUP BY
- source_id
- </select>
- <select id="selectTimesAndDuration" resultType="com.inspur.source.domain.vo.DashBoardPlayVo">
- SELECT
- date_range.stat_date AS eventTime,
- COALESCE(SUM(t.duration), 0) AS playDuration,
- COALESCE(COUNT(t.id), 0) AS playTimes
- FROM (
- SELECT
- DATE_ADD(#{startTime}, INTERVAL t4.num DAY) AS stat_date
- FROM (
- SELECT
- (t3.num * 1000 + t2.num * 100 + t1.num * 10 + t0.num) AS num
- FROM
- (SELECT 0 num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0,
- (SELECT 0 num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1,
- (SELECT 0 num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2,
- (SELECT 0 num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3
- ) t4
- WHERE DATE_ADD(#{startTime}, INTERVAL t4.num DAY) <= #{endTime}
- ) date_range
- LEFT JOIN smsb_source_play_record t
- ON DATE(t.create_time) = date_range.stat_date
- AND t.create_time BETWEEN #{startTime} AND #{endTime} + INTERVAL 1 DAY - INTERVAL 1 SECOND
- AND t.source_id = #{sourceId}
- GROUP BY date_range.stat_date
- ORDER BY date_range.stat_date
- </select>
- <select id="summaryList" resultType="com.inspur.source.domain.vo.DashboardPlaySummaryVo">
- SELECT
- mi.id AS sourceId,
- mi.original_name AS fileName,
- mi.type AS fileType,
- mi.tag AS fileTag,
- mi.screenshot as fileUrl,
- IFNULL( sps.playTimes, 0 ) AS playTimes,
- IFNULL( sps.playDuration, 0 ) AS playDuration
- FROM
- smsb_minio_data mi
- LEFT JOIN (
- SELECT
- source_id AS sourceId,
- IFNULL( SUM( play_times ), 0 ) AS playTimes,
- IFNULL( SUM( play_duration ), 0 ) AS playDuration
- FROM
- smsb_source_play_summary
- WHERE create_time BETWEEN #{bo.startTime} AND #{bo.endTime} + INTERVAL 1 DAY - INTERVAL 1 SECOND
- GROUP BY
- source_id
- ) sps ON mi.id = sps.sourceId
- WHERE mi.del_flag = 0
- <if test="bo.sourceName != null and bo.sourceName != ''">
- AND mi.original_name like concat('%',#{bo.sourceName},'%')
- </if>
- <if test="bo.sourceType != null">
- AND mi.type = #{bo.sourceType}
- </if>
- <if test="bo.sourceTag != null">
- AND mi.tag = #{bo.sourceTag}
- </if>
- ORDER BY mi.create_time desc
- </select>
- <select id="devicePlayList" resultType="com.inspur.source.domain.vo.SmsbSourcePlayRecordVo">
- SELECT
- sd.NAME AS deviceName,
- spr.playTimes,
- spr.duration
- FROM
- (
- SELECT
- device_id,
- COUNT( 1 ) AS playTimes,
- SUM( duration ) AS duration
- FROM
- smsb_source_play_record
- WHERE
- source_id = #{bo.sourceId}
- AND create_time BETWEEN #{bo.startTime} AND #{bo.endTime} + INTERVAL 1 DAY - INTERVAL 1 SECOND
- GROUP BY device_id
- ) spr
- LEFT JOIN smsb_device sd ON spr.device_id = sd.id
- </select>
- <select id="itemPlayList" resultType="com.inspur.source.domain.vo.SmsbSourcePlayRecordVo">
- SELECT
- si.item_name AS itemName,
- si.item_type AS itemType,
- spr.playTimes,
- spr.duration
- FROM
- (
- SELECT
- item_id,
- COUNT( 1 ) AS playTimes,
- SUM( duration ) AS duration
- FROM
- smsb_source_play_record
- WHERE
- source_id = #{bo.sourceId}
- AND create_time BETWEEN #{bo.startTime} AND #{bo.endTime} + INTERVAL 1 DAY - INTERVAL 1 SECOND
- GROUP BY item_id
- ) spr
- LEFT JOIN smsb_item si ON spr.item_id = si.id
- </select>
- </mapper>
|