Commit e80e86b2 by songyinghui

feat: 兼容 会员id合并时间先到,埋点数据后到的问题

parent eaae7496
...@@ -57,6 +57,17 @@ public class InteractRecordMessageContext { ...@@ -57,6 +57,17 @@ public class InteractRecordMessageContext {
} }
/** /**
* 构建唯一key
*
* @return
*/
public String buildRecordKeyWithUnionId() {
String customerId = interactRecordMessageBO.getUnionId();
String key = interactRecordMessageBO.getBusinessUUId() + interactRecordMessageBO.getClerkId() + interactRecordMessageBO.getMaterialId() + customerId;
return MD5.create().digestHex(key);
}
/**
* 获取客户id * 获取客户id
* *
* @return * @return
......
...@@ -54,15 +54,16 @@ public class InteractRecordMessageService { ...@@ -54,15 +54,16 @@ public class InteractRecordMessageService {
if (MaterialInteractRecordEventType.ORDER.getCode().equals(interactRecordMessageBO.getEventType())) { if (MaterialInteractRecordEventType.ORDER.getCode().equals(interactRecordMessageBO.getEventType())) {
interactRecordBO = this.getInteractRecordBOWithOrderType(interactRecordMessageBO); interactRecordBO = this.getInteractRecordBOWithOrderType(interactRecordMessageBO);
if (interactRecordBO == null) { if (interactRecordBO == null) {
// 订单事件已过滤,理论上此处不会出现
log.info("下单事件 互动记录为空 {}", JSON.toJSONString(interactRecordMessageBO)); log.info("下单事件 互动记录为空 {}", JSON.toJSONString(interactRecordMessageBO));
if (interactRecordMessageBO.getTimes() == null || interactRecordMessageBO.getTimes() < 60) {
// 兼容订单事件先到达的情况 延迟消费 60轮 每轮一分钟
}
return; return;
} }
} else { } else {
interactRecordBO = interactRecordService.queryWithInteractInfo(interactRecordMessageBO.getEnterpriseId(), recordKey); interactRecordBO = interactRecordService.queryWithInteractInfo(interactRecordMessageBO.getEnterpriseId(), recordKey);
if (interactRecordBO == null) {
// 通过unionId 再获取一下
interactRecordBO = interactRecordService.queryWithInteractInfo(interactRecordMessageBO.getEnterpriseId(), context.buildRecordKeyWithUnionId());
}
} }
RedisUtil.lock(recordKey, 3L, TimeUnit.SECONDS, 2L); RedisUtil.lock(recordKey, 3L, TimeUnit.SECONDS, 2L);
try { try {
......
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