dsx vor 2 Jahren
Ursprung
Commit
67e771067a

+ 1 - 3
src/main/java/com/fdkankan/tracking/bean/TrackingBody.java

@@ -14,12 +14,10 @@ public class TrackingBody {
     private String userId;
     private Date time;
     private String url;
+    private JSONObject context;
     private JSONObject requestData;
     private String source;
     private String referrer;
-    private String scheme;
-    private String host;
-    private String path;
     private String eventType;
     private String eventName;
     private String userIP;

+ 26 - 11
src/main/java/com/fdkankan/tracking/service/impl/TrackingServiceImpl.java

@@ -6,6 +6,8 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.elasticsearch.service.DocumentService;
+import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.tracking.bean.TrackingBody;
 import com.fdkankan.tracking.vo.TrackingParamVo;
 import com.fdkankan.tracking.service.TrackingService;
@@ -28,29 +30,36 @@ public class TrackingServiceImpl implements TrackingService {
 
     @Autowired
     private DocumentService documentService;
+    @Autowired
+    private RedisUtil redisUtil;
 
     @Override
     public ResultData saveLog(TrackingParamVo param, HttpServletRequest request) throws Exception {
+
+        String index = param.getProduct();
+        if(StrUtil.isEmpty(index)){
+            return ResultData.ok();
+        }
+
         TrackingBody trackingBody = param.getPayload();
         if(ObjectUtils.isEmpty(trackingBody)){
             return ResultData.ok();
         }
+
+        String appId = trackingBody.getAppId();
+        appId =  index.concat(appId.substring(appId.indexOf("-")));
+        trackingBody.setAppId(appId);
+
+        String redisIndex = redisUtil.hget(RedisKey.TRACK_APPID, appId);
+        if(StrUtil.isEmpty(redisIndex) || !redisIndex.equals(index)){
+            return ResultData.ok();
+        }
+
         trackingBody.setUserAgent(request.getHeader("user-agent"));
         trackingBody.setUserIP(WebUtil.getIpAddress(request));
         trackingBody.setTime(Calendar.getInstance().getTime());
         trackingBody.setSource("FRONT");
 
-        String referrer = trackingBody.getReferrer();
-        if(StrUtil.isNotEmpty(referrer)){
-            URI uri = new URI(referrer);
-            trackingBody.setScheme(uri.getScheme());
-            trackingBody.setHost(uri.getHost());
-            trackingBody.setPath(uri.getPath());
-        }
-
-        //获取索引名
-        String index = trackingBody.getAppId().split("-")[0];
-
         JSONObject requestData = trackingBody.getRequestData();
 
         if(Objects.nonNull(requestData)){
@@ -75,4 +84,10 @@ public class TrackingServiceImpl implements TrackingService {
 
         return ResultData.ok(restStatus.getStatus());
     }
+
+    public static void main(String[] args) {
+        String appid = "7b5958d5-1ae6-4ad5-8a87-5fc8a4b92999";
+        System.out.println(appid.substring(appid.indexOf("-")));
+
+    }
 }

+ 2 - 2
src/main/java/com/fdkankan/tracking/vo/TrackingParamVo.java

@@ -6,9 +6,9 @@ import lombok.Data;
 @Data
 public class TrackingParamVo {
     /**
-     * 打点类型
+     * 索引
      */
-    private String type;
+    private String product;
 
     private TrackingBody payload;
 }

+ 4 - 3
src/main/resources/bootstrap-test.yml

@@ -13,9 +13,10 @@ spring:
 #            group: DEFAULT_GROUP
 #            refresh: true
 #
-#          - data-id: common-redis-config.yaml
-#            group: DEFAULT_GROUP
-#            refresh: true
+          - data-id: common-redis-config.yaml
+            group: DEFAULT_GROUP
+            refresh: true
+
           - data-id: common-config.yaml
             group: DEFAULT_GROUP
             refresh: true