Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-spark-tag-4.0
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangxiaokang
gic-spark-tag-4.0
Commits
a39c3825
Commit
a39c3825
authored
May 13, 2020
by
guos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员标签4.0
parent
3995a26c
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
101 additions
and
81 deletions
+101
-81
TabSceneCrowd.java
src/main/java/com/gic/spark/entity/table/TabSceneCrowd.java
+9
-9
AbstractTagConsumFilter.java
...in/java/com/gic/spark/filter/AbstractTagConsumFilter.java
+1
-2
TagAboutExpireIntegralFilter.java
...va/com/gic/spark/filter/TagAboutExpireIntegralFilter.java
+1
-1
TagAccumulatedIntegralFilter.java
...va/com/gic/spark/filter/TagAccumulatedIntegralFilter.java
+1
-1
TagCouponFilter.java
src/main/java/com/gic/spark/filter/TagCouponFilter.java
+1
-1
TagCurrentCouponNumFilter.java
.../java/com/gic/spark/filter/TagCurrentCouponNumFilter.java
+1
-1
TagFilter.java
src/main/java/com/gic/spark/filter/TagFilter.java
+1
-1
TagFilterFactory.java
src/main/java/com/gic/spark/tag/TagFilterFactory.java
+81
-0
TagProcess.java
src/main/java/com/gic/spark/tag/TagProcess.java
+4
-64
TagProcessEntity.java
src/main/java/com/gic/spark/tag/TagProcessEntity.java
+1
-1
No files found.
src/main/java/com/gic/spark/entity/table/TabSceneCrowd.java
View file @
a39c3825
...
...
@@ -3,16 +3,16 @@ package com.gic.spark.entity.table;
public
class
TabSceneCrowd
{
private
int
id
;
private
long
id
;
private
String
scene_Crowd_Name
;
private
int
real_Time
;
private
java
.
sql
.
Timestamp
scene_Crowd_Expire_Time
;
private
int
scene_Crowd_Category_Id
;
private
long
scene_Crowd_Category_Id
;
private
String
scene_Crowd_Desc
;
private
int
scene_Crowd_Update_Type
;
private
int
scene_Crowd_Update_Type_Val
;
private
java
.
sql
.
Timestamp
update_Time
;
private
int
member_Size
;
private
long
member_Size
;
private
java
.
sql
.
Timestamp
create_Time
;
private
int
valid_Flag
;
private
String
tag_Condition_Group_Info
;
...
...
@@ -21,11 +21,11 @@ public class TabSceneCrowd {
private
String
crowd_Param
;
public
int
getId
()
{
public
long
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
public
void
setId
(
long
id
)
{
this
.
id
=
id
;
}
...
...
@@ -57,11 +57,11 @@ public class TabSceneCrowd {
}
public
int
getScene_Crowd_Category_Id
()
{
public
long
getScene_Crowd_Category_Id
()
{
return
scene_Crowd_Category_Id
;
}
public
void
setScene_Crowd_Category_Id
(
int
scene_Crowd_Category_Id
)
{
public
void
setScene_Crowd_Category_Id
(
long
scene_Crowd_Category_Id
)
{
this
.
scene_Crowd_Category_Id
=
scene_Crowd_Category_Id
;
}
...
...
@@ -102,11 +102,11 @@ public class TabSceneCrowd {
}
public
int
getMember_Size
()
{
public
long
getMember_Size
()
{
return
member_Size
;
}
public
void
setMember_Size
(
int
member_Size
)
{
public
void
setMember_Size
(
long
member_Size
)
{
this
.
member_Size
=
member_Size
;
}
...
...
src/main/java/com/gic/spark/filter/AbstractTagConsumFilter.java
View file @
a39c3825
...
...
@@ -2,7 +2,6 @@ package com.gic.spark.filter;
import
com.gic.spark.datasource.entity.DataSourceHive
;
import
com.gic.spark.entity.bean.TagConsumeBean
;
import
com.gic.spark.entity.request.AbstractFilterRequestInteger
;
import
com.gic.spark.entity.request.TagConsumeRequest
;
import
com.gic.spark.util.ConstantUtil
;
import
org.apache.spark.api.java.JavaRDD
;
...
...
@@ -15,7 +14,7 @@ import java.util.List;
* @author: wangxk
* @date: 2020/5/7
*/
public
abstract
class
AbstractTagConsumFilter
implements
BaseTagFilter
{
public
abstract
class
AbstractTagConsumFilter
implements
TagFilter
{
DataSourceHive
dataSourceHive
=
new
DataSourceHive
(
ConstantUtil
.
ADS_GIC_TRD_ECU_SALES_LABEL_D
);
protected
static
JavaRDD
<
TagConsumeBean
>
statisticsTypeHandle
(
JavaRDD
<
TagConsumeBean
>
consumeRDD
,
TagConsumeRequest
consumeRequest
){
...
...
src/main/java/com/gic/spark/filter/TagAboutExpireIntegralFilter.java
View file @
a39c3825
...
...
@@ -15,7 +15,7 @@ import java.util.List;
* @author: wangxk
* @date: 2020/4/24
*/
public
class
TagAboutExpireIntegralFilter
implements
BaseTagFilter
{
public
class
TagAboutExpireIntegralFilter
implements
TagFilter
{
private
DataSourceSharding
dataSourceSharding
=
new
DataSourceSharding
(
AppEnvUtil
.
MEMBER_SHARDING_4
,
ConstantUtil
.
TAB_INTEGRAL_CU_CHANGE_LOG
);
private
static
TagAboutExpireIntegralFilter
instance
;
...
...
src/main/java/com/gic/spark/filter/TagAccumulatedIntegralFilter.java
View file @
a39c3825
...
...
@@ -26,7 +26,7 @@ import java.util.Set;
* @author: wangxk
* @date: 2020/4/24
*/
public
class
TagAccumulatedIntegralFilter
implements
BaseTagFilter
{
public
class
TagAccumulatedIntegralFilter
implements
TagFilter
{
private
DataSourceSharding
dataSourceSharding
=
new
DataSourceSharding
(
AppEnvUtil
.
MEMBER_SHARDING_4
,
ConstantUtil
.
TAB_INTEGRAL_CU_CHANGE_LOG
);
private
static
TagAccumulatedIntegralFilter
instance
;
...
...
src/main/java/com/gic/spark/filter/TagCouponFilter.java
View file @
a39c3825
...
...
@@ -20,7 +20,7 @@ import java.util.Set;
* @author: wangxk
* @date: 2020/4/29
*/
public
class
TagCouponFilter
implements
BaseTagFilter
{
public
class
TagCouponFilter
implements
TagFilter
{
private
DataSourceSharding
dataSourceSharding
=
new
DataSourceSharding
(
AppEnvUtil
.
MARKETING_SHARDING
,
ConstantUtil
.
TAB_COUPON_LOG
);
private
static
TagCouponFilter
instance
;
...
...
src/main/java/com/gic/spark/filter/TagCurrentCouponNumFilter.java
View file @
a39c3825
...
...
@@ -22,7 +22,7 @@ import java.util.Set;
* @author: wangxk
* @date: 2020/4/20
*/
public
class
TagCurrentCouponNumFilter
implements
BaseTagFilter
{
public
class
TagCurrentCouponNumFilter
implements
TagFilter
{
private
DataSourceSharding
dataSourceSharding
=
new
DataSourceSharding
(
AppEnvUtil
.
MARKETING_SHARDING
,
ConstantUtil
.
TAB_COUPON_LOG
);
private
static
TagCurrentCouponNumFilter
instance
;
...
...
src/main/java/com/gic/spark/filter/
Base
TagFilter.java
→
src/main/java/com/gic/spark/filter/TagFilter.java
View file @
a39c3825
...
...
@@ -11,7 +11,7 @@ import java.util.List;
* <p>
* TODO: class description
*/
public
interface
Base
TagFilter
{
public
interface
TagFilter
{
List
<
DataSourceEntity
>
necessarySourceList
();
...
...
src/main/java/com/gic/spark/tag/TagFilterFactory.java
0 → 100644
View file @
a39c3825
package
com
.
gic
.
spark
.
tag
;
import
com.gic.spark.filter.*
;
import
com.gic.spark.util.DingtalkMessageUtil
;
/**
* @description:
* @author: wangxk
* @date: 2020/5/13
*/
public
class
TagFilterFactory
{
private
static
TagFilterFactory
instance
;
public
static
TagFilterFactory
getInstance
()
{
if
(
null
==
instance
){
instance
=
new
TagFilterFactory
();
}
return
instance
;
}
private
TagFilterFactory
(){}
public
TagFilter
getTagFilter
(
String
tagEsFieldName
){
TagFilter
tagFilter
=
null
;
switch
(
tagEsFieldName
)
{
//积分信息
case
TagConstant
.
TAG_CODE_ACCUMULATED_INTEGRAL
:
tagFilter
=
TagAccumulatedIntegralFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_ABOUT_EXPIRE_INTEGRAL
:
tagFilter
=
TagAboutExpireIntegralFilter
.
getInstance
();
break
;
//卡卷类
case
TagConstant
.
TAG_CODE_CURRENT_COUPON_NUM
:
tagFilter
=
TagCurrentCouponNumFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_UNCLAIMED_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_GET_NO_CANCEL_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_NO_CANCEL_EXPIRES_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_CANCEL_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_DONATION_IN_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_YET_DONATION_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
//消费统计
case
TagConstant
.
TAG_CODE_CONSUMPTION_TIME
:
tagFilter
=
TagConsumptionTimeFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_PER_CUSTOMER_TRANSACTION
:
tagFilter
=
TagPerCustomerTransactionFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_ASSOCIATED_PURCHASE_RATE
:
tagFilter
=
TagAssociatedPurchaseRateFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_AVERAGE_DISCOUNT_FACTOR
:
tagFilter
=
TagAverageDiscountFactorFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_CONSUMPTION_SLEEP_DAYS
:
tagFilter
=
TagConsumptionSleepDaysFilter
.
getInstance
();
break
;
default
:
DingtalkMessageUtil
.
sendAlertMessage
(
"暂未支持的非实时标签: "
+
tagEsFieldName
);
break
;
}
return
tagFilter
;
}
}
src/main/java/com/gic/spark/tag/TagProcess.java
View file @
a39c3825
...
...
@@ -40,9 +40,6 @@ import scala.collection.JavaConversions;
import
java.util.*
;
import
org.apache.spark.api.java.Optional
;
import
javax.sound.midi.MidiSystem
;
import
javax.swing.text.TabSet
;
import
static
com
.
gic
.
spark
.
datasource
.
mysql
.
MysqlDatasource
.
JDBC_OPTIONS
;
/**
...
...
@@ -114,7 +111,7 @@ public class TagProcess {
public
void
process
(
boolean
extractData
){
Map
<
Integer
,
List
<
TagProcessEntity
>>
tagGroupByEnterpriseMap
=
new
HashMap
<>();
Map
<
Long
,
Base
TagFilter
>
tagIdToFilterMap
=
new
HashMap
();
Map
<
Long
,
TagFilter
>
tagIdToFilterMap
=
new
HashMap
();
for
(
SceneCrowdDTO
sceneCrowdDTO:
sceneCrowdDTOList
){
if
(
sceneCrowdDTO
.
getReal_Time
()==
1
){
LinkedList
<
TagConditionGroupDTO
>
conditionGroupDTOS
=
sceneCrowdDTO
.
getConditionGroupDTOList
();
...
...
@@ -127,7 +124,7 @@ public class TagProcess {
entity
.
tagList
=
conditionGroupDTOS
.
get
(
i
).
getConditionInfos
();
for
(
TagConditionDTO
conditionDTO:
entity
.
tagList
){
//将tag同filter进行映射
BaseTagFilter
tagFilter
=
getTagFilter
(
conditionDTO
.
getTagEsFieldName
());
TagFilter
tagFilter
=
TagFilterFactory
.
getInstance
().
getTagFilter
(
conditionDTO
.
getTagEsFieldName
());
if
(
null
!=
tagFilter
){
tagIdToFilterMap
.
put
(
conditionDTO
.
getTagId
(),
tagFilter
);
}
...
...
@@ -155,6 +152,7 @@ public class TagProcess {
}
if
(
extractData
)
{
DataSourceManager
.
getInstance
().
init
(
isProduction
);
DataSourceManager
.
getInstance
().
extractDataToDatabase
();
DingtalkMessageUtil
.
sendAlertMessage
(
"extractData to hive finish !"
);
}
...
...
@@ -166,7 +164,7 @@ public class TagProcess {
for
(
TagProcessEntity
entity:
enterpriseTagEntry
.
getValue
()){
for
(
TagConditionDTO
conditionDTO:
entity
.
tagList
){
if
(
tagIdToFilterMap
.
containsKey
(
conditionDTO
.
getTagId
())){
Base
TagFilter
tagFilter
=
tagIdToFilterMap
.
get
(
conditionDTO
.
getTagId
());
TagFilter
tagFilter
=
tagIdToFilterMap
.
get
(
conditionDTO
.
getTagId
());
AbstractFilterRequest
filterRequest
=
TagValueParser
.
parseFilterValue
(
conditionDTO
);
final
String
groupId
=
entity
.
tagGroupId
+
"_"
+
conditionDTO
.
getTagId
()
+
"_"
+
entity
.
level
;
...
...
@@ -266,62 +264,4 @@ public class TagProcess {
});
}
private
static
BaseTagFilter
getTagFilter
(
String
tagEsFieldName
){
BaseTagFilter
tagFilter
=
null
;
switch
(
tagEsFieldName
)
{
//积分信息
case
TagConstant
.
TAG_CODE_ACCUMULATED_INTEGRAL
:
tagFilter
=
TagAccumulatedIntegralFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_ABOUT_EXPIRE_INTEGRAL
:
tagFilter
=
TagAboutExpireIntegralFilter
.
getInstance
();
break
;
//卡卷类
case
TagConstant
.
TAG_CODE_CURRENT_COUPON_NUM
:
tagFilter
=
TagCurrentCouponNumFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_UNCLAIMED_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_GET_NO_CANCEL_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_NO_CANCEL_EXPIRES_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_CANCEL_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_DONATION_IN_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_YET_DONATION_COUPON
:
tagFilter
=
TagCouponFilter
.
getInstance
();
break
;
//消费统计
case
TagConstant
.
TAG_CODE_CONSUMPTION_TIME
:
tagFilter
=
TagConsumptionTimeFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_PER_CUSTOMER_TRANSACTION
:
tagFilter
=
TagPerCustomerTransactionFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_ASSOCIATED_PURCHASE_RATE
:
tagFilter
=
TagAssociatedPurchaseRateFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_AVERAGE_DISCOUNT_FACTOR
:
tagFilter
=
TagAverageDiscountFactorFilter
.
getInstance
();
break
;
case
TagConstant
.
TAG_CODE_CONSUMPTION_SLEEP_DAYS
:
tagFilter
=
TagConsumptionSleepDaysFilter
.
getInstance
();
break
;
default
:
DingtalkMessageUtil
.
sendAlertMessage
(
"暂未支持的非实时标签: "
+
tagEsFieldName
);
break
;
}
return
tagFilter
;
}
}
src/main/java/com/gic/spark/tag/TagProcessEntity.java
View file @
a39c3825
...
...
@@ -11,7 +11,7 @@ import java.util.List;
*/
public
class
TagProcessEntity
{
int
enterpriseId
;
int
tagGroupId
;
long
tagGroupId
;
int
level
;
List
<
TagConditionDTO
>
tagList
;
}
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