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
9de16684
Commit
9de16684
authored
Dec 30, 2020
by
李传峰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:[none] 重建book es索引,平台查询切es查询
parent
6ea6b933
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
270 additions
and
2 deletions
+270
-2
pom.xml
pcloud-service-book/pom.xml
+8
-0
BookElasticSearchBizImpl.java
...m/pcloud/book/book/biz/impl/BookElasticSearchBizImpl.java
+126
-0
BookFacadeImpl.java
...java/com/pcloud/book/book/facade/impl/BookFacadeImpl.java
+24
-2
BookElasticSearchConsr.java
...k/consumer/book/elasticsearch/BookElasticSearchConsr.java
+37
-0
Converter.java
.../src/main/java/com/pcloud/book/util/common/Converter.java
+41
-0
PlatformBookSearchFacadeTest.java
...va/com.pcloud.book.test/PlatformBookSearchFacadeTest.java
+34
-0
No files found.
pcloud-service-book/pom.xml
View file @
9de16684
...
...
@@ -18,6 +18,8 @@
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<pcloud-book-elasticsearch-api.version>
1.0.1-SNAPSHOT
</pcloud-book-elasticsearch-api.version>
</properties>
<dependencies>
...
...
@@ -320,6 +322,12 @@
</exclusions>
</dependency>
<dependency>
<groupId>
com.pcloud.book.elasticsearch
</groupId>
<artifactId>
pcloud-book-elasticsearch-api
</artifactId>
<version>
${pcloud-book-elasticsearch-api.version}
</version>
</dependency>
</dependencies>
<build>
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookElasticSearchBizImpl.java
0 → 100644
View file @
9de16684
package
com
.
pcloud
.
book
.
book
.
biz
.
impl
;
import
com.pcloud.book.base.enums.BookFreezeEnum
;
import
com.pcloud.book.book.dao.BookTypeDao
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookFundDto
;
import
com.pcloud.book.book.dto.BookTypeDto
;
import
com.pcloud.book.consumer.book.elasticsearch.BookElasticSearchConsr
;
import
com.pcloud.book.consumer.user.PartyConsr
;
import
com.pcloud.book.elasticsearch7.entity.EsBook
;
import
com.pcloud.book.elasticsearch7.entity.EsBookFreeze
;
import
com.pcloud.book.elasticsearch7.search.domain.dto.param.PlatformSearchDto
;
import
com.pcloud.book.util.common.Converter
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.universe.commons.paging.Pagination
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang3.BooleanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
@Service
public
class
BookElasticSearchBizImpl
{
@Autowired
private
PartyConsr
partyConsr
;
@Autowired
private
BookTypeDao
bookTypeDao
;
@Autowired
private
BookElasticSearchConsr
bookElasticSearchConsr
;
public
PageBeanNew
<
BookDto
>
getListPage
(
PlatformSearchDto
dto
)
throws
BizException
{
Pagination
<
EsBook
>
esResult
=
bookElasticSearchConsr
.
search
(
dto
);
List
<
BookDto
>
bookList
=
new
ArrayList
<>();
// 获取平台端所有账号用户名
if
(
CollectionUtils
.
isNotEmpty
(
esResult
.
getList
()))
{
Map
<
Long
,
String
>
pcloudUserMap
=
partyConsr
.
getAllUserLoginName
(
0L
,
SystemCode
.
pcloud
.
code
);
Map
<
String
,
BookTypeDto
>
typeCodeMap
=
bookTypeDao
.
getTypeCodeMap
();
esResult
.
getList
().
forEach
((
esBook
)
->
bookList
.
add
(
doBookProcess
(
esBook
,
pcloudUserMap
,
typeCodeMap
)));
}
PageBeanNew
<
BookDto
>
result
=
new
PageBeanNew
<>();
result
.
setCurrentPage
(
esResult
.
getCurrentPage
());
result
.
setNumPerPage
(
esResult
.
getPageSize
());
result
.
setRecordList
(
bookList
);
result
.
setTotalCount
((
int
)
esResult
.
getTotalCount
());
return
result
;
}
private
BookDto
doBookProcess
(
EsBook
esBook
,
Map
<
Long
,
String
>
pcloudUserMap
,
Map
<
String
,
BookTypeDto
>
typeCodeMap
)
{
BookDto
bookDto
=
Converter
.
convert
(
esBook
);
Integer
freezeStatus
=
BookFreezeEnum
.
WAIT_FREEZE
.
value
;
boolean
isFundSupport
=
false
;
EsBookFreeze
bf
=
findOneByOrderFreezetime
(
esBook
.
getBookFreezeList
());
String
transferor
=
bf
==
null
?
null
:
bf
.
getTransferor
();
if
(
CollectionUtils
.
isNotEmpty
(
bookDto
.
getBookFunds
()))
{
for
(
BookFundDto
bookFundDto
:
bookDto
.
getBookFunds
())
{
transferor
=
Optional
.
ofNullable
(
transferor
).
orElseGet
(
bookFundDto:
:
getTransferor
);
Date
startTime
=
bookFundDto
.
getStartTime
();
Date
endTime
=
bookFundDto
.
getEndTime
();
if
(
new
Date
().
before
(
startTime
))
{
bookFundDto
.
setButton
(
2
);
freezeStatus
=
BookFreezeEnum
.
NO_FREEZE
.
value
;
}
else
if
(
new
Date
().
after
(
startTime
)
&&
new
Date
().
before
(
endTime
))
{
bookFundDto
.
setButton
(
1
);
freezeStatus
=
BookFreezeEnum
.
NO_FREEZE
.
value
;
}
else
{
bookFundDto
.
setButton
(
0
);
}
bookFundDto
.
setOperateUserName
(
MapUtils
.
getString
(
pcloudUserMap
,
bookFundDto
.
getLastModifiedUser
(),
bookFundDto
.
getOperateUserName
()));
isFundSupport
=
new
Date
().
before
(
endTime
);
}
bookDto
.
setIsHaveFund
(
true
);
}
bookDto
.
setTransferor
(
transferor
);
bookDto
.
setIsFundSupport
(
isFundSupport
);
bookDto
.
setFreezeStatus
(
freezeStatus
);
bookDto
.
setIsHaveAdviser
(
esBook
.
getIsAdviserBook
()
&&
esBook
.
getIsBookAdviserDelete
());
bookDto
.
setFreezeStatus
(
BooleanUtils
.
toIntegerObject
(
findFreezedRecord
(
esBook
.
getBookFreezeList
())
!=
null
,
BookFreezeEnum
.
FREEZE
.
value
,
null
));
BookTypeDto
bookTypeDto
=
MapUtils
.
getObject
(
typeCodeMap
,
bookDto
.
getTypeCode
());
bookDto
.
setTypeName
(
Optional
.
ofNullable
(
bookTypeDto
).
orElseGet
(
BookTypeDto:
:
new
).
getTypeName
());
return
bookDto
;
}
private
EsBookFreeze
findOneByOrderFreezetime
(
List
<
EsBookFreeze
>
fs
)
{
if
(
CollectionUtils
.
isEmpty
(
fs
))
{
return
null
;
}
fs
.
sort
(
Comparator
.
comparing
(
EsBookFreeze:
:
getFreezetime
).
reversed
());
return
fs
.
get
(
0
);
}
private
EsBookFreeze
findFreezedRecord
(
List
<
EsBookFreeze
>
fs
)
{
if
(
CollectionUtils
.
isEmpty
(
fs
))
{
return
null
;
}
return
fs
.
stream
().
filter
((
f
)
->
f
.
getIsFreeze
()
==
BookFreezeEnum
.
FREEZE
.
value
.
intValue
())
.
findFirst
().
orElse
(
null
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/facade/impl/BookFacadeImpl.java
View file @
9de16684
...
...
@@ -8,6 +8,7 @@ import com.google.common.collect.Lists;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.book.book.biz.BookLabelBiz
;
import
com.pcloud.book.book.biz.impl.BookElasticSearchBizImpl
;
import
com.pcloud.book.book.dto.AdviserBookInfoDTO
;
import
com.pcloud.book.book.dto.BookAssocCount
;
import
com.pcloud.book.book.dto.BookDetialDTO
;
...
...
@@ -26,6 +27,8 @@ import com.pcloud.book.book.vo.request.BookQualifyInfoVO;
import
com.pcloud.book.book.vo.request.BookSearchParamVO
;
import
com.pcloud.book.book.dto.BookUniqueNumberDTO
;
import
com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto
;
import
com.pcloud.book.elasticsearch7.constants.SwitchKey
;
import
com.pcloud.book.elasticsearch7.search.domain.dto.param.PlatformSearchDto
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
...
...
@@ -37,6 +40,7 @@ import com.pcloud.common.permission.PermissionCode.ServerPermissionCode;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
com.pcloud.common.utils.string.StringUtil
;
...
...
@@ -79,6 +83,9 @@ public class BookFacadeImpl implements BookFacade {
@Autowired
private
BookLabelBiz
bookLabelBiz
;
@Autowired
private
BookElasticSearchBizImpl
bookElasticSearchBiz
;
/**
* 创建书籍
*/
...
...
@@ -256,8 +263,23 @@ public class BookFacadeImpl implements BookFacade {
if
(
currentPage
==
null
||
numPerPage
==
null
||
currentPage
<
0
||
numPerPage
<
0
)
{
throw
BookBizException
.
PAGE_PARAM_DELETION
;
}
return
new
ResponseDto
<>(
bookBiz
.
getListPage
(
isbn
,
bookName
,
publish
,
fundName
,
serialNumber
,
isCurrentMonth
,
currentPage
,
numPerPage
));
if
(
JedisClusterUtils
.
exists
(
SwitchKey
.
PLATFORM_SEARCH_ELASTICSEARCH
))
{
PlatformSearchDto
param
=
new
PlatformSearchDto
();
param
.
setPublish
(
publish
);
param
.
setFundName
(
fundName
);
param
.
setBookName
(
bookName
);
param
.
setIsbn
(
isbn
);
param
.
setSerialNumber
(
serialNumber
);
param
.
setIsCurrentMonth
(
isCurrentMonth
);
param
.
setCurrentPage
(
currentPage
);
param
.
setPageSize
(
numPerPage
);
return
new
ResponseDto
<>(
bookElasticSearchBiz
.
getListPage
(
param
));
}
else
{
return
new
ResponseDto
<>(
bookBiz
.
getListPage
(
isbn
,
bookName
,
publish
,
fundName
,
serialNumber
,
isCurrentMonth
,
currentPage
,
numPerPage
));
}
}
/**
...
...
pcloud-service-book/src/main/java/com/pcloud/book/consumer/book/elasticsearch/BookElasticSearchConsr.java
0 → 100644
View file @
9de16684
package
com
.
pcloud
.
book
.
consumer
.
book
.
elasticsearch
;
import
com.pcloud.book.consumer.reader.ReaderConsr
;
import
com.pcloud.book.elasticsearch7.entity.EsBook
;
import
com.pcloud.book.elasticsearch7.search.domain.dto.param.PlatformSearchDto
;
import
com.pcloud.book.elasticsearch7.search.facade.PlatformBookSearchFacade
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.universe.commons.paging.Pagination
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* book elasticsearch
*/
@Component
public
class
BookElasticSearchConsr
{
/**
* logger
*/
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Autowired
private
PlatformBookSearchFacade
platformBookSearchFacade
;
public
Pagination
<
EsBook
>
search
(
PlatformSearchDto
dto
)
{
try
{
ResponseDto
<
Pagination
<
EsBook
>>
r
=
platformBookSearchFacade
.
search
(
dto
);
return
r
.
getData
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"platform book es search exception."
,
e
);
}
return
new
Pagination
<>();
}
}
pcloud-service-book/src/main/java/com/pcloud/book/util/common/Converter.java
0 → 100644
View file @
9de16684
package
com
.
pcloud
.
book
.
util
.
common
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookFundDto
;
import
com.pcloud.book.elasticsearch7.entity.EsBook
;
import
com.pcloud.book.elasticsearch7.entity.EsBookFund
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.cglib.beans.BeanCopier
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.List
;
public
class
Converter
{
private
Converter
()
{}
private
static
final
BeanCopier
BOOK_COPIER
=
BeanCopier
.
create
(
EsBook
.
class
,
BookDto
.
class
,
false
);
private
static
final
BeanCopier
FUND_COPIER
=
BeanCopier
.
create
(
EsBookFund
.
class
,
BookFundDto
.
class
,
false
);
public
static
BookDto
convert
(
EsBook
book
)
{
if
(
book
==
null
)
{
return
null
;
}
BookDto
dto
=
new
BookDto
();
BOOK_COPIER
.
copy
(
book
,
dto
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
book
.
getBookFundList
()))
{
List
<
BookFundDto
>
funds
=
new
ArrayList
<>();
book
.
getBookFundList
().
forEach
((
f
)
->
{
BookFundDto
fundDto
=
new
BookFundDto
();
FUND_COPIER
.
copy
(
f
,
fundDto
,
null
);
funds
.
add
(
fundDto
);
});
funds
.
sort
(
Comparator
.
comparing
(
BookFundDto:
:
getStartTime
).
reversed
());
dto
.
setBookFunds
(
funds
);
}
return
dto
;
}
}
pcloud-service-book/src/test/java/com.pcloud.book.test/PlatformBookSearchFacadeTest.java
0 → 100644
View file @
9de16684
package
com
.
pcloud
.
book
.
test
;
import
com.alibaba.fastjson.JSON
;
import
com.pcloud.book.BookApplication
;
import
com.pcloud.book.elasticsearch7.entity.EsBook
;
import
com.pcloud.book.elasticsearch7.search.domain.dto.param.PlatformSearchDto
;
import
com.pcloud.book.elasticsearch7.search.facade.PlatformBookSearchFacade
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.universe.commons.paging.Pagination
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
@Slf4j
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringBootTest
(
classes
=
{
BookApplication
.
class
})
public
class
PlatformBookSearchFacadeTest
{
@Autowired
private
PlatformBookSearchFacade
platformBookSearchFacade
;
@Test
public
void
testSearch
()
{
PlatformSearchDto
dto
=
new
PlatformSearchDto
();
dto
.
setFundName
(
" 上海基金"
);
ResponseDto
<
Pagination
<
EsBook
>>
r
=
platformBookSearchFacade
.
search
(
dto
);
log
.
info
(
JSON
.
toJSONString
(
r
));
}
}
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