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
5e3ed78c
Commit
5e3ed78c
authored
Sep 03, 2019
by
Vu Duy Anh
Browse files
Options
Browse Files
Download
Plain Diff
anhvd accept merge
parents
36905cb9
6476719d
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
195 additions
and
124 deletions
+195
-124
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignExecuteRepositoryImp.java
...pository/ccms_full/impl/CampaignExecuteRepositoryImp.java
+5
-1
src/main/java/com/viettel/campaign/service/CampaignExecuteService.java
.../com/viettel/campaign/service/CampaignExecuteService.java
+2
-0
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
...ttel/campaign/service/impl/CampaignExecuteServiceImp.java
+20
-5
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+23
-18
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
...om/viettel/campaign/service/impl/CustomerServiceImpl.java
+132
-98
src/main/java/com/viettel/campaign/web/dto/request_dto/CustomerQueryDTO.java
...iettel/campaign/web/dto/request_dto/CustomerQueryDTO.java
+5
-1
src/main/java/com/viettel/campaign/web/rest/CampaignExecuteController.java
.../viettel/campaign/web/rest/CampaignExecuteController.java
+7
-0
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
...ava/com/viettel/campaign/web/rest/CustomerController.java
+1
-1
No files found.
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignExecuteRepositoryImp.java
View file @
5e3ed78c
...
...
@@ -126,7 +126,9 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
sql
.
append
(
" CC2.COMPLETE_NAME AS surveyStatus, "
);
sql
.
append
(
" C.STATUS AS status, "
);
sql
.
append
(
" CCR.STATUS AS recordStatus, "
);
sql
.
append
(
" (( CCR.END_TIME - CCR.START_CALL ) * 24 * 60 * 60) AS callTime "
);
sql
.
append
(
" (( CCR.END_TIME - CCR.START_CALL ) * 24 * 60 * 60) AS callTime, "
);
sql
.
append
(
" C.CAMPAIGN_ID AS campaignId, "
);
sql
.
append
(
" CUS.CUSTOMER_ID AS customerId "
);
sql
.
append
(
"FROM CONTACT_CUST_RESULT CCR "
);
sql
.
append
(
" INNER JOIN CAMPAIGN C ON CCR.CAMPAIGN_ID = C.CAMPAIGN_ID "
);
sql
.
append
(
" INNER JOIN VSA_USERS VU ON CCR.AGENT_ID = VU.USER_ID "
);
...
...
@@ -293,6 +295,8 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
item
.
setStatus
(
obj
[
10
]
==
null
?
0
:
((
BigDecimal
)
obj
[
10
]).
shortValueExact
());
item
.
setRecordStatus
(
obj
[
11
]
==
null
?
0
:
((
BigDecimal
)
obj
[
11
]).
shortValueExact
());
item
.
setCallTime
(
obj
[
12
]
==
null
?
0L
:
((
BigDecimal
)
obj
[
12
]).
longValueExact
());
item
.
setCampaignId
(
obj
[
13
]
==
null
?
0L
:
((
BigDecimal
)
obj
[
13
]).
longValueExact
());
item
.
setCustomerId
(
obj
[
14
]
==
null
?
0L
:
((
BigDecimal
)
obj
[
14
]).
longValueExact
());
list
.
add
(
item
);
}
...
...
src/main/java/com/viettel/campaign/service/CampaignExecuteService.java
View file @
5e3ed78c
...
...
@@ -52,4 +52,6 @@ public interface CampaignExecuteService {
ResultDTO
createListContacQuestResult
(
List
<
ContactQuestResultDTO
>
dtoList
);
String
getDialModeAtCurrent
(
Long
campaignId
,
Long
companySiteId
);
ResultDTO
getContactCustResultById
(
Long
contactCustResultId
);
}
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
View file @
5e3ed78c
...
...
@@ -38,9 +38,6 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
@Autowired
ModelMapper
modelMapper
;
@Autowired
ContactCustResultRepository
ccResultRepository
;
@Autowired
ReceiveCustLogRepository
custLogRepository
;
...
...
@@ -68,6 +65,9 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
@Autowired
CampaignCustomerListColumnRepository
campaignCustomerListColumnRepository
;
@Autowired
ContactCustResultRepository
ccResultRepository
;
@Autowired
ContactQuestResultRepository
contactQuestResultRepository
;
...
...
@@ -226,9 +226,9 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
++
rowIndex
;
++
count
;
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
}
finally
{
}
finally
{
if
(
workbook
!=
null
)
workbook
.
close
();
}
...
...
@@ -728,4 +728,19 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
return
"-1"
;
}
@Override
public
ResultDTO
getContactCustResultById
(
Long
contactCustResultId
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
try
{
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
resultDTO
.
setData
(
ccResultRepository
.
findById
(
contactCustResultId
));
}
catch
(
Exception
e
)
{
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
return
resultDTO
;
}
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
5e3ed78c
...
...
@@ -2,9 +2,7 @@ package com.viettel.campaign.service.impl;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.ccms_full.*
;
//import com.viettel.campaign.model.UserActionLog;
import
com.viettel.campaign.repository.ccms_full.*
;
//import com.viettel.campaign.repository.UserActionLogRepository;
import
com.viettel.campaign.service.CampaignService
;
import
com.viettel.campaign.utils.BundleUtils
;
import
com.viettel.campaign.utils.Constants
;
...
...
@@ -14,7 +12,9 @@ import com.viettel.campaign.web.dto.*;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.modelmapper.ModelMapper
;
...
...
@@ -22,12 +22,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
//import com.viettel.campaign.model.UserActionLog;
//import com.viettel.campaign.repository.UserActionLogRepository;
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
CampaignServiceImpl
implements
CampaignService
{
...
...
@@ -637,20 +636,26 @@ public class CampaignServiceImpl implements CampaignService {
List
<
CustomerListDTO
>
listCustomerDto
=
dto
.
getLstCustomerCampaign
();
try
{
// Thuc hien them giam khach hang
for
(
CustomerListDTO
customerListDTO
:
listCustomerDto
)
{
for
(
CustomerListDTO
customerListDTO
:
listCustomerDto
)
{
// Duyet tung customerList
if
(
customerListDTO
.
getTotalCusAddRemove
()
>
0
)
{
// Them khach hang
// Lay ra danh sach khach hang phu hop de them
List
<
Customer
>
listCustomerToAdd
=
customerRepository
.
findAllCutomerNotInCampagin
(
customerListDTO
.
getCustomerListId
(),
campaignId
);
for
(
int
i
=
0
;
i
<
customerListDTO
.
getTotalCusAddRemove
();
i
++)
{
CampaignCustomer
campaignCustomerEntity
=
new
CampaignCustomer
();
campaignCustomerEntity
.
setCampaignId
(
campaignId
);
campaignCustomerEntity
.
setCustomerId
(
listCustomerToAdd
.
get
(
i
).
getCustomerId
());
campaignCustomerEntity
.
setStatus
((
short
)
0
);
campaignCustomerEntity
.
setRecallCount
(
0L
);
campaignCustomerEntity
.
setCustomerListId
(
customerListDTO
.
getCustomerListId
());
campaignCustomerEntity
.
setCompanySiteId
(
companySiteId
);
campaignCustomerEntity
.
setInCampaignStatus
((
short
)
1
);
campaignCustomerRepository
.
save
(
campaignCustomerEntity
);
int
numOfCusInList
=
listCustomerToAdd
.
size
();
// Số khách hàng còn lại của chiến dịch chưa đc add vào campaign
for
(
int
i
=
0
,
j
=
0
;
(
i
<
customerListDTO
.
getTotalCusAddRemove
()
&&
j
<
numOfCusInList
);
j
++)
{
if
(
campaignCustomerRepository
.
findCampaignCustomerByCampaignIdAndCompanySiteIdAndCustomerId
(
campaignId
,
companySiteId
,
listCustomerToAdd
.
get
(
j
).
getCustomerId
())
!=
null
)
{
// Khach hang đã đc chèn vào campaign theo individual
continue
;
}
else
{
CampaignCustomer
campaignCustomerEntity
=
new
CampaignCustomer
();
campaignCustomerEntity
.
setCampaignId
(
campaignId
);
campaignCustomerEntity
.
setCustomerId
(
listCustomerToAdd
.
get
(
j
).
getCustomerId
());
campaignCustomerEntity
.
setStatus
((
short
)
0
);
campaignCustomerEntity
.
setRecallCount
(
0L
);
campaignCustomerEntity
.
setCustomerListId
(
customerListDTO
.
getCustomerListId
());
campaignCustomerEntity
.
setCompanySiteId
(
companySiteId
);
campaignCustomerEntity
.
setInCampaignStatus
((
short
)
1
);
campaignCustomerRepository
.
save
(
campaignCustomerEntity
);
i
+=
1
;
}
}
}
else
if
(
customerListDTO
.
getTotalCusAddRemove
()
<
0
){
// Loai bo khach hang
long
custToDel
=
Math
.
abs
(
customerListDTO
.
getTotalCusAddRemove
());
...
...
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
View file @
5e3ed78c
...
...
@@ -181,7 +181,7 @@ public class CustomerServiceImpl implements CustomerService {
}
Pageable
pageable
=
PageRequest
.
of
(
page
,
pageSize
,
Sort
.
by
(
Sort
.
Order
.
desc
(
sort
)));
if
(
pageable
!=
null
)
{
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
...
...
@@ -195,7 +195,7 @@ public class CustomerServiceImpl implements CustomerService {
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
finally
{
if
(
session
!=
null
)
session
.
close
();
if
(
session
!=
null
)
session
.
close
();
}
return
resultDTO
;
...
...
@@ -342,7 +342,7 @@ public class CustomerServiceImpl implements CustomerService {
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
finally
{
if
(
session
!=
null
)
session
.
close
();
if
(
session
!=
null
)
session
.
close
();
}
return
resultDTO
;
...
...
@@ -498,7 +498,7 @@ public class CustomerServiceImpl implements CustomerService {
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
finally
{
if
(
session
!=
null
)
session
.
close
();
if
(
session
!=
null
)
session
.
close
();
}
return
resultDTO
;
...
...
@@ -599,7 +599,7 @@ public class CustomerServiceImpl implements CustomerService {
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
finally
{
if
(
session
!=
null
)
session
.
close
();
if
(
session
!=
null
)
session
.
close
();
}
return
resultDTO
;
...
...
@@ -871,7 +871,7 @@ public class CustomerServiceImpl implements CustomerService {
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
finally
{
if
(
session
!=
null
)
session
.
close
();
if
(
session
!=
null
)
session
.
close
();
}
return
resultDTO
;
...
...
@@ -941,7 +941,7 @@ public class CustomerServiceImpl implements CustomerService {
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
Map
<
String
,
Object
>
readAndValidateCustomer
(
String
path
,
List
<
CustomizeFields
>
dynamicHeader
,
UserSession
userSession
,
Long
customerListId
)
throws
IOException
{
public
Map
<
String
,
Object
>
readAndValidateCustomer
(
String
path
,
List
<
CustomizeFields
>
dynamicHeader
,
UserSession
userSession
,
Long
customerListId
)
throws
IOException
{
LOGGER
.
info
(
"------------READ AND VALIDATE--------------"
);
Locale
locale
=
new
Locale
(
"vi"
,
"VN"
);
DataFormatter
dataFormat
=
new
DataFormatter
();
...
...
@@ -1267,7 +1267,7 @@ public class CustomerServiceImpl implements CustomerService {
LOGGER
.
info
(
e
.
getMessage
());
result
.
put
(
"message"
,
"validate-error"
);
return
result
;
}
finally
{
}
finally
{
if
(
workbook
!=
null
)
workbook
.
close
();
}
}
...
...
@@ -1414,10 +1414,10 @@ public class CustomerServiceImpl implements CustomerService {
//<editor-fold desc="Cho những trường tĩnh" defaultstate="collapsed">
DataValidationConstraint
cusTypeConstraint
=
dataValidationHelper
.
createExplicitListConstraint
(
new
String
[]{
BundleUtils
.
getLangString
(
"customer.cusType.normal"
,
locale
),
BundleUtils
.
getLangString
(
"customer.cusType.vip"
,
locale
),
BundleUtils
.
getLangString
(
"customer.cusType.blacklist"
,
locale
)});
DataValidationConstraint
isAllowConstraint
=
dataValidationHelper
.
createExplicitListConstraint
(
new
String
[]{
BundleUtils
.
getLangString
(
"customer.yes"
,
locale
),
BundleUtils
.
getLangString
(
"customer.not"
,
locale
)});
CellRangeAddressList
cusTypeCellRangeAddressList
=
new
CellRangeAddressList
(
3
,
9999
,
6
,
6
);
CellRangeAddressList
callCellRangeAddressList
=
new
CellRangeAddressList
(
3
,
9999
,
9
,
9
);
CellRangeAddressList
emailCellRangeAddressList
=
new
CellRangeAddressList
(
3
,
9999
,
10
,
10
);
CellRangeAddressList
smsCellRangeAddressList
=
new
CellRangeAddressList
(
3
,
9999
,
11
,
11
);
CellRangeAddressList
cusTypeCellRangeAddressList
=
new
CellRangeAddressList
(
4
,
9999
,
6
,
6
);
CellRangeAddressList
callCellRangeAddressList
=
new
CellRangeAddressList
(
4
,
9999
,
9
,
9
);
CellRangeAddressList
emailCellRangeAddressList
=
new
CellRangeAddressList
(
4
,
9999
,
10
,
10
);
CellRangeAddressList
smsCellRangeAddressList
=
new
CellRangeAddressList
(
4
,
9999
,
11
,
11
);
DataValidation
cusTypeValidation
=
dataValidationHelper
.
createValidation
(
cusTypeConstraint
,
cusTypeCellRangeAddressList
);
DataValidation
callValidation
=
dataValidationHelper
.
createValidation
(
isAllowConstraint
,
callCellRangeAddressList
);
DataValidation
emailValidation
=
dataValidationHelper
.
createValidation
(
isAllowConstraint
,
emailCellRangeAddressList
);
...
...
@@ -1487,7 +1487,7 @@ public class CustomerServiceImpl implements CustomerService {
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
.
getMessage
());
return
null
;
}
finally
{
}
finally
{
if
(
workbook
!=
null
)
workbook
.
close
();
}
}
...
...
@@ -1823,7 +1823,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
();
...
...
@@ -1866,111 +1888,130 @@ public class CustomerServiceImpl implements CustomerService {
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
searchCustomizeFields
(
CampaignCustomerDTO
campaignCustomerDTO
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
CustomerDTO
customerDTO
=
new
CustomerDTO
();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
Map
<
String
,
String
>
requestCustomer
=
new
HashMap
<>();
requestCustomer
.
put
(
"-1"
,
"c.code"
);
requestCustomer
.
put
(
"-2"
,
"c.name"
);
requestCustomer
.
put
(
"-3"
,
"c.company_name"
);
requestCustomer
.
put
(
"-4"
,
"c.gender"
);
requestCustomer
.
put
(
"-5"
,
"c.current_address"
);
requestCustomer
.
put
(
"-6"
,
"c.place_of_birth"
);
requestCustomer
.
put
(
"-7"
,
"c.date_of_birth"
);
requestCustomer
.
put
(
"-8"
,
"cc.contact"
);
requestCustomer
.
put
(
"-9"
,
"cc2.contact"
);
requestCustomer
.
put
(
"-10"
,
"c.username"
);
requestCustomer
.
put
(
"-11"
,
"c.area_code"
);
requestCustomer
.
put
(
"-12"
,
"c.customer_type"
);
requestCustomer
.
put
(
"-13"
,
"c.call_allowed"
);
requestCustomer
.
put
(
"-14"
,
"c.email_allowed"
);
requestCustomer
.
put
(
"-15"
,
"c.sms_allowed"
);
requestCustomer
.
put
(
"-16"
,
"c.ipcc_status"
);
try
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"select"
);
sb
.
append
(
"select
c.customer_id customerId,
"
);
sb
.
append
(
" C.NAME name,"
);
sb
.
append
(
" C.CUSTOMER_ID customerID,"
);
sb
.
append
(
" C.USERNAME username,"
);
sb
.
append
(
" C.GENDER gender,"
);
sb
.
append
(
" C.COMPANY_NAME companyName,"
);
sb
.
append
(
" C.DATE_OF_BIRTH dateOfBirth,"
);
sb
.
append
(
" C.CUSTOMER_TYPE customerType,"
);
sb
.
append
(
" cc.contact mobileNumber,"
);
sb
.
append
(
" cc2.contact email,"
);
sb
.
append
(
" c.customer_type customerType,"
);
sb
.
append
(
" C.COMPANY_NAME companyName,"
);
sb
.
append
(
" C.PLACE_OF_BIRTH placeOfBirth,"
);
sb
.
append
(
" C.EMAIL email,"
);
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.ACTIVE active,"
);
sb
.
append
(
" CFO.*"
);
sb
.
append
(
" c.current_address currentAddress,"
);
sb
.
append
(
" c.Description description"
);
sb
.
append
(
" FROM CUSTOMER C"
);
sb
.
append
(
" INNER JOIN CUSTOM
IZE_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
"
);
sb
.
append
(
"
CFO.STATUS
= 1"
);
sb
.
append
(
"
AND CF.ACTIVE = 1
"
);
sb
.
append
(
"
AND CF.FUNCTION_CODE = 'CUSTOMER'
"
);
sb
.
append
(
" INNER JOIN CUSTOM
ER_contact cc ON (C.CUSTOMER_ID = Cc.customer_id "
+
"and cc.status = 1 and cc.contact_type = 5)"
);
sb
.
append
(
" INNER JOIN CUSTOMER_contact Cc2 ON (C.CUSTOMER_ID = Cc2.customer_id and cc2.status = 1 and cc2.contact_type = 2)
"
);
sb
.
append
(
"
inner join customize_field_object cfo on c.customer_id = cfo.object_id and cfo.status
= 1"
);
sb
.
append
(
"
AND C.STATUS = 1
"
);
sb
.
append
(
"
AND C.customer_id not in (select customer_id from campaign_customer where campaign_id = :p_campaign_id)
"
);
List
<
CustomerQueryDTO
>
customerDTOList
=
campaignCustomerDTO
.
getListQuery
();
for
(
CustomerQueryDTO
query
:
customerDTOList
)
{
if
(
query
.
getJoin
()
==
null
)
{
sb
.
append
(
"AND "
);
}
else
{
sb
.
append
(
query
.
getJoin
()
+
" "
);
// if ("like".equals(query.getOperator()) || "not like".equals(query.getOperator())) {
// sb.append("%"+ query.getCondition() + "% ");
// } else {
// sb.append(query.getCondition());
// }
}
switch
(
query
.
getField
()
+
""
)
{
case
"-1"
:
sb
.
append
(
" C.CUSTOMER_ID "
+
query
.
getOperator
()
+
" '%"
+
query
.
getCondition
()
+
"%' "
);
break
;
case
"-2"
:
sb
.
append
(
" C.NAME "
+
query
.
getOperator
()
+
" '%"
+
query
.
getCondition
()
+
"%' "
);
break
;
case
"-3"
:
sb
.
append
(
" C.COMPANY_NAME "
+
query
.
getOperator
()
+
" '%"
+
query
.
getCondition
()
+
"%' "
);
break
;
case
"-4"
:
sb
.
append
(
" C.GENDER "
+
query
.
getOperator
()
+
" '%"
+
query
.
getCondition
()
+
"%' "
);
break
;
case
"-5"
:
sb
.
append
(
" C.CURRENT_ADDRESS "
+
query
.
getOperator
()
+
" '%"
+
query
.
getCondition
()
+
"%' "
);
break
;
case
"-6"
:
sb
.
append
(
" C.PLACE_OF_BIRTH "
+
query
.
getOperator
()
+
"to_date("
+
query
.
getCondition
()
+
", 'dd/mm/yyyy')"
);
if
(
customerDTOList
.
get
(
0
).
getField
()
>
0
)
{
switch
(
customerDTOList
.
get
(
0
).
getType
())
{
case
"combobox"
:
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
0
).
getField
()
+
" and cfo.field_option_value_id "
+
customerDTOList
.
get
(
0
).
getOperator
()
+
""
+
customerDTOList
.
get
(
0
).
getCondition
()
+
")"
);
break
;
case
"-7"
:
sb
.
append
(
" C.DATE_OF_BIRTH "
+
query
.
getOperator
()
+
"to_date("
+
query
.
getCondition
()
+
", 'dd/mm/yyyy')"
);
break
;
case
"-8"
:
sb
.
append
(
" C.MOBILE_NUMBER "
+
query
.
getOperator
()
+
" '%"
+
query
.
getCondition
()
+
"%' "
);
case
"text"
:
if
(
"like"
.
equals
(
customerDTOList
.
get
(
0
).
getOperator
())
||
"not like"
.
equals
(
customerDTOList
.
get
(
0
).
getOperator
()))
{
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
0
).
getField
()
+
" and cfo.value_text "
+
customerDTOList
.
get
(
0
).
getOperator
()
+
" '%"
+
customerDTOList
.
get
(
0
).
getCondition
()
+
"%')"
);
}
else
{
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
0
).
getField
()
+
" and cfo.value_text "
+
customerDTOList
.
get
(
0
).
getOperator
()
+
" "
+
customerDTOList
.
get
(
0
).
getCondition
()
+
")"
);
}
break
;
case
"
-9
"
:
sb
.
append
(
"
C.EMAIL "
+
query
.
getOperator
()
+
" '%"
+
query
.
getCondition
()
+
"%'
"
);
case
"
date
"
:
sb
.
append
(
"
and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
0
).
getField
()
+
" and cfo.value_date "
+
customerDTOList
.
get
(
0
).
getOperator
()
+
" to_date("
+
customerDTOList
.
get
(
0
).
getCondition
()
+
", 'DD/MM/YYYY'))
"
);
break
;
case
"
-10
"
:
sb
.
append
(
"
C.USER_NAME "
+
query
.
getOperator
()
+
" '%"
+
query
.
getCondition
()
+
"%'
"
);
case
"
number
"
:
sb
.
append
(
"
and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
0
).
getField
()
+
" and cfo.value_number "
+
customerDTOList
.
get
(
0
).
getOperator
()
+
" "
+
customerDTOList
.
get
(
0
).
getCondition
()
+
")
"
);
break
;
case
"
-11
"
:
sb
.
append
(
"
C.CUSTOMER_TYPE "
+
query
.
getOperator
()
+
" '%"
+
query
.
getCondition
()
+
"%'
"
);
case
"
checkbox
"
:
sb
.
append
(
"
and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
0
).
getField
()
+
" and cfo.value_checkbox "
+
customerDTOList
.
get
(
0
).
getOperator
()
+
" "
+
customerDTOList
.
get
(
0
).
getCondition
()
+
")
"
);
break
;
}
}
else
{
if
(
"like"
.
equals
(
customerDTOList
.
get
(
0
).
getOperator
())
||
"not like"
.
equals
(
customerDTOList
.
get
(
0
).
getOperator
()))
{
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
0
).
getField
()
+
" and cfo.value_text "
+
customerDTOList
.
get
(
0
).
getOperator
()
+
" '%"
+
customerDTOList
.
get
(
0
).
getCondition
()
+
"%')"
);
}
else
{
sb
.
append
(
"and "
+
requestCustomer
.
get
(
customerDTOList
.
get
(
0
).
getField
().
toString
())
+
" "
+
customerDTOList
.
get
(
0
).
getOperator
()
+
" "
+
customerDTOList
.
get
(
0
).
getCondition
());
}
}
for
(
int
i
=
1
;
i
<
campaignCustomerDTO
.
getListQuery
().
size
();
i
++)
{
if
(
customerDTOList
.
get
(
i
).
getField
()
<
0
)
{
if
(
"like"
.
equals
(
customerDTOList
.
get
(
i
).
getOperator
())
||
"not like"
.
equals
(
customerDTOList
.
get
(
i
).
getOperator
()))
{
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
i
).
getField
()
+
" and cfo.value_text "
+
customerDTOList
.
get
(
i
).
getOperator
()
+
" '%"
+
customerDTOList
.
get
(
i
).
getCondition
()
+
"%')"
);
sb
.
append
(
" "
+
customerDTOList
.
get
(
i
).
getJoin
()
+
" "
+
requestCustomer
.
get
(
customerDTOList
.
get
(
i
).
getField
().
toString
())
+
" "
+
customerDTOList
.
get
(
i
).
getOperator
()
+
" "
+
"'%"
+
customerDTOList
.
get
(
i
).
getCondition
()
+
"%' "
);
}
else
{
sb
.
append
(
" "
+
customerDTOList
.
get
(
i
).
getJoin
()
+
" "
+
requestCustomer
.
get
(
customerDTOList
.
get
(
i
).
getField
().
toString
())
+
" "
+
customerDTOList
.
get
(
i
).
getOperator
()
+
" "
+
customerDTOList
.
get
(
i
).
getCondition
()
+
" "
);
}
}
else
{
switch
(
customerDTOList
.
get
(
i
).
getType
())
{
case
"combobox"
:
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
i
).
getField
()
+
" and cfo.field_option_value_id "
+
customerDTOList
.
get
(
i
).
getOperator
()
+
" "
+
customerDTOList
.
get
(
i
).
getCondition
()
+
")"
);
break
;
case
"text"
:
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
i
).
getField
()
+
" and cfo.value_text "
+
customerDTOList
.
get
(
i
).
getOperator
()
+
" %'"
+
customerDTOList
.
get
(
i
).
getCondition
()
+
"%')"
);
break
;
case
"date"
:
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
i
).
getField
()
+
" and cfo.value_date "
+
customerDTOList
.
get
(
i
).
getOperator
()
+
" "
+
customerDTOList
.
get
(
i
).
getCondition
()
+
")"
);
break
;
case
"number"
:
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
i
).
getField
()
+
" and cfo.value_number "
+
customerDTOList
.
get
(
i
).
getOperator
()
+
" "
+
customerDTOList
.
get
(
i
).
getCondition
()
+
")"
);
break
;
case
"checkbox"
:
sb
.
append
(
"and (cfo.customize_fields_id ="
+
customerDTOList
.
get
(
i
).
getField
()
+
" and cfo.value_checkbox "
+
customerDTOList
.
get
(
i
).
getOperator
()
+
" "
+
customerDTOList
.
get
(
i
).
getCondition
()
+
")"
);
break
;
}
}
}
SQLQuery
query
=
session
.
createSQLQuery
(
sb
.
toString
());
query
.
addScalar
(
"customerId"
,
new
LongType
());
query
.
addScalar
(
"name"
,
new
StringType
());
query
.
addScalar
(
"userName"
,
new
StringType
());
query
.
addScalar
(
"companyName"
,
new
StringType
());
query
.
addScalar
(
"customerType"
,
new
LongType
());
query
.
addScalar
(
"currentAddress"
,
new
StringType
());
query
.
addScalar
(
"customerId"
,
new
LongType
());
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
.
addScalar
(
"customerType"
,
new
LongType
());
query
.
addScalar
(
"companyName"
,
new
StringType
());
query
.
addScalar
(
"currentAddress"
,
new
StringType
());
query
.
addScalar
(
"description"
,
new
StringType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CampaignCustomerDTO
.
class
));
query
.
setParameter
(
"p_campaign_id"
,
campaignCustomerDTO
.
getCampaignId
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CustomerDTO
.
class
));
int
count
=
0
;
List
<
C
ampaignC
ustomerDTO
>
dtoList
=
query
.
list
();
List
<
CustomerDTO
>
dtoList
=
query
.
list
();
if
(
dtoList
.
size
()
>
0
)
{
count
=
query
.
list
().
size
();
}
...
...
@@ -1981,8 +2022,8 @@ public class CustomerServiceImpl implements CustomerService {
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
C
ampaignCustomerDTO
>
data
=
query
.
list
();
Page
<
C
ampaignC
ustomerDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
List
<
C
ustomerDTO
>
data
=
query
.
list
();
Page
<
CustomerDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
resultDTO
.
setData
(
dataPage
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
...
...
@@ -1997,11 +2038,4 @@ public class CustomerServiceImpl implements CustomerService {
return
resultDTO
;
}
private
String
getCodition
(
String
join
,
String
operator
,
String
codition
)
{
// if (operator.equalsIgnoreCase("LIKE") || operator.equalsIgnoreCase("NOT_LIKE")) {
// } else {
// return " " + join + " " + operator + " " + codition + " ";
// }
return
null
;
}
}
src/main/java/com/viettel/campaign/web/dto/request_dto/CustomerQueryDTO.java
View file @
5e3ed78c
package
com.viettel.campaign.web.dto.request_dto
;
import
com.viettel.campaign.web.dto.BaseDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public
class
CustomerQueryDTO
extends
BaseDTO
{
String
join
;
Long
field
;
String
operator
;
String
condition
;
String
type
;
}
src/main/java/com/viettel/campaign/web/rest/CampaignExecuteController.java
View file @
5e3ed78c
...
...
@@ -180,4 +180,11 @@ public class CampaignExecuteController {
String
result
=
campaignExecuteService
.
getDialModeAtCurrent
(
companySiteId
,
campaignId
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@GetMapping
(
"/getContactCustResultById"
)
@ResponseBody
public
ResponseEntity
getContactCustResultById
(
@RequestParam
(
"contactCustResultId"
)
Long
contactCustResultId
)
{
ResultDTO
result
=
campaignExecuteService
.
getContactCustResultById
(
contactCustResultId
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
View file @
5e3ed78c
...
...
@@ -316,7 +316,7 @@ public class CustomerController {
return
new
ResponseEntity
<>(
resultDTO
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/search
CustomizeFields
"
)
@PostMapping
(
"/search
IndividualCustomer
"
)
@ResponseBody
public
ResponseEntity
searchCustomizeFields
(
@RequestBody
CampaignCustomerDTO
campaignCustomerDTO
)
{
ResultDTO
result
=
customerService
.
searchCustomizeFields
(
campaignCustomerDTO
);
...
...
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