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
63cf64b5
Commit
63cf64b5
authored
Mar 10, 2021
by
桂前礼
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: [none] 导出所有书刊及资源
parent
1c5d8ffd
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
344 additions
and
0 deletions
+344
-0
BookAdviserBiz.java
...rc/main/java/com/pcloud/book/book/biz/BookAdviserBiz.java
+4
-0
BookAdviserBizImpl.java
...ava/com/pcloud/book/book/biz/impl/BookAdviserBizImpl.java
+200
-0
BookAdviserDao.java
...rc/main/java/com/pcloud/book/book/dao/BookAdviserDao.java
+3
-0
BookAdviserDaoImpl.java
...ava/com/pcloud/book/book/dao/impl/BookAdviserDaoImpl.java
+8
-0
BookAdviserFacadeImpl.java
...m/pcloud/book/book/facade/impl/BookAdviserFacadeImpl.java
+9
-0
BookServeInfo.java
.../src/main/java/com/pcloud/book/book/vo/BookServeInfo.java
+16
-0
BookServesListDTO.java
.../main/java/com/pcloud/book/book/vo/BookServesListDTO.java
+52
-0
BookServeLabelDTO.java
...ain/java/com/pcloud/book/group/dto/BookServeLabelDTO.java
+22
-0
ThreadPoolUtils.java
...ain/java/com/pcloud/book/util/common/ThreadPoolUtils.java
+4
-0
BookAdviser.Mapper.xml
...ook/src/main/resources/mapper/book/BookAdviser.Mapper.xml
+26
-0
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/BookAdviserBiz.java
View file @
63cf64b5
...
...
@@ -22,6 +22,8 @@ import com.pcloud.book.book.dto.QrcodeStatisticsDTO;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.book.book.vo.BookServeInfo
;
import
com.pcloud.book.book.vo.BookServesListDTO
;
import
com.pcloud.book.book.vo.ErpAdviserBookVO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.QrCodeVO
;
...
...
@@ -365,4 +367,6 @@ public interface BookAdviserBiz {
*erp获取二维码下面配置了企业微信的二维码
*/
List
<
Long
>
getHasWxWorkCode
(
List
<
Long
>
sceneIds
);
BookServeInfo
listBookServes4Book
(
String
cursor
,
Integer
limit
);
}
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookAdviserBizImpl.java
View file @
63cf64b5
...
...
@@ -9,11 +9,13 @@ import com.google.common.collect.Lists;
import
com.google.common.collect.Maps
;
import
com.pcloud.analysisengine.browse.dto.BookBrowseAndScanStatsDTO
;
import
com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto
;
import
com.pcloud.appcenter.app.dto.AppDto
;
import
com.pcloud.book.base.dto.CountDto
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.book.book.biz.BookFundBiz
;
import
com.pcloud.book.book.biz.BookLabelBiz
;
import
com.pcloud.book.book.biz.BookQrcodeWxworkBiz
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.book.dao.BookAdviserDao
;
...
...
@@ -39,18 +41,23 @@ import com.pcloud.book.book.entity.BookAdviser;
import
com.pcloud.book.book.enums.BookQrcodeType
;
import
com.pcloud.book.book.set.BookSet
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.book.book.vo.BookServeInfo
;
import
com.pcloud.book.book.vo.BookServesListDTO
;
import
com.pcloud.book.book.vo.ErpAdviserBookVO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.QrCodeVO
;
import
com.pcloud.book.book.vo.QrcodeInfoDto
;
import
com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto
;
import
com.pcloud.book.consumer.analysisengine.BrowseRecordConsr
;
import
com.pcloud.book.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.common.ExportConsr
;
import
com.pcloud.book.consumer.erp.ErpConsr
;
import
com.pcloud.book.consumer.label.LabelConsr
;
import
com.pcloud.book.consumer.message.MessageConsr
;
import
com.pcloud.book.consumer.message.TemplateConsr
;
import
com.pcloud.book.consumer.raystask.MainLineConsr
;
import
com.pcloud.book.consumer.resource.ProductConsr
;
import
com.pcloud.book.consumer.settlement.BookConsr
;
import
com.pcloud.book.consumer.trade.TradeConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
...
...
@@ -66,8 +73,11 @@ import com.pcloud.book.group.dto.BookAppletSceneDTO;
import
com.pcloud.book.group.dto.BookGroupDTO
;
import
com.pcloud.book.group.dto.BookGroupServeCountDTO
;
import
com.pcloud.book.group.dto.BookServeDTO
;
import
com.pcloud.book.group.dto.BookServeLabelDTO
;
import
com.pcloud.book.group.enums.AppAndProductTypeEnum
;
import
com.pcloud.book.group.enums.JoinGroupTypeEnum
;
import
com.pcloud.book.rightsSetting.biz.RightsSettingBiz
;
import
com.pcloud.book.rightsSetting.constants.RightsSettingConstant
;
import
com.pcloud.book.rightsSetting.dao.RightsSettingDAO
;
import
com.pcloud.book.rightsSetting.dto.RightsSettingDto
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
...
...
@@ -77,6 +87,7 @@ import com.pcloud.channelcenter.qrcode.dto.QrcodeMessageDTO;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto
;
import
com.pcloud.common.constant.CacheConstant
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.constant.ProductTypeConstant
;
import
com.pcloud.common.core.constant.SceneCode
;
import
com.pcloud.common.core.constant.SendType
;
import
com.pcloud.common.core.constant.SystemCode
;
...
...
@@ -92,11 +103,15 @@ import com.pcloud.common.utils.string.StringUtil;
import
com.pcloud.facade.tradecenter.dto.Amount4BookAdviserDto
;
import
com.pcloud.raystask.entity.AdviserDefault
;
import
com.pcloud.readercenter.common.enums.YesOrNoNumEnum
;
import
com.pcloud.resourcecenter.product.dto.ProductDto
;
import
com.pcloud.resourcecenter.product.dto.ProductLabelDto
;
import
com.pcloud.resourcecenter.product.dto.ProductTypeDto
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
com.pcloud.usercenter.user.entity.UserLogin
;
import
com.pcloud.wechatgroup.group.dto.GroupScanUserStatsDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserCountDTO
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -117,13 +132,17 @@ import java.util.Iterator;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.Set
;
import
java.util.UUID
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.Future
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeoutException
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
/**
* @描述:编辑管理书籍逻辑层接口实现类
...
...
@@ -203,6 +222,14 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
private
BookAdviserBiz
bookAdviserBiz
;
@Autowired
private
BookQrcodeWxworkBiz
bookQrcodeWxworkBiz
;
@Autowired
private
ProductConsr
productConsr
;
@Autowired
private
AppConsr
appConsr
;
@Autowired
private
LabelConsr
labelConsr
;
@Autowired
private
BookLabelBiz
bookLabelBiz
;
@Override
public
List
<
BookDto
>
listByAdviserId
(
Long
adviserId
)
{
...
...
@@ -2237,4 +2264,177 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
public
List
<
Long
>
getHasWxWorkCode
(
List
<
Long
>
sceneIds
)
{
return
bookQrcodeWxworkBiz
.
getHasWxWorkCode
(
sceneIds
);
}
@Override
public
BookServeInfo
listBookServes4Book
(
String
cursor
,
Integer
limit
)
{
Long
lastId
=
null
;
if
(
StringUtil
.
isNotBlank
(
cursor
))
lastId
=
Long
.
parseLong
(
JedisClusterUtils
.
get
(
cursor
));
limit
=
(
Objects
.
isNull
(
limit
)
||
limit
<
1
||
limit
>
100
)
?
20
:
limit
;
List
<
BookServesListDTO
>
bookServesListDTOS
=
bookAdviserDao
.
listBookServes4Book
(
lastId
,
limit
);
if
(
CollUtil
.
isEmpty
(
bookServesListDTOS
))
return
new
BookServeInfo
();
Long
maxId
=
bookServesListDTOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookServesListDTO:
:
getBookAdviserId
).
max
(
Long:
:
compareTo
).
orElse
(
0L
);
String
key
=
UUID
.
randomUUID
().
toString
();
JedisClusterUtils
.
set
(
key
,
String
.
valueOf
(
maxId
),
2
*
60
*
60
);
BookServeInfo
bookServeInfo
=
new
BookServeInfo
();
bookServeInfo
.
setCursor
(
key
);
// 年级科目版本上下册标签
CompletableFuture
<
Map
<
Long
,
String
>>
newLabelIdFuture
=
CompletableFuture
.
supplyAsync
(()
->
bookLabelBiz
.
getLabelMapByIds
(
Stream
.
of
(
bookServesListDTOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookServesListDTO:
:
getGraLabelId
),
bookServesListDTOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookServesListDTO:
:
getSubLabelId
),
bookServesListDTOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookServesListDTO:
:
getVerLabelId
),
bookServesListDTOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookServesListDTO:
:
getVolLabelId
)
).
flatMap
(
Function
.
identity
()).
filter
(
Objects:
:
nonNull
).
distinct
().
collect
(
Collectors
.
toList
())),
ThreadPoolUtils
.
SMALL_THREAD_POOL
);
// 专业深度目的标签
CompletableFuture
<
Map
<
Long
,
String
>>
oldLabelIdFuture
=
CompletableFuture
.
supplyAsync
(()
->
labelConsr
.
getLabelName
(
Stream
.
of
(
bookServesListDTOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookServesListDTO:
:
getProLabelId
),
bookServesListDTOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookServesListDTO:
:
getPurLabelId
),
bookServesListDTOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookServesListDTO:
:
getDepLabelId
)
).
flatMap
(
Function
.
identity
()).
filter
(
Objects:
:
nonNull
).
distinct
().
collect
(
Collectors
.
toList
())),
ThreadPoolUtils
.
SMALL_THREAD_POOL
);
Stream
<
CompletableFuture
<
Void
>>
futureStream
=
bookServesListDTOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
bookServesListDTO
->
CompletableFuture
.
runAsync
(()
->
{
List
<
BookServeDTO
>
bookServeVOS
=
bookGroupBiz
.
getBookAndBookGroupServeIds
(
bookServesListDTO
.
getAdviserId
(),
bookServesListDTO
.
getBookId
(),
bookServesListDTO
.
getChannelId
());
bookGroupBiz
.
removeCanNotBuy
(
bookServeVOS
);
bookServesListDTO
.
setBookServeList
(
warpAndFillBookServeLabelDTO
(
bookServeVOS
));
},
ThreadPoolUtils
.
SMALL_THREAD_POOL
));
CompletableFuture
[]
completableFutures
=
Stream
.
concat
(
Stream
.
of
(
newLabelIdFuture
,
oldLabelIdFuture
),
futureStream
).
toArray
(
CompletableFuture
[]::
new
);
CompletableFuture
<
Void
>
allCompletableFuture
=
CompletableFuture
.
allOf
(
completableFutures
);
try
{
allCompletableFuture
.
get
();
Map
<
Long
,
String
>
newLabelMap
=
Optional
.
ofNullable
(
newLabelIdFuture
.
get
()).
orElse
(
new
HashMap
<>());
Map
<
Long
,
String
>
oldLabelMap
=
Optional
.
ofNullable
(
oldLabelIdFuture
.
get
()).
orElse
(
new
HashMap
<>());
bookServesListDTOS
.
forEach
(
book
->{
book
.
setProLabelName
(
Optional
.
ofNullable
(
oldLabelMap
.
get
(
book
.
getProLabelId
())).
orElse
(
""
));
book
.
setPurLabelName
(
Optional
.
ofNullable
(
oldLabelMap
.
get
(
book
.
getPurLabelId
())).
orElse
(
""
));
book
.
setDepLabelName
(
Optional
.
ofNullable
(
oldLabelMap
.
get
(
book
.
getDepLabelId
())).
orElse
(
""
));
book
.
setGraLabelName
(
Optional
.
ofNullable
(
newLabelMap
.
get
(
book
.
getGraLabelId
())).
orElse
(
""
));
book
.
setSubLabelName
(
Optional
.
ofNullable
(
newLabelMap
.
get
(
book
.
getSubLabelId
())).
orElse
(
""
));
book
.
setVerLabelName
(
Optional
.
ofNullable
(
newLabelMap
.
get
(
book
.
getVerLabelId
())).
orElse
(
""
));
book
.
setVolLabelName
(
Optional
.
ofNullable
(
newLabelMap
.
get
(
book
.
getVolLabelId
())).
orElse
(
""
));
});
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
LOGGER
.
warn
(
"listBookServes4Book 异步任务处理失败"
);
}
bookServeInfo
.
setBookServesListDTOS
(
bookServesListDTOS
);
return
bookServeInfo
;
}
private
List
<
BookServeLabelDTO
>
warpAndFillBookServeLabelDTO
(
List
<
BookServeDTO
>
serveDTOList
)
{
if
(
ListUtils
.
isEmpty
(
serveDTOList
))
{
return
new
ArrayList
<>();
}
List
<
BookServeLabelDTO
>
list
=
serveDTOList
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
x
->
{
BookServeLabelDTO
bookServeLabelDTO
=
new
BookServeLabelDTO
();
BeanUtils
.
copyProperties
(
x
,
bookServeLabelDTO
);
return
bookServeLabelDTO
;
}).
collect
(
Collectors
.
toList
());
List
<
Long
>
appIds
=
Optional
.
of
(
list
).
map
(
x
->
x
.
stream
().
filter
(
item
->
Objects
.
nonNull
(
item
)
&&
StrUtil
.
equals
(
item
.
getServeType
(),
AppAndProductTypeEnum
.
APP
.
value
)).
map
(
BookServeLabelDTO:
:
getServeId
)
.
distinct
().
collect
(
Collectors
.
toList
())
).
orElse
(
new
ArrayList
<>());
List
<
Long
>
productIds
=
Optional
.
of
(
list
).
map
(
x
->
x
.
stream
().
filter
(
item
->
Objects
.
nonNull
(
item
)
&&
StrUtil
.
equals
(
item
.
getServeType
(),
AppAndProductTypeEnum
.
PRODUCT
.
value
)).
map
(
BookServeLabelDTO:
:
getServeId
)
.
distinct
().
collect
(
Collectors
.
toList
())
).
orElse
(
new
ArrayList
<>());
Map
<
Long
,
ProductDto
>
productDtoMap
=
new
HashMap
<>();
Map
<
Long
,
AppDto
>
appDtoMap
=
new
HashMap
<>();
if
(!
ListUtils
.
isEmpty
(
productIds
))
{
productDtoMap
=
productConsr
.
getProBasesByIds
(
productIds
);
}
if
(!
ListUtils
.
isEmpty
(
appIds
))
{
appDtoMap
=
appConsr
.
mapByIds
(
appIds
);
}
ArrayList
<
AppDto
>
appDtos
=
new
ArrayList
<>(
appDtoMap
.
values
());
List
<
Long
>
labelIds
=
Stream
.
of
(
appDtos
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
AppDto:
:
getProLabelId
),
appDtos
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
AppDto:
:
getPurLabelId
),
appDtos
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
AppDto:
:
getDepLabelId
)
).
flatMap
(
Function
.
identity
()).
filter
(
Objects:
:
nonNull
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
Long
,
String
>
labelNameMap
=
labelConsr
.
getLabelName
(
labelIds
);
List
<
BookServeLabelDTO
>
removeList
=
new
ArrayList
<>();
for
(
BookServeLabelDTO
bookServeDTO
:
list
)
{
if
(!
MapUtils
.
isEmpty
(
productDtoMap
)
&&
AppAndProductTypeEnum
.
PRODUCT
.
value
.
equals
(
bookServeDTO
.
getServeType
()))
{
ProductDto
productDto
=
productDtoMap
.
get
(
bookServeDTO
.
getServeId
());
if
(
productDto
!=
null
)
{
bookServeDTO
.
setServeName
(
productDto
.
getProductName
());
bookServeDTO
.
setCoverImg
(
productDto
.
getCoverImg
());
bookServeDTO
.
setProLabelId
(
Optional
.
ofNullable
(
productDto
.
getProductLabels
()).
map
(
x
->
x
.
get
(
0
)).
map
(
ProductLabelDto:
:
getProLabelId
).
orElse
(
null
));
bookServeDTO
.
setProLabelName
(
Optional
.
ofNullable
(
productDto
.
getProductLabels
()).
map
(
x
->
x
.
get
(
0
)).
map
(
ProductLabelDto:
:
getProLabelName
).
orElse
(
""
));
bookServeDTO
.
setPurLabelId
(
Optional
.
ofNullable
(
productDto
.
getProductLabels
()).
map
(
x
->
x
.
get
(
0
)).
map
(
ProductLabelDto:
:
getPurLabelId
).
orElse
(
null
));
bookServeDTO
.
setPurLabelName
(
Optional
.
ofNullable
(
productDto
.
getProductLabels
()).
map
(
x
->
x
.
get
(
0
)).
map
(
ProductLabelDto:
:
getPurLabelName
).
orElse
(
""
));
bookServeDTO
.
setDepLabelId
(
Optional
.
ofNullable
(
productDto
.
getProductLabels
()).
map
(
x
->
x
.
get
(
0
)).
map
(
ProductLabelDto:
:
getDepLabelId
).
orElse
(
null
));
bookServeDTO
.
setDepLabelName
(
Optional
.
ofNullable
(
productDto
.
getProductLabels
()).
map
(
x
->
x
.
get
(
0
)).
map
(
ProductLabelDto:
:
getDepLabelName
).
orElse
(
""
));
ProductTypeDto
productTypeDto
=
productDto
.
getProductTypeDto
();
if
(
productTypeDto
!=
null
)
{
bookServeDTO
.
setFromType
(
productTypeDto
.
getTypeCode
());
bookServeDTO
.
setFromTypeName
(
productTypeDto
.
getTypeName
());
}
if
(!
StringUtil
.
isEmpty
(
productDto
.
getSkipUrl
())){
bookServeDTO
.
setHasThirdLink
(
true
);
}
else
{
bookServeDTO
.
setHasThirdLink
(
false
);
}
if
(
bookGroupBiz
.
checkRayUrl
(
productDto
.
getSkipUrl
())
&&
ProductTypeConstant
.
ARTICLE
.
equals
(
bookServeDTO
.
getFromType
())){
removeList
.
add
(
bookServeDTO
);
}
}
else
{
removeList
.
add
(
bookServeDTO
);
}
}
if
(!
MapUtils
.
isEmpty
(
appDtoMap
)
&&
AppAndProductTypeEnum
.
APP
.
value
.
equals
(
bookServeDTO
.
getServeType
()))
{
AppDto
appDto
=
appDtoMap
.
get
(
bookServeDTO
.
getServeId
());
if
(
appDto
!=
null
)
{
bookServeDTO
.
setServeName
(
appDto
.
getTitle
());
bookServeDTO
.
setCoverImg
(
appDto
.
getSquareImg
());
bookServeDTO
.
setFromType
(
appDto
.
getTypeCode
());
bookServeDTO
.
setFromTypeName
(
appDto
.
getTypeName
());
if
(!
StringUtil
.
isEmpty
(
appDto
.
getTurnUrl
())){
bookServeDTO
.
setHasThirdLink
(
true
);
}
else
{
bookServeDTO
.
setHasThirdLink
(
false
);
}
if
(
bookGroupBiz
.
checkRayUrl
(
appDto
.
getTurnUrl
())
&&
AppTypeEnum
.
ARTICLE
.
value
.
equals
(
appDto
.
getTypeCode
())){
removeList
.
add
(
bookServeDTO
);
}
bookServeDTO
.
setProLabelId
(
appDto
.
getProLabelId
());
bookServeDTO
.
setProLabelName
(
labelNameMap
.
get
(
appDto
.
getProLabelId
()));
bookServeDTO
.
setPurLabelId
(
appDto
.
getPurLabelId
());
bookServeDTO
.
setPurLabelName
(
labelNameMap
.
get
(
appDto
.
getPurLabelId
()));
bookServeDTO
.
setDepLabelId
(
appDto
.
getDepLabelId
());
bookServeDTO
.
setDepLabelName
(
labelNameMap
.
get
(
appDto
.
getDepLabelId
()));
}
else
{
removeList
.
add
(
bookServeDTO
);
}
}
}
list
.
removeAll
(
removeList
);
List
<
BookServeLabelDTO
>
toRemoveList
=
new
ArrayList
<>();
for
(
BookServeLabelDTO
item
:
list
)
{
if
((
AppAndProductTypeEnum
.
APP
.
value
.
equals
(
item
.
getServeType
())
&&
ArrayUtils
.
contains
(
RightsSettingConstant
.
APPLET_APP_NOT_SUPPORT
,
item
.
getFromType
()))
||
(
AppAndProductTypeEnum
.
PRODUCT
.
value
.
equals
(
item
.
getServeType
())
&&
ArrayUtils
.
contains
(
RightsSettingConstant
.
APPLET_PRODUCT_NOT_SUPPORT
,
item
.
getFromType
()))
||
StringUtil
.
isEmpty
(
item
.
getFromType
()))
{
toRemoveList
.
add
(
item
);
}
}
if
(!
ListUtils
.
isEmpty
(
toRemoveList
))
{
list
.
removeAll
(
toRemoveList
);
}
return
list
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/BookAdviserDao.java
View file @
63cf64b5
...
...
@@ -16,6 +16,7 @@ import com.pcloud.book.book.dto.ErpBookInfoDTO;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.book.book.vo.BookInfo4ScanCount
;
import
com.pcloud.book.book.vo.BookServesListDTO
;
import
com.pcloud.book.book.vo.ErpAdviserBookVO
;
import
com.pcloud.book.es.entity.ESBookAndAdviser
;
import
com.pcloud.common.core.dao.BaseDao
;
...
...
@@ -317,4 +318,6 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
BookDto
getBookByBookIdAdviserIdChannelId
(
Long
bookId
,
Long
channelId
,
Long
adviserId1
);
BookDto
getLatestAdviserBookByIsbn
(
String
isbn
);
List
<
BookServesListDTO
>
listBookServes4Book
(
Long
cursor
,
Integer
limit
);
}
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/impl/BookAdviserDaoImpl.java
View file @
63cf64b5
...
...
@@ -21,6 +21,7 @@ import com.pcloud.book.book.dto.ErpBookInfoDTO;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.book.book.vo.BookInfo4ScanCount
;
import
com.pcloud.book.book.vo.BookServesListDTO
;
import
com.pcloud.book.book.vo.ErpAdviserBookVO
;
import
com.pcloud.book.es.entity.ESBookAndAdviser
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
...
...
@@ -402,4 +403,11 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
public
BookDto
getLatestAdviserBookByIsbn
(
String
isbn
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getLatestAdviserBookByIsbn"
),
isbn
);
}
@Override
public
List
<
BookServesListDTO
>
listBookServes4Book
(
Long
cursor
,
Integer
limit
)
{
HashMap
<
String
,
Object
>
params
=
MapUtil
.
of
(
"cursor"
,
cursor
);
params
.
put
(
"limit"
,
limit
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"listBookServes4Book"
),
params
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/facade/impl/BookAdviserFacadeImpl.java
View file @
63cf64b5
...
...
@@ -19,6 +19,7 @@ import com.pcloud.book.book.dto.QrcodeStatisticsDTO;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.facade.BookAdviserFacade
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.book.book.vo.BookServeInfo
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.QrCodeVO
;
import
com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto
;
...
...
@@ -379,4 +380,12 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade {
public
ResponseDto
<?>
getHasWxWorkCode4Erp
(
@RequestBody
List
<
Long
>
sceneIds
)
{
return
new
ResponseDto
<>(
bookAdviserBiz
.
getHasWxWorkCode
(
sceneIds
));
}
@ApiOperation
(
"获取图书及其资源"
)
@GetMapping
(
"listBookServes4Book"
)
public
ResponseDto
<
BookServeInfo
>
listBookServes4Book
(
@RequestParam
(
value
=
"cursor"
,
required
=
false
)
String
cursor
,
@RequestParam
(
value
=
"limit"
,
required
=
false
)
Integer
limit
){
return
new
ResponseDto
<>(
bookAdviserBiz
.
listBookServes4Book
(
cursor
,
limit
));
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/vo/BookServeInfo.java
0 → 100644
View file @
63cf64b5
package
com
.
pcloud
.
book
.
book
.
vo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
import
java.util.List
;
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
BookServeInfo
{
private
List
<
BookServesListDTO
>
bookServesListDTOS
;
private
String
cursor
;
}
pcloud-service-book/src/main/java/com/pcloud/book/book/vo/BookServesListDTO.java
0 → 100644
View file @
63cf64b5
package
com
.
pcloud
.
book
.
book
.
vo
;
import
com.pcloud.book.group.dto.BookServeLabelDTO
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
BookServesListDTO
{
private
Long
bookAdviserId
;
private
Long
bookId
;
private
Long
channelId
;
private
Long
adviserId
;
private
Long
templateId
;
private
Long
graLabelId
;
private
String
graLabelName
;
private
Long
subLabelId
;
private
String
subLabelName
;
private
Long
verLabelId
;
private
String
verLabelName
;
private
Long
volLabelId
;
private
String
volLabelName
;
private
Long
depLabelId
;
private
String
depLabelName
;
private
Long
proLabelId
;
private
String
proLabelName
;
private
Long
purLabelId
;
private
String
purLabelName
;
private
String
bookName
;
private
List
<
BookServeLabelDTO
>
bookServeList
;
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/BookServeLabelDTO.java
0 → 100644
View file @
63cf64b5
package
com
.
pcloud
.
book
.
group
.
dto
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
BookServeLabelDTO
extends
BookServeDTO
{
private
Long
depLabelId
;
private
String
depLabelName
;
private
Long
proLabelId
;
private
String
proLabelName
;
private
Long
purLabelId
;
private
String
purLabelName
;
}
pcloud-service-book/src/main/java/com/pcloud/book/util/common/ThreadPoolUtils.java
View file @
63cf64b5
...
...
@@ -72,4 +72,8 @@ public class ThreadPoolUtils {
new
LinkedBlockingQueue
<>(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"book_read_record-%d"
).
build
(),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
public
static
final
ExecutorService
SMALL_THREAD_POOL
=
new
ThreadPoolExecutor
(
8
,
8
,
0L
,
TimeUnit
.
SECONDS
,
new
LinkedBlockingQueue
<>(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"small-pool-%d"
).
build
(),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
}
pcloud-service-book/src/main/resources/mapper/book/BookAdviser.Mapper.xml
View file @
63cf64b5
...
...
@@ -1100,4 +1100,30 @@
a.CREATED_DATE DESC
LIMIT 1
</select>
<select
id=
"listBookServes4Book"
parameterType=
"map"
resultType=
"com.pcloud.book.book.vo.BookServesListDTO"
>
SELECT
BOOK_ADVISER_ID bookAdviserId,
a.BOOK_ID bookId,
CHANNEL_ID channelId,
ADVISER_ID adviserId,
TEMPLET_ID templateId,
GRA_LABEL_ID graLabelId,
SUB_LABEL_ID subLabelId,
VER_LABEL_ID verLabelId,
vol_label_id volLabelId,
pro_label_id proLabelId,
pur_label_id purLabelId,
dep_label_id depLabelId,
BOOK_NAME bookName
FROM
book_adviser a LEFT JOIN book b on a.BOOK_ID = b.BOOK_ID
WHERE
a.IS_DELETE = 0
<if
test=
"cursor != null"
>
AND BOOK_ADVISER_ID > ${cursor}
</if>
ORDER BY BOOK_ADVISER_ID
limit ${limit}
</select>
</mapper>
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