From 2a7b0a64b14b22ec45f8a0f6e4764bc3cd16919c Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期一, 27 十月 2025 17:08:24 +0800
Subject: [PATCH] 调整

---
 framework/src/main/resources/mapper/lmk/ActionRecordMapper.xml |  234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 234 insertions(+), 0 deletions(-)

diff --git a/framework/src/main/resources/mapper/lmk/ActionRecordMapper.xml b/framework/src/main/resources/mapper/lmk/ActionRecordMapper.xml
index 19b542e..82bb3ff 100644
--- a/framework/src/main/resources/mapper/lmk/ActionRecordMapper.xml
+++ b/framework/src/main/resources/mapper/lmk/ActionRecordMapper.xml
@@ -65,4 +65,238 @@
             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 &lt; 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>

--
Gitblit v1.8.0