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
a3114bcf
Commit
a3114bcf
authored
Aug 29, 2019
by
Vu Duy Anh
Browse files
Options
Browse Files
Download
Plain Diff
anhvd commit merge
parents
a2c027ec
74d5ace2
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
121 additions
and
60 deletions
+121
-60
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
...ign/repository/ccms_full/impl/CampaignRepositoryImpl.java
+8
-5
src/main/java/com/viettel/campaign/service/CustomerService.java
...in/java/com/viettel/campaign/service/CustomerService.java
+1
-1
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
...om/viettel/campaign/service/impl/CustomerServiceImpl.java
+93
-54
src/main/java/com/viettel/campaign/web/dto/CampaignCustomerDTO.java
...ava/com/viettel/campaign/web/dto/CampaignCustomerDTO.java
+5
-0
src/main/java/com/viettel/campaign/web/dto/CustomizeFieldsDTO.java
...java/com/viettel/campaign/web/dto/CustomizeFieldsDTO.java
+3
-0
src/main/java/com/viettel/campaign/web/dto/request_dto/CustomerQueryDTO.java
...iettel/campaign/web/dto/request_dto/CustomerQueryDTO.java
+1
-0
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
...ava/com/viettel/campaign/web/rest/CustomerController.java
+10
-0
No files found.
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
View file @
a3114bcf
...
...
@@ -19,7 +19,9 @@ import org.hibernate.transform.Transformers;
import
org.hibernate.type.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.domain.*
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.jdbc.core.BeanPropertyRowMapper
;
import
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -27,9 +29,10 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.Query
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Repository
public
class
CampaignRepositoryImpl
implements
CampaignRepositoryCustom
{
...
...
@@ -638,7 +641,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
"),\n"
+
"data as (\n"
+
"select a.*, rownum row_ from data_temp a\n"
+
"where a.totalCus
List
> 0"
+
"where a.totalCus
Campaign
> 0"
+
"),\n"
+
"count_data as (\n"
+
"select count(*) totalRow from data_temp\n"
+
...
...
src/main/java/com/viettel/campaign/service/CustomerService.java
View file @
a3114bcf
...
...
@@ -90,6 +90,6 @@ public interface CustomerService {
//// List<CustomizeFields> searchCustomize();
ResultDTO
listCustomizeFields
(
CustomizeFieldsDTO
customizeFields
);
ResultDTO
searchCustomizeFields
(
int
page
,
int
pageSize
,
long
companySiteId
,
long
campaignId
,
CustomerQueryDTO
customerQuery
DTO
);
ResultDTO
searchCustomizeFields
(
CampaignCustomerDTO
campaignCustomer
DTO
);
}
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
View file @
a3114bcf
...
...
@@ -3,6 +3,7 @@ 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
;
import
com.viettel.campaign.model.ccms_full.*
;
import
com.viettel.campaign.repository.ccms_full.*
;
...
...
@@ -44,6 +45,7 @@ import java.io.ByteArrayOutputStream;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileOutputStream
;
import
java.lang.reflect.Array
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
...
...
@@ -1640,12 +1642,12 @@ public class CustomerServiceImpl implements CustomerService {
String
[]
lstCusId
=
campaignCustomerDTO
.
getLstCustomerId
().
split
(
","
);
List
<
Short
>
lstStatus
=
campaignCustomerRepository
.
getStatus
();
try
{
for
(
String
cusId:
lstCusId
)
{
for
(
String
cusId
:
lstCusId
)
{
CampaignCustomer
entity
=
campaignCustomerRepository
.
findCampaignCustomerByCampaignIdAndCompanySiteIdAndCustomerId
(
campaignId
,
companySiteId
,
Long
.
parseLong
(
cusId
));
if
(
entity
.
getStatus
()
==
0
)
{
campaignCustomerRepository
.
delete
(
entity
);
}
else
if
(
lstStatus
.
contains
(
entity
.
getStatus
())){
entity
.
setInCampaignStatus
((
short
)
0
);
}
else
if
(
lstStatus
.
contains
(
entity
.
getStatus
()))
{
entity
.
setInCampaignStatus
((
short
)
0
);
campaignCustomerRepository
.
save
(
entity
);
}
}
...
...
@@ -1736,7 +1738,6 @@ public class CustomerServiceImpl implements CustomerService {
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
return
resultDTO
;
}
...
...
@@ -1787,6 +1788,29 @@ public class CustomerServiceImpl implements CustomerService {
return
query
;
}
// params.put('1', ["AND","AGE",">=","30"] )
// lst.push(params);
// StringBuilder sql = "Select ..... WHERE 1 = 1 "
// for(lst){
// String[] data = lst[i].value
// sql.append(data[0] + data[1] + data[2] + data[3]);
// }
// Map<String, String> params = new HashMap<>();
// public ResultDTO searchCustomize(List<CustomizeFields> customizeFields) {
// Map<String, CustomizeRequestDTo> hashCustomer = new HashMap<>();
// CustomizeRequestDTo customizeRequestDTo = new CustomizeRequestDTo();
// hashCustomer.put("1", customizeRequestDTo);
// hashCustomer.put("2", customizeRequestDTo);
// hashCustomer.put("3", customizeRequestDTo);
// StringBuilder sb = new StringBuilder();
// sb.append("");
// sb.append("");
// sb.append("");
// sb.append("");
@Override
public
ResultDTO
listCustomizeFields
(
CustomizeFieldsDTO
customizeFields
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
...
...
@@ -1815,6 +1839,45 @@ public class CustomerServiceImpl implements CustomerService {
datafill
.
setType
(
cf
[
x
][
2
]);
lstCustomizeFields
.
add
(
datafill
);
}
// try {
// stringBuilder.append(" with column_name_temp as (");
// stringBuilder.append(" select 'CUSTOMER_ID customerId' , from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'CUSTOMER_NAME customerName' , from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'CUSTOMER_TYPE customerType' , from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'NAME name' , from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'CURRENT_ADDRESS currentAddress', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'PLACE_OF_BIRTH placeOfBirth', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'DATE_OF_BIRTH dateOfBirth', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'MOBILE_NUMBER mobileNumber', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'EMAIL email', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'USERNAME username', from user_tab_columns, dual");
// stringBuilder.append(" union all");
// stringBuilder.append(" select 'CUSTOMER_TYPE customerType', from user_tab_columns, dual");
// stringBuilder.append(" where table_name = 'CUSTOMER'");
// stringBuilder.append(" )");
//
// stringBuilder.append(" select * from column_name_temp");
// stringBuilder.append(" union all");
// stringBuilder.append(" select title columnName, 0 isFix ");
// stringBuilder.append(" from customize_fields, dual");
// stringBuilder.append(" where function_code = 'CUSTOMER'");
// stringBuilder.append(" and site_id = :p_company_site_id");
// stringBuilder.append(" and STATUS = 1");
// stringBuilder.append(" and active = 1 ");
// params.put("p_company_site_id", customizeFields.getSiteId());
// params.put("p_customer_id", customizeFields.getCustomerId());
// LOGGER.info("SQL statement: " + stringBuilder);
// list = namedParameterJdbcTemplate.query(stringBuilder.toString(), params, BeanPropertyRowMapper.newInstance(CustomizeFielObjectDTO.class));
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
resultDTO
.
setListData
(
lstCustomizeFields
);
...
...
@@ -1829,7 +1892,8 @@ public class CustomerServiceImpl implements CustomerService {
@Override
public
ResultDTO
searchCustomizeFields
(
int
page
,
int
pageSize
,
long
SiteId
,
long
campaignId
,
CustomerQueryDTO
customerQueryDTO
)
{
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
searchCustomizeFields
(
CampaignCustomerDTO
campaignCustomerDTO
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
...
...
@@ -1857,90 +1921,65 @@ public class CustomerServiceImpl implements CustomerService {
sb
.
append
(
" C.CUSTOMER_TYPE customerType,"
);
sb
.
append
(
" C.COMPANY_NAME companyName,"
);
sb
.
append
(
" C.PLACE_OF_BIRTH placeOfBirth,"
);
sb
.
append
(
" C.CUSTOMER_TYPE customerType,"
);
sb
.
append
(
" C.EMAIL email,"
);
sb
.
append
(
" C.USERNAME username,"
);
sb
.
append
(
" C.NAME name,"
);
sb
.
append
(
" C.MOBILE_NUMBER mobileNumber,"
);
sb
.
append
(
" C.STATUS status,"
);
sb
.
append
(
" C.SITE_ID siteId,"
);
sb
.
append
(
" CF.FUNCTION_CODE functionCode,"
);
sb
.
append
(
" CF
O
.ACTIVE active,"
);
sb
.
append
(
" CF.ACTIVE active,"
);
sb
.
append
(
" CFO.*"
);
sb
.
append
(
"FROM CUSTOMER C"
);
sb
.
append
(
"
FROM CUSTOMER C"
);
sb
.
append
(
" INNER JOIN CUSTOMIZE_FIELD_OBJECT CFO ON C.CUSTOMER_ID = CFO.OBJECT_ID"
);
sb
.
append
(
" INNER JOIN CUSTOMIZE_FIELDS CF ON CF.CUSTOMIZE_FIELD_ID = CFO.CUSTOMIZE_FIELDS_ID\n"
+
"WHERE 1 = 1"
);
"
WHERE 1 = 1"
);
sb
.
append
(
" and CFO.STATUS = 1"
);
sb
.
append
(
" and active = 1 "
);
sb
.
append
(
" and CF.FUNCTION_CODE = 'CUSTOMER' "
);
List
<
CustomerQueryDTO
>
queryCustomer
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
queryCustomer
.
size
();
i
++)
{
sb
.
append
(
queryCustomer
.
get
(
i
).
getJoin
()
+
" "
+
queryCustomer
.
get
(
i
).
getOperator
()
+
" "
+
queryCustomer
.
get
(
i
).
getField
()
+
" "
+
queryCustomer
.
get
(
i
).
getCondition
());
}
for
(
int
i
=
0
;
i
<
campaignCustomerDTO
.
getListQuery
().
size
();
i
++)
{
sb
.
append
(
campaignCustomerDTO
.
getListQuery
().
get
(
i
).
getJoin
()
+
" "
+
campaignCustomerDTO
.
getListQuery
().
get
(
i
).
getField
()
+
" "
+
campaignCustomerDTO
.
getListQuery
().
get
(
i
).
getOperator
()
+
" "
+
campaignCustomerDTO
.
getListQuery
().
get
(
i
).
getCondition
());
}
SQLQuery
query
=
session
.
createSQLQuery
(
sb
.
toString
());
// query.setParameter("p_company_site_id", companySiteId);
// query.setParameter("p_customer_list_id", customerListId);
//
// if (!DataUtil.isNullOrEmpty(name)) {
// query.setParameter("p_name", "%" +
// name.replace("\\", "\\\\")
// .replaceAll("%", "\\%")
// .replaceAll("_", "\\_")
// + "%");
// }
//
// if (!DataUtil.isNullOrEmpty(mobileNumber)) {
// query.setParameter("p_mobile_number", "%" +
// mobileNumber.replace("\\", "\\\\")
// .replaceAll("%", "\\%")
// .replaceAll("_", "\\_")
// + "%");
// }
//
// if (!DataUtil.isNullOrEmpty(email)) {
// query.setParameter("p_email", "%" +
// email.replace("\\", "\\\\")
// .replaceAll("%", "\\%")
// .replaceAll("_", "\\_")
// + "%");
// }
query
.
addScalar
(
"customerID"
,
new
LongType
());
query
.
addScalar
(
"name"
,
new
StringType
());
query
.
addScalar
(
"username"
,
new
StringType
());
query
.
addScalar
(
"customerId"
,
new
LongType
());
query
.
addScalar
(
"name"
,
new
StringType
());
query
.
addScalar
(
"
description
"
,
new
StringType
());
query
.
addScalar
(
"
userName
"
,
new
StringType
());
query
.
addScalar
(
"companyName"
,
new
StringType
());
query
.
addScalar
(
"customerType"
,
new
Stri
ngType
());
query
.
addScalar
(
"customerType"
,
new
Lo
ngType
());
query
.
addScalar
(
"currentAddress"
,
new
StringType
());
query
.
addScalar
(
"mobileNumber"
,
new
StringType
());
query
.
addScalar
(
"email"
,
new
StringType
());
query
.
addScalar
(
"placeOfBirth"
,
new
StringType
());
query
.
addScalar
(
"dateOfBirth"
,
new
DateType
());
query
.
addScalar
(
"status"
,
new
ShortType
());
query
.
addScalar
(
"siteId"
,
new
LongType
());
query
.
addScalar
(
"active"
,
new
StringType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CustomizeRequestDTo
.
class
));
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CampaignCustomerDTO
.
class
));
int
count
=
0
;
List
<
C
ustomerCustom
DTO
>
dtoList
=
query
.
list
();
List
<
C
ampaignCustomer
DTO
>
dtoList
=
query
.
list
();
if
(
dtoList
.
size
()
>
0
)
{
count
=
query
.
list
().
size
();
}
Pageable
pageable
=
PageRequest
.
of
(
page
,
pageSize
);
Pageable
pageable
=
PageRequest
.
of
(
campaignCustomerDTO
.
getPage
(),
campaignCustomerDTO
.
getPageSize
()
);
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
C
ustomerCustom
DTO
>
data
=
query
.
list
();
Page
<
C
ustomerCustom
DTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
List
<
C
ampaignCustomer
DTO
>
data
=
query
.
list
();
Page
<
C
ampaignCustomer
DTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
resultDTO
.
setData
(
dataPage
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
.
getMessage
(),
e
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
finally
{
...
...
src/main/java/com/viettel/campaign/web/dto/CampaignCustomerDTO.java
View file @
a3114bcf
package
com.viettel.campaign.web.dto
;
import
com.viettel.campaign.web.dto.request_dto.CustomerQueryDTO
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
import
java.util.List
;
@Getter
@Setter
...
...
@@ -27,4 +29,7 @@ public class CampaignCustomerDTO extends BaseDTO{
private
Long
companySiteId
;
private
Long
complainId
;
private
String
lstCustomerId
;
private
List
<
CustomerQueryDTO
>
listQuery
;
}
src/main/java/com/viettel/campaign/web/dto/CustomizeFieldsDTO.java
View file @
a3114bcf
package
com.viettel.campaign.web.dto
;
import
com.viettel.campaign.web.dto.request_dto.CustomerQueryDTO
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
import
java.util.List
;
@Getter
@Setter
...
...
@@ -29,4 +31,5 @@ public class CustomizeFieldsDTO extends BaseDTO {
private
Long
min
;
private
Long
max
;
private
Long
active
;
}
src/main/java/com/viettel/campaign/web/dto/request_dto/CustomerQueryDTO.java
View file @
a3114bcf
...
...
@@ -11,4 +11,5 @@ public class CustomerQueryDTO extends BaseDTO {
String
field
;
String
operator
;
String
condition
;
}
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
View file @
a3114bcf
...
...
@@ -12,6 +12,7 @@ import com.viettel.campaign.utils.Config;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.RedisUtil
;
import
com.viettel.campaign.web.dto.*
;
import
com.viettel.campaign.web.dto.request_dto.CustomerQueryDTO
;
import
com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.CustomizeRequestDTo
;
import
com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO
;
...
...
@@ -322,4 +323,13 @@ public class CustomerController {
ResultDTO
resultDTO
=
customerService
.
listCustomizeFields
(
customizeRequestDTo
);
return
new
ResponseEntity
<>(
resultDTO
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/searchCustomizeFields"
)
@ResponseBody
public
ResponseEntity
searchCustomizeFields
(
@RequestBody
CampaignCustomerDTO
campaignCustomerDTO
)
{
ResultDTO
result
=
customerService
.
searchCustomizeFields
(
campaignCustomerDTO
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
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