Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
eagleEye
/
eagleEye-flink_kafka
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
708c9999
authored
Jul 07, 2025
by
魏建枢
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
代码提交
parent
4ba81497
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
381 additions
and
25 deletions
eagleEye-flink_kafka/src/main/java/com/flink/achieve/doris/DeviceIdLatestAchi.java
eagleEye-flink_kafka/src/main/java/com/flink/achieve/doris/EventIpLatestAchi.java
eagleEye-flink_kafka/src/main/java/com/flink/enums/TopicTypeEnum.java
eagleEye-flink_kafka/src/main/java/com/flink/processor/impl/DeviceIdLatestProcessor.java
eagleEye-flink_kafka/src/main/java/com/flink/processor/impl/EventIpLatestProcessor.java
eagleEye-flink_kafka/src/main/java/com/flink/util/ip2region/SearcherUtil.java
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcCollectLog.java
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcDeviceInfo.java
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcEventInfo.java
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcOdsEventLog.java
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcProperties.java
eagleEye-flink_kafka/src/main/java/com/flink/vo/RegisterEvent.java
eagleEye-flink_kafka/src/main/resources/application.properties
eagleEye-flink_kafka/src/main/java/com/flink/achieve/doris/DeviceIdLatestAchi.java
View file @
708c9999
...
...
@@ -31,6 +31,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.alibaba.fastjson.TypeReference
;
import
com.flink.common.DorisConnector
;
import
com.flink.common.MultipleSourceCommonBase
;
import
com.flink.config.TableConfig
;
import
com.flink.enums.TopicTypeEnum
;
import
com.flink.processor.function.CollectLogJoinProcessor
;
import
com.flink.processor.function.GenDeviceIdProcessor
;
...
...
@@ -43,6 +44,8 @@ import com.flink.vo.CollectLog;
import
com.flink.vo.DeviceId
;
import
com.flink.vo.DeviceIdInfo
;
import
com.flink.vo.KafkaDataSource
;
import
com.flink.vo.PcCollectLog
;
import
com.flink.vo.PcDeviceInfo
;
import
com.flink.vo.Result
;
import
com.flink.vo.SimiUserInfo
;
import
com.flink.vo.UserProperties
;
...
...
@@ -64,7 +67,9 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
@Override
public
void
parseSourceKafkaJson
(
List
<
KafkaDataSource
>
dataSourceList
)
throws
ParseException
,
Exception
{
//=================配置入库字段=========================================
String
[]
fields
=
{
TableConfig
detailConfig
=
new
TableConfig
(
new
String
[]{
"cid"
,
"phone"
,
"app_key"
,
...
...
@@ -75,9 +80,8 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
"nick"
,
"create_time"
,
"__DORIS_DELETE_SIGN__"
};
DataType
[]
types
=
{
},
new
DataType
[]{
DataTypes
.
STRING
(),
DataTypes
.
STRING
(),
DataTypes
.
STRING
(),
...
...
@@ -88,9 +92,11 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
DataTypes
.
STRING
(),
DataTypes
.
TIMESTAMP
(
3
),
DataTypes
.
INT
()
};
String
[]
chainlessFields
=
{
},
"bi.device_id_latest"
);
TableConfig
chainlessConfig
=
new
TableConfig
(
new
String
[]{
"cid"
,
"app_key"
,
"device_id"
,
...
...
@@ -99,9 +105,8 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
"nick"
,
"create_time"
,
"__DORIS_DELETE_SIGN__"
};
DataType
[]
chainlessTypes
=
{
},
new
DataType
[]{
DataTypes
.
STRING
(),
DataTypes
.
STRING
(),
DataTypes
.
STRING
(),
...
...
@@ -110,12 +115,12 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
DataTypes
.
STRING
(),
DataTypes
.
TIMESTAMP
(
3
),
DataTypes
.
INT
()
};
},
"bi.chainless_device_id_latest"
);
//=================流式处理=========================================
String
tableName
=
"bi.device_id_latest"
;
DorisSink
<
RowData
>
dorisSink
=
DorisConnector
.
sinkDoris
(
fields
,
types
,
tableName
);
String
tableNameChainless
=
"bi.chainless_device_id_latest"
;
DorisSink
<
RowData
>
chainlessDorisSink
=
DorisConnector
.
sinkDoris
(
chainlessFields
,
chainlessTypes
,
tableNameChainless
);
DorisSink
<
RowData
>
dorisSink
=
DorisConnector
.
sinkDoris
(
detailConfig
.
getFields
(),
detailConfig
.
getTypes
(),
detailConfig
.
getTableName
());
DorisSink
<
RowData
>
chainlessDorisSink
=
DorisConnector
.
sinkDoris
(
chainlessConfig
.
getFields
(),
chainlessConfig
.
getTypes
(),
chainlessConfig
.
getTableName
());
//=================数据处理流水线=========================================
//simi国内
operatorSimiUserStream
(
dataSourceList
).
map
(
new
MapFunction
<
Result
,
RowData
>(){
...
...
@@ -129,10 +134,14 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
public
RowData
map
(
Result
result
)
throws
Exception
{
if
(!
CompareUtils
.
stringExists
(
result
.
getAppKey
().
trim
(),
LoadPropertiesFile
.
getPropertyFileValues
(
"simi.android.appKe"
),
LoadPropertiesFile
.
getPropertyFileValues
(
"simi.ios.appKey"
)))
{
LoadPropertiesFile
.
getPropertyFileValues
(
"simi.ios.appKey"
),
LoadPropertiesFile
.
getPropertyFileValues
(
"simi.pc.winAppKey"
),
LoadPropertiesFile
.
getPropertyFileValues
(
"simi.pc.linuxAppKey"
),
LoadPropertiesFile
.
getPropertyFileValues
(
"simi.pc.macINterAppKey"
),
LoadPropertiesFile
.
getPropertyFileValues
(
"simi.pc.macArmAppKey"
)))
{
return
null
;
}
return
exeRowData
(
result
,
fields
);
return
exeRowData
(
result
,
detailConfig
.
getFields
()
);
}
})
.
filter
(
Objects:
:
nonNull
)
...
...
@@ -155,7 +164,7 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
LoadPropertiesFile
.
getPropertyFileValues
(
"abroadSimi.ios.appKey"
)))
{
return
null
;
}
return
exeRowData
(
result
,
fields
);
return
exeRowData
(
result
,
detailConfig
.
getFields
()
);
}
})
.
filter
(
Objects:
:
nonNull
)
...
...
@@ -185,7 +194,7 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
LoadPropertiesFile
.
getPropertyFileValues
(
"chainless.ios.appKey"
)))
{
return
;
}
GenericRowData
row
=
new
GenericRowData
(
chainless
Fields
.
length
);
GenericRowData
row
=
new
GenericRowData
(
chainless
Config
.
getFields
()
.
length
);
row
.
setField
(
0
,
StringData
.
fromString
(
result
.
getCid
()));
row
.
setField
(
1
,
StringData
.
fromString
(
result
.
getAppKey
()));
row
.
setField
(
2
,
StringData
.
fromString
(
result
.
getDeviceId
()));
...
...
@@ -210,6 +219,7 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
private
DataStream
<
Result
>
operatorSimiUserStream
(
List
<
KafkaDataSource
>
dataSourceList
)
{
DataStreamSource
<
String
>
userStreamSource
=
null
;
DataStreamSource
<
String
>
collectLogStreamSource
=
null
;
DataStreamSource
<
String
>
pcCollectLogStreamSource
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
dataSourceList
))
{
for
(
KafkaDataSource
kafkaDataSource
:
dataSourceList
)
{
if
(
StringUtils
.
equals
(
kafkaDataSource
.
getTopic
(),
TopicTypeEnum
.
SIMI_USER_LIST_TOPIC
.
getTopic
()))
{
...
...
@@ -218,6 +228,9 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
if
(
StringUtils
.
equals
(
kafkaDataSource
.
getTopic
(),
TopicTypeEnum
.
ODS_NEW_COLLECT_LOG
.
getTopic
()))
{
collectLogStreamSource
=
kafkaDataSource
.
getDataStreamSource
();
}
if
(
StringUtils
.
equals
(
kafkaDataSource
.
getTopic
(),
TopicTypeEnum
.
ODS_PC_COLLECT_LOG
.
getTopic
()))
{
pcCollectLogStreamSource
=
kafkaDataSource
.
getDataStreamSource
();
}
}
}
else
{
return
null
;
...
...
@@ -246,8 +259,8 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
.
withTimestampAssigner
((
user
,
ts
)
->
user
.
getUpdateTime
()))
.
keyBy
(
user
->
user
.
getCid
()
+
"#_#"
+
user
.
getPhone_number
()).
process
(
new
LatestUserProcessFunction
());
//
事件数据流处理
DataStream
<
DeviceId
>
deviceDataStream
=
collectLogStreamSource
.
flatMap
(
new
FlatMapFunction
<
String
,
DeviceId
>()
{
//
合并APP/PC设备流
DataStream
<
DeviceId
>
mergedDeviceStream
=
collectLogStreamSource
.
flatMap
(
new
FlatMapFunction
<
String
,
DeviceId
>()
{
private
static
final
long
serialVersionUID
=
1L
;
@Override
...
...
@@ -261,11 +274,28 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
logger
.
error
(
"Error parsing ods_new_collect_log 处理 Kafka 消息出错 | data:{} | error:{}"
,
value
,
e
.
getMessage
());
}
}
}).
union
(
// PC设备信息数据流处理
pcCollectLogStreamSource
.
flatMap
(
new
FlatMapFunction
<
String
,
DeviceId
>()
{
private
static
final
long
serialVersionUID
=
1L
;
@Override
public
void
flatMap
(
String
value
,
Collector
<
DeviceId
>
out
)
throws
Exception
{
try
{
// 解析 Kafka 数据
DeviceId
device
=
handlePcData
(
value
);
if
(
device
!=
null
)
out
.
collect
(
device
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"Error parsing ods_pc_collect_log 处理 Kafka 消息出错 | data:{} | error:{}"
,
value
,
e
.
getMessage
());
}
}
})
)
.
assignTimestampsAndWatermarks
(
WatermarkStrategy
.<
DeviceId
>
forBoundedOutOfOrderness
(
Duration
.
ofSeconds
(
5
))
.
withTimestampAssigner
((
device
,
ts
)
->
device
.
getCollectTime
()));
return
deviceDataStream
.
connect
(
userDataStream
)
return
mergedDeviceStream
.
connect
(
userDataStream
)
.
keyBy
(
device
->
device
.
getCid
()
+
"#_#"
+
device
.
getPhone
(),
user
->
user
.
getCid
()
+
"#_#"
+
user
.
getPhone_number
())
.
process
(
new
CollectLogJoinProcessor
()
{
...
...
@@ -390,6 +420,42 @@ public class DeviceIdLatestAchi extends MultipleSourceCommonBase implements Seri
return
deviceId
;
}
//处理PC设备ID数据
public
DeviceId
handlePcData
(
String
value
)
throws
Exception
{
PcCollectLog
log
=
JSONObject
.
parseObject
(
value
,
new
TypeReference
<
PcCollectLog
>(){});
if
(
null
==
log
)
{
return
null
;
}
String
appType
=
log
.
getApp_type
();
String
appKey
=
log
.
getApp_key
();
String
device_info
=
log
.
getDevice_info
();
String
createTime
=
log
.
getCreate_time
();
if
(
StringUtils
.
isEmpty
(
device_info
))
{
return
null
;
}
PcDeviceInfo
pcDeviceInfo
=
JSONObject
.
parseObject
(
device_info
,
new
TypeReference
<
PcDeviceInfo
>(){});
if
(
null
==
pcDeviceInfo
)
{
return
null
;
}
if
(
StringUtils
.
isEmpty
(
pcDeviceInfo
.
getCid
()))
{
return
null
;
}
if
(
StringUtils
.
isEmpty
(
pcDeviceInfo
.
getPhone
()))
{
return
null
;
}
DeviceId
deviceId
=
new
DeviceId
();
deviceId
.
setDeviceId
(
pcDeviceInfo
.
getI7
());
deviceId
.
setCid
(
pcDeviceInfo
.
getCid
());
deviceId
.
setPhone
(
pcDeviceInfo
.
getPhone
());
deviceId
.
setNick
(
pcDeviceInfo
.
getNick
());
deviceId
.
setAppKey
(
appKey
);
deviceId
.
setAppType
(
appType
);
deviceId
.
setCreateTime
(
createTime
);
deviceId
.
setCollectTime
(
TimeConvertUtil
.
convertToTimestamp
(
createTime
));
return
deviceId
;
}
//rowData格式组装
public
RowData
exeRowData
(
Result
result
,
String
[]
fields
){
if
(
null
==
result
)
{
...
...
eagleEye-flink_kafka/src/main/java/com/flink/achieve/doris/EventIpLatestAchi.java
View file @
708c9999
...
...
@@ -44,6 +44,8 @@ import com.flink.util.ip2region.SearcherUtil;
import
com.flink.vo.EventIp
;
import
com.flink.vo.KafkaDataSource
;
import
com.flink.vo.OdsEventLog
;
import
com.flink.vo.PcEventInfo
;
import
com.flink.vo.PcOdsEventLog
;
import
com.flink.vo.Result
;
import
com.flink.vo.SimiUserInfo
;
import
com.flink.vo.UserProperties
;
...
...
@@ -135,6 +137,7 @@ public class EventIpLatestAchi extends MultipleSourceCommonBase implements Seria
private
DataStream
<
Result
>
operatorStream
(
List
<
KafkaDataSource
>
dataSourceList
)
{
DataStreamSource
<
String
>
userStreamSource
=
null
;
DataStreamSource
<
String
>
eventStreamSource
=
null
;
DataStreamSource
<
String
>
pcEventStreamSource
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
dataSourceList
))
{
for
(
KafkaDataSource
kafkaDataSource
:
dataSourceList
)
{
if
(
StringUtils
.
equals
(
kafkaDataSource
.
getTopic
(),
TopicTypeEnum
.
SIMI_USER_LIST_TOPIC
.
getTopic
()))
{
...
...
@@ -143,6 +146,9 @@ public class EventIpLatestAchi extends MultipleSourceCommonBase implements Seria
if
(
StringUtils
.
equals
(
kafkaDataSource
.
getTopic
(),
TopicTypeEnum
.
ODS_EVENT_LOG
.
getTopic
()))
{
eventStreamSource
=
kafkaDataSource
.
getDataStreamSource
();
}
if
(
StringUtils
.
equals
(
kafkaDataSource
.
getTopic
(),
TopicTypeEnum
.
ODS_PC_EVENT_LOG
.
getTopic
()))
{
pcEventStreamSource
=
kafkaDataSource
.
getDataStreamSource
();
}
}
}
else
{
return
null
;
...
...
@@ -171,7 +177,7 @@ public class EventIpLatestAchi extends MultipleSourceCommonBase implements Seria
.
withTimestampAssigner
((
user
,
ts
)
->
user
.
getUpdateTime
()))
.
keyBy
(
user
->
user
.
getCid
()
+
"#_#"
+
user
.
getPhone_number
()).
process
(
new
LatestUserProcessFunction
());
//
事件数据流处理
//
合并APP/PC事件流
DataStream
<
EventIp
>
eventDataStream
=
eventStreamSource
.
flatMap
(
new
FlatMapFunction
<
String
,
EventIp
>()
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -186,7 +192,24 @@ public class EventIpLatestAchi extends MultipleSourceCommonBase implements Seria
logger
.
error
(
"Error parsing ods_event_log 处理 Kafka 消息出错 | data:{} | error:{}"
,
value
,
e
.
getMessage
());
}
}
}).
union
(
// PC事件信息数据流处理
pcEventStreamSource
.
flatMap
(
new
FlatMapFunction
<
String
,
EventIp
>()
{
private
static
final
long
serialVersionUID
=
1L
;
@Override
public
void
flatMap
(
String
value
,
Collector
<
EventIp
>
out
)
throws
Exception
{
try
{
// 解析 Kafka 数据
EventIp
event
=
handlePcData
(
value
);
if
(
event
!=
null
)
out
.
collect
(
event
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"Error parsing ods_pc_event_log 处理 Kafka 消息出错 | data:{} | error:{}"
,
value
,
e
.
getMessage
());
}
}
})
)
.
assignTimestampsAndWatermarks
(
WatermarkStrategy
.<
EventIp
>
forBoundedOutOfOrderness
(
Duration
.
ofSeconds
(
5
))
.
withTimestampAssigner
((
event
,
ts
)
->
event
.
getEventTime
()));
...
...
@@ -331,4 +354,67 @@ public class EventIpLatestAchi extends MultipleSourceCommonBase implements Seria
eventIp
.
setCreateTime
(
createTime
);
return
eventIp
;
}
public
static
EventIp
handlePcData
(
String
record
)
throws
Exception
{
PcOdsEventLog
pcOdsEventLog
=
JSONObject
.
parseObject
(
record
,
new
TypeReference
<
PcOdsEventLog
>()
{});
String
appKey
=
pcOdsEventLog
.
getApp_key
();
String
appType
=
pcOdsEventLog
.
getApp_type
();
String
createTime
=
pcOdsEventLog
.
getCreate_time
();
String
event_info
=
pcOdsEventLog
.
getEvent_info
();
if
(
StringUtils
.
isEmpty
(
event_info
))
{
return
null
;
}
PcEventInfo
pcEventInfo
=
JSONObject
.
parseObject
(
event_info
,
new
TypeReference
<
PcEventInfo
>()
{});
if
(
null
==
pcEventInfo
)
{
return
null
;
}
if
(
StringUtils
.
isEmpty
(
pcEventInfo
.
getCid
()))
{
return
null
;
}
if
(
StringUtils
.
isEmpty
(
pcEventInfo
.
getPhone
()))
{
return
null
;
}
String
routeIp
=
pcEventInfo
.
getS1
();
if
(
StringUtils
.
isEmpty
(
routeIp
))
{
return
null
;
}
List
<
String
>
ips
=
SearcherUtil
.
convertStringToList
(
routeIp
);
if
(
CollectionUtils
.
isEmpty
(
ips
))
{
return
null
;
}
String
ip_name
=
null
;
String
area_name
=
null
;
for
(
String
ip
:
ips
)
{
if
(!
SearcherUtil
.
ipv6
(
ip
))
{
area_name
=
SearcherUtil
.
getCityInfoByFile
(
ip
);
if
(!
CompareUtils
.
stringExists
(
area_name
,
"0|0|0|内网IP|内网IP"
,
"0|0|0|内网IP|Finance-and-Promoting-Technology"
,
"Request timed out."
,
"*"
))
{
ip_name
=
ip
;
break
;
}
else
{
ip_name
=
null
;
area_name
=
null
;
}
}
}
if
(
StringUtils
.
isEmpty
(
ip_name
))
{
return
null
;
}
EventIp
eventIp
=
new
EventIp
();
eventIp
.
setCid
(
pcEventInfo
.
getCid
());
eventIp
.
setEventTime
(
TimeConvertUtil
.
convertToTimestamp
(
createTime
));
eventIp
.
setPhone
(
pcEventInfo
.
getPhone
());
eventIp
.
setIp
(
ip_name
);
eventIp
.
setAreaName
(
area_name
);
eventIp
.
setNick
(
pcEventInfo
.
getNick
());
eventIp
.
setAppKey
(
appKey
);
eventIp
.
setAppType
(
appType
);
eventIp
.
setCreateTime
(
createTime
);
return
eventIp
;
}
}
eagleEye-flink_kafka/src/main/java/com/flink/enums/TopicTypeEnum.java
View file @
708c9999
...
...
@@ -27,6 +27,8 @@ public enum TopicTypeEnum {
SIMI_USER_LIST_TOPIC
(
"simi_user_list"
,
"simiUserList"
),
ABROAD_SIMI_USER_LIST_TOPIC
(
"abroad_simi_user_list"
,
"abroadSimiUserList"
),
OPEN_SIMI_API
(
"ods_open_simi_api"
,
"odsOpenSimiApi"
),
ODS_PC_EVENT_LOG
(
"ods_pc_event_log"
,
"odsPcEventLog"
),
ODS_PC_COLLECT_LOG
(
"ods_pc_collect_log"
,
"odsPcCollectLog"
),
;
private
String
topic
;
...
...
eagleEye-flink_kafka/src/main/java/com/flink/processor/impl/DeviceIdLatestProcessor.java
View file @
708c9999
...
...
@@ -30,6 +30,7 @@ public class DeviceIdLatestProcessor implements JobProcessor{
TopicTypeEnum
.
ODS_NEW_COLLECT_LOG
,
TopicTypeEnum
.
SIMI_USER_LIST_TOPIC
,
TopicTypeEnum
.
ABROAD_SIMI_USER_LIST_TOPIC
,
TopicTypeEnum
.
ODS_PC_COLLECT_LOG
,
}).
map
(
TopicTypeEnum:
:
createKafkaTopic
)
.
collect
(
Collectors
.
toList
());
...
...
eagleEye-flink_kafka/src/main/java/com/flink/processor/impl/EventIpLatestProcessor.java
View file @
708c9999
...
...
@@ -28,7 +28,8 @@ public class EventIpLatestProcessor implements JobProcessor{
private
static
List
<
KafkaTopic
>
createTopicList
()
{
return
Arrays
.
stream
(
new
TopicTypeEnum
[]{
TopicTypeEnum
.
ODS_EVENT_LOG
,
TopicTypeEnum
.
SIMI_USER_LIST_TOPIC
TopicTypeEnum
.
SIMI_USER_LIST_TOPIC
,
TopicTypeEnum
.
ODS_PC_EVENT_LOG
,
}).
map
(
TopicTypeEnum:
:
createKafkaTopic
)
.
collect
(
Collectors
.
toList
());
}
...
...
eagleEye-flink_kafka/src/main/java/com/flink/util/ip2region/SearcherUtil.java
View file @
708c9999
...
...
@@ -88,6 +88,8 @@ public class SearcherUtil {
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
getCityInfoByFile
(
"1.9.241.214"
);
// getCityInfoByFile("1.9.241.214");
String
str
=
"1.1.1.1,2.2.2.2,5.5.5.5"
;
System
.
out
.
println
(
convertStringToList
(
str
));
}
}
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcCollectLog.java
0 → 100644
View file @
708c9999
package
com
.
flink
.
vo
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.ToString
;
/**
* @author wjs
* @version 创建时间:2025-7-3 17:21:25 类说明
*/
@Data
@ToString
public
class
PcCollectLog
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
app_type
;
private
String
app_version
;
private
String
create_time
;
private
String
send_type
;
private
String
zone_name
;
private
String
zone_code
;
private
String
flume_type
;
private
String
app_channel
;
private
String
app_key
;
private
String
send_time
;
private
String
device_info
;
private
String
zone_type
;
private
String
id
;
private
String
user_agent
;
}
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcDeviceInfo.java
0 → 100644
View file @
708c9999
package
com
.
flink
.
vo
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.ToString
;
/**
* @author wjs
* @version 创建时间:2025-7-3 17:32:24 类说明
*/
@Data
@ToString
public
class
PcDeviceInfo
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
b2
;
private
String
b3
;
private
String
i7
;
private
String
i8
;
private
String
k1
;
private
String
k3
;
private
String
k4
;
private
String
k6
;
private
String
c5
;
private
String
c6
;
private
String
k10
;
private
String
b4
;
private
String
ap2
;
private
String
b1
;
private
String
d1
;
private
String
d2
;
private
String
d13
;
private
String
d14
;
private
String
p10
;
private
String
p14
;
private
String
cid
;
private
String
phone
;
private
String
nick
;
}
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcEventInfo.java
0 → 100644
View file @
708c9999
package
com
.
flink
.
vo
;
import
java.io.Serializable
;
import
java.util.List
;
import
lombok.Data
;
import
lombok.ToString
;
/**
* @author wjs
* @version 创建时间:2025-7-4 14:40:15 类说明
*/
@Data
@ToString
public
class
PcEventInfo
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
i7
;
private
String
i8
;
private
String
cid
;
private
String
phone
;
private
String
nick
;
private
String
s1
;
private
List
<
PcProperties
>
properties
;
}
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcOdsEventLog.java
0 → 100644
View file @
708c9999
package
com
.
flink
.
vo
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.ToString
;
/**
* @author wjs
* @version 创建时间:2025-7-4 14:35:01
* 类说明
*/
@Data
@ToString
public
class
PcOdsEventLog
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
app_type
;
private
String
app_version
;
private
String
create_time
;
private
String
send_type
;
private
String
zone_name
;
private
String
zone_code
;
private
String
flume_type
;
private
String
app_channel
;
private
String
app_key
;
private
String
send_time
;
private
String
event_info
;
private
String
zone_type
;
private
String
id
;
private
String
user_agent
;
}
eagleEye-flink_kafka/src/main/java/com/flink/vo/PcProperties.java
0 → 100644
View file @
708c9999
package
com
.
flink
.
vo
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.ToString
;
/**
* @author wjs
* @version 创建时间:2025-7-4 14:42:15
* 类说明
*/
@Data
@ToString
public
class
PcProperties
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
r9
;
private
String
r4
;
private
String
r3
;
}
eagleEye-flink_kafka/src/main/java/com/flink/vo/RegisterEvent.java
0 → 100644
View file @
708c9999
package
com
.
flink
.
vo
;
import
java.util.Set
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author wjs
* @version 创建时间:2025-7-1 18:19:55
* 类说明 定义注册事件数据结构
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
RegisterEvent
{
private
String
userId
;
// 用户ID
private
String
deviceId
;
// 设备ID
private
String
ip
;
// IP地址
private
String
phone
;
// 手机号
private
String
nickname
;
// 昵称
private
Set
<
String
>
friends
;
// 添加的好友列表
private
Set
<
String
>
groups
;
// 加入的群组列表
private
Long
timestamp
;
// 事件时间戳
}
eagleEye-flink_kafka/src/main/resources/application.properties
View file @
708c9999
...
...
@@ -28,3 +28,8 @@ chainless.ios.appKey= 9JQ3A7GA420
abroadChainless.android.appKey
=
672OvXJo236
abroadChainless.ios.appKey
=
KJa3A7GA410
simi.pc.winAppKey
:
pc1KPjmh951
simi.pc.linuxAppKey
:
pcrIjvC5805
simi.pc.macINterAppKey
:
pcUXtmMh356
simi.pc.macArmAppKey
:
pcrPGB1z531
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment