Commit 4b28d3b2 authored by 李健华's avatar 李健华

Merge branch 'feature/risk-2022-03-23' into 'master'

去掉lkb上报

See merge request !53
parents 4bd490fa 7ef6ada5
package cn.quantgroup.xyqb.event; //package cn.quantgroup.xyqb.event;
//
import java.io.UnsupportedEncodingException; //import java.io.UnsupportedEncodingException;
//
import org.apache.commons.lang3.exception.ExceptionUtils; //import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.context.ApplicationListener; //import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import com.amazonaws.services.kinesis.producer.UserRecordResult; //import com.amazonaws.services.kinesis.producer.UserRecordResult;
import com.fasterxml.jackson.core.JsonProcessingException; //import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.common.util.concurrent.FutureCallback; //import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures; //import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture; //import com.google.common.util.concurrent.ListenableFuture;
//
import cn.qg.ec.kinesis.EnvironmentConfig; //import cn.qg.ec.kinesis.EnvironmentConfig;
import cn.qg.ec.kinesis.KinesisProducerClient; //import cn.qg.ec.kinesis.KinesisProducerClient;
import cn.qg.ec.model.user.base.UserBaseDetailEvent; //import cn.qg.ec.model.user.base.UserBaseDetailEvent;
import cn.quantgroup.tech.util.TechEnvironment; //import cn.quantgroup.tech.util.TechEnvironment;
import cn.quantgroup.xyqb.entity.User; //import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.exception.PushUserToLkbException; //import cn.quantgroup.xyqb.exception.PushUserToLkbException;
import cn.quantgroup.xyqb.model.UserRegisterParam; //import cn.quantgroup.xyqb.model.UserRegisterParam;
import cn.quantgroup.xyqb.util.JsonUtil; //import cn.quantgroup.xyqb.util.JsonUtil;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
//
/** ///**
* 注册成功之后,用户分群数据上报 // * 注册成功之后,用户分群数据上报
* http://confluence.quantgroup.cn/pages/viewpage.action?pageId=34832018 // * http://confluence.quantgroup.cn/pages/viewpage.action?pageId=34832018
* http://confluence.quantgroup.cn/pages/viewpage.action?pageId=41784208 // * http://confluence.quantgroup.cn/pages/viewpage.action?pageId=41784208
* http://confluence.quantgroup.cn/pages/viewpage.action?pageId=34818640 // * http://confluence.quantgroup.cn/pages/viewpage.action?pageId=34818640
* @author yutong // * @author yutong
*/ // */
@Slf4j //@Slf4j
//@Component //@Component
public class KinesisRegisteredEventListener implements ApplicationListener<RegisterEvent> { //public class KinesisRegisteredEventListener implements ApplicationListener<RegisterEvent> {
//
@Override // @Override
public void onApplicationEvent(RegisterEvent event) { // public void onApplicationEvent(RegisterEvent event) {
UserRegisterParam userRegisterParam = event.getUserRegisterParam(); // UserRegisterParam userRegisterParam = event.getUserRegisterParam();
User user = userRegisterParam.getUser(); // User user = userRegisterParam.getUser();
//
log.info("[KinesisRegistered] 用户分群数据上报准备, userId:{}, registeredFrom:{}", user.getId(), user.getRegisteredFrom()); // log.info("[KinesisRegistered] 用户分群数据上报准备, userId:{}, registeredFrom:{}", user.getId(), user.getRegisteredFrom());
sendRecord(user); // sendRecord(user);
} // }
//
private void sendRecord(User user) { // private void sendRecord(User user) {
// EnvironmentConfig.DEV 环境变量配置 // // EnvironmentConfig.DEV 环境变量配置
KinesisProducerClient kinesisProducerClient = new KinesisProducerClient( // KinesisProducerClient kinesisProducerClient = new KinesisProducerClient(
TechEnvironment.isPro() ? EnvironmentConfig.PROD : EnvironmentConfig.DEV); // TechEnvironment.isPro() ? EnvironmentConfig.PROD : EnvironmentConfig.DEV);
//
// 用户登录事件发送 // // 用户登录事件发送
//// UserBaseDetailEvent regEvent = UserBaseDetailEvent
//// .builder()
//// .channel(1L)
//// .hashPhoneNo("*********")
//// .businessEventBaseInfo(BusinessEventBaseInfo
//// .builder()
//// .channel("***")
//// .deviceId("***")
//// .ip("***")
//// .userUuid("***")
//// .build())
//// .subEventType(UserBaseDetailEvent.SubEventType.REGISTER)
//// .build();
// UserBaseDetailEvent regEvent = UserBaseDetailEvent // UserBaseDetailEvent regEvent = UserBaseDetailEvent
// .builder() // .builder()
// .channel(1L) // .userId(String.valueOf(user.getId()))
// .hashPhoneNo("*********") // .userUuid(user.getUuid())
// .businessEventBaseInfo(BusinessEventBaseInfo
// .builder()
// .channel("***")
// .deviceId("***")
// .ip("***")
// .userUuid("***")
// .build())
// .subEventType(UserBaseDetailEvent.SubEventType.REGISTER) // .subEventType(UserBaseDetailEvent.SubEventType.REGISTER)
// .build(); // .build();
UserBaseDetailEvent regEvent = UserBaseDetailEvent // regEvent.setRegisterChannel(user.getRegisteredFrom().intValue());
.builder() // regEvent.setRegisterTime(user.getCreatedAt().getTime());
.userId(String.valueOf(user.getId())) //
.userUuid(user.getUuid()) // try {
.subEventType(UserBaseDetailEvent.SubEventType.REGISTER) // ListenableFuture<UserRecordResult> listenableFuture = kinesisProducerClient.SendRecord(regEvent);
.build(); // Futures.addCallback(listenableFuture, Callback);
regEvent.setRegisterChannel(user.getRegisteredFrom().intValue()); // log.info("[KinesisRegistered] 用户分群数据上报发送, regEvent:{}", JsonUtil.toJson(regEvent));
regEvent.setRegisterTime(user.getCreatedAt().getTime()); // } catch (UnsupportedEncodingException | JsonProcessingException e) {
// log.error("[KinesisRegistered]用户分群数据上报出错, e:{}", e);
try { // throw new PushUserToLkbException("用户分群数据上报出错");
ListenableFuture<UserRecordResult> listenableFuture = kinesisProducerClient.SendRecord(regEvent); // }
Futures.addCallback(listenableFuture, Callback); // }
log.info("[KinesisRegistered] 用户分群数据上报发送, regEvent:{}", JsonUtil.toJson(regEvent)); //
} catch (UnsupportedEncodingException | JsonProcessingException e) { // // 异步响应结果 如果发送失败,发送方需要进行重试发送
log.error("[KinesisRegistered]用户分群数据上报出错, e:{}", e); // FutureCallback<UserRecordResult> Callback = new FutureCallback<UserRecordResult>() {
throw new PushUserToLkbException("用户分群数据上报出错"); // @Override
} // public void onFailure(Throwable t) {
} // /* Analyze and respond to the failure */
// log.error(t.getMessage(), t);
// 异步响应结果 如果发送失败,发送方需要进行重试发送 // log.error("[KinesisRegistered] 用户分群数据上报失败, Throwable:{}", ExceptionUtils.getStackTrace(t));
FutureCallback<UserRecordResult> Callback = new FutureCallback<UserRecordResult>() { // }
@Override //
public void onFailure(Throwable t) { // @Override
/* Analyze and respond to the failure */ // public void onSuccess(UserRecordResult result) {
log.error(t.getMessage(), t); // log.info("[KinesisRegistered] 用户分群数据上报成功, result:{}", result.toString());
log.error("[KinesisRegistered] 用户分群数据上报失败, Throwable:{}", ExceptionUtils.getStackTrace(t)); // }
} // };
//}
@Override
public void onSuccess(UserRecordResult result) {
log.info("[KinesisRegistered] 用户分群数据上报成功, result:{}", result.toString());
}
};
}
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