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
2bf2ed2a
Commit
2bf2ed2a
authored
Sep 03, 2019
by
Vu Duy Anh
Browse files
Options
Browse Files
Download
Plain Diff
anhvd commit accept merge
parents
79337f2f
744ddebd
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
62 additions
and
47 deletions
+62
-47
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCustomerRepository.java
...aign/repository/ccms_full/CampaignCustomerRepository.java
+2
-0
src/main/java/com/viettel/campaign/service/impl/AgentsServiceImpl.java
.../com/viettel/campaign/service/impl/AgentsServiceImpl.java
+26
-20
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
...ttel/campaign/service/impl/CampaignExecuteServiceImp.java
+2
-10
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
...om/viettel/campaign/service/impl/CustomerServiceImpl.java
+29
-16
src/main/java/com/viettel/campaign/service/impl/ScenarioServiceImpl.java
...om/viettel/campaign/service/impl/ScenarioServiceImpl.java
+3
-1
No files found.
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCustomerRepository.java
View file @
2bf2ed2a
...
...
@@ -91,6 +91,8 @@ public interface CampaignCustomerRepository extends JpaRepository<CampaignCustom
CampaignCustomer
findCampaignCustomerByCampaignIdAndCompanySiteIdAndCustomerId
(
Long
campaignId
,
Long
companySiteId
,
Long
customerId
);
List
<
CampaignCustomer
>
findCampaignCustomersByCampaignIdAndCompanySiteIdAndCustomerIdAndInCampaignStatus
(
Long
campaignId
,
Long
companySiteId
,
Long
customerId
,
Short
inCampaingStatus
);
@Query
(
value
=
"select complete_value from campaign_complete_code where status = 1 and is_finish = 0 and is_recall = 0"
,
nativeQuery
=
true
)
List
<
Short
>
getStatus
();
}
src/main/java/com/viettel/campaign/service/impl/AgentsServiceImpl.java
View file @
2bf2ed2a
...
...
@@ -301,32 +301,39 @@ public class AgentsServiceImpl implements AgentsService {
StringBuilder
sqlStrBuilder
=
new
StringBuilder
();
sqlStrBuilder
.
append
(
"SELECT"
);
sqlStrBuilder
.
append
(
" a.USER_ID userId,"
);
sqlStrBuilder
.
append
(
" a.USER_NAME userName,"
);
sqlStrBuilder
.
append
(
" a.STATUS status,"
);
sqlStrBuilder
.
append
(
" a.FULL_NAME fullName,"
);
sqlStrBuilder
.
append
(
" a.COMPANY_SITE_ID companySiteId,"
);
sqlStrBuilder
.
append
(
" b.FILTER_TYPE filterType,"
);
sqlStrBuilder
.
append
(
" b.CAMPAIGN_AGENT_ID campaignAgentId"
);
sqlStrBuilder
.
append
(
" FROM VSA_USERS a"
);
sqlStrBuilder
.
append
(
" LEFT JOIN CAMPAIGN_AGENT b on a.USER_ID = b.AGENT_ID"
);
sqlStrBuilder
.
append
(
" INNER JOIN USER_ROLE c on a.USER_ID = c.USER_ID"
);
sqlStrBuilder
.
append
(
" INNER JOIN ROLE d on c.ROLE_ID = d.ROLE_ID"
);
sqlStrBuilder
.
append
(
" vu.USER_ID userId,"
);
sqlStrBuilder
.
append
(
" vu.USER_NAME userName,"
);
sqlStrBuilder
.
append
(
" vu.STATUS status,"
);
sqlStrBuilder
.
append
(
" vu.FULL_NAME fullName,"
);
sqlStrBuilder
.
append
(
" vu.COMPANY_SITE_ID companySiteId,"
);
sqlStrBuilder
.
append
(
" r.ROLE_CODE roleCode"
);
sqlStrBuilder
.
append
(
" FROM VSA_USERS vu"
);
sqlStrBuilder
.
append
(
" INNER JOIN USER_ROLE ur on vu.USER_ID = ur.USER_ID"
);
sqlStrBuilder
.
append
(
" INNER JOIN ROLE r on ur.ROLE_ID = r.ROLE_ID"
);
sqlStrBuilder
.
append
(
" WHERE 1 = 1"
);
sqlStrBuilder
.
append
(
" AND a.COMPANY_SITE_ID = :p_company_site_id"
);
sqlStrBuilder
.
append
(
" AND vu.COMPANY_SITE_ID = :p_company_site_id"
);
sqlStrBuilder
.
append
(
" AND vu.STATUS = 1"
);
sqlStrBuilder
.
append
(
" AND r.ROLE_CODE IN ('AGENT', 'SUPERVISOR')"
);
sqlStrBuilder
.
append
(
" AND vu.USER_ID NOT IN (SELECT vu.USER_ID userId"
);
sqlStrBuilder
.
append
(
" FROM VSA_USERS vu"
);
sqlStrBuilder
.
append
(
" LEFT JOIN CAMPAIGN_AGENT ca on vu.USER_ID = ca.AGENT_ID"
);
sqlStrBuilder
.
append
(
" INNER JOIN USER_ROLE ur on vu.USER_ID = ur.USER_ID"
);
sqlStrBuilder
.
append
(
" INNER JOIN ROLE r on ur.ROLE_ID = r.ROLE_ID"
);
sqlStrBuilder
.
append
(
" WHERE 1 = 1"
);
sqlStrBuilder
.
append
(
" AND vu.COMPANY_SITE_ID = :p_company_site_id"
);
sqlStrBuilder
.
append
(
" AND vu.STATUS = 1"
);
sqlStrBuilder
.
append
(
" AND ca.CAMPAIGN_ID = :p_campaign_id"
);
sqlStrBuilder
.
append
(
" AND r.ROLE_CODE IN ('AGENT', 'SUPERVISOR'))"
);
if
(!
DataUtil
.
isNullOrEmpty
(
userName
))
{
sqlStrBuilder
.
append
(
" AND UPPER(
a
.USER_NAME) LIKE UPPER(:p_user_name)"
);
sqlStrBuilder
.
append
(
" AND UPPER(
vu
.USER_NAME) LIKE UPPER(:p_user_name)"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
fullName
))
{
sqlStrBuilder
.
append
(
" AND UPPER(
a
.FULL_NAME) LIKE UPPER(:p_full_name)"
);
sqlStrBuilder
.
append
(
" AND UPPER(
vu
.FULL_NAME) LIKE UPPER(:p_full_name)"
);
}
sqlStrBuilder
.
append
(
" AND d.ROLE_CODE IN ('AGENT', 'SUPERVISOR')"
);
sqlStrBuilder
.
append
(
" AND a.STATUS = 1"
);
sqlStrBuilder
.
append
(
" AND (b.CAMPAIGN_ID IS NULL OR b.CAMPAIGN_ID <> :p_campaign_id)"
);
sqlStrBuilder
.
append
(
" ORDER BY UPPER(a.FULL_NAME)"
);
sqlStrBuilder
.
append
(
" ORDER BY UPPER(vu.FULL_NAME)"
);
SQLQuery
query
=
session
.
createSQLQuery
(
sqlStrBuilder
.
toString
());
...
...
@@ -356,8 +363,7 @@ public class AgentsServiceImpl implements AgentsService {
query
.
addScalar
(
"status"
,
new
ShortType
());
query
.
addScalar
(
"fullName"
,
new
StringType
());
query
.
addScalar
(
"companySiteId"
,
new
LongType
());
query
.
addScalar
(
"filterType"
,
new
ShortType
());
query
.
addScalar
(
"campaignAgentId"
,
new
LongType
());
query
.
addScalar
(
"roleCode"
,
new
StringType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
VSAUsersDTO
.
class
));
int
count
=
0
;
...
...
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
View file @
2bf2ed2a
...
...
@@ -489,16 +489,8 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
List
<
CampaignCustomer
>
lst
=
null
;
//campaignCustomerRepository.getCustomerRecallDate(dto.getCampaignId(), dto.getAgentId(), dto.getCompanySiteId(), );
if
(
lst
!=
null
)
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
//result.setTotalRow(count);
//result.setListData(campaignExecuteRepository.searchCampaignExecute(requestDto, SQLBuilder.buildPageable(requestDto)));
//result.setData(data);
}
else
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
return
result
;
}
...
...
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
View file @
2bf2ed2a
...
...
@@ -1585,16 +1585,18 @@ public class CustomerServiceImpl implements CustomerService {
sb
.
append
(
"with cusPhone as ("
);
sb
.
append
(
" select customer_id cusId,"
);
sb
.
append
(
"
contact
phone"
);
sb
.
append
(
"
listagg(contact, ',') within group (order by create_date desc)
phone"
);
sb
.
append
(
" from customer_contact cc"
);
sb
.
append
(
" where cc.contact_type = 5"
);
sb
.
append
(
" and status = 1"
);
sb
.
append
(
" and status = 1 "
);
sb
.
append
(
" group by customer_id"
);
sb
.
append
(
" ), cusEmail as ("
);
sb
.
append
(
" select customer_id cusId,"
);
sb
.
append
(
"
contact
email"
);
sb
.
append
(
"
listagg(contact , ',') within group(order by create_date desc)
email"
);
sb
.
append
(
" from customer_contact cc"
);
sb
.
append
(
" where cc.contact_type = 2"
);
sb
.
append
(
" and status = 1"
);
sb
.
append
(
" and status = 1 "
);
sb
.
append
(
" group by customer_id"
);
sb
.
append
(
" ),"
+
"cusInCampaign as ("
+
"select * from campaign_customer "
+
...
...
@@ -1653,12 +1655,14 @@ public class CustomerServiceImpl implements CustomerService {
List
<
Short
>
lstStatus
=
campaignCustomerRepository
.
getStatus
();
try
{
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
);
campaignCustomerRepository
.
save
(
entity
);
List
<
CampaignCustomer
>
listEntity
=
campaignCustomerRepository
.
findCampaignCustomersByCampaignIdAndCompanySiteIdAndCustomerIdAndInCampaignStatus
(
campaignId
,
companySiteId
,
Long
.
parseLong
(
cusId
),
(
short
)
1
);
for
(
CampaignCustomer
entity
:
listEntity
)
{
if
(
entity
.
getStatus
()
==
0
)
{
campaignCustomerRepository
.
delete
(
entity
);
}
else
if
(
lstStatus
.
contains
(
entity
.
getStatus
()))
{
entity
.
setInCampaignStatus
((
short
)
0
);
campaignCustomerRepository
.
save
(
entity
);
}
}
}
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
...
...
@@ -1888,7 +1892,6 @@ 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
();
...
...
@@ -1916,16 +1919,24 @@ public class CustomerServiceImpl implements CustomerService {
sb
.
append
(
"select c.customer_id customerId,"
);
sb
.
append
(
" C.NAME name,"
);
sb
.
append
(
"
cc.contact
mobileNumber,"
);
sb
.
append
(
"
cc2.contact
email,"
);
sb
.
append
(
"
a.mobile
mobileNumber,"
);
sb
.
append
(
"
b.Email
email,"
);
sb
.
append
(
" c.customer_type customerType,"
);
sb
.
append
(
" C.COMPANY_NAME companyName,"
);
sb
.
append
(
" c.current_address currentAddress,"
);
sb
.
append
(
" c.Description description"
);
sb
.
append
(
" FROM CUSTOMER C"
);
sb
.
append
(
" INNER JOIN CUSTOMER_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 (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY "
);
sb
.
append
(
" NULL) AS MOBILE"
);
sb
.
append
(
" FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 5 AND STATUS = 1 GROUP BY "
);
sb
.
append
(
" CUSTOMER_ID) a on c.CUSTOMER_ID = a.CUSTOMER_ID"
);
sb
.
append
(
" inner join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY "
);
sb
.
append
(
" NULL) AS EMAIL"
);
sb
.
append
(
" FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 2 AND STATUS = 1 GROUP BY "
);
sb
.
append
(
" CUSTOMER_ID) b on b.CUSTOMER_ID = c.CUSTOMER_ID "
);
// sb.append(" INNER JOIN CUSTOMER_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) "
);
...
...
@@ -2017,6 +2028,7 @@ public class CustomerServiceImpl implements CustomerService {
}
Pageable
pageable
=
PageRequest
.
of
(
campaignCustomerDTO
.
getPage
(),
campaignCustomerDTO
.
getPageSize
());
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
...
...
@@ -2025,6 +2037,7 @@ public class CustomerServiceImpl implements CustomerService {
List
<
CustomerDTO
>
data
=
query
.
list
();
Page
<
CustomerDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
resultDTO
.
setData
(
dataPage
);
resultDTO
.
setTotalRow
(
count
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/viettel/campaign/service/impl/ScenarioServiceImpl.java
View file @
2bf2ed2a
...
...
@@ -253,6 +253,7 @@ public class ScenarioServiceImpl implements ScenarioService {
StringBuilder
sb
=
new
StringBuilder
();
boolean
isValid
=
true
;
XSSFWorkbook
workbook
=
null
;
FileInputStream
fis
=
null
;
try
{
List
<
String
>
fileHeaderList
=
new
ArrayList
<>();
fileHeaderList
.
add
(
BundleUtils
.
getLangString
(
"scenario.template.questionCode"
,
locale
));
...
...
@@ -265,7 +266,7 @@ public class ScenarioServiceImpl implements ScenarioService {
fileHeaderList
.
add
(
BundleUtils
.
getLangString
(
"scenario.template.mappingQuestion"
,
locale
));
File
file
=
new
File
(
path
);
FileInputStream
fis
=
new
FileInputStream
(
file
);
fis
=
new
FileInputStream
(
file
);
workbook
=
new
XSSFWorkbook
(
fis
);
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
Sheet
sheet
=
workbook
.
getSheetAt
(
0
);
...
...
@@ -447,6 +448,7 @@ public class ScenarioServiceImpl implements ScenarioService {
result
.
put
(
"message"
,
BundleUtils
.
getLangString
(
"customer.errorValidate"
,
locale
));
}
finally
{
if
(
workbook
!=
null
)
workbook
.
close
();
if
(
fis
!=
null
)
fis
.
close
();
}
return
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