Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
marketing
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
3
Issues
3
List
Board
Labels
Milestones
Merge Requests
3
Merge Requests
3
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
dingjy
marketing
Commits
53bccf9e
Commit
53bccf9e
authored
Mar 06, 2024
by
宋新宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
store归因上报
parent
ee6e5323
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
148 additions
and
140 deletions
+148
-140
NovelAttributionMain.java
...ain/java/com/lwby/marketing/att/NovelAttributionMain.java
+4
-6
StoreNovelAttributionMain.java
...y/marketing/att/storenovel/StoreNovelAttributionMain.java
+0
-62
StoryNovelActiveConsumer.java
...by/marketing/att/storynovel/StoryNovelActiveConsumer.java
+4
-6
StoryNovelPayConsumer.java
.../lwby/marketing/att/storynovel/StoryNovelPayConsumer.java
+5
-5
UniversalStoryProcess.java
.../lwby/marketing/att/storynovel/UniversalStoryProcess.java
+5
-7
CheckerNovelStoryFirstFlow.java
...ing/att/storynovel/handle/CheckerNovelStoryFirstFlow.java
+21
-0
ParameterSetupStoryNovelFlow.java
...g/att/storynovel/handle/ParameterSetupStoryNovelFlow.java
+5
-8
PaySpduFlow.java
...com/lwby/marketing/att/storynovel/handle/PaySpduFlow.java
+7
-8
StoreNovelStoryAttributionFlow.java
...att/storynovel/handle/StoreNovelStoryAttributionFlow.java
+6
-8
UploadCallFlow.java
.../lwby/marketing/att/storynovel/handle/UploadCallFlow.java
+6
-6
BaseStoryCallback.java
...wby/marketing/att/storynovel/media/BaseStoryCallback.java
+17
-0
IStoryCallback.java
...m/lwby/marketing/att/storynovel/media/IStoryCallback.java
+11
-0
StoryMedia.java
...a/com/lwby/marketing/att/storynovel/media/StoryMedia.java
+35
-0
JRTTActiveCallback.java
...rketing/att/storynovel/media/jrtt/JRTTActiveCallback.java
+5
-5
JRTTPayCallback.java
.../marketing/att/storynovel/media/jrtt/JRTTPayCallback.java
+5
-5
JrttAttributeRequest.java
...g/att/storynovel/media/jrtt/dto/JrttAttributeRequest.java
+1
-1
AttrController.java
...in/java/com/lwby/marketing/controller/AttrController.java
+4
-5
StoryNovelAction.java
src/main/java/com/lwby/marketing/vo/StoryNovelAction.java
+7
-8
No files found.
src/main/java/com/lwby/marketing/att/NovelAttributionMain.java
View file @
53bccf9e
...
@@ -5,10 +5,8 @@ import com.lwby.marketing.flow.FlowExecutor;
...
@@ -5,10 +5,8 @@ import com.lwby.marketing.flow.FlowExecutor;
import
com.lwby.marketing.flow.Rule
;
import
com.lwby.marketing.flow.Rule
;
import
com.lwby.marketing.vo.BookStoreEvent
;
import
com.lwby.marketing.vo.BookStoreEvent
;
import
com.lwby.marketing.vo.NovelAction
;
import
com.lwby.marketing.vo.NovelAction
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.kafka.annotation.KafkaListener
;
import
org.springframework.kafka.core.KafkaTemplate
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.PostConstruct
;
...
@@ -20,8 +18,8 @@ public class NovelAttributionMain {
...
@@ -20,8 +18,8 @@ public class NovelAttributionMain {
ApplicationContext
ctx
;
ApplicationContext
ctx
;
public
FlowExecutor
<
NovelAction
>
executorNovel
;
public
FlowExecutor
<
NovelAction
>
executorNovel
;
public
FlowExecutor
<
Stor
e
NovelAction
>
executorStoreNovelActive
;
public
FlowExecutor
<
Stor
y
NovelAction
>
executorStoreNovelActive
;
public
FlowExecutor
<
Stor
e
NovelAction
>
executorStoreNovelPay
;
public
FlowExecutor
<
Stor
y
NovelAction
>
executorStoreNovelPay
;
@PostConstruct
@PostConstruct
public
void
init
()
{
public
void
init
()
{
...
...
src/main/java/com/lwby/marketing/att/storenovel/StoreNovelAttributionMain.java
deleted
100644 → 0
View file @
ee6e5323
package
com
.
lwby
.
marketing
.
att
.
storenovel
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.lwby.marketing.flow.FlowExecutor
;
import
com.lwby.marketing.flow.Rule
;
import
com.lwby.marketing.vo.BookStoreEvent
;
import
com.lwby.marketing.vo.NovelAction
;
import
com.lwby.marketing.vo.StoreNovelAction
;
import
com.lwby.marketing.vo.StoreUserUploadEventBO
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.kafka.core.KafkaTemplate
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.Resource
;
@Component
public
class
StoreNovelAttributionMain
{
@Resource
ApplicationContext
ctx
;
public
FlowExecutor
<
StoreNovelAction
>
executorStoreNovelActive
;
@PostConstruct
public
void
init
()
{
executorStoreNovelActive
=
new
FlowExecutor
<>(
ctx
,
Rule
.
create
().
THEN
(
"setupStoreNovel"
).
THEN
(
"storeNovelStore"
).
THEN
(
"checkerNovelStorefirst"
).
THEN
(
"uploadcall"
));
}
public
void
test
(){
String
msg
=
"{\"clientInfo\":{\"channel\":214120503,\"clientIp\":\"183.219.7.180\",\"pkv\":1,\"platformGroupId\":412,"
+
"\"platformId\":412,\"sessionid\":\"undefined\",\"ua\":\"Mozilla/5.0 (Linux; Android 12; OXF-AN00 Build/HUAWEIOXF-AN00;"
+
" wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/117.0.0.0 Mobile Safari/537.36 aweme.lite/28.9.0 "
+
"ToutiaoMicroApp/3.14.0 PluginVersion/28909073\",\"version\":\"2.0.0\",\"xClient\":\"version=2.0.0;platformId=412;"
+
"equipment=android\"},\"createTime\":1709533439693,\"extraData\":{},\"id\":\"93857260-8130-442f-bc92-b549dbf28ef0\","
+
"\"userId\":875325,\"userUploadEvent\":0,\"appId\":\"ttd3dda5604ce230b401\","
+
"\"openId\":\"_000HgDjWl-P5-WS9HTQIssNgTnMBRUqDHDu\"}"
;
StoreUserUploadEventBO
event
=
JSONObject
.
parseObject
(
msg
,
StoreUserUploadEventBO
.
class
);
StoreNovelAction
action
=
new
StoreNovelAction
(
event
.
getClientInfo
(),
event
.
getUserId
(),
event
.
getOpenId
(),
event
.
getUserUploadEvent
());
try
{
executorStoreNovelActive
.
execute
(
action
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
// @KafkaListener(topics = "registerMediaEvent1", groupId = "test")
// public void listen(String message) {
// System.out.println("Received Message: " + message);
//
// BookStoreEvent event = JSONObject.parseObject(message, BookStoreEvent.class);
// NovelAction action = new NovelAction(event.getClientInfo(),message);
//
// try {
// executorNovel.execute(action);
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
// }
}
src/main/java/com/lwby/marketing/att/stor
enovel/Store
NovelActiveConsumer.java
→
src/main/java/com/lwby/marketing/att/stor
ynovel/Story
NovelActiveConsumer.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.lwby.marketing.att.NovelAttributionMain
;
import
com.lwby.marketing.att.NovelAttributionMain
;
import
com.lwby.marketing.vo.BookStoreEvent
;
import
com.lwby.marketing.vo.StoryNovelAction
;
import
com.lwby.marketing.vo.NovelAction
;
import
com.lwby.marketing.vo.StoreNovelAction
;
import
com.lwby.marketing.vo.StoreUserUploadEventBO
;
import
com.lwby.marketing.vo.StoreUserUploadEventBO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.kafka.clients.consumer.ConsumerRecord
;
import
org.apache.kafka.clients.consumer.ConsumerRecord
;
...
@@ -20,7 +18,7 @@ import org.springframework.stereotype.Component;
...
@@ -20,7 +18,7 @@ import org.springframework.stereotype.Component;
*/
*/
@Slf4j
@Slf4j
@Component
@Component
public
class
Stor
e
NovelActiveConsumer
implements
MessageListener
<
String
,
String
>
{
public
class
Stor
y
NovelActiveConsumer
implements
MessageListener
<
String
,
String
>
{
@Autowired
@Autowired
NovelAttributionMain
novelAttributionMain
;
NovelAttributionMain
novelAttributionMain
;
...
@@ -41,7 +39,7 @@ public class StoreNovelActiveConsumer implements MessageListener<String, String>
...
@@ -41,7 +39,7 @@ public class StoreNovelActiveConsumer implements MessageListener<String, String>
log
.
info
(
"media.active.topic={}, bookStoreEvent={}"
,
data
.
topic
(),
JSON
.
toJSONString
(
event
));
log
.
info
(
"media.active.topic={}, bookStoreEvent={}"
,
data
.
topic
(),
JSON
.
toJSONString
(
event
));
}
}
Stor
eNovelAction
action
=
new
Store
NovelAction
(
event
.
getClientInfo
(),
event
.
getUserId
(),
event
.
getOpenId
(),
event
.
getUserUploadEvent
());
Stor
yNovelAction
action
=
new
Story
NovelAction
(
event
.
getClientInfo
(),
event
.
getUserId
(),
event
.
getOpenId
(),
event
.
getUserUploadEvent
());
novelAttributionMain
.
executorStoreNovelActive
.
execute
(
action
);
novelAttributionMain
.
executorStoreNovelActive
.
execute
(
action
);
}
catch
(
Throwable
e
)
{
}
catch
(
Throwable
e
)
{
...
...
src/main/java/com/lwby/marketing/att/stor
enovel/Store
NovelPayConsumer.java
→
src/main/java/com/lwby/marketing/att/stor
ynovel/Story
NovelPayConsumer.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.lwby.marketing.att.NovelAttributionMain
;
import
com.lwby.marketing.att.NovelAttributionMain
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
import
com.lwby.marketing.vo.StoreUserUploadEventBO
;
import
com.lwby.marketing.vo.StoreUserUploadEventBO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.kafka.clients.consumer.ConsumerRecord
;
import
org.apache.kafka.clients.consumer.ConsumerRecord
;
...
@@ -18,12 +18,12 @@ import org.springframework.stereotype.Component;
...
@@ -18,12 +18,12 @@ import org.springframework.stereotype.Component;
*/
*/
@Slf4j
@Slf4j
@Component
@Component
public
class
Stor
e
NovelPayConsumer
implements
MessageListener
<
String
,
String
>
{
public
class
Stor
y
NovelPayConsumer
implements
MessageListener
<
String
,
String
>
{
@Autowired
@Autowired
NovelAttributionMain
novelAttributionMain
;
NovelAttributionMain
novelAttributionMain
;
@KafkaListener
(
topics
=
{
"${stor
e.novel.pay.consumer.topic:testStoreNovelpay}"
},
groupId
=
"${store.novel.pay.consumer.group.id:test_store
_dy_pay}"
)
@KafkaListener
(
topics
=
{
"${stor
y.novel.pay.consumer.topic:testStoryNovelpay}"
},
groupId
=
"${story.novel.pay.consumer.group.id:test_story
_dy_pay}"
)
@Override
@Override
public
void
onMessage
(
ConsumerRecord
<
String
,
String
>
data
)
{
public
void
onMessage
(
ConsumerRecord
<
String
,
String
>
data
)
{
...
@@ -39,7 +39,7 @@ public class StoreNovelPayConsumer implements MessageListener<String, String> {
...
@@ -39,7 +39,7 @@ public class StoreNovelPayConsumer implements MessageListener<String, String> {
log
.
info
(
"media.active.topic={}, bookStoreEvent={}"
,
data
.
topic
(),
JSON
.
toJSONString
(
event
));
log
.
info
(
"media.active.topic={}, bookStoreEvent={}"
,
data
.
topic
(),
JSON
.
toJSONString
(
event
));
}
}
Stor
eNovelAction
action
=
new
Store
NovelAction
(
event
.
getClientInfo
(),
event
.
getUserId
(),
event
.
getOpenId
(),
event
.
getUserUploadEvent
(),
event
.
getProductId
());
Stor
yNovelAction
action
=
new
Story
NovelAction
(
event
.
getClientInfo
(),
event
.
getUserId
(),
event
.
getOpenId
(),
event
.
getUserUploadEvent
(),
event
.
getProductId
());
novelAttributionMain
.
executorStoreNovelPay
.
execute
(
action
);
novelAttributionMain
.
executorStoreNovelPay
.
execute
(
action
);
}
catch
(
Throwable
e
)
{
}
catch
(
Throwable
e
)
{
...
...
src/main/java/com/lwby/marketing/att/stor
enovel/UniversalStore
Process.java
→
src/main/java/com/lwby/marketing/att/stor
ynovel/UniversalStory
Process.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
...
@@ -8,10 +8,8 @@ import com.alicp.jetcache.anno.Cached;
...
@@ -8,10 +8,8 @@ import com.alicp.jetcache.anno.Cached;
import
com.google.common.collect.ImmutableMap
;
import
com.google.common.collect.ImmutableMap
;
import
com.lwby.marketing.att.novel.AttributionStatus
;
import
com.lwby.marketing.att.novel.AttributionStatus
;
import
com.lwby.marketing.att.novel.AttributionType
;
import
com.lwby.marketing.att.novel.AttributionType
;
import
com.lwby.marketing.po.AppChannel
;
import
com.lwby.marketing.vo.AttributeRule
;
import
com.lwby.marketing.vo.DeliveryDeviceInfo
;
import
com.lwby.marketing.vo.DeliveryDeviceInfo
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.jdbc.core.JdbcTemplate
;
...
@@ -27,7 +25,7 @@ import java.util.concurrent.TimeUnit;
...
@@ -27,7 +25,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j
@Slf4j
@Component
@Component
public
class
UniversalStor
e
Process
{
public
class
UniversalStor
y
Process
{
@Resource
@Resource
JdbcTemplate
lwbyJdbcTemplate
;
JdbcTemplate
lwbyJdbcTemplate
;
...
@@ -43,7 +41,7 @@ public class UniversalStoreProcess {
...
@@ -43,7 +41,7 @@ public class UniversalStoreProcess {
/**
/**
* 通知处理结果
* 通知处理结果
*/
*/
public
void
notifyResult
(
Stor
e
NovelAction
action
,
AttributionStatus
status
)
{
public
void
notifyResult
(
Stor
y
NovelAction
action
,
AttributionStatus
status
)
{
DeliveryDeviceInfo
ddi
=
action
.
getDeliveryDeviceInfo
();
DeliveryDeviceInfo
ddi
=
action
.
getDeliveryDeviceInfo
();
if
(
Objects
.
isNull
(
ddi
))
{
if
(
Objects
.
isNull
(
ddi
))
{
...
@@ -79,7 +77,7 @@ public class UniversalStoreProcess {
...
@@ -79,7 +77,7 @@ public class UniversalStoreProcess {
return
String
.
format
(
"%s_callback_%d_%d_%s_%d_%s"
,
attributionType
,
platformId
,
channelOrPlanId
,
goodsId
,
sprDedu
,
dateStr
);
return
String
.
format
(
"%s_callback_%d_%d_%s_%d_%s"
,
attributionType
,
platformId
,
channelOrPlanId
,
goodsId
,
sprDedu
,
dateStr
);
}
}
public
String
getFirstCheckerKey
(
Stor
e
NovelAction
action
)
{
public
String
getFirstCheckerKey
(
Stor
y
NovelAction
action
)
{
return
Objects
.
equals
(
action
.
getType
(),
0
)
return
Objects
.
equals
(
action
.
getType
(),
0
)
?
String
.
format
(
"fc_%d_%d_%s_%s"
,
action
.
getUserId
(),
action
.
getPlatformId
(),
action
.
getMediaName
(),
action
.
getCurrentDateStr
())
?
String
.
format
(
"fc_%d_%d_%s_%s"
,
action
.
getUserId
(),
action
.
getPlatformId
(),
action
.
getMediaName
(),
action
.
getCurrentDateStr
())
:
String
.
format
(
"fc_%d_%d_%s"
,
action
.
getUserId
(),
action
.
getPlatformId
(),
action
.
getMediaName
());
:
String
.
format
(
"fc_%d_%d_%s"
,
action
.
getUserId
(),
action
.
getPlatformId
(),
action
.
getMediaName
());
...
...
src/main/java/com/lwby/marketing/att/stor
enovel/handle/CheckerNovelStore
FirstFlow.java
→
src/main/java/com/lwby/marketing/att/stor
ynovel/handle/CheckerNovelStory
FirstFlow.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
handle
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
handle
;
import
com.lwby.marketing.att.novel.UniversalProcess
;
import
com.lwby.marketing.att.storynovel.UniversalStoryProcess
;
import
com.lwby.marketing.att.storenovel.UniversalStoreProcess
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.vo.NovelAction
;
import
com.lwby.marketing.vo.StoryNovelAction
;
import
com.lwby.marketing.vo.StoreNovelAction
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
@Component
(
"checkerNovelStorefirst"
)
@Component
(
"checkerNovelStorefirst"
)
public
class
CheckerNovelStor
eFirstFlow
extends
NodeFlow
<
Store
NovelAction
>
{
public
class
CheckerNovelStor
yFirstFlow
extends
NodeFlow
<
Story
NovelAction
>
{
@Resource
@Resource
UniversalStor
e
Process
up
;
UniversalStor
y
Process
up
;
@Override
@Override
public
void
process
(
Stor
e
NovelAction
action
)
{
public
void
process
(
Stor
y
NovelAction
action
)
{
if
(
up
.
exists
(
up
.
getFirstCheckerKey
(
action
))){
if
(
up
.
exists
(
up
.
getFirstCheckerKey
(
action
))){
action
.
stop
(
true
);
action
.
stop
(
true
);
}
}
...
...
src/main/java/com/lwby/marketing/att/stor
enovel/handle/ParameterSetupStore
NovelFlow.java
→
src/main/java/com/lwby/marketing/att/stor
ynovel/handle/ParameterSetupStory
NovelFlow.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
handle
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
handle
;
import
cn.hutool.crypto.SecureUtil
;
import
com.lwby.marketing.att.novel.DeviceType
;
import
com.lwby.marketing.att.novel.UniversalProcess
;
import
com.lwby.marketing.att.novel.UniversalProcess
;
import
com.lwby.marketing.att.novel.media.Media
;
import
com.lwby.marketing.att.storynovel.media.StoryMedia
;
import
com.lwby.marketing.att.storenovel.media.StoreMedia
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.po.StoryLogin
;
import
com.lwby.marketing.po.StoryLogin
;
import
com.lwby.marketing.util.DateTimUtils
;
import
com.lwby.marketing.util.DateTimUtils
;
...
@@ -19,12 +16,12 @@ import java.util.UUID;
...
@@ -19,12 +16,12 @@ import java.util.UUID;
@Slf4j
@Slf4j
@Component
(
"setupStoreNovel"
)
@Component
(
"setupStoreNovel"
)
public
class
ParameterSetupStor
eNovelFlow
extends
NodeFlow
<
Store
NovelAction
>
{
public
class
ParameterSetupStor
yNovelFlow
extends
NodeFlow
<
Story
NovelAction
>
{
@Resource
@Resource
UniversalProcess
up
;
UniversalProcess
up
;
@Override
@Override
public
void
process
(
Stor
e
NovelAction
action
)
{
public
void
process
(
Stor
y
NovelAction
action
)
{
ClientInfo
clientInfo
=
action
.
getClientInfo
();
ClientInfo
clientInfo
=
action
.
getClientInfo
();
String
openId
=
action
.
getOpenId
();
String
openId
=
action
.
getOpenId
();
...
@@ -57,7 +54,7 @@ public class ParameterSetupStoreNovelFlow extends NodeFlow<StoreNovelAction> {
...
@@ -57,7 +54,7 @@ public class ParameterSetupStoreNovelFlow extends NodeFlow<StoreNovelAction> {
action
.
setChannelId
(
NumberUtils
.
parseInteger
(
storyLogin
.
getChannel
()));
action
.
setChannelId
(
NumberUtils
.
parseInteger
(
storyLogin
.
getChannel
()));
action
.
setPlanId
(
NumberUtils
.
parseInteger
((
storyLogin
.
getAdid
())));
action
.
setPlanId
(
NumberUtils
.
parseInteger
((
storyLogin
.
getAdid
())));
action
.
setMediaName
(
storyLogin
.
getMedia
());
action
.
setMediaName
(
storyLogin
.
getMedia
());
action
.
setMedia
(
Stor
e
Media
.
getMedia
(
action
.
getMediaName
()));
action
.
setMedia
(
Stor
y
Media
.
getMedia
(
action
.
getMediaName
()));
}
}
}
}
...
...
src/main/java/com/lwby/marketing/att/stor
e
novel/handle/PaySpduFlow.java
→
src/main/java/com/lwby/marketing/att/stor
y
novel/handle/PaySpduFlow.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
handle
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
handle
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.lwby.marketing.att.novel.AttributionStatus
;
import
com.lwby.marketing.att.novel.AttributionStatus
;
import
com.lwby.marketing.att.novel.AttributionType
;
import
com.lwby.marketing.att.novel.AttributionType
;
import
com.lwby.marketing.att.stor
enovel.UniversalStore
Process
;
import
com.lwby.marketing.att.stor
ynovel.UniversalStory
Process
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.vo.AttributeRule
;
import
com.lwby.marketing.vo.StoryNovelAction
;
import
com.lwby.marketing.vo.StoreNovelAction
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -23,17 +22,17 @@ import java.util.concurrent.ThreadLocalRandom;
...
@@ -23,17 +22,17 @@ import java.util.concurrent.ThreadLocalRandom;
*/
*/
@Slf4j
@Slf4j
@Component
(
"payspdu"
)
@Component
(
"payspdu"
)
public
class
PaySpduFlow
extends
NodeFlow
<
Stor
e
NovelAction
>
{
public
class
PaySpduFlow
extends
NodeFlow
<
Stor
y
NovelAction
>
{
@Resource
@Resource
UniversalStor
e
Process
up
;
UniversalStor
y
Process
up
;
@Override
@Override
public
void
process
(
Stor
e
NovelAction
action
)
{
public
void
process
(
Stor
y
NovelAction
action
)
{
process0
(
action
,
AttributionType
.
CHANNEL
);
process0
(
action
,
AttributionType
.
CHANNEL
);
}
}
public
void
process0
(
Stor
eNovelAction
action
,
AttributionType
type
)
{
public
void
process0
(
Stor
yNovelAction
action
,
AttributionType
type
)
{
int
platformId
=
action
.
getPlatformId
();
int
platformId
=
action
.
getPlatformId
();
int
channelId
=
action
.
getChannelId
();
int
channelId
=
action
.
getChannelId
();
...
...
src/main/java/com/lwby/marketing/att/stor
enovel/handle/StoreNovelStore
AttributionFlow.java
→
src/main/java/com/lwby/marketing/att/stor
ynovel/handle/StoreNovelStory
AttributionFlow.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
handle
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
handle
;
import
com.lwby.marketing.att.novel.AttributionStatus
;
import
com.lwby.marketing.att.novel.AttributionStatus
;
import
com.lwby.marketing.att.novel.DeviceType
;
import
com.lwby.marketing.att.storynovel.UniversalStoryProcess
;
import
com.lwby.marketing.att.novel.UniversalProcess
;
import
com.lwby.marketing.att.storenovel.UniversalStoreProcess
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.Objects
;
import
java.util.Objects
;
@Component
(
"storeNovelStore"
)
@Component
(
"storeNovelStore"
)
public
class
StoreNovelStor
eAttributionFlow
extends
NodeFlow
<
Store
NovelAction
>
{
public
class
StoreNovelStor
yAttributionFlow
extends
NodeFlow
<
Story
NovelAction
>
{
@Resource
@Resource
UniversalStor
e
Process
up
;
UniversalStor
y
Process
up
;
@Override
@Override
public
void
process
(
Stor
e
NovelAction
action
)
{
public
void
process
(
Stor
y
NovelAction
action
)
{
//商店归因通知
//商店归因通知
if
(
Objects
.
isNull
(
action
.
getDeliveryDeviceInfo
())){
if
(
Objects
.
isNull
(
action
.
getDeliveryDeviceInfo
())){
up
.
notifyResult
(
action
,
AttributionStatus
.
STORE_CALLBACK
);
up
.
notifyResult
(
action
,
AttributionStatus
.
STORE_CALLBACK
);
...
...
src/main/java/com/lwby/marketing/att/stor
e
novel/handle/UploadCallFlow.java
→
src/main/java/com/lwby/marketing/att/stor
y
novel/handle/UploadCallFlow.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
handle
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
handle
;
import
com.lwby.marketing.att.novel.AttributionStatus
;
import
com.lwby.marketing.att.novel.AttributionStatus
;
import
com.lwby.marketing.att.stor
enovel.UniversalStore
Process
;
import
com.lwby.marketing.att.stor
ynovel.UniversalStory
Process
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.flow.NodeFlow
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
...
@@ -13,13 +13,13 @@ import javax.annotation.Resource;
...
@@ -13,13 +13,13 @@ import javax.annotation.Resource;
* @version ActiveCallFlow.java, v 0.1 2024年03月04日 18:28 songxinyu Exp $
* @version ActiveCallFlow.java, v 0.1 2024年03月04日 18:28 songxinyu Exp $
*/
*/
@Component
(
"uploadcall"
)
@Component
(
"uploadcall"
)
public
class
UploadCallFlow
extends
NodeFlow
<
Stor
e
NovelAction
>
{
public
class
UploadCallFlow
extends
NodeFlow
<
Stor
y
NovelAction
>
{
@Resource
@Resource
UniversalStor
e
Process
up
;
UniversalStor
y
Process
up
;
@Override
@Override
public
void
process
(
Stor
e
NovelAction
action
)
{
public
void
process
(
Stor
y
NovelAction
action
)
{
action
.
getMedia
().
callback
(
action
);
action
.
getMedia
().
callback
(
action
);
up
.
notifyResult
(
action
,
AttributionStatus
.
ACTIVE_CALLBACK
);
up
.
notifyResult
(
action
,
AttributionStatus
.
ACTIVE_CALLBACK
);
up
.
set
(
up
.
getFirstCheckerKey
(
action
),
60
*
60
*
24
,
"1"
);
//每天扣量过一次,不在重复走
up
.
set
(
up
.
getFirstCheckerKey
(
action
),
60
*
60
*
24
,
"1"
);
//每天扣量过一次,不在重复走
...
...
src/main/java/com/lwby/marketing/att/stor
enovel/media/BaseStore
Callback.java
→
src/main/java/com/lwby/marketing/att/stor
ynovel/media/BaseStory
Callback.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
media
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
media
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
/**
/**
* @author songxinyu
* @author songxinyu
* @version BaseStoreCallback.java, v 0.1 2024年03月04日 17:19 songxinyu Exp $
* @version BaseStoreCallback.java, v 0.1 2024年03月04日 17:19 songxinyu Exp $
*/
*/
public
abstract
class
BaseStor
eCallback
implements
IStore
Callback
{
public
abstract
class
BaseStor
yCallback
implements
IStory
Callback
{
@Override
@Override
public
boolean
delivery
(
Stor
e
NovelAction
action
)
{
public
boolean
delivery
(
Stor
y
NovelAction
action
)
{
return
call
(
action
);
return
call
(
action
);
}
}
public
abstract
boolean
call
(
Stor
e
NovelAction
na
);
public
abstract
boolean
call
(
Stor
y
NovelAction
na
);
}
}
src/main/java/com/lwby/marketing/att/stor
enovel/media/IStore
Callback.java
→
src/main/java/com/lwby/marketing/att/stor
ynovel/media/IStory
Callback.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
media
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
media
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
/**
/**
* @author songxinyu
* @author songxinyu
* @version IStoreCallback.java, v 0.1 2024年03月04日 17:16 songxinyu Exp $
* @version IStoreCallback.java, v 0.1 2024年03月04日 17:16 songxinyu Exp $
*/
*/
public
interface
IStor
e
Callback
{
public
interface
IStor
y
Callback
{
boolean
delivery
(
Stor
e
NovelAction
action
);
boolean
delivery
(
Stor
y
NovelAction
action
);
}
}
src/main/java/com/lwby/marketing/att/stor
enovel/media/Store
Media.java
→
src/main/java/com/lwby/marketing/att/stor
ynovel/media/Story
Media.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
media
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
media
;
import
com.lwby.marketing.att.stor
e
novel.media.jrtt.JRTTActiveCallback
;
import
com.lwby.marketing.att.stor
y
novel.media.jrtt.JRTTActiveCallback
;
import
com.lwby.marketing.att.stor
e
novel.media.jrtt.JRTTPayCallback
;
import
com.lwby.marketing.att.stor
y
novel.media.jrtt.JRTTPayCallback
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
public
enum
Stor
e
Media
{
public
enum
Stor
y
Media
{
JRTT
(
"jrtt"
,
"今日头条"
,(
c
)->
c
==
0
?
new
JRTTActiveCallback
()
:
new
JRTTPayCallback
());
JRTT
(
"jrtt"
,
"今日头条"
,(
c
)->
c
==
0
?
new
JRTTActiveCallback
()
:
new
JRTTPayCallback
());
final
String
name
;
final
String
name
;
final
String
desc
;
final
String
desc
;
final
Function
<
Integer
,
IStor
e
Callback
>
fun
;
final
Function
<
Integer
,
IStor
y
Callback
>
fun
;
final
static
Map
<
String
,
Stor
eMedia
>
mediaMap
=
Arrays
.
stream
(
Store
Media
.
values
())
final
static
Map
<
String
,
Stor
yMedia
>
mediaMap
=
Arrays
.
stream
(
Story
Media
.
values
())
.
collect
(
Collectors
.
toMap
(
Stor
e
Media:
:
name
,
Function
.
identity
()));
.
collect
(
Collectors
.
toMap
(
Stor
y
Media:
:
name
,
Function
.
identity
()));
Stor
eMedia
(
String
name
,
String
desc
,
Function
<
Integer
,
IStore
Callback
>
fun
){
Stor
yMedia
(
String
name
,
String
desc
,
Function
<
Integer
,
IStory
Callback
>
fun
){
this
.
name
=
name
;
this
.
name
=
name
;
this
.
desc
=
desc
;
this
.
desc
=
desc
;
this
.
fun
=
fun
;
this
.
fun
=
fun
;
}
}
public
boolean
callback
(
Stor
e
NovelAction
action
){
public
boolean
callback
(
Stor
y
NovelAction
action
){
return
fun
.
apply
(
action
.
getType
()).
delivery
(
action
);
return
fun
.
apply
(
action
.
getType
()).
delivery
(
action
);
}
}
public
static
Stor
e
Media
getMedia
(
String
mediaName
){
public
static
Stor
y
Media
getMedia
(
String
mediaName
){
return
mediaMap
.
get
(
mediaName
);
return
mediaMap
.
get
(
mediaName
);
}
}
}
}
\ No newline at end of file
src/main/java/com/lwby/marketing/att/stor
e
novel/media/jrtt/JRTTActiveCallback.java
→
src/main/java/com/lwby/marketing/att/stor
y
novel/media/jrtt/JRTTActiveCallback.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
media
.
jrtt
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
media
.
jrtt
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.lwby.marketing.att.novel.media.jrtt.dto.JrttAttributeRequest
;
import
com.lwby.marketing.att.novel.media.jrtt.dto.JrttAttributeRequest
;
import
com.lwby.marketing.att.stor
enovel.media.BaseStore
Callback
;
import
com.lwby.marketing.att.stor
ynovel.media.BaseStory
Callback
;
import
com.lwby.marketing.vo.DeliveryDeviceInfo
;
import
com.lwby.marketing.vo.DeliveryDeviceInfo
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
/**
/**
* @author songxinyu
* @author songxinyu
* @version JRTTActiveCallback.java, v 0.1 2024年03月04日 17:24 songxinyu Exp $
* @version JRTTActiveCallback.java, v 0.1 2024年03月04日 17:24 songxinyu Exp $
*/
*/
public
class
JRTTActiveCallback
extends
BaseStor
e
Callback
{
public
class
JRTTActiveCallback
extends
BaseStor
y
Callback
{
public
static
final
String
ATTRIBUTE_URL
=
"https://analytics.oceanengine.com/api/v2/conversion"
;
public
static
final
String
ATTRIBUTE_URL
=
"https://analytics.oceanengine.com/api/v2/conversion"
;
@Override
@Override
public
boolean
call
(
Stor
e
NovelAction
na
)
{
public
boolean
call
(
Stor
y
NovelAction
na
)
{
DeliveryDeviceInfo
ddi
=
na
.
getDeliveryDeviceInfo
();
DeliveryDeviceInfo
ddi
=
na
.
getDeliveryDeviceInfo
();
JrttAttributeRequest
.
Ad
ad
=
new
JrttAttributeRequest
.
Ad
();
JrttAttributeRequest
.
Ad
ad
=
new
JrttAttributeRequest
.
Ad
();
...
...
src/main/java/com/lwby/marketing/att/stor
e
novel/media/jrtt/JRTTPayCallback.java
→
src/main/java/com/lwby/marketing/att/stor
y
novel/media/jrtt/JRTTPayCallback.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
media
.
jrtt
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
media
.
jrtt
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.lwby.marketing.att.novel.media.jrtt.dto.JrttAttributeRequest
;
import
com.lwby.marketing.att.novel.media.jrtt.dto.JrttAttributeRequest
;
import
com.lwby.marketing.att.stor
enovel.media.BaseStore
Callback
;
import
com.lwby.marketing.att.stor
ynovel.media.BaseStory
Callback
;
import
com.lwby.marketing.vo.DeliveryDeviceInfo
;
import
com.lwby.marketing.vo.DeliveryDeviceInfo
;
import
com.lwby.marketing.vo.Stor
e
NovelAction
;
import
com.lwby.marketing.vo.Stor
y
NovelAction
;
/**
/**
* @author songxinyu
* @author songxinyu
* @version JRTTPayCallback.java, v 0.1 2024年03月04日 17:25 songxinyu Exp $
* @version JRTTPayCallback.java, v 0.1 2024年03月04日 17:25 songxinyu Exp $
*/
*/
public
class
JRTTPayCallback
extends
BaseStor
e
Callback
{
public
class
JRTTPayCallback
extends
BaseStor
y
Callback
{
public
static
final
String
ATTRIBUTE_URL
=
"https://analytics.oceanengine.com/api/v2/conversion"
;
public
static
final
String
ATTRIBUTE_URL
=
"https://analytics.oceanengine.com/api/v2/conversion"
;
@Override
@Override
public
boolean
call
(
Stor
e
NovelAction
na
)
{
public
boolean
call
(
Stor
y
NovelAction
na
)
{
DeliveryDeviceInfo
ddi
=
na
.
getDeliveryDeviceInfo
();
DeliveryDeviceInfo
ddi
=
na
.
getDeliveryDeviceInfo
();
JrttAttributeRequest
.
Ad
ad
=
new
JrttAttributeRequest
.
Ad
();
JrttAttributeRequest
.
Ad
ad
=
new
JrttAttributeRequest
.
Ad
();
...
...
src/main/java/com/lwby/marketing/att/stor
e
novel/media/jrtt/dto/JrttAttributeRequest.java
→
src/main/java/com/lwby/marketing/att/stor
y
novel/media/jrtt/dto/JrttAttributeRequest.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
att
.
stor
e
novel
.
media
.
jrtt
.
dto
;
package
com
.
lwby
.
marketing
.
att
.
stor
y
novel
.
media
.
jrtt
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Builder
;
...
...
src/main/java/com/lwby/marketing/controller/AttrController.java
View file @
53bccf9e
...
@@ -3,9 +3,8 @@ package com.lwby.marketing.controller;
...
@@ -3,9 +3,8 @@ package com.lwby.marketing.controller;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.lwby.marketing.att.NovelAttributionMain
;
import
com.lwby.marketing.att.NovelAttributionMain
;
import
com.lwby.marketing.att.storenovel.UniversalStoreProcess
;
import
com.lwby.marketing.att.storynovel.UniversalStoryProcess
;
import
com.lwby.marketing.vo.AttributeRule
;
import
com.lwby.marketing.vo.StoryNovelAction
;
import
com.lwby.marketing.vo.StoreNovelAction
;
import
com.lwby.marketing.vo.StoreUserUploadEventBO
;
import
com.lwby.marketing.vo.StoreUserUploadEventBO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -38,7 +37,7 @@ public class AttrController {
...
@@ -38,7 +37,7 @@ public class AttrController {
+
"\"openId\":\"_000HgDjWl-P5-WS9HTQIssNgTnMBRUqDHDu\"}"
;
+
"\"openId\":\"_000HgDjWl-P5-WS9HTQIssNgTnMBRUqDHDu\"}"
;
StoreUserUploadEventBO
event
=
JSONObject
.
parseObject
(
msg
,
StoreUserUploadEventBO
.
class
);
StoreUserUploadEventBO
event
=
JSONObject
.
parseObject
(
msg
,
StoreUserUploadEventBO
.
class
);
Stor
eNovelAction
action
=
new
Store
NovelAction
(
event
.
getClientInfo
(),
event
.
getUserId
(),
event
.
getOpenId
(),
event
.
getUserUploadEvent
());
Stor
yNovelAction
action
=
new
Story
NovelAction
(
event
.
getClientInfo
(),
event
.
getUserId
(),
event
.
getOpenId
(),
event
.
getUserUploadEvent
());
try
{
try
{
nm
.
executorStoreNovelActive
.
execute
(
action
);
nm
.
executorStoreNovelActive
.
execute
(
action
);
...
@@ -48,7 +47,7 @@ public class AttrController {
...
@@ -48,7 +47,7 @@ public class AttrController {
}
}
@Resource
@Resource
UniversalStor
e
Process
up
;
UniversalStor
y
Process
up
;
@RequestMapping
(
"dedu"
)
@RequestMapping
(
"dedu"
)
public
void
testDedu
()
{
public
void
testDedu
()
{
...
...
src/main/java/com/lwby/marketing/vo/Stor
e
NovelAction.java
→
src/main/java/com/lwby/marketing/vo/Stor
y
NovelAction.java
View file @
53bccf9e
package
com
.
lwby
.
marketing
.
vo
;
package
com
.
lwby
.
marketing
.
vo
;
import
com.lwby.marketing.att.novel.media.Media
;
import
com.lwby.marketing.att.storynovel.media.StoryMedia
;
import
com.lwby.marketing.att.storenovel.media.StoreMedia
;
import
com.lwby.marketing.flow.Action
;
import
com.lwby.marketing.flow.Action
;
import
com.lwby.marketing.po.StoryLogin
;
import
com.lwby.marketing.po.StoryLogin
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -11,7 +10,7 @@ import lombok.Data;
...
@@ -11,7 +10,7 @@ import lombok.Data;
* @version StoreNovelAction.java, v 0.1 2024年03月04日 15:44 songxinyu Exp $
* @version StoreNovelAction.java, v 0.1 2024年03月04日 15:44 songxinyu Exp $
*/
*/
@Data
@Data
public
class
Stor
e
NovelAction
extends
Action
{
public
class
Stor
y
NovelAction
extends
Action
{
ClientInfo
clientInfo
;
ClientInfo
clientInfo
;
StoryLogin
storyLogin
;
StoryLogin
storyLogin
;
...
@@ -23,24 +22,24 @@ public class StoreNovelAction extends Action {
...
@@ -23,24 +22,24 @@ public class StoreNovelAction extends Action {
int
planId
;
int
planId
;
String
mediaName
;
String
mediaName
;
Integer
type
;
Integer
type
;
Stor
e
Media
media
;
Stor
y
Media
media
;
String
currentDateStr
;
String
currentDateStr
;
String
goodId
;
String
goodId
;
public
Stor
eNovelAction
(
ClientInfo
clientInfo
,
Long
userId
,
String
openId
,
Integer
type
){
public
Stor
yNovelAction
(
ClientInfo
clientInfo
,
Long
userId
,
String
openId
,
Integer
type
){
this
(
clientInfo
,
null
,
userId
,
openId
,
type
);
this
(
clientInfo
,
null
,
userId
,
openId
,
type
);
}
}
public
Stor
eNovelAction
(
ClientInfo
clientInfo
,
Long
userId
,
String
openId
,
Integer
type
,
String
goodId
){
public
Stor
yNovelAction
(
ClientInfo
clientInfo
,
Long
userId
,
String
openId
,
Integer
type
,
String
goodId
){
this
(
clientInfo
,
null
,
userId
,
openId
,
type
,
goodId
);
this
(
clientInfo
,
null
,
userId
,
openId
,
type
,
goodId
);
}
}
public
Stor
eNovelAction
(
ClientInfo
clientInfo
,
DeliveryDeviceInfo
deliveryDeviceInfo
,
Long
userId
,
String
openId
,
Integer
type
){
public
Stor
yNovelAction
(
ClientInfo
clientInfo
,
DeliveryDeviceInfo
deliveryDeviceInfo
,
Long
userId
,
String
openId
,
Integer
type
){
this
(
clientInfo
,
null
,
userId
,
openId
,
type
,
null
);
this
(
clientInfo
,
null
,
userId
,
openId
,
type
,
null
);
}
}
public
Stor
eNovelAction
(
ClientInfo
clientInfo
,
DeliveryDeviceInfo
deliveryDeviceInfo
,
Long
userId
,
String
openId
,
Integer
type
,
String
goodId
){
public
Stor
yNovelAction
(
ClientInfo
clientInfo
,
DeliveryDeviceInfo
deliveryDeviceInfo
,
Long
userId
,
String
openId
,
Integer
type
,
String
goodId
){
this
.
clientInfo
=
clientInfo
;
this
.
clientInfo
=
clientInfo
;
this
.
deliveryDeviceInfo
=
deliveryDeviceInfo
;
this
.
deliveryDeviceInfo
=
deliveryDeviceInfo
;
this
.
userId
=
userId
;
this
.
userId
=
userId
;
...
...
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