|
@@ -2,32 +2,23 @@ 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 cn.hutool.core.util.StrUtil;
|
|
|
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;
|
|
|
import com.fdkankan.tracking.bean.TrackingBody;
|
|
|
-import com.fdkankan.tracking.utils.EsUtil;
|
|
|
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 com.fdkankan.web.util.WebUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.elasticsearch.rest.RestStatus;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
-import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.io.IOException;
|
|
|
+import java.net.URI;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -35,57 +26,26 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
public class TrackingServiceImpl implements TrackingService {
|
|
|
|
|
|
-
|
|
|
-// public void save(TrackingParamVo entity) {
|
|
|
-// if(entity.getPayload().getUrl().contains("?")){
|
|
|
-// String[] url = entity.getPayload().getUrl().split("\\?");
|
|
|
-// entity.getPayload().setUrl(url[0]);
|
|
|
-// entity.getPayload().setUrlParam(url[1]);
|
|
|
-// }
|
|
|
-// if(entity.getPayload().getReferrer().contains("?")){
|
|
|
-// String[] reffer = entity.getPayload().getReferrer().split("\\?");
|
|
|
-// entity.getPayload().setReferrer(reffer[0]);
|
|
|
-// entity.getPayload().setReferrerParam(reffer[1]);
|
|
|
-// }
|
|
|
-// String url = esHost.concat("/").concat(entity.getType().toLowerCase()).concat("/log?pretty&pretty");
|
|
|
-// log.info("es host:{}", url);
|
|
|
-// try{
|
|
|
-// // value 转换为String 格式
|
|
|
-// TrackingBody trackingBody = JSONObject.parseObject(JSONObject.toJSONString(entity.getPayload(), SerializerFeature.WriteNonStringValueAsString), TrackingBody.class);
|
|
|
-// restTemplate.postForEntity(url, trackingBody, String.class);
|
|
|
-// }catch (Exception e){
|
|
|
-// e.printStackTrace();
|
|
|
-// throw new RuntimeException(e.getMessage());
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// @Autowired
|
|
|
-// private EsUtil esUtil;
|
|
|
@Autowired
|
|
|
private DocumentService documentService;
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
- public ResultData saveLog(TrackingParamVo param, HttpServletRequest request) throws IOException {
|
|
|
+ public ResultData saveLog(TrackingParamVo param, HttpServletRequest request) throws Exception {
|
|
|
TrackingBody trackingBody = param.getPayload();
|
|
|
if(ObjectUtils.isEmpty(trackingBody)){
|
|
|
return ResultData.ok();
|
|
|
}
|
|
|
trackingBody.setUserAgent(request.getHeader("user-agent"));
|
|
|
- trackingBody.setUserIP(ServletUtil.getClientIP(request));
|
|
|
+ trackingBody.setUserIP(WebUtil.getIpAddress(request));
|
|
|
trackingBody.setTime(Calendar.getInstance().getTime());
|
|
|
trackingBody.setSource("FRONT");
|
|
|
|
|
|
- if(trackingBody.getUrl().contains("?")){
|
|
|
- String[] url = trackingBody.getUrl().split("\\?");
|
|
|
- trackingBody.setUrl(url[0]);
|
|
|
- trackingBody.setUrlParam(url[1]);
|
|
|
- }
|
|
|
-
|
|
|
- if(trackingBody.getReferrer().contains("?")){
|
|
|
- String[] reffer = trackingBody.getReferrer().split("\\?");
|
|
|
- trackingBody.setReferrer(reffer[0]);
|
|
|
- trackingBody.setReferrerParam(reffer[1]);
|
|
|
+ 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());
|
|
|
}
|
|
|
|
|
|
//获取索引名
|