瀏覽代碼

IP地址确认

huangzhiguo 2 年之前
父節點
當前提交
6770d0a09f

+ 7 - 0
src/main/java/com/caimei365/tools/controller/BaseApi.java

@@ -1,5 +1,6 @@
 package com.caimei365.tools.controller;
 
+import com.caimei365.tools.service.CmBehaviorRecordService;
 import com.caimei365.tools.service.CmOrganValueSystemService;
 import com.caimei365.tools.service.CmRepurchaseFrequencyService;
 import lombok.RequiredArgsConstructor;
@@ -24,6 +25,7 @@ public class BaseApi {
     @Resource
     private CmOrganValueSystemService cmOrganValueSystemService;
     @Resource private CmRepurchaseFrequencyService cmRepurchaseFrequencyService;
+    @Resource private CmBehaviorRecordService cmBehaviorRecordService;
 
     @Value(value = "${swagger.enabled}")
     private Boolean swaggerEnabled;
@@ -36,5 +38,10 @@ public class BaseApi {
         return "欢迎使用!";
     }
 
+    @GetMapping("/base/oldData")
+    public void oldData(Integer startId, Integer endId) {
+        cmBehaviorRecordService.setIpAddress(startId,endId);
+    }
+
 }
 

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

@@ -2,6 +2,7 @@ package com.caimei365.tools.mapper;
 
 import com.caimei365.tools.model.po.CmBehaviorRecordPo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -38,5 +39,17 @@ public interface CmBehaviorRecordMapper {
      * @param cmBehaviorRecordPo
      */
     void updateDuration(CmBehaviorRecordPo cmBehaviorRecordPo);
+
+    /**
+     * 查询所有老数据
+     * @return
+     */
+    List<CmBehaviorRecordPo> findList(@Param("startId") Integer startId, @Param("endId") Integer endId);
+
+    /**
+     * 修改老数据ip所在地
+     * @param cmBehaviorRecordPo
+     */
+    void updateOldData(CmBehaviorRecordPo cmBehaviorRecordPo);
 }
 

+ 2 - 0
src/main/java/com/caimei365/tools/service/CmBehaviorRecordService.java

@@ -13,4 +13,6 @@ public interface CmBehaviorRecordService {
     void insertRecord(IpSavePo ipSavePo);
 
     void updateBehaviorTime();
+
+    void setIpAddress(Integer startId, Integer endId);
 }

+ 26 - 9
src/main/java/com/caimei365/tools/service/impl/CmBehaviorRecordServiceImpl.java

@@ -40,6 +40,7 @@ public class CmBehaviorRecordServiceImpl implements CmBehaviorRecordService {
         if ("/user/record/Statistics".equals(ipSavePo.getRequestUrl().trim())) {
             log.info("用户行为记录=================》" + ipSavePo.getIp());
             CmBehaviorRecordPo cmBehaviorRecordPo = new CmBehaviorRecordPo();
+            String region = "";
             cmBehaviorRecordPo.setIP(ipSavePo.getIp());
             if (StringUtils.isNotBlank(ipSavePo.getUserId())) {
                 cmBehaviorRecordPo.setUserId(ipSavePo.getUserId());
@@ -178,6 +179,14 @@ public class CmBehaviorRecordServiceImpl implements CmBehaviorRecordService {
             String format = simpleDateFormat.format(date);
             cmBehaviorRecordPo.setAccessDate(format);
             cmBehaviorRecordPo.setIsReckon("0");
+            // 确定ip所属地
+
+            try {
+                region = recordIp(ipSavePo.getIp());
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            cmBehaviorRecordPo.setRegion(region);
             recordMapper.insertRecord(cmBehaviorRecordPo);
         }
     }
@@ -188,7 +197,6 @@ public class CmBehaviorRecordServiceImpl implements CmBehaviorRecordService {
         long t1 = 0;
         long t2 = 0;
         Long duration = 0L;
-        String region = "";
         CmBehaviorRecordPo cmBehaviorRecordPo = new CmBehaviorRecordPo();
         CmBehaviorRecordPo cmBehaviorRecord = new CmBehaviorRecordPo();
         Date date = new Date();
@@ -223,20 +231,29 @@ public class CmBehaviorRecordServiceImpl implements CmBehaviorRecordService {
                     cmBehaviorRecord.setRecordID(recordPoList.get(i).getRecordID());
                     cmBehaviorRecord.setAccessDuration(duration.toString());
                     cmBehaviorRecord.setIsReckon("1");
-                    // 确定ip所属地
-
-                    try {
-                        region = recordIp(recordPoList.get(i).getIP());
-                    } catch (IOException e) {
-                        e.printStackTrace();
-                    }
-                    cmBehaviorRecord.setRegion(region);
                     recordMapper.updateDuration(cmBehaviorRecord);
                 }
             }
         }
     }
 
+    @Override
+    public void setIpAddress(Integer startId, Integer endId) {
+        List<CmBehaviorRecordPo> list = recordMapper.findList(startId,endId);
+        String region = "";
+        for (CmBehaviorRecordPo recordPo: list) {
+            try {
+                // 获取ip所在地
+                region = recordIp(recordPo.getIP());
+                recordPo.setRegion(region);
+                recordPo.setIsReckon("1");
+                recordMapper.updateOldData(recordPo);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
 
     // 获取IP对应地址 ---- 太平洋
     public static String recordIp(String ip) throws IOException {

+ 11 - 2
src/main/resources/mapper/CmBehaviorRecordMapper.xml

@@ -2,8 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.tools.mapper.CmBehaviorRecordMapper">
     <insert id="insertRecord">
-        INSERT INTO cm_behavior_record (IP, userID, pagePath, pageType, pageLabel, behaviorType, productID, accessTime, accessDuration, accessDate,referer,accessSource,accessClient,isReckon)
-        VALUES(#{IP},#{userId},#{pagePath},#{pageType},#{pageLabel},#{behaviorType},#{productId},#{accessTime},#{accessDuration},#{accessDate},#{referer},#{accessSource},#{accessClient},#{isReckon})
+        INSERT INTO cm_behavior_record (IP, userID, pagePath, pageType, pageLabel, behaviorType, productID, accessTime, accessDuration, accessDate,referer,accessSource,accessClient,isReckon,region)
+        VALUES(#{IP},#{userId},#{pagePath},#{pageType},#{pageLabel},#{behaviorType},#{productId},#{accessTime},#{accessDuration},#{accessDate},#{referer},#{accessSource},#{accessClient},#{isReckon},#{region})
     </insert>
 
     <select id="toDateRecode" resultType="com.caimei365.tools.model.po.CmBehaviorRecordPo">
@@ -24,5 +24,14 @@
             region = #{region}
         WHERE recordID = #{recordID}
     </update>
+    <select id="findList" resultType="com.caimei365.tools.model.po.CmBehaviorRecordPo">
+        SELECT * FROM cm_behavior_record where recordID between #{startId} and #{endId}
+    </select>
+    <update id="updateOldData">
+        UPDATE cm_behavior_record
+        SET isReckon = #{isReckon},
+            region = #{region}
+        WHERE recordID = #{recordID}
+    </update>
 </mapper>