Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
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
徐少华
midjourney-proxy
Commits
f7d128e4
Commit
f7d128e4
authored
Apr 02, 2022
by
吴博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: [1006901] 外链拓展
parent
d6416d3f
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
133 additions
and
21 deletions
+133
-21
AppletRecordBizImpl.java
.../com/pcloud/book/applet/biz/impl/AppletRecordBizImpl.java
+46
-6
ResourcePageBizImpl.java
...a/com/pcloud/book/group/biz/impl/ResourcePageBizImpl.java
+86
-14
ThreadPoolUtils.java
...ain/java/com/pcloud/book/util/common/ThreadPoolUtils.java
+1
-1
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/applet/biz/impl/AppletRecordBizImpl.java
View file @
f7d128e4
...
@@ -43,6 +43,7 @@ import com.pcloud.book.consumer.app.AppConsr;
...
@@ -43,6 +43,7 @@ import com.pcloud.book.consumer.app.AppConsr;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.reader.ReaderConsr
;
import
com.pcloud.book.consumer.reader.ReaderConsr
;
import
com.pcloud.book.consumer.resource.ProductConsr
;
import
com.pcloud.book.consumer.resource.ProductConsr
;
import
com.pcloud.book.copyright.biz.BookAuthServeBiz
;
import
com.pcloud.book.group.biz.WeworkTeacherBiz
;
import
com.pcloud.book.group.biz.WeworkTeacherBiz
;
import
com.pcloud.book.group.dto.WxWorkTeacherDTO
;
import
com.pcloud.book.group.dto.WxWorkTeacherDTO
;
import
com.pcloud.book.group.enums.AppAndProductTypeEnum
;
import
com.pcloud.book.group.enums.AppAndProductTypeEnum
;
...
@@ -53,9 +54,10 @@ import com.pcloud.book.applet.dto.GroupActivity4AppletDTO;
...
@@ -53,9 +54,10 @@ import com.pcloud.book.applet.dto.GroupActivity4AppletDTO;
import
com.pcloud.book.util.common.CommonUtils
;
import
com.pcloud.book.util.common.CommonUtils
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.book.util.properties.BookProps
;
import
com.pcloud.book.util.properties.BookProps
;
import
com.pcloud.channelcenter.base.constants.MessageFromTypeEnum
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
import
com.pcloud.common.constant.LinkServeConstant
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.enums.AppTypeEnum
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.page.PageParam
;
...
@@ -139,6 +141,8 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
...
@@ -139,6 +141,8 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
private
ReaderConsr
readerConsr
;
private
ReaderConsr
readerConsr
;
@Autowired
@Autowired
private
BookProps
bookProps
;
private
BookProps
bookProps
;
@Autowired
private
BookAuthServeBiz
bookAuthServeBiz
;
@Override
@Override
@ParamLog
(
"通过ID查询单条数据"
)
@ParamLog
(
"通过ID查询单条数据"
)
...
@@ -582,7 +586,7 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
...
@@ -582,7 +586,7 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
appletRecordDTO
.
setCoverImg
(
Optional
.
ofNullable
(
bookDtoMap
.
get
(
appletRecordDTO
.
getBookId
())).
map
(
BookDto:
:
getCoverImg
).
orElse
(
""
));
appletRecordDTO
.
setCoverImg
(
Optional
.
ofNullable
(
bookDtoMap
.
get
(
appletRecordDTO
.
getBookId
())).
map
(
BookDto:
:
getCoverImg
).
orElse
(
""
));
}
}
//填充作品信息
//填充作品信息
fillProduct4Record
(
productDtoMap
,
productDtoMapFuture
,
appletRecordDTO
);
fillProduct4Record
(
productDtoMap
,
productDtoMapFuture
,
appletRecordDTO
,
wechatUserId
);
}
else
if
(
Objects
.
equals
(
AppletRecordTypeEnum
.
APP
.
value
,
appletRecordDTO
.
getRecordType
()))
{
}
else
if
(
Objects
.
equals
(
AppletRecordTypeEnum
.
APP
.
value
,
appletRecordDTO
.
getRecordType
()))
{
if
(
"ANSWER"
.
equals
(
appletRecordDTO
.
getTypeCode
()))
{
if
(
"ANSWER"
.
equals
(
appletRecordDTO
.
getTypeCode
()))
{
appletRecordDTO
.
setBookName
(
Optional
.
ofNullable
(
bookDtoMap
.
get
(
appletRecordDTO
.
getBookId
())).
map
(
BookDto:
:
getBookName
).
orElse
(
""
));
appletRecordDTO
.
setBookName
(
Optional
.
ofNullable
(
bookDtoMap
.
get
(
appletRecordDTO
.
getBookId
())).
map
(
BookDto:
:
getBookName
).
orElse
(
""
));
...
@@ -767,7 +771,8 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
...
@@ -767,7 +771,8 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
appletAppOrProductDTO
.
setServeType
(
AppAndProductTypeEnum
.
APP
.
value
);
appletAppOrProductDTO
.
setServeType
(
AppAndProductTypeEnum
.
APP
.
value
);
appletAppOrProductDTO
.
setServeId
(
appletRecordDTO
.
getFromId
());
appletAppOrProductDTO
.
setServeId
(
appletRecordDTO
.
getFromId
());
//优化跳转
//优化跳转
if
(
AppTypeEnum
.
ARTICLE
.
value
.
equals
(
appletAppOrProductDTO
.
getServeTypeCode
()))
{
try
{
if
(
LinkServeConstant
.
APPLINK
.
contains
(
appletAppOrProductDTO
.
getServeTypeCode
()))
{
if
(
appDto
!=
null
&&
!
StringUtil
.
isEmpty
(
appDto
.
getTurnUrl
()))
{
if
(
appDto
!=
null
&&
!
StringUtil
.
isEmpty
(
appDto
.
getTurnUrl
()))
{
if
(
appDto
.
getTurnUrl
().
contains
(
"5rs.me/"
)
||
appDto
.
getTurnUrl
().
contains
(
"raysgo.com/"
)
||
appDto
.
getTurnUrl
().
contains
(
"raysyun.com/"
)
if
(
appDto
.
getTurnUrl
().
contains
(
"5rs.me/"
)
||
appDto
.
getTurnUrl
().
contains
(
"raysgo.com/"
)
||
appDto
.
getTurnUrl
().
contains
(
"raysyun.com/"
)
||
null
==
wechatUserId
)
{
||
null
==
wechatUserId
)
{
...
@@ -775,20 +780,26 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
...
@@ -775,20 +780,26 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
}
else
{
}
else
{
Long
sceneId
=
CommonUtils
.
getSceneId
(
appletAppOrProductDTO
.
getResultUrl
());
Long
sceneId
=
CommonUtils
.
getSceneId
(
appletAppOrProductDTO
.
getResultUrl
());
if
(
null
!=
sceneId
)
{
if
(
null
!=
sceneId
)
{
// 判断版权保护
Map
<
String
,
Boolean
>
bookAuthMap
=
bookAuthServeBiz
.
listIsOpen4ServeIdsAndQrcode
(
sceneId
,
Lists
.
newArrayList
(
appDto
.
getAppId
()));
if
(
CollUtil
.
isEmpty
(
bookAuthMap
)
||
null
==
bookAuthMap
.
get
(
MessageFromTypeEnum
.
APP
.
value
+
appDto
.
getAppId
())
||
false
==
bookAuthMap
.
get
(
MessageFromTypeEnum
.
APP
.
value
+
appDto
.
getAppId
()))
{
//外链跳转到指定中间页
//外链跳转到指定中间页
String
jumpUrl
=
BookProps
.
getProductDomain
()
+
"transfer?offId"
+
accountSettingDto
.
getAccountSettingId
()
+
"&appId="
+
appDto
.
getAppId
()
+
"&url="
+
String
jumpUrl
=
BookProps
.
getProductDomain
()
+
"transfer?offId"
+
accountSettingDto
.
getAccountSettingId
()
+
"&appId="
+
appDto
.
getAppId
()
+
"&url="
+
URLEncoder
.
encode
(
appDto
.
getTurnUrl
())
+
"&sceneId="
+
sceneId
+
"&wechatUserId="
+
wechatUserId
;
URLEncoder
.
encode
(
appDto
.
getTurnUrl
())
+
"&sceneId="
+
sceneId
+
"&wechatUserId="
+
wechatUserId
;
appletAppOrProductDTO
.
setResultUrl
(
jumpUrl
);
appletAppOrProductDTO
.
setResultUrl
(
jumpUrl
);
}
}
}
}
}
}
}
}
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"填充外链失败:{}"
,
e
.
getMessage
());
}
appletRecordDTO
.
setAppletAppOrProductDTO
(
appletAppOrProductDTO
);
appletRecordDTO
.
setAppletAppOrProductDTO
(
appletAppOrProductDTO
);
}
}
private
void
fillProduct4Record
(
Map
<
Long
,
ProductDto
>
productDtoMap
,
Future
<
Map
<
Long
,
ProductDto
>>
productDtoMapFuture
,
AppletRecordDTO
appletRecordDTO
)
{
private
void
fillProduct4Record
(
Map
<
Long
,
ProductDto
>
productDtoMap
,
Future
<
Map
<
Long
,
ProductDto
>>
productDtoMapFuture
,
AppletRecordDTO
appletRecordDTO
,
Long
wechatUserId
)
{
try
{
try
{
productDtoMap
=
productDtoMapFuture
.
get
();
productDtoMap
=
productDtoMapFuture
.
get
();
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
...
@@ -798,7 +809,7 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
...
@@ -798,7 +809,7 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
appletRecordDTO
.
setSourceDelete
(
YesOrNoNumEnum
.
YES
.
getValue
());
appletRecordDTO
.
setSourceDelete
(
YesOrNoNumEnum
.
YES
.
getValue
());
return
;
return
;
}
}
AccountSettingDto
accountSettingDto
;
AccountSettingDto
accountSettingDto
=
null
;
ProductDto
productDto
=
productDtoMap
.
get
(
appletRecordDTO
.
getFromId
());
ProductDto
productDto
=
productDtoMap
.
get
(
appletRecordDTO
.
getFromId
());
AppletAppOrProductDTO
appletAppOrProductDTO
=
new
AppletAppOrProductDTO
();
AppletAppOrProductDTO
appletAppOrProductDTO
=
new
AppletAppOrProductDTO
();
if
(
productDto
==
null
||
YesOrNoNumEnum
.
YES
.
getValue
().
equals
(
productDto
.
getIsDelete
()))
{
if
(
productDto
==
null
||
YesOrNoNumEnum
.
YES
.
getValue
().
equals
(
productDto
.
getIsDelete
()))
{
...
@@ -843,6 +854,35 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
...
@@ -843,6 +854,35 @@ public class AppletRecordBizImpl implements AppletRecordBiz {
}
}
appletAppOrProductDTO
.
setServeType
(
AppAndProductTypeEnum
.
PRODUCT
.
value
);
appletAppOrProductDTO
.
setServeType
(
AppAndProductTypeEnum
.
PRODUCT
.
value
);
appletAppOrProductDTO
.
setServeId
(
appletRecordDTO
.
getFromId
());
appletAppOrProductDTO
.
setServeId
(
appletRecordDTO
.
getFromId
());
//优化跳转
try
{
if
(
LinkServeConstant
.
PRODUCTLINK
.
contains
(
appletAppOrProductDTO
.
getServeTypeCode
()))
{
if
(
productDto
!=
null
&&
!
StringUtil
.
isEmpty
(
productDto
.
getSkipUrl
())
&&
null
!=
accountSettingDto
)
{
Double
adviserPrice
=
CollUtil
.
isNotEmpty
(
productDto
.
getSpecification
())
?
productDto
.
getSpecification
().
get
(
0
).
getAdvisePrice
():
0
D
;
//原存在逻辑不处理
if
(
productDto
.
getSkipUrl
().
contains
(
"5rs.me/"
)
||
productDto
.
getSkipUrl
().
contains
(
"raysgo.com/"
)
||
productDto
.
getSkipUrl
().
contains
(
"raysyun.com/"
))
{
appletAppOrProductDTO
.
setResultUrl
(
productDto
.
getSkipUrl
());
}
else
if
(
null
!=
wechatUserId
&&
adviserPrice
.
equals
(
0
D
)){
Long
sceneId
=
CommonUtils
.
getSceneId
(
appletAppOrProductDTO
.
getResultUrl
());
if
(
null
!=
sceneId
)
{
// 判断版权保护
Map
<
String
,
Boolean
>
bookAuthMap
=
bookAuthServeBiz
.
listIsOpen4ServeIdsAndQrcode
(
sceneId
,
Lists
.
newArrayList
(
productDto
.
getProductId
()));
if
(
CollUtil
.
isEmpty
(
bookAuthMap
)
||
null
==
bookAuthMap
.
get
(
MessageFromTypeEnum
.
PRODUCT
.
value
+
productDto
.
getProductId
())
||
false
==
bookAuthMap
.
get
(
MessageFromTypeEnum
.
PRODUCT
.
value
+
productDto
.
getProductId
()))
{
//外链跳转到指定中间页
String
jumpUrl
=
BookProps
.
getProductDomain
()
+
"transfer?offId"
+
accountSettingDto
.
getAccountSettingId
()
+
"&url="
+
URLEncoder
.
encode
(
productDto
.
getSkipUrl
())
+
"&sceneId="
+
sceneId
+
"&wechatUserId="
+
wechatUserId
+
"&productId="
+
productDto
.
getProductId
()
;
appletAppOrProductDTO
.
setResultUrl
(
jumpUrl
);
}
}
}
}
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"填充外链失败:{}"
,
e
.
getMessage
());
}
appletRecordDTO
.
setAppletAppOrProductDTO
(
appletAppOrProductDTO
);
appletRecordDTO
.
setAppletAppOrProductDTO
(
appletAppOrProductDTO
);
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/ResourcePageBizImpl.java
View file @
f7d128e4
...
@@ -47,6 +47,7 @@ import com.pcloud.book.consumer.user.ChannelConsr;
...
@@ -47,6 +47,7 @@ import com.pcloud.book.consumer.user.ChannelConsr;
import
com.pcloud.book.consumer.user.MerchantConsr
;
import
com.pcloud.book.consumer.user.MerchantConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.consumer.wxwork.WxworkConsr
;
import
com.pcloud.book.consumer.wxwork.WxworkConsr
;
import
com.pcloud.book.copyright.biz.BookAuthServeBiz
;
import
com.pcloud.book.es.biz.ESBookAndAdviserBiz
;
import
com.pcloud.book.es.biz.ESBookAndAdviserBiz
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.group.biz.ResourcePageBiz
;
import
com.pcloud.book.group.biz.ResourcePageBiz
;
...
@@ -97,7 +98,6 @@ import com.pcloud.book.group.entity.ResourceRecomManage;
...
@@ -97,7 +98,6 @@ import com.pcloud.book.group.entity.ResourceRecomManage;
import
com.pcloud.book.group.enums.PageLandingPageTypeEnum
;
import
com.pcloud.book.group.enums.PageLandingPageTypeEnum
;
import
com.pcloud.book.group.enums.ResourcePageFixtureTypeEnum
;
import
com.pcloud.book.group.enums.ResourcePageFixtureTypeEnum
;
import
com.pcloud.book.group.mapper.ResourcePageShareMapper
;
import
com.pcloud.book.group.mapper.ResourcePageShareMapper
;
import
com.pcloud.book.group.enums.ResourcePageFixtureTypeEnum
;
import
com.pcloud.book.group.tools.SendWeixinRequestTools
;
import
com.pcloud.book.group.tools.SendWeixinRequestTools
;
import
com.pcloud.book.group.vo.CrmContactQrcodeVO
;
import
com.pcloud.book.group.vo.CrmContactQrcodeVO
;
import
com.pcloud.book.group.vo.RecommendServeVO
;
import
com.pcloud.book.group.vo.RecommendServeVO
;
...
@@ -119,6 +119,7 @@ import com.pcloud.book.skill.biz.PcloudGroupActivityBiz;
...
@@ -119,6 +119,7 @@ import com.pcloud.book.skill.biz.PcloudGroupActivityBiz;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.book.util.common.YesOrNoEnums
;
import
com.pcloud.book.util.common.YesOrNoEnums
;
import
com.pcloud.book.util.properties.BookProps
;
import
com.pcloud.book.util.properties.BookProps
;
import
com.pcloud.channelcenter.base.constants.MessageFromTypeEnum
;
import
com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO
;
import
com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO
;
import
com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO
;
import
com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO
;
import
com.pcloud.channelcenter.qrcode.dto.OwnMessageDTO
;
import
com.pcloud.channelcenter.qrcode.dto.OwnMessageDTO
;
...
@@ -129,12 +130,12 @@ import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
...
@@ -129,12 +130,12 @@ import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import
com.pcloud.channelcenter.wechat.entity.AccountSetting
;
import
com.pcloud.channelcenter.wechat.entity.AccountSetting
;
import
com.pcloud.channelcenter.wechat.entity.Message
;
import
com.pcloud.channelcenter.wechat.entity.Message
;
import
com.pcloud.combinedmarketing.memberActivity.dto.ActivityBaseInfoWithPriceDTO
;
import
com.pcloud.combinedmarketing.memberActivity.dto.ActivityBaseInfoWithPriceDTO
;
import
com.pcloud.common.constant.LinkServeConstant
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.constant.AdviserTaskConstants
;
import
com.pcloud.common.core.constant.AdviserTaskConstants
;
import
com.pcloud.common.core.constant.MQTopicProducer
;
import
com.pcloud.common.core.constant.MQTopicProducer
;
import
com.pcloud.common.core.constant.ProductTypeConstant
;
import
com.pcloud.common.core.constant.ProductTypeConstant
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.enums.AppTypeEnum
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.page.PageParam
;
...
@@ -306,6 +307,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
...
@@ -306,6 +307,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
private
ResourcePageModelDao
resourcePageModelDao
;
private
ResourcePageModelDao
resourcePageModelDao
;
@Autowired
@Autowired
private
ResourceConsr
resourceConsr
;
private
ResourceConsr
resourceConsr
;
@Autowired
private
BookAuthServeBiz
bookAuthServeBiz
;
@Value
(
"${book.share.defaultTitle}"
)
@Value
(
"${book.share.defaultTitle}"
)
...
@@ -3912,7 +3915,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
...
@@ -3912,7 +3915,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
fillSelfPic
(
resourcePageItemVOList
);
fillSelfPic
(
resourcePageItemVOList
);
//填充跳转地址
//填充跳转地址
try
{
try
{
fillJumpUrl
(
resourcePageItemVOList
,
wechatUserId
,
resourcePageId
,
officialAccountsId
);
fillJumpUrl
(
resourcePageItemVOList
,
wechatUserId
,
resourcePageId
,
officialAccountsId
,
bookId
,
adviserId
,
channelId
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"book.fillJumpUrl失败"
);
log
.
error
(
"book.fillJumpUrl失败"
);
}
}
...
@@ -3931,37 +3934,102 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
...
@@ -3931,37 +3934,102 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
return
resourceColumnAndServeVOS
;
return
resourceColumnAndServeVOS
;
}
}
private
void
fillJumpUrl
(
List
<
ResourcePageItemVO
>
resourcePageItemVOList
,
Long
wechatUserId
,
Long
resourcePageId
,
Long
officialAccountsId
)
{
private
void
fillJumpUrl
(
List
<
ResourcePageItemVO
>
resourcePageItemVOList
,
Long
wechatUserId
,
Long
resourcePageId
,
Long
officialAccountsId
,
Long
bookId
,
Long
adviserId
,
Long
channelId
)
{
if
(
CollUtil
.
isEmpty
(
resourcePageItemVOList
))
{
if
(
CollUtil
.
isEmpty
(
resourcePageItemVOList
))
{
return
;
return
;
}
}
List
<
ResourcePageItemVO
>
resourcePageItemVOS
=
resourcePageItemVOList
.
stream
().
filter
(
e
->
AppTypeEnum
.
ARTICLE
.
value
.
equals
(
e
.
getTypeCode
())).
collect
(
Collectors
.
toList
());
List
<
Long
>
serveIds
=
resourcePageItemVOList
.
stream
().
map
(
f
->
f
.
getServeId
()).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
resourcePageItemVOS
))
{
List
<
Long
>
appIds
=
resourcePageItemVOList
.
stream
().
filter
(
e
->
MessageFromTypeEnum
.
APP
.
value
.
equals
(
e
.
getServeType
())
&&
LinkServeConstant
.
APPLINK
.
contains
(
e
.
getTypeCode
())).
map
(
f
->
f
.
getServeId
()).
collect
(
Collectors
.
toList
());
List
<
Long
>
productIds
=
resourcePageItemVOList
.
stream
().
filter
(
e
->
MessageFromTypeEnum
.
PRODUCT
.
value
.
equals
(
e
.
getServeType
())
&&
LinkServeConstant
.
PRODUCTLINK
.
contains
(
e
.
getTypeCode
())).
map
(
f
->
f
.
getServeId
()).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isEmpty
(
appIds
)
&&
CollUtil
.
isEmpty
(
productIds
))
{
return
;
}
Map
<
Long
,
ProductDto
>
productDtoMap
=
new
HashMap
<>();
CompletableFuture
<
Map
<
Long
,
ProductDto
>>
productDtoMapFuture
=
null
;
Map
<
Long
,
AppDto
>
appDtoMap
=
new
HashMap
<>();
CompletableFuture
<
Map
<
Long
,
AppDto
>>
appDtoMappFuture
=
null
;
Map
<
String
,
Boolean
>
bookAuthMap
=
null
;
CompletableFuture
<
Map
<
String
,
Boolean
>>
bookAuthMapFuture
=
null
;
ResourcePage
byId
=
resourcePageDao
.
getById
(
resourcePageId
);
ResourcePage
byId
=
resourcePageDao
.
getById
(
resourcePageId
);
if
(
null
==
byId
||
null
==
byId
.
getSceneId
())
{
if
(
null
==
byId
||
null
==
byId
.
getSceneId
())
{
return
;
return
;
}
}
List
<
Long
>
appIds
=
resourcePageItemVOS
.
stream
().
map
(
e
->
e
.
getServeId
()).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
appIds
))
{
Map
<
Long
,
AppDto
>
appDtoMap
=
appConsr
.
mapByIds
(
appIds
);
appDtoMappFuture
=
CompletableFuture
.
supplyAsync
(()
->
appConsr
.
mapByIds4AuditPass
(
appIds
),
ThreadPoolUtils
.
FILL_APPLET_RECORD
);
resourcePageItemVOS
.
stream
().
forEach
(
e
->
{
}
if
(
AppTypeEnum
.
ARTICLE
.
value
.
equals
(
e
.
getTypeCode
())
&&
CollUtil
.
isNotEmpty
(
appDtoMap
)
&&
null
!=
appDtoMap
.
get
(
e
.
getServeId
()))
{
if
(
CollUtil
.
isNotEmpty
(
productIds
))
{
AppDto
appDto
=
appDtoMap
.
get
(
e
.
getServeId
());
productDtoMapFuture
=
CompletableFuture
.
supplyAsync
(()
->
productConsr
.
getProBasesByIds
(
productIds
),
ThreadPoolUtils
.
FILL_APPLET_RECORD
);
}
if
(
CollUtil
.
isNotEmpty
(
serveIds
))
{
bookAuthMapFuture
=
CompletableFuture
.
supplyAsync
(()
->
bookAuthServeBiz
.
listIsOpen4ServeIdsAndBookId
(
bookId
,
adviserId
,
channelId
,
serveIds
),
ThreadPoolUtils
.
FILL_APPLET_RECORD
);
}
if
(
CollUtil
.
isNotEmpty
(
serveIds
))
{
try
{
bookAuthMap
=
bookAuthMapFuture
.
get
();
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
log
.
warn
(
"获取书刊信息失败 [BookBizImpl.getAdviserBook] ERR:{}"
,
e
.
getMessage
(),
e
);
}
}
if
(
CollUtil
.
isNotEmpty
(
appIds
))
{
try
{
appDtoMap
=
appDtoMappFuture
.
get
();
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
log
.
warn
(
"获取书刊信息失败 [BookBizImpl.getAdviserBook] ERR:{}"
,
e
.
getMessage
(),
e
);
}
Map
<
Long
,
AppDto
>
finalAppDtoMap
=
appDtoMap
;
Map
<
String
,
Boolean
>
finalBookAuthMap
=
bookAuthMap
;
resourcePageItemVOList
.
stream
().
forEach
(
e
->
{
if
(
MessageFromTypeEnum
.
APP
.
value
.
equals
(
e
.
getServeType
())
&&
LinkServeConstant
.
APPLINK
.
contains
(
e
.
getTypeCode
())
&&
CollUtil
.
isNotEmpty
(
finalAppDtoMap
)
&&
null
!=
finalAppDtoMap
.
get
(
e
.
getServeId
()))
{
AppDto
appDto
=
finalAppDtoMap
.
get
(
e
.
getServeId
());
if
(
appDto
!=
null
&&
!
StringUtil
.
isEmpty
(
appDto
.
getTurnUrl
()))
{
if
(
appDto
!=
null
&&
!
StringUtil
.
isEmpty
(
appDto
.
getTurnUrl
()))
{
if
(
appDto
.
getTurnUrl
().
contains
(
"5rs.me/"
)
||
appDto
.
getTurnUrl
().
contains
(
"raysgo.com/"
)
||
appDto
.
getTurnUrl
().
contains
(
"raysyun.com/"
)
if
(
appDto
.
getTurnUrl
().
contains
(
"5rs.me/"
)
||
appDto
.
getTurnUrl
().
contains
(
"raysgo.com/"
)
||
appDto
.
getTurnUrl
().
contains
(
"raysyun.com/"
)
||
null
==
wechatUserId
)
{
||
null
==
wechatUserId
)
{
e
.
setResultUrl
(
appDto
.
getTurnUrl
());
e
.
setResultUrl
(
appDto
.
getTurnUrl
());
}
else
{
}
else
{
if
(
CollUtil
.
isEmpty
(
finalBookAuthMap
)
||
null
==
finalBookAuthMap
.
get
(
MessageFromTypeEnum
.
APP
.
value
+
appDto
.
getAppId
())
||
false
==
finalBookAuthMap
.
get
(
MessageFromTypeEnum
.
APP
.
value
+
appDto
.
getAppId
()))
{
//外链跳转到指定中间页
//外链跳转到指定中间页
String
jumpUrl
=
BookProps
.
getProductDomain
()
+
"transfer?offId"
+
officialAccountsId
+
"&appId="
+
appDto
.
getAppId
()
+
"&url="
+
String
jumpUrl
=
BookProps
.
getProductDomain
()
+
"transfer?offId"
+
officialAccountsId
+
"&appId="
+
appDto
.
getAppId
()
+
"&url="
+
URLEncoder
.
encode
(
appDto
.
getTurnUrl
())
+
"&sceneId="
+
byId
.
getSceneId
()
+
"&wechatUserId="
+
wechatUserId
;
URLEncoder
.
encode
(
appDto
.
getTurnUrl
())
+
"&sceneId="
+
byId
.
getSceneId
()
+
"&wechatUserId="
+
wechatUserId
;
e
.
setResultUrl
(
jumpUrl
);
e
.
setResultUrl
(
jumpUrl
);
}
}
}
}
}
});
}
if
(
CollUtil
.
isNotEmpty
(
productIds
))
{
try
{
productDtoMap
=
productDtoMapFuture
.
get
();
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
log
.
warn
(
"获取书刊信息失败 [BookBizImpl.getAdviserBook] ERR:{}"
,
e
.
getMessage
(),
e
);
}
Map
<
Long
,
ProductDto
>
finalProductDtoMap
=
productDtoMap
;
Map
<
String
,
Boolean
>
finalBookAuthMap1
=
bookAuthMap
;
resourcePageItemVOList
.
stream
().
forEach
(
e
->
{
if
(
MessageFromTypeEnum
.
PRODUCT
.
value
.
equals
(
e
.
getServeType
())
&&
LinkServeConstant
.
PRODUCTLINK
.
contains
(
e
.
getTypeCode
())
&&
CollUtil
.
isNotEmpty
(
finalProductDtoMap
)
&&
null
!=
finalProductDtoMap
.
get
(
e
.
getServeId
()))
{
ProductDto
productDto
=
finalProductDtoMap
.
get
(
e
.
getServeId
());
if
(
productDto
!=
null
&&
!
StringUtil
.
isEmpty
(
productDto
.
getSkipUrl
()))
{
Double
adviserPrice
=
CollUtil
.
isNotEmpty
(
productDto
.
getSpecification
())
?
productDto
.
getSpecification
().
get
(
0
).
getAdvisePrice
():
0
;
if
(
productDto
.
getSkipUrl
().
contains
(
"5rs.me/"
)
||
productDto
.
getSkipUrl
().
contains
(
"raysgo.com/"
)
||
productDto
.
getSkipUrl
().
contains
(
"raysyun.com/"
))
{
e
.
setResultUrl
(
productDto
.
getSkipUrl
());
}
else
if
(
null
!=
wechatUserId
&&
adviserPrice
.
equals
(
0
D
)
){
if
(
CollUtil
.
isEmpty
(
finalBookAuthMap1
)
||
null
==
finalBookAuthMap1
.
get
(
MessageFromTypeEnum
.
PRODUCT
.
value
+
e
.
getServeId
())
||
false
==
finalBookAuthMap1
.
get
(
MessageFromTypeEnum
.
PRODUCT
.
value
+
e
.
getServeId
()))
{
//外链跳转到指定中间页
String
jumpUrl
=
BookProps
.
getProductDomain
()
+
"transfer?offId"
+
officialAccountsId
+
"&"
+
"&url="
+
URLEncoder
.
encode
(
productDto
.
getSkipUrl
())
+
"&sceneId="
+
byId
.
getSceneId
()
+
"&wechatUserId="
+
wechatUserId
+
"&productId="
+
e
.
getServeId
()
;
e
.
setResultUrl
(
jumpUrl
);
}
}
}
}
}
}
});
});
}
}
}
}
@Override
@Override
...
@@ -4068,7 +4136,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
...
@@ -4068,7 +4136,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
}
}
fillSelfPic
(
resourcePageItemVOList
);
fillSelfPic
(
resourcePageItemVOList
);
//填充跳转地址
//填充跳转地址
fillJumpUrl
(
resourcePageItemVOList
,
wechatUserId
,
resourcePageId
,
officialAccountsId
);
try
{
fillJumpUrl
(
resourcePageItemVOList
,
wechatUserId
,
resourcePageId
,
officialAccountsId
,
bookId
,
adviserId
,
channelId
);
}
catch
(
Exception
e
)
{
log
.
error
(
"fillJumpUrl失败:{}"
,
e
.
getMessage
());
}
return
serveVOS
;
return
serveVOS
;
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/util/common/ThreadPoolUtils.java
View file @
f7d128e4
...
@@ -63,7 +63,7 @@ public class ThreadPoolUtils {
...
@@ -63,7 +63,7 @@ public class ThreadPoolUtils {
new
LinkedBlockingQueue
<>(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"send-notify-pool-%d"
).
build
(),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
new
LinkedBlockingQueue
<>(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"send-notify-pool-%d"
).
build
(),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
public
static
final
ExecutorService
FILL_APPLET_RECORD
=
new
ThreadPoolExecutor
(
8
,
8
,
0L
,
TimeUnit
.
SECONDS
,
public
static
final
ExecutorService
FILL_APPLET_RECORD
=
new
ThreadPoolExecutor
(
16
,
64
,
0L
,
TimeUnit
.
SECONDS
,
new
LinkedBlockingQueue
<>(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"fill-applet-record-%d"
).
build
(),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
new
LinkedBlockingQueue
<>(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"fill-applet-record-%d"
).
build
(),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
...
...
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