瀏覽代碼

Merge branch 'refs/heads/埋点停留时长修改_20250611' into uat

pengyga 5 月之前
父節點
當前提交
f2f5ad0624

+ 3 - 2
suishenbang-system/src/main/java/com/dgtly/system/mapper/SysMagnetLogMapper.java

@@ -2,6 +2,7 @@ package com.dgtly.system.mapper;
 
 import com.dgtly.system.domain.SysMagnetLog;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 磁铁日志Mapper接口
@@ -62,8 +63,8 @@ public interface SysMagnetLogMapper
     /**
      * 根据用户id,移动端、电脑端,查询最近一点的埋点记录
      *
-     * @param sysMagnetLog 磁铁日志
+     * @param paramMap
      * @return 磁铁日志
      */
-    public SysMagnetLog selectOneByCondition(SysMagnetLog sysMagnetLog);
+    public SysMagnetLog selectOneByCondition(Map<String,Object> paramMap);
 }

+ 23 - 5
suishenbang-system/src/main/java/com/dgtly/system/service/impl/SysMagnetLogServiceImpl.java

@@ -1,8 +1,8 @@
 package com.dgtly.system.service.impl;
 
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+
 import com.dgtly.common.utils.DateUtils;
 import com.dgtly.system.domain.SysUser;
 import com.dgtly.system.mapper.SysUserMapper;
@@ -71,10 +71,28 @@ public class SysMagnetLogServiceImpl implements ISysMagnetLogService
             sysMagnetLog.setCreateTime(sf.parse(createTimeStr));
             //计算渠道看板、产品看板、会员看板的停留时长
             //本次是主页、渠道看板、产品看板、会员看板、关闭数据看板
-            if("主页".equals(sysMagnetLog.getMagnetName()) || "渠道看板".equals(sysMagnetLog.getMagnetName()) || "产品看板".equals(sysMagnetLog.getMagnetName()) || "会员看板".equals(sysMagnetLog.getMagnetName()) || "关闭数据看板".equals(sysMagnetLog.getMagnetName())){
+            if("主页".equals(sysMagnetLog.getMagnetName()) || "渠道看板".equals(sysMagnetLog.getMagnetName()) || "产品看板".equals(sysMagnetLog.getMagnetName()) || "会员看板".equals(sysMagnetLog.getMagnetName()) || "关闭数据看板".equals(sysMagnetLog.getMagnetName())
+                    || "好邦手主页".equals(sysMagnetLog.getMagnetName()) || "好邦手渠道看板".equals(sysMagnetLog.getMagnetName()) || "好邦手产品看板".equals(sysMagnetLog.getMagnetName()) || "好邦手会员看板".equals(sysMagnetLog.getMagnetName())
+                    || "随身邦主页".equals(sysMagnetLog.getMagnetName()) || "随身邦渠道看板".equals(sysMagnetLog.getMagnetName()) || "随身邦产品看板".equals(sysMagnetLog.getMagnetName()) || "随身邦会员看板".equals(sysMagnetLog.getMagnetName())){
+               //判断是哪个入口
+                String agent="";
+                if(sysMagnetLog.getMagnetName().contains("好邦手")){
+                    agent="好邦手";
+                }else if(sysMagnetLog.getMagnetName().contains("随身邦")){
+                    agent="随身邦";
+                }
+                //传参
+                Map<String,Object> paramMap=new HashMap<String,Object>();
+                paramMap.put("userId",sysMagnetLog.getUserId());
+                paramMap.put("whatEnd",sysMagnetLog.getWhatEnd());
+                List<String> magentList=new ArrayList<String>();
+                magentList.add(agent+"渠道看板");
+                magentList.add(agent+"产品看板");
+                magentList.add(agent+"会员看板");
+                paramMap.put("magentList",magentList);
                 //查询最近的上次埋点
-                SysMagnetLog sysMagnetLogLast = sysMagnetLogMapper.selectOneByCondition(sysMagnetLog);
-                if(sysMagnetLogLast!=null && sysMagnetLogLast.getUpdateTime()==null && ("渠道看板".equals(sysMagnetLogLast.getMagnetName()) || "产品看板".equals(sysMagnetLogLast.getMagnetName()) || "会员看板".equals(sysMagnetLogLast.getMagnetName()))){
+                SysMagnetLog sysMagnetLogLast = sysMagnetLogMapper.selectOneByCondition(paramMap);
+                if(sysMagnetLogLast!=null && sysMagnetLogLast.getUpdateTime()==null){
                     //记录结束访问时间(仅渠道看板、产品看板、会员看板)
                     sysMagnetLogLast.setUpdateTime(sysMagnetLog.getCreateTime());
                     //记录上次的停留时间

+ 4 - 1
suishenbang-system/src/main/resources/mapper/system/SysMagnetLogMapper.xml

@@ -131,7 +131,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <where>
             <if test="userId != null "> and user_id = #{userId}</if>
             <if test="whatEnd != null "> and what_end = #{whatEnd}</if>
-            and magnet_name in ('渠道看板','产品看板','会员看板')
+            and magnet_name in
+            <foreach item="magentName" collection="magentList" open="(" separator="," close=")">
+                #{magentName}
+            </foreach>
         </where>
          order by create_time desc limit 1
     </select>