dsx 2 years ago
parent
commit
546a4b1c9f

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

@@ -2,6 +2,7 @@ package com.fdkankan.tracking.bean;
 
 import com.alibaba.fastjson.JSONObject;
 import lombok.Data;
+import lombok.ToString;
 
 import java.util.Date;
 
@@ -31,5 +32,4 @@ public class TrackingBody {
     private String endTime;
     private String language;
     private String type;
-
 }

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

@@ -1,8 +1,11 @@
 package com.fdkankan.tracking.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.extra.servlet.ServletUtil;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.fdkankan.elasticsearch.service.DocumentService;
@@ -12,6 +15,7 @@ import com.fdkankan.tracking.vo.TrackingParamVo;
 import com.fdkankan.tracking.service.TrackingService;
 import com.fdkankan.tracking.utils.IpUtils;
 import com.fdkankan.web.response.ResultData;
+import com.google.common.collect.Lists;
 import lombok.extern.slf4j.Slf4j;
 import org.elasticsearch.rest.RestStatus;
 import org.slf4j.Logger;
@@ -24,8 +28,8 @@ import org.springframework.web.client.RestTemplate;
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
-import java.util.Calendar;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -84,8 +88,27 @@ public class TrackingServiceImpl implements TrackingService {
             trackingBody.setReferrerParam(reffer[1]);
         }
 
+        //获取索引名
         String index = trackingBody.getAppId().split("-")[0];
-        RestStatus restStatus = documentService.addDocument(index, null, null, JSON.toJSONString(trackingBody));
+
+        Object data = trackingBody.getRequestData().get("data");
+        //如果是数组,需要拆解成多条数据入库
+        if(data instanceof Iterable){
+            List<LinkedHashMap> dataList = (List<LinkedHashMap>)data;
+            List<JSONObject> list = dataList.stream().map(item -> {
+                TrackingBody subBody = BeanUtil.copyProperties(trackingBody, TrackingBody.class);
+                subBody.getRequestData().put("data", item);
+                return JSON.parseObject(JSON.toJSONString(subBody));
+            }).collect(Collectors.toList());
+            if(CollUtil.isEmpty(list)){
+                return ResultData.ok("data为空");
+            }
+            RestStatus restStatus = documentService.batchImportGoodsData(list, "aaaaa");
+            return ResultData.ok(restStatus.getStatus());
+        }
+
+
+        RestStatus restStatus = documentService.addDocument("index", null, null, JSON.toJSONString(trackingBody));
 
         return ResultData.ok(restStatus.getStatus());
     }