huangzhiguo 1 rok pred
rodič
commit
d378a4ed9d

+ 13 - 0
src/main/java/com/caimei365/tools/mapper/CmBehaviorRecordMapper.java

@@ -206,6 +206,19 @@ public interface CmBehaviorRecordMapper {
      */
     void updateBehaviorByTouristId(CmBehaviorRecordPo cmBehaviorRecordPo);
 
+    /**
+     * 获取游客ip 与注册用户相同的访问
+     * @param accessDate
+     * @return
+     */
+    List<CmBehaviorRecordPo> getUserAndBehavior(@Param("accessdate") String accessDate);
+
+    /**
+     * 合并游客与用户相同ip的访问数据
+     * @param userId
+     * @param recordId
+     */
+    void updateBehaviorTourist(@Param("userId") Integer userId, @Param("recordId") Integer recordId);
     /**
      * 用户昨日数据
      * @param accessDate

+ 8 - 0
src/main/java/com/caimei365/tools/service/impl/CmBehaviorRecordServiceImpl.java

@@ -534,6 +534,14 @@ public class CmBehaviorRecordServiceImpl implements CmBehaviorRecordService {
                 }
             }
         }
+        // 将当天访问ip和注册用户ip关联
+        List<CmBehaviorRecordPo> userAndBehavior = recordMapper.getUserAndBehavior(format);
+        if (null != userAndBehavior && userAndBehavior.size() > 0) {
+            // 将相同的合并为该用户的访问
+            userAndBehavior.forEach(behavior -> {
+                recordMapper.updateBehaviorTourist(Integer.parseInt(behavior.getUserId()), behavior.getRecordID());
+            });
+        }
     }
 
     /**

+ 20 - 0
src/main/resources/mapper/CmBehaviorRecordMapper.xml

@@ -294,6 +294,26 @@
         WHERE touristId = #{touristId} and accessDate = #{accessDate}
     </update>
 
+    <select id="getUserAndBehavior" resultType="com.caimei365.tools.model.po.CmBehaviorRecordPo">
+        SELECT u.userId,
+               u.registerTime,
+               cbr.recordID as recordID,
+               cbr.ip,
+               cbr.userId,
+               cbr.accessDate
+        FROM USER u
+        LEFT JOIN cm_behavior_record cbr ON u.registerIP = cbr.IP
+        WHERE cbr.accessdate = '2023-12-27'
+          AND u.registerTime LIKE '%2023-12-27%'
+          AND cbr.userId = 0
+    </select>
+
+    <update id="updateBehaviorTourist">
+        update cm_behavior_record
+        set userId = #{userId}
+        where recordID = #{recordId}
+    </update>
+
     <select id="selYesterdayList" resultType="com.caimei365.tools.model.po.CmBehaviorRecordPo">
         SELECT
             b.IP,