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
Aug 20, 2019
by
đinh thị đầm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
search customize individual
parent
007d694d
Changes
12
Show 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 {
...
@@ -15,7 +15,6 @@ public class ServiceCampaignApplication {
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ServiceCampaignApplication
.
class
,
args
);
SpringApplication
.
run
(
ServiceCampaignApplication
.
class
,
args
);
RedisUtil
redis
=
new
RedisUtil
(
Config
.
redisAddress
,
Config
.
redisTimeout
);
RedisUtil
redis
=
new
RedisUtil
(
Config
.
redisAddress
,
Config
.
redisTimeout
);
redis
.
setup
();
redis
.
setup
();
}
}
...
...
src/main/java/com/viettel/campaign/filter/CorsFilter.java
View file @
6b5fc1eb
...
@@ -31,27 +31,27 @@ public class CorsFilter implements Filter {
...
@@ -31,27 +31,27 @@ public class CorsFilter implements Filter {
HttpServletRequest
request
=
(
HttpServletRequest
)
req
;
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
);
chain
.
doFilter
(
req
,
resp
);
}
else
{
response
.
sendError
(
HttpServletResponse
.
SC_UNAUTHORIZED
,
"The token is invalid."
);
// 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
@Override
...
...
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
{
}
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCfgRepository.java
View file @
6b5fc1eb
...
@@ -14,7 +14,7 @@ import java.util.List;
...
@@ -14,7 +14,7 @@ import java.util.List;
@Repository
@Repository
public
interface
CampaignCfgRepository
extends
JpaRepository
<
CampaignCfg
,
Long
>{
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
);
Page
<
CampaignCfg
>
findAll
(
Pageable
pageable
);
...
...
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;
...
@@ -2,11 +2,13 @@ package com.viettel.campaign.repository.ccms_full;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.ccms_full.CampaignCustomer
;
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.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
...
@@ -33,4 +35,18 @@ public interface CampaignCustomerRepository extends JpaRepository<CampaignCustom
...
@@ -33,4 +35,18 @@ public interface CampaignCustomerRepository extends JpaRepository<CampaignCustom
" AND cc.recall_time <= SYSDATE\n"
+
" AND cc.recall_time <= SYSDATE\n"
+
" AND cc.recall_time + interval :apParam MINUTE >= SYSDATE"
,
nativeQuery
=
true
)
" 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
);
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
);
}
}
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> {
...
@@ -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 "
+
@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"
)
"where c.ipccStatus = 'locked' and c.siteId =?1 and ct.endTime <= ?2"
)
List
<
Customer
>
findAllByCondition
(
Long
siteId
,
Date
endTime
);
List
<
Customer
>
findAllByCondition
(
Long
siteId
,
Date
endTime
);
}
}
src/main/java/com/viettel/campaign/service/CustomerService.java
View file @
6b5fc1eb
...
@@ -68,4 +68,12 @@ public interface CustomerService {
...
@@ -68,4 +68,12 @@ public interface CustomerService {
void
buildTemplate
(
Long
companySiteId
);
void
buildTemplate
(
Long
companySiteId
);
List
<
CustomizeFieldDTO
>
getCustomizeField
(
Long
customerId
);
List
<
CustomizeFieldDTO
>
getCustomizeField
(
Long
customerId
);
//--------------search customer---------------//
// ResultDTO getCustomerFields(Long companySiteId, Long customerListId, Long customerId);
List
<
Customer
>
searchByQuery
(
String
queryString
);
Long
countByQuery
(
String
queryString
);
}
}
src/main/java/com/viettel/campaign/service/impl/CampaignCfgServiceImpl.java
View file @
6b5fc1eb
...
@@ -83,6 +83,7 @@ public class CampaignCfgServiceImpl implements CampaignCfgService {
...
@@ -83,6 +83,7 @@ public class CampaignCfgServiceImpl implements CampaignCfgService {
sb
.
append
(
" and COMPANY_SITE_ID = :p_company_site_id"
);
sb
.
append
(
" and COMPANY_SITE_ID = :p_company_site_id"
);
SQLQuery
query
=
session
.
createSQLQuery
(
sb
.
toString
());
SQLQuery
query
=
session
.
createSQLQuery
(
sb
.
toString
());
query
.
setParameter
(
"p_company_site_id"
,
companySiteId
);
query
.
setParameter
(
"p_company_site_id"
,
companySiteId
);
...
@@ -290,7 +291,7 @@ public class CampaignCfgServiceImpl implements CampaignCfgService {
...
@@ -290,7 +291,7 @@ public class CampaignCfgServiceImpl implements CampaignCfgService {
sb
.
append
(
"SELECT max(to_number(COMPLETE_VALUE)) completeValue, COMPANY_SITE_ID "
);
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
(
" 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
());
SQLQuery
query
=
session
.
createSQLQuery
(
sb
.
toString
());
...
...
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
View file @
6b5fc1eb
package
com.viettel.campaign.service.impl
;
package
com.viettel.campaign.service.impl
;
import
com.github.tennaito.rsql.jpa.JpaCriteriaQueryVisitor
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.mapper.CustomerListMapper
;
import
com.viettel.campaign.mapper.CustomerListMapper
;
import
com.viettel.campaign.mapper.CustomerMapper
;
import
com.viettel.campaign.mapper.CustomerMapper
;
...
@@ -16,6 +17,7 @@ import com.viettel.campaign.web.dto.*;
...
@@ -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.CustomerDetailRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO
;
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.ss.usermodel.*
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
...
@@ -39,13 +41,29 @@ import org.springframework.util.ResourceUtils;
...
@@ -39,13 +41,29 @@ import org.springframework.util.ResourceUtils;
import
javax.persistence.EntityManager
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.Query
;
import
javax.persistence.Query
;
import
javax.persistence.criteria.CriteriaQuery
;
import
java.io.FileInputStream
;
import
java.io.FileInputStream
;
import
java.io.FileOutputStream
;
import
java.io.FileOutputStream
;
import
java.util.*
;
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
@Service
public
class
CustomerServiceImpl
implements
CustomerService
{
public
class
CustomerServiceImpl
implements
CustomerService
{
;
@Autowired
@Autowired
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
EntityManager
entityManager
;
EntityManager
entityManager
;
...
@@ -955,6 +973,8 @@ public class CustomerServiceImpl implements CustomerService {
...
@@ -955,6 +973,8 @@ public class CustomerServiceImpl implements CustomerService {
return
customizeFieldDTOList
;
return
customizeFieldDTOList
;
}
}
@Override
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
List
<
CustomerListDTO
>
getCustomerListInfo
(
CampaignCustomerDTO
campaignCustomerDTO
)
{
public
List
<
CustomerListDTO
>
getCustomerListInfo
(
CampaignCustomerDTO
campaignCustomerDTO
)
{
...
@@ -1090,4 +1110,38 @@ public class CustomerServiceImpl implements CustomerService {
...
@@ -1090,4 +1110,38 @@ public class CustomerServiceImpl implements CustomerService {
public
Customer
update
(
Customer
c
)
{
public
Customer
update
(
Customer
c
)
{
return
customerRepository
.
save
(
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
;
}
}
}
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
;
}
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
View file @
6b5fc1eb
package
com.viettel.campaign.web.rest
;
package
com.viettel.campaign.web.rest
;
import
com.viettel.campaign.model.ccms_full.Customer
;
import
com.viettel.campaign.web.dto.*
;
import
com.viettel.campaign.web.dto.*
;
import
com.viettel.campaign.service.CustomerService
;
import
com.viettel.campaign.service.CustomerService
;
import
com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO
;
...
@@ -266,4 +267,17 @@ public class CustomerController {
...
@@ -266,4 +267,17 @@ public class CustomerController {
List
<
CustomizeFieldDTO
>
data
=
customerService
.
getCustomizeField
(
customerId
);
List
<
CustomizeFieldDTO
>
data
=
customerService
.
getCustomizeField
(
customerId
);
return
new
ResponseEntity
<>(
data
,
HttpStatus
.
OK
);
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
);
}
}
src/main/resources/application.yml
View file @
6b5fc1eb
server
:
server
:
port
:
1111
port
:
9999
spring
:
spring
:
application
:
application
:
name
:
campaign
name
:
campaign
...
...
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