| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?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="cn.xyh.amActivity.mapper.AmStatisticsMapper">
- <resultMap type="cn.xyh.amActivity.domain.AmStatistics" id="AmStatisticsResult">
- <result property="amId" column="am_id"/>
- <result property="sourceId" column="source_id"/>
- <result property="sourceType" column="source_type"/>
- <result property="readStatus" column="read_status"/>
- <result property="starStatus" column="star_status"/>
- <result property="favoriteStatus" column="favorite_status"/>
- <result property="createBy" column="create_by"/>
- <result property="createTime" column="create_time"/>
- <result property="updateBy" column="update_by"/>
- <result property="updateTime" column="update_time"/>
- <result property="remark" column="remark"/>
- </resultMap>
- <select id="selectAmStatisticsData" resultType="cn.xyh.amActivity.domain.vo.AmStatisticsDataVo">
- SELECT ams.source_id,
- IFNULL(commentCount, 0) as comment_count,
- IFNULL(readCount, 0) as read_count,
- IFNULL(starCount, 0) as star_count,
- IFNULL(favoriteCount, 0) as favorite_count
- FROM (SELECT source_id,
- SUM(read_status) AS readCount,
- SUM(star_status) AS starCount,
- SUM(favorite_status) AS favoriteCount
- FROM am_statistics
- GROUP BY source_id) AS ams
- LEFT JOIN (SELECT source_id, COUNT(source_id) AS commentCount
- FROM am_comment
- GROUP BY source_id) AS amc ON amc.source_id = ams.source_id
- WHERE ams.source_id = #{sourceId}
- </select>
- <select id="selectStatisticsSource" resultType="cn.xyh.amActivity.domain.vo.AmStatisticsSourceVo">
- SELECT
- ams.am_id,
- ams.source_id,
- ams.source_type,
- ams.favorite_time,
- a.category,
- a.title,
- a.content,
- <if test="map.sourceType=='activity'">
- a.activity_date as date,
- a.is_sys,
- </if>
- <if test="map.sourceType=='help'">
- a.expiry_date as date,
- a.is_sys,
- </if>
- <if test=" map.sourceType=='news'">
- a.date,
- </if>
- a.create_by ,
- a.is_hot,
- a.is_head,
- a.images,
- a.create_time,
- u.nick_name as createdBy,
- IFNULL(amcc.commentCount, 0) as comment_count,
- IFNULL(amsc.readCount, 0) as read_count,
- IFNULL(amsc.starCount, 0) as star_count,
- IFNULL(amsc.favoriteCount, 0) as favorite_count
- FROM am_statistics AS ams
- <if test="map.sourceType=='activity'">
- LEFT JOIN am_activity AS a ON a.activity_id = ams.source_id
- </if>
- <if test="map.sourceType=='help'">
- LEFT JOIN am_help AS a ON a.help_id = ams.source_id
- </if>
- <if test="map.sourceType=='news'">
- LEFT JOIN am_news AS a ON a.news_id = ams.source_id
- </if>
- LEFT JOIN (SELECT source_id,
- SUM(read_status) AS readCount,
- SUM(star_status) AS starCount,
- SUM(favorite_status) AS favoriteCount
- FROM am_statistics
- GROUP BY source_id) AS amsc ON amsc.source_id = ams.source_id
- LEFT JOIN (SELECT source_id, COUNT(source_id) AS commentCount
- FROM am_comment
- GROUP BY source_id) AS amcc ON amcc.source_id = ams.source_id
- LEFT JOIN sys_user AS u ON u.user_name = a.create_by
- WHERE 1=1
- <if test="map.sourceType!=null">
- AND ams.source_type = #{map.sourceType}
- </if>
- <if test="map.amId!=null">
- AND ams.am_id = #{map.amId}
- </if>
- <if test="map.favoriteStatus!=null">
- AND ams.favorite_status = #{map.favoriteStatus}
- </if>
- <if test="map.starStatus!=null">
- AND ams.star_status = #{map.starStatus}
- </if>
- <if test="map.beginDate!=null and map.endDate!=null">
- AND a.creat_time between #{map.beginDate} AND #{map.endDate}
- </if>
- </select>
- </mapper>
|