| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?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.device.mapper.SmsbVisitorsFlowRateMapper">
- <select id="selectFlowRateCountList" parameterType="com.inspur.device.domain.bo.SmsbVisitorsFlowRateBo"
- resultType="com.inspur.device.domain.vo.SmsbVisitorsFlowRateCountVo">
- SELECT
- sd.serial_number AS deviceSn,
- sd.mac AS deviceMac,
- sd.id AS deviceId,
- sd.`name` AS deviceName,
- IFNULL(rate.totalNum,0) AS totalNum,
- IFNULL(rate.todayNum,0) AS todayNum,
- IFNULL(rate.yesterdayNum,0) AS yesterdayNum,
- IFNULL(rate.lastWeekNum,0) AS lastWeekNum,
- IFNULL(rate.weekNum,0) AS weekNum,
- IFNULL(rate.monthNum,0) AS monthNum
- FROM
- smsb_device sd
- LEFT JOIN
- (
- SELECT
- device_id AS deviceId,
- SUM(person_num) AS totalNum,
- SUM(CASE WHEN DATE(create_time) = CURDATE() THEN person_num ELSE 0 END) AS todayNum,
- SUM(CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY THEN person_num ELSE 0 END) AS yesterdayNum,
- SUM(CASE WHEN YEARWEEK(create_time, 1) = YEARWEEK(CURDATE(), 1) - 1 THEN person_num ELSE 0 END) AS lastWeekNum,
- SUM(CASE WHEN YEARWEEK(create_time, 1) = YEARWEEK(CURDATE(), 1) THEN person_num ELSE 0 END) AS weekNum,
- SUM(CASE WHEN MONTH(create_time) = MONTH(CURDATE()) AND YEAR(create_time) = YEAR(CURDATE()) THEN person_num ELSE 0 END) AS monthNum
- FROM
- smsb_visitors_flow_rate
- GROUP BY
- device_id
- ORDER BY
- totalNum DESC
- ) rate
- ON rate.deviceId = sd.id
- WHERE 1 = 1
- <if test="bo.deviceName != null and bo.deviceName != ''">
- AND sd.name LIKE concat('%',#{bo.deviceName},'%')
- </if>
- ORDER BY totalNum DESC
- </select>
- <select id="selectVisitorsFlowRateMonthlyInfo" resultType="com.inspur.device.domain.vo.DateAndCountVO">
- SELECT
- dates.date AS date,
- IFNULL(COUNT(smsb_visitors_flow_rate.id),0) AS count
- FROM
- (
- SELECT DATE_SUB(CURDATE(), INTERVAL n DAY) AS date
- FROM
- (
- SELECT 0 AS n 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 UNION SELECT 10 UNION SELECT 11 UNION
- SELECT 12 UNION SELECT 13 UNION SELECT 14 UNION SELECT 15 UNION
- SELECT 16 UNION SELECT 17 UNION SELECT 18 UNION SELECT 19 UNION
- SELECT 20 UNION SELECT 21 UNION SELECT 22 UNION SELECT 23 UNION
- SELECT 24 UNION SELECT 25 UNION SELECT 26 UNION SELECT 27 UNION
- SELECT 28 UNION SELECT 29
- ) AS numbers
- ) AS dates
- LEFT JOIN
- smsb_visitors_flow_rate
- ON smsb_visitors_flow_rate.device_id = #{deviceId}
- AND DATE(smsb_visitors_flow_rate.create_time) = dates.date
- GROUP BY
- dates.date
- ORDER BY
- dates.date;
- </select>
- </mapper>
|