Commit e80e86b2 by songyinghui

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

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