Commit c889f22f by 魏建枢

代码提交

parent 8e4b37b0
......@@ -51,6 +51,10 @@ public class CommonConsumeBaseAchi extends SourceCommonBase implements Serializa
DataStreamSource<String> collectLogStreamSource = kafkaDataSource.getDataStreamSource();
CollectLogAchi.collectLog(collectLogStreamSource);
}
if(StringUtils.equals(kafkaDataSource.getTopic(),TopicTypeEnum.ODS_PC_COLLECT_LOG.getTopic())) {
DataStreamSource<String> pcCollectLogStreamSource = kafkaDataSource.getDataStreamSource();
PcCollectLogAchi.pccollectLog(pcCollectLogStreamSource);
}
if(StringUtils.equals(kafkaDataSource.getTopic(),TopicTypeEnum.OPEN_SIMI_API.getTopic())) {
DataStreamSource<String> oepnSimiApiStreamSource = kafkaDataSource.getDataStreamSource();
OpenSimiApiAchi.openSimiApi(oepnSimiApiStreamSource);
......
package com.flink.enums;
/**
* @author wjs
* @version 创建时间:2025-9-16 16:21:26
* 类说明
*/
public enum ProcessTypeEnum {
/**
* 0、未处理
*/
NOT_HANDLE(0, "未处理"),
/**
* 1、无需处理
*/
NO_HANDLE(1, "无需处理"),
/**
* 2、已处理
*/
SUCCESS(2,"已处理")
;
private Integer code;
private String name;
private ProcessTypeEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
}
......@@ -33,6 +33,7 @@ public class CommonConsumeBaseProcessor implements JobProcessor{
TopicTypeEnum.ODS_EVENT_LOG,
TopicTypeEnum.ODS_COMMUNITY_HISTORY,
TopicTypeEnum.ODS_NEW_COLLECT_LOG,
TopicTypeEnum.ODS_PC_COLLECT_LOG,
TopicTypeEnum.OPEN_SIMI_API,
TopicTypeEnum.ODS_EXCEPTION_EVENT_TOPIC,
TopicTypeEnum.ODS_COLLECT_USER_BEHAVIOR,
......
......@@ -5,14 +5,18 @@ import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.flink.util.CompareUtils;
import com.flink.util.LoadPropertiesFile;
import com.flink.vo.PcCollectInfoLog;
import com.flink.vo.SimiInterfaceBase;
import com.flink.vo.UserInfoDto;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
......@@ -32,6 +36,7 @@ public class OkHttpService{
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
private final static String URL = LoadPropertiesFile.getPropertyFileValues("simiUserInfo.url");
private final static String ABROAD_URL = LoadPropertiesFile.getPropertyFileValues("simiUserInfo.abroadUrl");
private final static String AUTHORIZATION = LoadPropertiesFile.getPropertyFileValues("simiUserInfo.authorization");
private final static String KEY = LoadPropertiesFile.getPropertyFileValues("simiUserInfo.key");
......@@ -43,13 +48,60 @@ public class OkHttpService{
}
public static PcCollectInfoLog getUserInfo(String appKey,String cid,PcCollectInfoLog pcCollectInfoLog) {
//通过cid或者phone去获取用户信息(调第三方接口)
String timestamp = System.currentTimeMillis()+"";
String reqParams = StringBuilderParams.userInfo(cid, null);
String url = null;
//国内
if(CompareUtils.stringExists(appKey,
"pc1KPjmh951",
"pcrIjvC5805",
"pcUXtmMh356",
"pcrPGB1z531",
"ts1KPjmh951",
"tsrIjvC5805",
"tsUXtmMh356",
"tsrPGB1z531"
)) {
url = URL+"/dataApi/userInfo?"+reqParams;
}
//海外
if(CompareUtils.stringExists(appKey,
"pcRIhwh1380",
"pcQmdNl0952",
"pc1etTC6207",
"pcd9Sa8T989",
"tsRIhwh1380",
"tsQmdNl0952",
"ts1etTC6207",
"tsd9Sa8T989"
)) {
url = ABROAD_URL+"/dataApi/userInfo?"+reqParams;
}
if(StringUtils.isNotEmpty(url)) {
String signature = DigestUtils.md5Hex(reqParams+"&"+AUTHORIZATION+"&"+timestamp+"&"+KEY);
String userStr = OkHttpService.get(url, timestamp,AUTHORIZATION,signature);
if(StringUtils.isNotEmpty(userStr)) {
UserInfoDto userInfo = JSONObject.parseObject(userStr,new TypeReference<UserInfoDto>(){});
pcCollectInfoLog.setThird_id(userInfo.getThirdId());
pcCollectInfoLog.setCountry_code(userInfo.getCountryCode());
pcCollectInfoLog.setRegister_time(userInfo.getCreateTime());
pcCollectInfoLog.setUser_state(userInfo.getUserState());
pcCollectInfoLog.setUser_head_url(userInfo.getUserHeadUrl());
}
}
return pcCollectInfoLog;
}
public static String friends(String cid){
String timestamp = System.currentTimeMillis()+"";
String reqParams = StringBuilderParams.friends(cid, null);
String url = URL+"/dataApi/friends?"+reqParams;
String authorization = AUTHORIZATION;
String signature = DigestUtils.md5Hex(reqParams+"&"+authorization+"&"+timestamp+"&"+KEY);
return get(url, timestamp,authorization,signature,cid);
return get(url, timestamp,authorization,signature);
}
public static String groups(String cid) {
......@@ -58,7 +110,7 @@ public class OkHttpService{
String url = URL+"/dataApi/groups?"+reqParams;
String authorization = AUTHORIZATION;
String signature = DigestUtils.md5Hex(reqParams+"&"+authorization+"&"+timestamp+"&"+KEY);
return get(url, timestamp,authorization,signature,cid);
return get(url, timestamp,authorization,signature);
}
......@@ -80,7 +132,7 @@ public class OkHttpService{
post(url,jsonArray.toJSONString(),timestamp,authorization,signature);
}
private static String get(String url, String timestamp, String authorization, String signature,String cid) {
private static String get(String url, String timestamp, String authorization, String signature) {
System.out.println("get OkHttpService: 请求内容 : \n " + url);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
......
......@@ -35,4 +35,15 @@ public class StringBuilderParams {
return String.join("&", array);
}
public static String userInfo(String cid,String phoneNumber) {
List<String> array = new ArrayList<>();
if(StringUtils.isNotEmpty(cid)) {
array.add("cid="+cid);
}
if(StringUtils.isNotEmpty(phoneNumber)) {
array.add("phoneNumber="+phoneNumber);
}
return String.join("&", array);
}
}
package com.flink.vo;
import java.io.Serializable;
import lombok.Data;
/**
* @author wjs
* @version 创建时间:2025-9-9 14:31:54 类说明
*/
@Data
public class PcCollectInfoLog implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String id;
private String flume_type;
private String device_id;
private String device_id_v1;
private String third_id;
private String app_type;
private String user_head_url;
private String device_model;
private String app_version;
private String send_type;
private String zone_name;
private String os_release;
private String platform;
private String register_time;
private String zone_code;
private String user_state;
private String nick;
private String uid;
private String device_name;
private String zone_type;
private String brand;
private String user_agent;
private String unique_id;
private String create_time;
private String network_ip;
private String app_channel;
private String country_code;
private String send_time;
private String app_key;
private String device_info;
private String phone;
private String networkAreaName;
private String cid;
}
package com.flink.vo;
import java.io.Serializable;
import lombok.Data;
/**
* @author wjs
* @version 创建时间:2025-2-17 11:10:52
* 类说明
*/
@Data
public class UserInfoDto implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String cid;
private String countryCode;
private String phoneNumber;
private String nick;
private String createTime;
private String userState;
private String userHeadUrl;
private String thirdId;
}
......@@ -15,6 +15,7 @@ hdfs.url=hdfs://10.0.0.105:8020/user/ck/
#simiUserInfo.url= https://imadmin.simitalk.com/prod-api/
simiUserInfo.url= https://zterra.simitalk.com/prod-api/
simiUserInfo.abroadUrl= https://zterra.simitalk.top/prod-api/
simiUserInfo.authorization= KhhZAQKaZkfd7p55
simiUserInfo.key= niiKpP4SXce2zCHZ
......
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 sign in to comment