<?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.dg.core.db.gen.mapper.AutomessageSysUserRecordMapper">
|
<resultMap type="com.dg.core.db.gen.entity.AutomessageSysUserRecord" id="AutomessageSysUserRecordResult">
|
<id property="id" column="id" />
|
<id property="userId" column="user_id" />
|
<id property="createTime" column="create_time" />
|
<id property="joinType" column="join_type" />
|
</resultMap>
|
|
<sql id="selectAgreement">
|
select id,user_id,
|
(select user_name from automessage_sys_user where user_id=a.user_id)userName,
|
create_time,join_type FROM automessage_sys_user_record a
|
</sql>
|
<!-- 小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问-->
|
<select id="selectUserRecordCount" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
|
select count(*)visits,1 type from automessage_sys_user_record UNION
|
select count(*)visits,2 type from automessage_sys_user_record where year(create_time)=year(SYSDATE()) UNION
|
select count(*)visits,3 type from automessage_sys_user_record where DATE_FORMAT(create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) ,'%Y%m' ) UNION
|
select count(*)visits,4 type from automessage_sys_user_record where to_days(create_time) = to_days(now()) UNION
|
select count(*)visits,5 type from automessage_sys_user_record where TO_DAYS( SYSDATE() ) - TO_DAYS(create_time) = 1
|
</select>
|
|
<select id="selectByDay" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
|
select d.date, IFNULL(T.score,0) visits from
|
(
|
SELECT CURDATE() AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 8 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 9 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 11 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 12 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 13 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 14 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 15 DAY) AS date
|
) d
|
left join(
|
select DATE_FORMAT(create_time,'%Y-%m-%d')create_time, COUNT(*) as score
|
from automessage_sys_user_record
|
group by DATE_FORMAT(create_time,'%Y-%m-%d')
|
) T on T.create_time = d.date
|
GROUP BY d.date
|
</select>
|
|
<select id="selectByMonth" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
|
select d.date, IFNULL(T.score,0) visits from
|
(
|
SELECT CURDATE() AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 8 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 9 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 11 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 12 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 13 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 14 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 15 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 16 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 17 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 18 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 19 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 20 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 21 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 22 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 23 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 24 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 25 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 26 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 27 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 28 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 29 DAY) AS date
|
UNION ALL
|
SELECT DATE_SUB(CURDATE(), INTERVAL 30 DAY) AS date
|
) d
|
left join(
|
select DATE_FORMAT(create_time,'%Y-%m-%d')create_time, COUNT(*) as score
|
from automessage_sys_user_record
|
group by DATE_FORMAT(create_time,'%Y-%m-%d')
|
) T on T.create_time = d.date
|
GROUP BY d.date
|
</select>
|
|
<select id="selectByYear" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
|
select d.date, IFNULL(T.score,0) visits from
|
(
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 11 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 10 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 9 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 8 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 7 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 6 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 5 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 4 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 3 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 2 month),"%Y-%m") date UNION
|
SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 month),"%Y-%m") date UNION
|
select DATE_FORMAT(NOW(),"%Y-%m") FROM DUAL
|
) d
|
left join(
|
select DATE_FORMAT(create_time,'%Y-%m')create_time, COUNT(*) as score
|
from automessage_sys_user_record
|
group by DATE_FORMAT(create_time,'%Y-%m')
|
) T on T.create_time = d.date
|
GROUP BY d.date
|
</select>
|
|
<!-- 删除因为token问题产出的重复脏数据-->
|
<delete id="deleteDistinct" parameterType="string">
|
DELETE FROM automessage_sys_user_record where id in
|
(select id FROM(
|
Select id,user_id,DATE_FORMAT(create_time,'%Y-%m-%d')create_time
|
From automessage_sys_user_record Group By user_id,DATE_FORMAT(create_time,'%Y-%m-%d') Having Count(*)>1)
|
k)
|
</delete>
|
|
</mapper>
|