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
6b5fc1eb
Commit
6b5fc1eb
authored
5 years ago
by
đinh thị đầm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
search customize individual
parent
007d694d
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
164 additions
and
31 deletions
+164
-31
src/main/java/com/viettel/campaign/ServiceCampaignApplication.java
...java/com/viettel/campaign/ServiceCampaignApplication.java
+0
-1
src/main/java/com/viettel/campaign/filter/CorsFilter.java
src/main/java/com/viettel/campaign/filter/CorsFilter.java
+21
-21
src/main/java/com/viettel/campaign/model/ccms_full/CustomizeField.java
.../com/viettel/campaign/model/ccms_full/CustomizeField.java
+0
-4
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCfgRepository.java
.../campaign/repository/ccms_full/CampaignCfgRepository.java
+1
-1
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCustomerRepository.java
...aign/repository/ccms_full/CampaignCustomerRepository.java
+16
-0
src/main/java/com/viettel/campaign/repository/ccms_full/CustomerRepository.java
...tel/campaign/repository/ccms_full/CustomerRepository.java
+2
-0
src/main/java/com/viettel/campaign/service/CustomerService.java
...in/java/com/viettel/campaign/service/CustomerService.java
+8
-0
src/main/java/com/viettel/campaign/service/impl/CampaignCfgServiceImpl.java
...viettel/campaign/service/impl/CampaignCfgServiceImpl.java
+2
-1
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
...om/viettel/campaign/service/impl/CustomerServiceImpl.java
+55
-1
src/main/java/com/viettel/campaign/web/dto/CustomizeFielObjectDTO.java
.../com/viettel/campaign/web/dto/CustomizeFielObjectDTO.java
+43
-0
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
...ava/com/viettel/campaign/web/rest/CustomerController.java
+15
-1
src/main/resources/application.yml
src/main/resources/application.yml
+1
-1
No files found.
src/main/java/com/viettel/campaign/ServiceCampaignApplication.java
View file @
6b5fc1eb
...
...
@@ -15,7 +15,6 @@ public class ServiceCampaignApplication {
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ServiceCampaignApplication
.
class
,
args
);
RedisUtil
redis
=
new
RedisUtil
(
Config
.
redisAddress
,
Config
.
redisTimeout
);
redis
.
setup
();
}
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/filter/CorsFilter.java
View file @
6b5fc1eb
...
...
@@ -31,27 +31,27 @@ public class CorsFilter implements Filter {
HttpServletRequest
request
=
(
HttpServletRequest
)
req
;
//
chain.doFilter(req, resp);
if
(
"OPTIONS"
.
equalsIgnoreCase
(
request
.
getMethod
()))
{
chain
.
doFilter
(
req
,
resp
);
return
;
}
if
(
"/"
.
equals
(
request
.
getRequestURI
()))
{
chain
.
doFilter
(
req
,
resp
);
return
;
}
String
xAuthToken
=
request
.
getHeader
(
"X-Auth-Token"
);
if
(
xAuthToken
==
null
||
""
.
equals
(
xAuthToken
))
{
response
.
sendError
(
HttpServletResponse
.
SC_UNAUTHORIZED
,
"The token is null."
);
return
;
}
Object
obj
=
RedisUtil
.
getInstance
().
get
(
xAuthToken
);
if
(
obj
instanceof
UserSession
)
{
chain
.
doFilter
(
req
,
resp
);
}
else
{
response
.
sendError
(
HttpServletResponse
.
SC_UNAUTHORIZED
,
"The token is invalid."
);
}
chain
.
doFilter
(
req
,
resp
);
//
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
//
chain.doFilter(req, resp);
//
return;
//
}
//
if ("/".equals(request.getRequestURI())) {
//
chain.doFilter(req, resp);
//
return;
//
}
//
String xAuthToken = request.getHeader("X-Auth-Token");
//
if (xAuthToken == null || "".equals(xAuthToken)) {
//
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is null.");
//
return;
//
}
//
Object obj = RedisUtil.getInstance().get(xAuthToken);
//
if (obj instanceof UserSession) {
//
chain.doFilter(req, resp);
//
} else {
//
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is invalid.");
//
}
}
@Override
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/model/ccms_full/CustomizeField.java
deleted
100644 → 0
View file @
007d694d
package
com.viettel.campaign.model.ccms_full
;
public
class
CustomizeField
{
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCfgRepository.java
View file @
6b5fc1eb
...
...
@@ -14,7 +14,7 @@ import java.util.List;
@Repository
public
interface
CampaignCfgRepository
extends
JpaRepository
<
CampaignCfg
,
Long
>{
@Query
(
" select u FROM CampaignCfg u WHERE u.status = 1"
)
@Query
(
" select u FROM CampaignCfg u WHERE u.status = 1
and u.completeValue not in (1,2,3,4)
"
)
Page
<
CampaignCfg
>
findAll
(
Pageable
pageable
);
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCustomerRepository.java
View file @
6b5fc1eb
...
...
@@ -2,11 +2,13 @@ package com.viettel.campaign.repository.ccms_full;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.ccms_full.CampaignCustomer
;
import
com.viettel.campaign.model.ccms_full.Customer
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.List
;
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
...
...
@@ -33,4 +35,18 @@ public interface CampaignCustomerRepository extends JpaRepository<CampaignCustom
" AND cc.recall_time <= SYSDATE\n"
+
" AND cc.recall_time + interval :apParam MINUTE >= SYSDATE"
,
nativeQuery
=
true
)
List
<
CampaignCustomer
>
getCustomerRecallDate
(
@Param
(
"campaignId"
)
Long
campaignId
,
@Param
(
"agentId"
)
Long
agentId
,
@Param
(
"companySiteId"
)
Long
companySiteId
,
@Param
(
"apParam"
)
String
apParam
);
@Query
(
"SELECT c FROM Customer c WHERE (?1 LIKE CONCAT('%', c.customerId, '%') AND ?1 = c.customerId)"
+
"AND ?2 LIKE CONCAT('%', c.name, '%')"
+
"AND ?2 LIKE CONCAT('%', c.companyName, '%')"
+
"AND ?3 LIKE CONCAT('%', c.gender, '%')"
+
"AND c.status = 1 "
+
"AND ?4 LIKE CONCAT('%', c.currentAddress, '%')"
+
"AND ?5 LIKE CONCAT('%', c.placeOfBirth, '%')"
+
"AND ?6 LIKE CONCAT('%', c.dateOfBirth, '%')"
+
"AND ?8 LIKE CONCAT('%', c.mobileNumber, '%')"
+
"AND ?9 LIKE CONCAT('%', c.email, '%')"
+
"AND ?10 LIKE CONCAT('%', c.userName, '%')"
+
"AND ?11 LIKE CONCAT('%', c.customerType, '%')"
)
List
<
Customer
>
filterCustomer
(
Long
customerId
,
String
name
,
String
companyName
,
Short
gender
,
String
currentAddress
,
String
placeOfBirth
,
Date
dateOfBirth
,
String
mobileNumber
,
String
email
,
String
userName
,
Long
customerType
);
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/repository/ccms_full/CustomerRepository.java
View file @
6b5fc1eb
...
...
@@ -32,4 +32,6 @@ public interface CustomerRepository extends JpaRepository<Customer, Long> {
@Query
(
"select c from Customer c left join com.viettel.campaign.model.ccms_full.CustomerTime ct on c.customerId = ct.customerId "
+
"where c.ipccStatus = 'locked' and c.siteId =?1 and ct.endTime <= ?2"
)
List
<
Customer
>
findAllByCondition
(
Long
siteId
,
Date
endTime
);
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CustomerService.java
View file @
6b5fc1eb
...
...
@@ -68,4 +68,12 @@ public interface CustomerService {
void
buildTemplate
(
Long
companySiteId
);
List
<
CustomizeFieldDTO
>
getCustomizeField
(
Long
customerId
);
//--------------search customer---------------//
// ResultDTO getCustomerFields(Long companySiteId, Long customerListId, Long customerId);
List
<
Customer
>
searchByQuery
(
String
queryString
);
Long
countByQuery
(
String
queryString
);
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/impl/CampaignCfgServiceImpl.java
View file @
6b5fc1eb
...
...
@@ -83,6 +83,7 @@ public class CampaignCfgServiceImpl implements CampaignCfgService {
sb
.
append
(
" and COMPANY_SITE_ID = :p_company_site_id"
);
SQLQuery
query
=
session
.
createSQLQuery
(
sb
.
toString
());
query
.
setParameter
(
"p_company_site_id"
,
companySiteId
);
...
...
@@ -290,7 +291,7 @@ public class CampaignCfgServiceImpl implements CampaignCfgService {
sb
.
append
(
"SELECT max(to_number(COMPLETE_VALUE)) completeValue, COMPANY_SITE_ID "
);
sb
.
append
(
" companySiteId from CAMPAIGN_COMPLETE_CODE where COMPANY_SITE_ID = :p_site_id "
);
sb
.
append
(
" GROUP BY COMPANY_SITE_ID"
);
sb
.
append
(
" GROUP BY COMPANY_SITE_ID
"
);
SQLQuery
query
=
session
.
createSQLQuery
(
sb
.
toString
());
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
View file @
6b5fc1eb
package
com.viettel.campaign.service.impl
;
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
;
...
...
@@ -16,6 +17,7 @@ import com.viettel.campaign.web.dto.*;
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
cz.jirutka.rsql.parser.ast.RSQLVisitor
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
...
...
@@ -39,13 +41,29 @@ import org.springframework.util.ResourceUtils;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.Query
;
import
javax.persistence.criteria.CriteriaQuery
;
import
java.io.FileInputStream
;
import
java.io.FileOutputStream
;
import
java.util.*
;
import
com.github.tennaito.rsql.jpa.JpaCriteriaCountQueryVisitor
;
import
com.github.tennaito.rsql.jpa.JpaCriteriaQueryVisitor
;
import
cz.jirutka.rsql.parser.RSQLParser
;
import
cz.jirutka.rsql.parser.ast.Node
;
import
cz.jirutka.rsql.parser.ast.RSQLVisitor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.persistence.EntityManager
;
import
javax.persistence.criteria.CriteriaQuery
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
@Service
public
class
CustomerServiceImpl
implements
CustomerService
{
;
@Autowired
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
EntityManager
entityManager
;
...
...
@@ -955,6 +973,8 @@ public class CustomerServiceImpl implements CustomerService {
return
customizeFieldDTOList
;
}
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
List
<
CustomerListDTO
>
getCustomerListInfo
(
CampaignCustomerDTO
campaignCustomerDTO
)
{
...
...
@@ -1090,4 +1110,38 @@ public class CustomerServiceImpl implements CustomerService {
public
Customer
update
(
Customer
c
)
{
return
customerRepository
.
save
(
c
);
}
//--------search customer -----//
@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
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/dto/CustomizeFielObjectDTO.java
0 → 100644
View file @
6b5fc1eb
package
com.viettel.campaign.web.dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public
class
CustomizeFielObjectDTO
{
private
Long
customerId
;
private
String
name
;
private
String
companyName
;
private
String
customerImg
;
private
String
status
;
private
Long
siteId
;
private
Short
gender
;
private
String
currentAddress
;
private
String
placeOfBirth
;
private
Date
dateOfBirth
;
private
String
mobileNumber
;
private
String
email
;
private
String
userName
;
private
Long
customerType
;
private
Long
customizeFieldObjectId
;
private
Long
objectId
;
private
Long
customizeFieldId
;
private
String
valueText
;
private
Long
valueNumber
;
private
Date
valueDate
;
private
Long
valueCheckbox
;
private
Date
createBy
;
private
Date
createDate
;
private
String
updateBy
;
private
Date
updateDate
;
private
Long
fieldOptionValueId
;
private
String
title
;
private
String
functionCode
;
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
View file @
6b5fc1eb
package
com.viettel.campaign.web.rest
;
import
com.viettel.campaign.model.ccms_full.Customer
;
import
com.viettel.campaign.web.dto.*
;
import
com.viettel.campaign.service.CustomerService
;
import
com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO
;
...
...
@@ -266,4 +267,17 @@ public class CustomerController {
List
<
CustomizeFieldDTO
>
data
=
customerService
.
getCustomizeField
(
customerId
);
return
new
ResponseEntity
<>(
data
,
HttpStatus
.
OK
);
}
}
@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
);
}
}
This diff is collapsed.
Click to expand it.
src/main/resources/application.yml
View file @
6b5fc1eb
server
:
port
:
1111
port
:
9999
spring
:
application
:
name
:
campaign
...
...
This diff is collapsed.
Click to expand it.
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