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
501c5c64
Commit
501c5c64
authored
Feb 23, 2022
by
guiq
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug: [none] 接口性能优化 book/getAdviserBook
parent
09f12b15
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
136 additions
and
42 deletions
+136
-42
BookBizImpl.java
.../main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
+136
-42
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
View file @
501c5c64
...
...
@@ -7,7 +7,6 @@ import cn.hutool.core.bean.BeanUtil;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.Lists
;
...
...
@@ -30,16 +29,90 @@ import com.pcloud.book.applet.enums.LabelTypeEnum;
import
com.pcloud.book.base.enums.BookStatusEnum
;
import
com.pcloud.book.base.enums.BookTypeEnum
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.book.biz.*
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.biz.BookAdviserErpBiz
;
import
com.pcloud.book.book.biz.BookAppBiz
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.book.book.biz.BookFreezeBiz
;
import
com.pcloud.book.book.biz.BookFundBiz
;
import
com.pcloud.book.book.biz.BookLabelBiz
;
import
com.pcloud.book.book.biz.BookProductBiz
;
import
com.pcloud.book.book.biz.BookResourceBiz
;
import
com.pcloud.book.book.biz.BookSerialNumberBiz
;
import
com.pcloud.book.book.cache.BookCache
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.book.dao.*
;
import
com.pcloud.book.book.dto.*
;
import
com.pcloud.book.book.entity.*
;
import
com.pcloud.book.book.dao.BookAdviserDao
;
import
com.pcloud.book.book.dao.BookDao
;
import
com.pcloud.book.book.dao.BookEdtionDao
;
import
com.pcloud.book.book.dao.BookLabelDao
;
import
com.pcloud.book.book.dao.BookLinkDao
;
import
com.pcloud.book.book.dao.BookRaysClassifyDao
;
import
com.pcloud.book.book.dao.BookTypeDao
;
import
com.pcloud.book.book.dao.EdtionRecordDao
;
import
com.pcloud.book.book.dao.NoviceGuideDeleteDao
;
import
com.pcloud.book.book.dao.QrcodeSceneErpDao
;
import
com.pcloud.book.book.dao.SeriesBookDao
;
import
com.pcloud.book.book.dao.SeriesBookRecordDao
;
import
com.pcloud.book.book.dto.AdviserBookInfoDTO
;
import
com.pcloud.book.book.dto.AviserBookInfoParam
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookAdviserUpdateTimeDTO
;
import
com.pcloud.book.book.dto.BookAssocCount
;
import
com.pcloud.book.book.dto.BookCoverImgUpdateDTO
;
import
com.pcloud.book.book.dto.BookDetialDTO
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookFreezeDto
;
import
com.pcloud.book.book.dto.BookFundDto
;
import
com.pcloud.book.book.dto.BookInfo4AnlysicsDTO
;
import
com.pcloud.book.book.dto.BookInfoAnalysicsDTO
;
import
com.pcloud.book.book.dto.BookInfoAndAuthStatusDTO
;
import
com.pcloud.book.book.dto.BookMinimumSupportDTO
;
import
com.pcloud.book.book.dto.BookNameUpdateDTO
;
import
com.pcloud.book.book.dto.BookTypeDto
;
import
com.pcloud.book.book.dto.BookUniqueNumberDTO
;
import
com.pcloud.book.book.dto.CreateBookResultVO
;
import
com.pcloud.book.book.dto.CreateBookVO
;
import
com.pcloud.book.book.dto.CreateQrcodeVO
;
import
com.pcloud.book.book.dto.ERPPublishNumDTO
;
import
com.pcloud.book.book.dto.EditionAnalysisListVO
;
import
com.pcloud.book.book.dto.EditionAnalysisResultVO
;
import
com.pcloud.book.book.dto.EditionAnalysisVO
;
import
com.pcloud.book.book.dto.ErpBookApprovalDTO
;
import
com.pcloud.book.book.dto.MapResourceTotalCountDTO
;
import
com.pcloud.book.book.dto.ProjectOrderSheetDTO
;
import
com.pcloud.book.book.dto.ProjectRelateVO
;
import
com.pcloud.book.book.dto.ProjectUploaderDTO
;
import
com.pcloud.book.book.dto.QrcodeServeDto
;
import
com.pcloud.book.book.dto.RelateAdviserVO
;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.entity.BookAdviserErp
;
import
com.pcloud.book.book.entity.BookEdition
;
import
com.pcloud.book.book.entity.BookLabel
;
import
com.pcloud.book.book.entity.BookLink
;
import
com.pcloud.book.book.entity.BookSerialNumber
;
import
com.pcloud.book.book.entity.EditionRecord
;
import
com.pcloud.book.book.entity.NoviceGuideDelete
;
import
com.pcloud.book.book.entity.QrcodeSceneErp
;
import
com.pcloud.book.book.entity.SeriesBook
;
import
com.pcloud.book.book.entity.SeriesBookRecord
;
import
com.pcloud.book.book.set.BookSet
;
import
com.pcloud.book.book.tools.BookTools
;
import
com.pcloud.book.book.vo.*
;
import
com.pcloud.book.book.vo.request.*
;
import
com.pcloud.book.book.vo.BookCountsVO
;
import
com.pcloud.book.book.vo.BookInfo4ScanCount
;
import
com.pcloud.book.book.vo.BookLabelVO
;
import
com.pcloud.book.book.vo.BookLinkVO
;
import
com.pcloud.book.book.vo.BookQualifyVO
;
import
com.pcloud.book.book.vo.BookResourceNumDTO
;
import
com.pcloud.book.book.vo.BookSaleVO
;
import
com.pcloud.book.book.vo.ListNoAuthBookParam
;
import
com.pcloud.book.book.vo.ListNoAuthGroupBookParam
;
import
com.pcloud.book.book.vo.SearchBookVO
;
import
com.pcloud.book.book.vo.request.BookInfo4ScanCountRequestVO
;
import
com.pcloud.book.book.vo.request.BookQualifyInfoVO
;
import
com.pcloud.book.book.vo.request.BookSearchParamVO
;
import
com.pcloud.book.book.vo.request.SyncRelateDataToRaysVO
;
import
com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto
;
import
com.pcloud.book.consumer.analysisengine.SceneRecordConsr
;
import
com.pcloud.book.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.app.AssistTempletConsr
;
...
...
@@ -54,7 +127,11 @@ import com.pcloud.book.consumer.raystask.AdviserTaskConsr;
import
com.pcloud.book.consumer.raystask.MainLineConsr
;
import
com.pcloud.book.consumer.resource.ProductConsr
;
import
com.pcloud.book.consumer.trade.TradeConsr
;
import
com.pcloud.book.consumer.user.*
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.user.AgentConsr
;
import
com.pcloud.book.consumer.user.ChannelConsr
;
import
com.pcloud.book.consumer.user.MerchantConsr
;
import
com.pcloud.book.consumer.user.PartyConsr
;
import
com.pcloud.book.consumer.wechat.WechatConsr
;
import
com.pcloud.book.copyright.biz.BookAuthInfoBiz
;
import
com.pcloud.book.copyright.vo.BookAuthInfoVO
;
...
...
@@ -131,8 +208,22 @@ import org.springframework.util.CollectionUtils;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Calendar
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.Random
;
import
java.util.Set
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -140,6 +231,8 @@ import java.util.function.Function;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
static
com
.
pcloud
.
book
.
util
.
common
.
ThreadPoolUtils
.
REMOTE_CALL_POOL
;
/**
* @描述:书籍业务层接口实现类
* @作者:songx
...
...
@@ -2505,42 +2598,43 @@ public class BookBizImpl implements BookBiz {
return
new
BookDto
();
}
Integer
joinGroupType
=
bookGroupDao
.
getJoinGroupType
(
paramMap
);
if
(
null
!=
joinGroupType
&&
JoinGroupTypeEnum
.
XIAORUI
.
getCode
().
equals
(
joinGroupType
))
{
if
(
JoinGroupTypeEnum
.
XIAORUI
.
getCode
().
equals
(
joinGroupType
))
{
Long
classifyId
=
bookRaysClassifyDao
.
getClassifyIdByBookTemplateId
(
bookDto
.
getTempletId
());
bookDto
.
setClassifyId
(
null
!=
classifyId
?
classifyId
.
intValue
():
null
);
}
// 设置模板名字
List
<
Long
>
templetIds
=
new
ArrayList
<>();
if
(
bookDto
.
getTempletId
()!=
null
)
{
templetIds
.
add
(
bookDto
.
getTempletId
());
}
if
(
bookDto
.
getSecondTempletId
()!=
null
)
{
templetIds
.
add
(
bookDto
.
getSecondTempletId
());
}
if
(
bookDto
.
getThirdTempletId
()!=
null
)
{
templetIds
.
add
(
bookDto
.
getThirdTempletId
());
}
Map
<
Long
,
AssistTempletDTO
>
assistTempletDTOMap
=
assistTempletConsr
.
mapByIds
(
templetIds
);
Long
thirdTempletId
=
bookDto
.
getThirdTempletId
();
Long
secondTempletId
=
bookDto
.
getSecondTempletId
();
Long
templetId
=
bookDto
.
getTempletId
();
if
(
thirdTempletId
!=
null
&&
assistTempletDTOMap
!=
null
)
{
AssistTempletDTO
templetDTO
=
assistTempletDTOMap
.
get
(
thirdTempletId
);
bookDto
.
setThirdTempletName
(
Optional
.
ofNullable
(
templetDTO
).
map
(
AssistTempletDTO:
:
getTempletName
).
orElse
(
null
));
bookDto
.
setClassifyId
(
null
!=
classifyId
?
classifyId
.
intValue
()
:
null
);
}
if
(
secondTempletId
!=
null
&&
assistTempletDTOMap
!=
null
)
{
AssistTempletDTO
templetDTO
=
assistTempletDTOMap
.
get
(
secondTempletId
);
bookDto
.
setSecondTempletName
(
Optional
.
ofNullable
(
templetDTO
).
map
(
AssistTempletDTO:
:
getTempletName
).
orElse
(
null
));
}
if
(
templetId
!=
null
&&
assistTempletDTOMap
!=
null
)
{
AssistTempletDTO
templetDTO
=
assistTempletDTOMap
.
get
(
templetId
);
bookDto
.
setTempletName
(
Optional
.
ofNullable
(
templetDTO
).
map
(
AssistTempletDTO:
:
getTempletName
).
orElse
(
null
));
// 填充分类
CompletableFuture
<
Void
>
fillClassifyFuture
=
CompletableFuture
.
runAsync
(()
->
{
if
(
JoinGroupTypeEnum
.
XIAORUI
.
getCode
().
equals
(
bookGroupDao
.
getJoinGroupType
(
paramMap
)))
{
bookDto
.
setClassifyId
(
Optional
.
ofNullable
(
bookRaysClassifyDao
.
getClassifyIdByBookTemplateId
(
bookDto
.
getTempletId
())).
map
(
Long:
:
intValue
).
orElse
(
null
));
}
Map
<
Long
,
AdviserBaseInfoDto
>
adviserInfoDtoMap
=
adviserConsr
.
getAdviserId2AdviserInfoDtoMap
(
Arrays
.
asList
(
adviserId
));
if
(
adviserInfoDtoMap
!=
null
)
{
AdviserBaseInfoDto
adviserBaseInfoDto
=
adviserInfoDtoMap
.
get
(
adviserId
);
bookDto
.
setAgentId
(
adviserBaseInfoDto
==
null
?
null
:
adviserBaseInfoDto
.
getAgentId
());
bookDto
.
setAgentName
(
adviserBaseInfoDto
==
null
?
null
:
adviserBaseInfoDto
.
getAgentName
());
},
REMOTE_CALL_POOL
);
// 设置模板名字
CompletableFuture
<
Void
>
fillTempletNameFuture
=
CompletableFuture
.
runAsync
(()
->
{
Map
<
Long
,
AssistTempletDTO
>
assistTempletDTOMap
=
assistTempletConsr
.
mapByIds
(
Stream
.
of
(
bookDto
.
getTempletId
(),
bookDto
.
getSecondTempletId
(),
bookDto
.
getThirdTempletId
())
.
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
()));
if
(
org
.
apache
.
commons
.
collections4
.
MapUtils
.
isNotEmpty
(
assistTempletDTOMap
))
{
bookDto
.
setTempletName
(
Optional
.
ofNullable
(
assistTempletDTOMap
.
get
(
bookDto
.
getTempletId
())).
map
(
AssistTempletDTO:
:
getTempletName
).
orElse
(
null
));
bookDto
.
setSecondTempletName
(
Optional
.
ofNullable
(
assistTempletDTOMap
.
get
(
bookDto
.
getSecondTempletId
())).
map
(
AssistTempletDTO:
:
getTempletName
).
orElse
(
null
));
bookDto
.
setThirdTempletName
(
Optional
.
ofNullable
(
assistTempletDTOMap
.
get
(
bookDto
.
getThirdTempletId
())).
map
(
AssistTempletDTO:
:
getTempletName
).
orElse
(
null
));
}
},
REMOTE_CALL_POOL
);
// 填充出版社
Long
finalAdviserId
=
adviserId
;
CompletableFuture
<
Void
>
fillAgentFuture
=
CompletableFuture
.
runAsync
(()
->
{
Map
<
Long
,
AdviserBaseInfoDto
>
adviserInfoDtoMap
=
adviserConsr
.
getAdviserId2AdviserInfoDtoMap
(
Collections
.
singletonList
(
finalAdviserId
));
if
(
org
.
apache
.
commons
.
collections4
.
MapUtils
.
isNotEmpty
(
adviserInfoDtoMap
))
{
bookDto
.
setAgentId
(
Optional
.
ofNullable
(
adviserInfoDtoMap
.
get
(
finalAdviserId
)).
map
(
AdviserBaseInfoDto:
:
getAgentId
).
orElse
(
null
));
bookDto
.
setAgentName
(
Optional
.
ofNullable
(
adviserInfoDtoMap
.
get
(
finalAdviserId
)).
map
(
AdviserBaseInfoDto:
:
getAgentName
).
orElse
(
null
));
}
},
REMOTE_CALL_POOL
);
try
{
CompletableFuture
.
allOf
(
fillAgentFuture
,
fillClassifyFuture
,
fillTempletNameFuture
).
get
();
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
LOGGER
.
warn
(
"获取书刊信息失败 [BookBizImpl.getAdviserBook] ERR:{}"
,
e
.
getMessage
(),
e
);
}
return
bookDto
;
}
...
...
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