| | |
| | | LAR.delete_flag = 0 |
| | | </select> |
| | | |
| | | <select id="getToDayStayTime" resultType="decimal"> |
| | | SELECT SUM(t.stay_seconds) |
| | | FROM (SELECT user_id, |
| | | page_code, |
| | | session_id, |
| | | MIN(CASE WHEN page_status = 'JOIN' THEN start_time END) AS enter_time, |
| | | MIN(CASE WHEN page_status = 'LEAVE' THEN start_time END) AS leave_time, |
| | | TIMESTAMPDIFF(SECOND, MIN(CASE WHEN page_status = 'JOIN' THEN start_time END), |
| | | MIN(CASE WHEN page_status = 'LEAVE' THEN start_time END) |
| | | ) AS stay_seconds |
| | | FROM lmk_action_record |
| | | WHERE action_type = 'PAGE' |
| | | AND page_status IN ('JOIN', 'LEAVE') |
| | | AND user_id = #{userId} |
| | | AND create_time BETWEEN #{begin} AND #{end} |
| | | GROUP BY user_id, page_code, session_id |
| | | HAVING enter_time IS NOT NULL |
| | | AND leave_time IS NOT NULL |
| | | ORDER BY user_id, session_id, enter_time) t |
| | | </select> |
| | | <resultMap id="userStayListMap" type="cn.lili.modules.lmk.domain.vo.StayActionRecordVO"> |
| | | <result property="userId" column="user_id"/> |
| | | <result property="nickName" column="nick_name"/> |
| | | <result property="sessionId" column="session_id"/> |
| | | <result property="pageCode" column="page_code"/> |
| | | <result property="pageNameCn" column="page_name_cn"/> |
| | | <result property="enterTime" column="enter_time"/> |
| | | <result property="leaveTime" column="leave_time"/> |
| | | <result property="pageParams" column="page_params"/> |
| | | </resultMap> |
| | | <select id="userStayList" resultMap="userStayListMap"> |
| | | SELECT |
| | | t1.user_id, |
| | | lm.nick_name, |
| | | t1.session_id, |
| | | t1.page_params, |
| | | t1.page_code, |
| | | CASE t1.page_code |
| | | WHEN 'RECOMMEND_VIDEO' THEN '首页推荐视频' |
| | | WHEN 'HEALTH_VIDEO' THEN '大健康视频' |
| | | WHEN 'KITCHEN_VIDEO' THEN '神厨视频' |
| | | WHEN 'RECOMMEND_VIDEO_GOODS' THEN '视频推荐商品页面' |
| | | WHEN 'RECOMMEND_VIDEO_LEFT_GOODS' THEN '左滑推荐商品' |
| | | WHEN 'RECOMMEND_VIDEO_RIGHT_VIDEO' THEN '右滑视频页面' |
| | | WHEN 'FILL_ORDER' THEN '填写订单' |
| | | WHEN 'PAY_ORDER' THEN '支付订单' |
| | | WHEN 'PAY_SUCCESS' THEN '支付成功' |
| | | WHEN 'ORDER_LIST' THEN '订单列表' |
| | | WHEN 'ORDER_DETAIL' THEN '订单详情' |
| | | WHEN 'PRIZE_DETAIL' THEN '抽奖活动' |
| | | WHEN 'CART_LIST' THEN '购物车' |
| | | WHEN 'TBA_BAR_MY' THEN '我的页面' |
| | | WHEN 'SHOPPING_SQUARE' THEN '商品广场' |
| | | WHEN 'ACTIVITY_LIST' THEN '活动列表' |
| | | WHEN 'ACTIVITY_DETAIL' THEN '活动详情' |
| | | WHEN 'PUBLISH_VIDEO' THEN '视频发布' |
| | | WHEN 'SWIPER_GOODS' THEN '滑动商品' |
| | | WHEN 'COUPON_CENTER' THEN '领卷中心' |
| | | WHEN 'MY_COUPON' THEN '我的优惠卷' |
| | | WHEN 'AFTER_SALE' THEN '售后列表' |
| | | WHEN 'APPLY_SALE' THEN '申请售后' |
| | | WHEN 'REFUND_ORDER' THEN '退款/退货' |
| | | WHEN 'GOODS_DETAILS' THEN '商品详情页面' |
| | | ELSE '未知页面' |
| | | END AS page_name_cn, |
| | | t1.start_time AS enter_time, |
| | | t2.start_time AS leave_time, |
| | | TIMESTAMPDIFF(SECOND, t1.start_time, t2.start_time) AS stay_seconds |
| | | FROM |
| | | lmk_action_record t1 |
| | | JOIN |
| | | lmk_action_record t2 ON t1.session_id = t2.session_id |
| | | AND t1.user_id = t2.user_id |
| | | AND t1.page_code = t2.page_code |
| | | JOIN li_member lm ON lm.id = t1.user_id |
| | | WHERE |
| | | t1.page_status = 'JOIN' |
| | | AND t2.page_status = 'LEAVE' |
| | | AND t1.start_time < t2.start_time |
| | | and t1.start_time between #{req.beginDate} and #{req.endDate} |
| | | <if test="req.userName != null and req.userName != ''"> |
| | | and lm.nick_name like concat('%',#{req.userName},'%') |
| | | </if> |
| | | <if test="req.pageCode != null and req.pageCode != ''"> |
| | | and t1.page_code = #{req.pageCode} |
| | | </if> |
| | | <if test="req.userId != null and req.userId != ''"> |
| | | and t1.user_id = #{req.userId} |
| | | </if> |
| | | ORDER BY |
| | | t1.start_time desc |
| | | |
| | | </select> |
| | | <resultMap id="userShareMap" type="cn.lili.modules.lmk.domain.vo.ShareActionRecordVO"> |
| | | <result property="userId" column="user_id"/> |
| | | <result property="nickName" column="nick_name"/> |
| | | <result property="pageCode" column="page_code"/> |
| | | <result property="pageNameCn" column="page_name_cn"/> |
| | | <result property="createTime" column="create_time"/> |
| | | <result property="shareOption" column="share_option"/> |
| | | </resultMap> |
| | | <select id="userShare" resultMap="userShareMap"> |
| | | SELECT |
| | | lm.nick_name, |
| | | lsa.page_code, |
| | | lsa.share_option, |
| | | lsa.user_id, |
| | | lsa.create_time, |
| | | CASE |
| | | lsa.page_code |
| | | WHEN 'RECOMMEND_VIDEO' THEN |
| | | '首页推荐视频' |
| | | WHEN 'HEALTH_VIDEO' THEN |
| | | '大健康视频' |
| | | WHEN 'KITCHEN_VIDEO' THEN |
| | | '神厨视频' |
| | | WHEN 'RECOMMEND_VIDEO_GOODS' THEN |
| | | '视频推荐商品页面' |
| | | WHEN 'RECOMMEND_VIDEO_LEFT_GOODS' THEN |
| | | '左滑推荐商品' |
| | | WHEN 'RECOMMEND_VIDEO_RIGHT_VIDEO' THEN |
| | | '右滑视频页面' |
| | | WHEN 'FILL_ORDER' THEN |
| | | '填写订单' |
| | | WHEN 'PAY_ORDER' THEN |
| | | '支付订单' |
| | | WHEN 'PAY_SUCCESS' THEN |
| | | '支付成功' |
| | | WHEN 'ORDER_LIST' THEN |
| | | '订单列表' |
| | | WHEN 'ORDER_DETAIL' THEN |
| | | '订单详情' |
| | | WHEN 'PRIZE_DETAIL' THEN |
| | | '抽奖活动' |
| | | WHEN 'CART_LIST' THEN |
| | | '购物车' |
| | | WHEN 'TBA_BAR_MY' THEN |
| | | '我的页面' |
| | | WHEN 'SHOPPING_SQUARE' THEN |
| | | '商品广场' |
| | | WHEN 'ACTIVITY_LIST' THEN |
| | | '活动列表' |
| | | WHEN 'ACTIVITY_DETAIL' THEN |
| | | '活动详情' |
| | | WHEN 'PUBLISH_VIDEO' THEN |
| | | '视频发布' |
| | | WHEN 'SWIPER_GOODS' THEN |
| | | '滑动商品' |
| | | WHEN 'COUPON_CENTER' THEN |
| | | '领卷中心' |
| | | WHEN 'MY_COUPON' THEN |
| | | '我的优惠卷' |
| | | WHEN 'AFTER_SALE' THEN |
| | | '售后列表' |
| | | WHEN 'APPLY_SALE' THEN |
| | | '申请售后' |
| | | WHEN 'REFUND_ORDER' THEN |
| | | '退款/退货' |
| | | WHEN 'GOODS_DETAILS' THEN |
| | | '商品详情页面' ELSE '未知页面' |
| | | END AS page_name_cn |
| | | FROM |
| | | lmk_share_action lsa |
| | | JOIN li_member lm ON lsa.user_id = lm.id |
| | | WHERE |
| | | lsa.delete_flag = 0 |
| | | AND lm.delete_flag = 0 |
| | | and lsa.create_time between #{req.beginDate} and #{req.endDate} |
| | | <if test="req.userName != null and req.userName != ''"> |
| | | and lm.nick_name like concat('%',#{req.userName},'%') |
| | | </if> |
| | | <if test="req.pageCode != null and req.pageCode != ''"> |
| | | and lsa.page_code = #{req.pageCode} |
| | | </if> |
| | | ORDER BY |
| | | lsa.create_time desc |
| | | </select> |
| | | <resultMap id="userStayListRecordMap" type="cn.lili.modules.lmk.domain.vo.ActionRecordListVO"> |
| | | <id column="id" property="id"/> |
| | | <result column="user_id" property="userId"/> |
| | | <result column="action_type" property="actionType"/> |
| | | <result column="start_time" property="startTime"/> |
| | | <result column="join_type" property="joinType"/> |
| | | <result column="previous_session_id" property="previousSessionId"/> |
| | | <result column="share_id" property="shareId"/> |
| | | <result column="page_code" property="pageCode"/> |
| | | <result column="page_params" property="pageParams"/> |
| | | <result column="page_type" property="pageType"/> |
| | | <result column="page_status" property="pageStatus"/> |
| | | <result column="update_time" property="updateTime"/> |
| | | <result column="create_by" property="createBy"/> |
| | | <result column="create_time" property="createTime"/> |
| | | <result column="update_by" property="updateBy"/> |
| | | <result column="delete_flag" property="deleteFlag"/> |
| | | <result column="nick_name" property="nickName"/> |
| | | </resultMap> |
| | | <select id="userStayListRecord" resultMap="userStayListRecordMap"> |
| | | SELECT |
| | | t.id, |
| | | t.user_id, |
| | | t.action_type, |
| | | t.start_time, |
| | | t.join_type, |
| | | t.previous_session_id, |
| | | t.share_id, |
| | | t.page_code, |
| | | t.page_params, |
| | | t.page_type, |
| | | t.page_status, |
| | | t.update_time, |
| | | t.create_by, |
| | | t.create_time, |
| | | t.update_by, |
| | | t.delete_flag, |
| | | lm.nick_name |
| | | FROM |
| | | ( |
| | | SELECT |
| | | *, |
| | | ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY create_time DESC) AS rn |
| | | FROM |
| | | lmk_action_record |
| | | WHERE |
| | | user_id IS NOT NULL |
| | | AND page_status = 'JOIN') t |
| | | JOIN li_member lm ON lm.id = t.user_id |
| | | WHERE |
| | | rn = 1 AND lm.delete_flag = 0 |
| | | and t.create_time between #{req.beginDate} and #{req.endDate} |
| | | <if test="req.userName != null and req.userName != ''"> |
| | | and lm.nick_name like concat('%',#{req.userName},'%') |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |