Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
service-campaign
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nguyen Ha
service-campaign
Commits
35286c07
Commit
35286c07
authored
Aug 21, 2019
by
đinh thị đầm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
search customize
parent
1be7161f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
0 deletions
+54
-0
src/main/java/com/viettel/campaign/service/CustomerService.java
...in/java/com/viettel/campaign/service/CustomerService.java
+2
-0
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
...om/viettel/campaign/service/impl/CustomerServiceImpl.java
+38
-0
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
...ava/com/viettel/campaign/web/rest/CustomerController.java
+14
-0
No files found.
src/main/java/com/viettel/campaign/service/CustomerService.java
View file @
35286c07
...
...
@@ -70,4 +70,6 @@ public interface CustomerService {
Map
<
String
,
Object
>
readAndValidateCustomer
(
String
path
,
List
<
CustomizeFields
>
headerDTOS
,
UserSession
userSession
,
Long
customerListId
);
List
<
CustomizeFieldObject
>
getCustomizeField
(
Long
customerId
);
List
<
Customer
>
searchByQuery
(
String
queryString
);
Long
countByQuery
(
String
queryString
);
}
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
View file @
35286c07
package
com.viettel.campaign.service.impl
;
import
com.github.tennaito.rsql.jpa.JpaCriteriaCountQueryVisitor
;
import
com.github.tennaito.rsql.jpa.JpaCriteriaQueryVisitor
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.mapper.CustomerListMapper
;
import
com.viettel.campaign.mapper.CustomerMapper
;
...
...
@@ -12,6 +14,9 @@ import com.viettel.campaign.web.dto.request_dto.CustomerDetailRequestDTO;
import
com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO
;
import
com.viettel.econtact.filter.UserSession
;
import
cz.jirutka.rsql.parser.RSQLParser
;
import
cz.jirutka.rsql.parser.ast.Node
;
import
cz.jirutka.rsql.parser.ast.RSQLVisitor
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.ss.util.CellRangeAddressList
;
...
...
@@ -37,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.Query
;
import
javax.persistence.criteria.CriteriaQuery
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.FileInputStream
;
...
...
@@ -1553,4 +1559,36 @@ public class CustomerServiceImpl implements CustomerService {
public
Customer
update
(
Customer
c
)
{
return
customerRepository
.
save
(
c
);
}
@Override
public
List
<
Customer
>
searchByQuery
(
String
queryString
)
{
RSQLVisitor
<
CriteriaQuery
<
Customer
>,
EntityManager
>
visitor
=
new
JpaCriteriaQueryVisitor
<>();
CriteriaQuery
<
Customer
>
query
;
query
=
getCriteriaQuery
(
queryString
,
visitor
);
List
<
Customer
>
resultList
=
entityManager
.
createQuery
(
query
).
getResultList
();
if
(
resultList
==
null
||
resultList
.
isEmpty
()){
return
Collections
.
emptyList
();
}
return
resultList
;
}
@Override
public
Long
countByQuery
(
String
queryString
)
{
RSQLVisitor
<
CriteriaQuery
<
Long
>,
EntityManager
>
visitor
=
new
JpaCriteriaCountQueryVisitor
<
Customer
>();
CriteriaQuery
<
Long
>
query
;
query
=
getCriteriaQuery
(
queryString
,
visitor
);
return
entityManager
.
createQuery
(
query
).
getSingleResult
();
}
private
<
T
>
CriteriaQuery
<
T
>
getCriteriaQuery
(
String
queryString
,
RSQLVisitor
<
CriteriaQuery
<
T
>,
EntityManager
>
visitor
)
{
Node
rootNode
;
CriteriaQuery
<
T
>
query
;
try
{
rootNode
=
new
RSQLParser
().
parse
(
queryString
);
query
=
rootNode
.
accept
(
visitor
,
entityManager
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
throw
new
IllegalArgumentException
(
e
.
getMessage
());
}
return
query
;
}
}
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
View file @
35286c07
package
com.viettel.campaign.web.rest
;
import
com.viettel.campaign.model.ccms_full.Customer
;
import
com.viettel.campaign.model.ccms_full.CustomizeFieldObject
;
import
com.viettel.campaign.model.ccms_full.CustomizeFields
;
import
com.viettel.campaign.service.CustomerService
;
...
...
@@ -16,6 +17,7 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -248,4 +250,16 @@ public class CustomerController {
}
return
null
;
}
@GetMapping
(
path
=
""
,
produces
=
{
MediaType
.
APPLICATION_JSON_VALUE
})
public
ResponseEntity
<
List
<
Customer
>>
query
(
@RequestParam
(
value
=
"search"
)
String
query
)
{
List
<
Customer
>
result
=
null
;
try
{
result
=
customerService
.
searchByQuery
(
query
);
}
catch
(
IllegalArgumentException
iae
){
return
ResponseEntity
.
status
(
HttpStatus
.
BAD_REQUEST
)
.
body
(
result
);
}
return
ResponseEntity
.
status
(
HttpStatus
.
OK
)
.
body
(
result
);
}
}
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