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
43a14b7b
Commit
43a14b7b
authored
Jan 21, 2021
by
桂前礼
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: [none] 获取图书相关信息
parent
6fbc54a3
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
211 additions
and
0 deletions
+211
-0
BookBiz.java
...-book/src/main/java/com/pcloud/book/book/biz/BookBiz.java
+4
-0
BookBizImpl.java
.../main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
+93
-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
BookFacadeImpl.java
...java/com/pcloud/book/book/facade/impl/BookFacadeImpl.java
+9
-0
BookInfo4ScanCount.java
...main/java/com/pcloud/book/book/vo/BookInfo4ScanCount.java
+51
-0
BookInfo4ScanCountRequestVO.java
...oud/book/book/vo/request/BookInfo4ScanCountRequestVO.java
+10
-0
BookAdviser.Mapper.xml
...ook/src/main/resources/mapper/book/BookAdviser.Mapper.xml
+33
-0
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/BookBiz.java
View file @
43a14b7b
...
...
@@ -21,12 +21,14 @@ import com.pcloud.book.book.dto.RelateAdviserVO;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.BookLabel
;
import
com.pcloud.book.book.entity.SeriesBookRecord
;
import
com.pcloud.book.book.vo.BookInfo4ScanCount
;
import
com.pcloud.book.book.vo.BookLabelVO
;
import
com.pcloud.book.book.vo.BookQualifyVO
;
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.UpdateBookRobotProcessDto
;
...
...
@@ -787,4 +789,6 @@ public interface BookBiz {
PageBeanNew
<
BookDto
>
listPageBookMinimunSupport4Platform
(
Integer
currentPage
,
Integer
numPerPage
,
String
isbn
,
String
bookName
,
String
publish
,
String
serialNumber
,
Integer
isCurrentMonth
,
Integer
isOverdue
,
Long
agentId
)
throws
BizException
;
List
<
BookInfo4ScanCount
>
fetchBookListByScanCount
(
List
<
BookInfo4ScanCountRequestVO
>
requestVOS
);
}
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
View file @
43a14b7b
...
...
@@ -63,6 +63,7 @@ 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.ErpBookApprovalDTO
;
import
com.pcloud.book.book.dto.MapResourceTotalCountDTO
;
import
com.pcloud.book.book.dto.EditionAnalysisListVO
;
import
com.pcloud.book.book.dto.EditionAnalysisResultVO
;
...
...
@@ -81,12 +82,14 @@ 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.BookInfo4ScanCount
;
import
com.pcloud.book.book.vo.BookLabelVO
;
import
com.pcloud.book.book.vo.BookQualifyVO
;
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.UpdateBookRobotProcessDto
;
...
...
@@ -187,6 +190,7 @@ import java.util.concurrent.ExecutorService;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateUtil
;
...
...
@@ -3957,4 +3961,93 @@ public class BookBizImpl implements BookBiz {
}
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
totalCount
,
bookList
);
}
@Override
public
List
<
BookInfo4ScanCount
>
fetchBookListByScanCount
(
List
<
BookInfo4ScanCountRequestVO
>
requestVOS
)
{
List
<
Long
>
adviserIds
=
requestVOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookInfo4ScanCountRequestVO:
:
getAdviserId
).
collect
(
Collectors
.
toList
());
List
<
Long
>
bookIds
=
requestVOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookInfo4ScanCountRequestVO:
:
getBookId
).
collect
(
Collectors
.
toList
());
List
<
Long
>
channelIds
=
requestVOS
.
stream
().
filter
(
Objects:
:
nonNull
).
map
(
BookInfo4ScanCountRequestVO:
:
getChannelId
).
collect
(
Collectors
.
toList
());
// ERP查询是否立项
CompletableFuture
<
Map
<
String
,
ErpBookApprovalDTO
>>
isApprovalFuture
=
CompletableFuture
.
supplyAsync
(()
->
Optional
.
ofNullable
(
erpConsr
.
getIsApproval
(
adviserIds
,
channelIds
,
bookIds
)).
orElse
(
new
HashMap
<>()));
// 查询图书信息
CompletableFuture
<
List
<
BookInfo4ScanCount
>>
bookInfoFuture
=
CompletableFuture
.
supplyAsync
(()
->
Optional
.
ofNullable
(
bookAdviserDao
.
listBookInfo4ScanCount
(
adviserIds
,
channelIds
,
bookIds
)).
orElse
(
new
ArrayList
<>()));
// 等待结果返回
try
{
List
<
BookInfo4ScanCount
>
bookInfo4ScanCounts
=
bookInfoFuture
.
get
();
Map
<
Long
,
String
>
bookLabelMap
=
new
HashMap
<>();
Map
<
Long
,
String
>
centerLabelMap
=
new
HashMap
<>();
Map
<
Long
,
AssistTempletDTO
>
templetIdMap
=
new
HashMap
<>();
// 聚合所有的 bookLabelId
CompletableFuture
<
Void
>
bookLabelIdFuture
=
CompletableFuture
.
runAsync
(()
->
{
List
<
Long
>
bookLabelIds
=
Stream
.
of
(
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getGraLabelId
),
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getSubLabelId
),
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getVerLabelId
),
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getAreaLabelId
),
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getVolLabelId
)
).
flatMap
(
stream
->
stream
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
// 查询标签信息
bookLabelMap
.
putAll
(
Optional
.
ofNullable
(
bookLabelBiz
.
getLabelMapByIds
(
bookLabelIds
)).
orElse
(
new
HashMap
<>()));
});
// 聚合所有的 centerLabelId
CompletableFuture
<
Void
>
centerLabelIdFuture
=
CompletableFuture
.
runAsync
(()
->
{
List
<
Long
>
labelCenterIds
=
Stream
.
of
(
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getProLabelId
),
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getDepLabelId
),
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getPurLabelId
)
).
flatMap
(
stream
->
stream
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
centerLabelMap
.
putAll
(
Optional
.
ofNullable
(
labelConsr
.
getLabelName
(
labelCenterIds
)).
orElse
(
new
HashMap
<>()));
});
CompletableFuture
<
Void
>
templateFuture
=
CompletableFuture
.
runAsync
(()
->
{
List
<
Long
>
templetIds
=
Stream
.
of
(
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getTempletId
),
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getSecondTempletId
),
bookInfo4ScanCounts
.
stream
().
map
(
BookInfo4ScanCount:
:
getThirdTempletId
)
).
flatMap
(
stream
->
stream
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
templetIdMap
.
putAll
(
Optional
.
ofNullable
(
assistTempletConsr
.
mapByIds4Classify
(
templetIds
)).
orElse
(
new
HashMap
<>()));
});
// 等待所有任务完成
CompletableFuture
.
allOf
(
isApprovalFuture
,
bookLabelIdFuture
,
centerLabelIdFuture
,
templateFuture
).
get
();
Map
<
String
,
ErpBookApprovalDTO
>
isApprovalDTOMap
=
isApprovalFuture
.
get
();
// 填充所有信息
for
(
BookInfo4ScanCount
book
:
bookInfo4ScanCounts
)
{
// 填充 book_label
book
.
setGraLabelName
(
bookLabelMap
.
get
(
book
.
getGraLabelId
()));
book
.
setSubLabelName
(
bookLabelMap
.
get
(
book
.
getSubLabelId
()));
book
.
setVerLabelName
(
bookLabelMap
.
get
(
book
.
getVerLabelId
()));
book
.
setAreaLabelName
(
bookLabelMap
.
get
(
book
.
getAreaLabelId
()));
book
.
setVolLabelName
(
bookLabelMap
.
get
(
book
.
getVolLabelId
()));
// 填充 专业 目的 深度 标签
book
.
setProLabelName
(
centerLabelMap
.
get
(
book
.
getProLabelId
()));
book
.
setDepLabelName
(
centerLabelMap
.
get
(
book
.
getDepLabelId
()));
book
.
setPurLabelName
(
centerLabelMap
.
get
(
book
.
getPurLabelId
()));
// 填充书刊分类
book
.
setTempletName
(
Objects
.
nonNull
(
templetIdMap
.
get
(
book
.
getTempletId
()))?
templetIdMap
.
get
(
book
.
getTempletId
()).
getTempletName
():
null
);
book
.
setSecondTempletName
(
Objects
.
nonNull
(
templetIdMap
.
get
(
book
.
getSecondTempletId
()))?
templetIdMap
.
get
(
book
.
getSecondTempletId
()).
getTempletName
():
null
);
book
.
setThirdTempletName
(
Objects
.
nonNull
(
templetIdMap
.
get
(
book
.
getThirdTempletId
()))?
templetIdMap
.
get
(
book
.
getThirdTempletId
()).
getTempletName
():
null
);
// 填充 是否立项
book
.
setIsApproval
(
0
);
ErpBookApprovalDTO
erpBookApprovalDTO
=
isApprovalDTOMap
.
get
(
book
.
getBookId
()
+
"-"
+
book
.
getAdviserId
()
+
"-"
+
book
.
getChannelId
());
if
(
Objects
.
isNull
(
erpBookApprovalDTO
)
||
Objects
.
isNull
(
erpBookApprovalDTO
.
getIsApproval
()))
{
book
.
setIsApproval
(
1
);
}
}
return
bookInfo4ScanCounts
;
}
catch
(
Exception
e
)
{
LOGGER
.
warn
(
"fetchBookListByScanCount 失败 requestVOS:{}"
,
requestVOS
,
e
);
}
return
new
ArrayList
<>();
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/BookAdviserDao.java
View file @
43a14b7b
...
...
@@ -14,6 +14,7 @@ import com.pcloud.book.book.dto.ERPPublishNumDTO;
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.ErpAdviserBookVO
;
import
com.pcloud.book.es.entity.ESBookAndAdviser
;
import
com.pcloud.common.core.dao.BaseDao
;
...
...
@@ -307,4 +308,6 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
void
updateBookTempletAndLabel
(
BookAdviser
bookAdviser
);
void
syncTempletId4ES
(
ResultHandler
<
ESBookAndAdviser
>
resultHandler
);
List
<
BookInfo4ScanCount
>
listBookInfo4ScanCount
(
List
<
Long
>
adviserIds
,
List
<
Long
>
channelIds
,
List
<
Long
>
bookIds
);
}
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/impl/BookAdviserDaoImpl.java
View file @
43a14b7b
...
...
@@ -19,6 +19,7 @@ import com.pcloud.book.book.dto.ERPPublishNumDTO;
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.ErpAdviserBookVO
;
import
com.pcloud.book.es.entity.ESBookAndAdviser
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
...
...
@@ -369,4 +370,11 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
super
.
getSqlSession
().
select
(
getStatement
(
"syncTempletId4ES"
),
resultHandler
);
}
@Override
public
List
<
BookInfo4ScanCount
>
listBookInfo4ScanCount
(
List
<
Long
>
adviserIds
,
List
<
Long
>
channelIds
,
List
<
Long
>
bookIds
)
{
HashMap
<
String
,
List
<
Long
>>
param
=
MapUtil
.
of
(
"adviserIds"
,
adviserIds
);
param
.
put
(
"channelIds"
,
channelIds
);
param
.
put
(
"bookIds"
,
bookIds
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"listBookInfo4ScanCount"
),
param
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/facade/impl/BookFacadeImpl.java
View file @
43a14b7b
...
...
@@ -3,6 +3,7 @@
*/
package
com
.
pcloud
.
book
.
book
.
facade
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
com.google.common.collect.Lists
;
import
com.pcloud.book.base.exception.BookBizException
;
...
...
@@ -19,10 +20,12 @@ import com.pcloud.book.book.dto.RelateAdviserVO;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.SeriesBookRecord
;
import
com.pcloud.book.book.facade.BookFacade
;
import
com.pcloud.book.book.vo.BookInfo4ScanCount
;
import
com.pcloud.book.book.vo.BookQualifyVO
;
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.dto.BookUniqueNumberDTO
;
...
...
@@ -1328,4 +1331,10 @@ public class BookFacadeImpl implements BookFacade {
}
return
new
ResponseDto
<>(
bookBiz
.
listPageBookMinimunSupport4Platform
(
currentPage
,
numPerPage
,
isbn
,
bookName
,
publish
,
serialNumber
,
isCurrentMonth
,
isOverdue
,
agentId
));
}
@PostMapping
(
"fetchBookListByScanCount"
)
public
ResponseDto
<
List
<
BookInfo4ScanCount
>>
fetchBookListByScanCount
(
@RequestBody
List
<
BookInfo4ScanCountRequestVO
>
requestVOS
)
{
if
(
CollUtil
.
isEmpty
(
requestVOS
))
return
new
ResponseDto
<>();
return
new
ResponseDto
<>(
bookBiz
.
fetchBookListByScanCount
(
requestVOS
));
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/vo/BookInfo4ScanCount.java
0 → 100644
View file @
43a14b7b
package
com
.
pcloud
.
book
.
book
.
vo
;
import
lombok.Data
;
@Data
public
class
BookInfo4ScanCount
{
private
Long
bookId
;
private
Long
bookAdviserId
;
private
Long
adviserId
;
private
Long
channelId
;
private
Long
templetId
;
private
String
templetName
;
private
Long
secondTempletId
;
private
String
secondTempletName
;
private
Long
thirdTempletId
;
private
String
thirdTempletName
;
private
Long
proLabelId
;
private
String
proLabelName
;
private
Long
depLabelId
;
private
String
depLabelName
;
private
Long
purLabelId
;
private
String
purLabelName
;
private
Long
graLabelId
;
private
String
graLabelName
;
private
Long
subLabelId
;
private
String
subLabelName
;
private
Long
verLabelId
;
private
String
verLabelName
;
private
Long
areaLabelId
;
private
String
areaLabelName
;
private
Long
volLabelId
;
private
String
volLabelName
;
private
Integer
isApproval
;
}
pcloud-service-book/src/main/java/com/pcloud/book/book/vo/request/BookInfo4ScanCountRequestVO.java
0 → 100644
View file @
43a14b7b
package
com
.
pcloud
.
book
.
book
.
vo
.
request
;
import
lombok.Data
;
@Data
public
class
BookInfo4ScanCountRequestVO
{
private
Long
bookId
;
private
Long
adviserId
;
private
Long
channelId
;
}
pcloud-service-book/src/main/resources/mapper/book/BookAdviser.Mapper.xml
View file @
43a14b7b
...
...
@@ -1014,4 +1014,37 @@
group by BOOK_ID
</select>
<select
id=
"listBookInfo4ScanCount"
parameterType=
"map"
resultType=
"com.pcloud.book.book.vo.BookInfo4ScanCount"
>
select BOOK_ADVISER_ID AS bookAdviserId,
BOOK_ID AS bookId,
ADVISER_ID AS adviserId,
CHANNEL_ID AS channelId,
TEMPLET_ID AS templetId,
SECOND_TEMPLET_ID AS secondTempletId,
third_templet_id AS thirdTempletId,
pro_label_id AS proLabelId,
dep_label_id AS depLabelId,
pur_label_id AS purLabelId,
GRA_LABEL_ID AS graLabelId,
SUB_LABEL_ID AS subLabelId,
VER_LABEL_ID AS verLabelId,
AREA_LABEL_ID AS areaLabelId,
vol_label_id AS volLabelId
from book_adviser
where
BOOK_ID IN
<foreach
collection=
"bookIds"
index=
"index"
item=
"item"
open=
"("
separator=
","
close=
")"
>
${item}
</foreach>
AND ADVISER_ID IN
<foreach
collection=
"adviserIds"
index=
"index"
item=
"item"
open=
"("
separator=
","
close=
")"
>
${item}
</foreach>
AND CHANNEL_ID IN
<foreach
collection=
"channelIds"
index=
"index"
item=
"item"
open=
"("
separator=
","
close=
")"
>
${item}
</foreach>
</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