Commit a5527591 by songyinghui

feat: 浏览商品数据清洗

parent 825e87db
...@@ -70,4 +70,9 @@ public class InteractRecordMessageBO implements Serializable { ...@@ -70,4 +70,9 @@ public class InteractRecordMessageBO implements Serializable {
* 时间戳 * 时间戳
*/ */
private Long lastAccessTime; private Long lastAccessTime;
/**
* 临时字段
*/
private String refUrl;
} }
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType; import com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType;
import com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessageBO; import com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessageBO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.listener.MessageListener; import org.springframework.kafka.listener.MessageListener;
...@@ -44,6 +45,26 @@ public class InteractRecordMessageListener implements MessageListener<String, St ...@@ -44,6 +45,26 @@ public class InteractRecordMessageListener implements MessageListener<String, St
log.info("素材埋点事件类型非素材相关类型 {}", recordMessageBO.getEventType()); log.info("素材埋点事件类型非素材相关类型 {}", recordMessageBO.getEventType());
return; return;
} }
dataConvert(recordMessageBO);
interactRecordMessageService.dealRecord(recordMessageBO); interactRecordMessageService.dealRecord(recordMessageBO);
} }
/**
* 数据清洗
*/
public void dataConvert(InteractRecordMessageBO recordMessageBO) {
if (!MaterialInteractRecordEventType.VISIT_PRODUCT.getCode().equals(recordMessageBO.getEventType())) {
return;
}
if (StringUtils.isBlank(recordMessageBO.getClerkId()) && StringUtils.isNotBlank(recordMessageBO.getRefUrl())) {
// pages/hb/material/material-root/material-root?contentMaterialId=517690074188505121&storeId=ff8080818499a5f301849ceb9f870035&channelSource=5&clerkId=bcbfff6c8e2e40aaac795a99d0dde2aa
String refUrl = recordMessageBO.getRefUrl();
int indexOf = StringUtils.indexOf(refUrl, "clerkId=");
if (indexOf != -1) {
String clerkId = StringUtils.substring(refUrl, indexOf + 8, indexOf + 40);
recordMessageBO.setClerkId(clerkId);
}
}
}
} }
...@@ -21,76 +21,13 @@ public class test { ...@@ -21,76 +21,13 @@ public class test {
private static final TimedCache<String, TestQo> cache = CacheUtil.newTimedCache(3000L); private static final TimedCache<String, TestQo> cache = CacheUtil.newTimedCache(3000L);
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
// pages/hb/material/material-root/material-root?contentMaterialId=517690074188505121&storeId=ff8080818499a5f301849ceb9f870035&channelSource=5&clerkId=bcbfff6c8e2e40aaac795a99d0dde2aa
try{ String refUrl = "pages/hb/material/material-root/material-root?contentMaterialId=517690074188505121&storeId=ff8080818499a5f301849ceb9f870035&channelSource=5&clerkId=bcbfff6c8e2e40aaac795a99d0dde2aaADASDD";
System.out.println("start"); int indexOf = StringUtils.indexOf(refUrl, "clerkId=");
throw new Exception("111"); if (indexOf != -1) {
}catch (Exception e) { String clerkId = StringUtils.substring(refUrl, indexOf + 8, indexOf + 40);
System.out.println("ex"); System.out.println(clerkId);
throw e;
}finally {
System.out.println("end1");
} }
// Date date = new Date();
// Date tomrrow = DateUtils.addDays(date, 1);
// Date yestory = DateUtils.addDays(date, -1);
// long l = DateUtil.betweenDay(tomrrow, date, true);
//
// long l2 = DateUtil.betweenDay(date, tomrrow, true);
// TestQo qo=new TestQo();
// qo.setName("test");
// System.out.println(l + "=" + l2);
//
// cache.put("test",qo);
// Thread.sleep(1000L);
// TestQo test = cache.get("test");
// System.out.println(JSONObject.toJSONString(test));
//
// Thread.sleep(2000L);
// System.out.println(JSONObject.toJSONString(test));
// Thread.sleep(2000L);
// System.out.println(JSONObject.toJSONString(test));
// test = cache.get("test");
// System.out.println(JSONObject.toJSONString(test));
//
// int i=20;
// while (i-->0) {
// Thread.sleep(2000L);
// }
//// String key = "3.2.1";
// String[] split = key.split(".");
//
// System.out.println(split[1]);
// Long dimissionTime = 1550838571L;
// LocalDateTime dateTime = LocalDateTime.ofEpochSecond(dimissionTime, 0, ZoneOffset.ofHours(8));
// Instant instant = dateTime.toInstant(ZoneOffset.ofHours(8));
// Date from = Date.from(instant);
// System.out.println(from);
//
// Integer num = 2;
// int i = 2 & 4;
// System.out.println(i);
//
// //插入不存在的我们pre表的企业微信数据
// int pageSize = 500;
// int count = 345;
// int pre = count/pageSize+1;
// int yushu = count%pageSize;
// if(yushu==0){
// pre = pre- 1;
// }
// int i= 0;
// while(i<pre){
// System.out.println("这是第{}次,进入"+i);
// i++;
// int fromIndex = (i-1)*pageSize;
// int toIndex = (count-fromIndex) > pageSize ? (fromIndex+pageSize):count;
//
// System.out.println("fromIndex=============>"+fromIndex);
// System.out.println("toIndex=============>"+toIndex);
//
// }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment