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
587b991f
Commit
587b991f
authored
Aug 09, 2019
by
đinh thị đầm
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://git.myitsol.com/hanv/service-campaign
parents
c98051b7
66b0168b
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
233 additions
and
78 deletions
+233
-78
src/main/java/com/viettel/campaign/repository/CampaignCustomerRepository.java
...ettel/campaign/repository/CampaignCustomerRepository.java
+14
-0
src/main/java/com/viettel/campaign/repository/CampaignRepository.java
...a/com/viettel/campaign/repository/CampaignRepository.java
+3
-0
src/main/java/com/viettel/campaign/repository/CustomerContactRepository.java
...iettel/campaign/repository/CustomerContactRepository.java
+5
-1
src/main/java/com/viettel/campaign/repository/impl/CampaignExecuteRepositoryImp.java
...ampaign/repository/impl/CampaignExecuteRepositoryImp.java
+82
-19
src/main/java/com/viettel/campaign/repository/impl/TicketRepositoryImpl.java
...iettel/campaign/repository/impl/TicketRepositoryImpl.java
+1
-1
src/main/java/com/viettel/campaign/service/CampaignService.java
...in/java/com/viettel/campaign/service/CampaignService.java
+2
-0
src/main/java/com/viettel/campaign/service/CustomerService.java
...in/java/com/viettel/campaign/service/CustomerService.java
+8
-1
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+25
-11
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
...om/viettel/campaign/service/impl/CustomerServiceImpl.java
+46
-18
src/main/java/com/viettel/campaign/web/dto/ContactCustResultDTO.java
...va/com/viettel/campaign/web/dto/ContactCustResultDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/dto/CustomerContactDTO.java
...java/com/viettel/campaign/web/dto/CustomerContactDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
...ttel/campaign/web/rest/controller/CampaignController.java
+17
-0
src/main/java/com/viettel/campaign/web/rest/controller/CustomerController.java
...ttel/campaign/web/rest/controller/CustomerController.java
+11
-3
src/main/resources/i18n/language_en.properties
src/main/resources/i18n/language_en.properties
+14
-14
src/main/resources/sql/campaign-execute/get-combo-campaign-type.sql
...esources/sql/campaign-execute/get-combo-campaign-type.sql
+1
-1
src/main/resources/sql/campaign-execute/get-execute-interactive.sql
...esources/sql/campaign-execute/get-execute-interactive.sql
+2
-7
No files found.
src/main/java/com/viettel/campaign/repository/CampaignCustomerRepository.java
0 → 100644
View file @
587b991f
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.model.CampaignCustomer
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
public
interface
CampaignCustomerRepository
extends
JpaRepository
<
CampaignCustomer
,
Long
>
{
@Query
(
value
=
"SELECT COUNT(*) "
+
"FROM CAMPAIGN_CUSTOMER CC JOIN CAMPAIGN_COMPLETE_CODE CCC ON CC.CAMPAIGN_ID = CCC.CAMPAIGN_ID "
+
"WHERE CC.STATUS = 3 AND CC.CAMPAIGN_ID = :campaignId AND CC.CUSTOMER_ID = :customerId AND CCC.IS_RECALL = 1 AND CCC.STATUS = 1 "
,
nativeQuery
=
true
)
Long
getCustomerRecall
(
@Param
(
"campaignId"
)
Long
campaignId
,
@Param
(
"customerId"
)
Long
customerId
);
}
src/main/java/com/viettel/campaign/repository/CampaignRepository.java
View file @
587b991f
...
...
@@ -19,5 +19,8 @@ public interface CampaignRepository extends JpaRepository<Campaign, Long>, Campa
" AND cc.agentId = :pAgentId"
)
Long
countRecallCustomer
(
@Param
(
"pCompanySiteId"
)
Long
pCompanySiteId
,
@Param
(
"pAgentId"
)
Long
pAgentId
);
Campaign
findByCampaignId
(
Long
campaignId
);
Campaign
findCampaignByCampaignIdAndCompanySiteId
(
Long
campaignId
,
Long
companySiteId
);
}
src/main/java/com/viettel/campaign/repository/CustomerContactRepository.java
View file @
587b991f
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.model.CustomerContact
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
java.util.List
;
public
interface
CustomerContactRepository
extends
JpaRepository
<
CustomerContact
,
Long
>
{
List
<
CustomerContact
>
findByCustomerIdAndAndContactTypeAndContact
(
Long
customerId
,
Short
contactType
,
String
contact
);
@Query
(
"FROM CustomerContact WHERE status = 1 AND customerId = :customerId AND contactType = :contactType AND (contact IS NULL OR UPPER(contact) LIKE UPPER(concat('%', :contact, '%')))"
)
List
<
CustomerContact
>
findByCustomerIdAndAndContactTypeAndContact
(
@Param
(
"customerId"
)
Long
customerId
,
@Param
(
"contactType"
)
Short
contactType
,
@Param
(
"contact"
)
String
contact
,
Pageable
pageable
);
}
src/main/java/com/viettel/campaign/repository/impl/CampaignExecuteRepositoryImp.java
View file @
587b991f
...
...
@@ -43,12 +43,11 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
public
List
<
ApParamDTO
>
getComboBoxStatus
(
String
companySiteId
,
String
completeType
)
{
List
<
ApParamDTO
>
list
=
new
ArrayList
<>();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-combo-
connect-
status"
);
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-combo-status"
);
try
{
params
.
put
(
"p_company_site_id"
,
companySiteId
);
params
.
put
(
"p_complete_type"
,
completeType
);
list
=
namedParameterJdbcTemplate
.
query
(
sql
,
params
,
BeanPropertyRowMapper
.
newInstance
(
ApParamDTO
.
class
));
// list = namedParameterJdbcTemplate.getJdbcTemplate().query(sql, (PreparedStatementSetter) params, BeanPropertyRowMapper.newInstance(ComboBoxDTO.class));
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
...
...
@@ -82,37 +81,69 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-execute-interactive"
);
sqlBuilder
.
append
(
sql
);
sqlBuilder
.
append
(
" and to_char(a.customer_id) like :p_customer_id"
);
sqlBuilder
.
append
(
" and to_char(a.contact_status) in (:p_list_contact_status)"
);
sqlBuilder
.
append
(
" and to_char(a.call_status) in (:p_list_survey_status)"
);
sqlBuilder
.
append
(
" and to_char(a.status) in (:p_list_record_status)"
);
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getPhoneNumber
()))
{
sqlBuilder
.
append
(
" and a.phone_number like :p_phone_number"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignId
()))
{
sqlBuilder
.
append
(
" and b.campaign_code in (:p_list_campaign_id) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
sqlBuilder
.
append
(
" and upper(
campaignName) like upper(:p_campaign_name)
"
);
sqlBuilder
.
append
(
" and upper(
b.campaign_name) like :p_campaign_name
"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
sqlBuilder
.
append
(
" and upper(
userName) like upper(:p_user_name)
"
);
sqlBuilder
.
append
(
" and upper(
c.user_name) like :p_user_name
"
);
}
SQLQuery
query
=
session
.
createSQLQuery
(
sqlBuilder
.
toString
());
query
.
setParameterList
(
"p_list_campaign_id"
,
dto
.
getCampaignId
().
split
(
","
));
query
.
setParameter
(
"p_customer_id"
,
dto
.
getCustomerId
());
query
.
setParameter
(
"p_company_site_id"
,
dto
.
getCompanySiteId
());
query
.
setParameter
(
"p_customer_id"
,
"%"
+
dto
.
getCustomerId
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
query
.
setParameter
(
"p_date_from"
,
dto
.
getFromDate
());
query
.
setParameter
(
"p_date_to"
,
dto
.
getToDate
());
query
.
setParameterList
(
"p_list_contact_status"
,
dto
.
getContactStatus
().
split
(
","
));
query
.
setParameterList
(
"p_list_survey_status"
,
dto
.
getSurveyStatus
().
split
(
","
));
query
.
setParameterList
(
"p_list_record_status"
,
dto
.
getRecordStatus
().
split
(
","
));
query
.
setParameter
(
"p_phone_number"
,
dto
.
getPhoneNumber
());
query
.
setParameter
(
"p_call_time_from"
,
dto
.
getCallTimeFrom
());
query
.
setParameter
(
"p_call_time_to"
,
dto
.
getCallTimeTo
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignId
()))
{
query
.
setParameterList
(
"p_list_campaign_id"
,
dto
.
getCampaignId
().
split
(
","
));
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getPhoneNumber
()))
{
query
.
setParameter
(
"p_phone_number"
,
"%"
+
dto
.
getPhoneNumber
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
query
.
setParameter
(
"p_campaign_name"
,
dto
.
getCampaignName
().
trim
());
query
.
setParameter
(
"p_campaign_name"
,
"%"
+
dto
.
getCampaignName
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
query
.
setParameter
(
"p_user_name"
,
dto
.
getAgentId
().
trim
());
query
.
setParameter
(
"p_user_name"
,
"%"
+
dto
.
getAgentId
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
query
.
addScalar
(
"campaignCode"
,
new
StringType
());
query
.
addScalar
(
"campaignName"
,
new
StringType
());
query
.
addScalar
(
"userName"
,
new
StringType
());
query
.
addScalar
(
"phoneNumber"
,
new
Lo
ngType
());
query
.
addScalar
(
"phoneNumber"
,
new
Stri
ngType
());
query
.
addScalar
(
"customerName"
,
new
StringType
());
query
.
addScalar
(
"createTime"
,
new
DateType
());
query
.
addScalar
(
"contactStatus"
,
new
StringType
());
...
...
@@ -156,9 +187,9 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
logger
.
error
(
e
.
getMessage
(),
e
);
}
finally
{
session
.
close
();
}
return
resultDTO
;
}
}
@Override
public
List
<
ContactCustResultDTO
>
getExcelInteractiveResult
(
CampaignRequestDTO
dto
)
{
...
...
@@ -172,37 +203,69 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-execute-interactive"
);
sqlBuilder
.
append
(
sql
);
sqlBuilder
.
append
(
" and to_char(a.customer_id) like :p_customer_id"
);
sqlBuilder
.
append
(
" and to_char(a.contact_status) in (:p_list_contact_status)"
);
sqlBuilder
.
append
(
" and to_char(a.call_status) in (:p_list_survey_status)"
);
sqlBuilder
.
append
(
" and to_char(a.status) in (:p_list_record_status)"
);
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getPhoneNumber
()))
{
sqlBuilder
.
append
(
" and a.phone_number like :p_phone_number"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignId
()))
{
sqlBuilder
.
append
(
" and b.campaign_code in (:p_list_campaign_id) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
sqlBuilder
.
append
(
" and upper(
campaignName) like upper(:p_campaign_name)
"
);
sqlBuilder
.
append
(
" and upper(
b.campaign_name) like :p_campaign_name
"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
sqlBuilder
.
append
(
" and upper(
userName) like upper(:p_user_name)
"
);
sqlBuilder
.
append
(
" and upper(
c.user_name) like :p_user_name
"
);
}
SQLQuery
query
=
session
.
createSQLQuery
(
sqlBuilder
.
toString
());
query
.
setParameterList
(
"p_list_campaign_id"
,
dto
.
getCampaignId
().
split
(
","
));
query
.
setParameter
(
"p_customer_id"
,
dto
.
getCustomerId
());
query
.
setParameter
(
"p_company_site_id"
,
dto
.
getCompanySiteId
());
query
.
setParameter
(
"p_customer_id"
,
"%"
+
dto
.
getCustomerId
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
query
.
setParameter
(
"p_date_from"
,
dto
.
getFromDate
());
query
.
setParameter
(
"p_date_to"
,
dto
.
getToDate
());
query
.
setParameterList
(
"p_list_contact_status"
,
dto
.
getContactStatus
().
split
(
","
));
query
.
setParameterList
(
"p_list_survey_status"
,
dto
.
getSurveyStatus
().
split
(
","
));
query
.
setParameterList
(
"p_list_record_status"
,
dto
.
getRecordStatus
().
split
(
","
));
query
.
setParameter
(
"p_phone_number"
,
dto
.
getPhoneNumber
());
query
.
setParameter
(
"p_call_time_from"
,
dto
.
getCallTimeFrom
());
query
.
setParameter
(
"p_call_time_to"
,
dto
.
getCallTimeTo
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignId
()))
{
query
.
setParameterList
(
"p_list_campaign_id"
,
dto
.
getCampaignId
().
split
(
","
));
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getPhoneNumber
()))
{
query
.
setParameter
(
"p_phone_number"
,
"%"
+
dto
.
getPhoneNumber
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
query
.
setParameter
(
"p_campaign_name"
,
dto
.
getCampaignName
().
trim
());
query
.
setParameter
(
"p_campaign_name"
,
"%"
+
dto
.
getCampaignName
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
query
.
setParameter
(
"p_user_name"
,
dto
.
getAgentId
().
trim
());
query
.
setParameter
(
"p_user_name"
,
"%"
+
dto
.
getAgentId
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
query
.
addScalar
(
"campaignCode"
,
new
StringType
());
query
.
addScalar
(
"campaignName"
,
new
StringType
());
query
.
addScalar
(
"userName"
,
new
StringType
());
query
.
addScalar
(
"phoneNumber"
,
new
Lo
ngType
());
query
.
addScalar
(
"phoneNumber"
,
new
Stri
ngType
());
query
.
addScalar
(
"customerName"
,
new
StringType
());
query
.
addScalar
(
"createTime"
,
new
DateType
());
query
.
addScalar
(
"contactStatus"
,
new
StringType
());
...
...
src/main/java/com/viettel/campaign/repository/impl/TicketRepositoryImpl.java
View file @
587b991f
...
...
@@ -41,7 +41,7 @@ public class TicketRepositoryImpl implements TicketRepositoryCustom {
for
(
Object
[]
obj
:
data
)
{
TicketDTO
item
=
new
TicketDTO
();
item
.
setTicketId
(((
Long
)
obj
[
0
]
));
item
.
setTicketId
(((
BigDecimal
)
obj
[
0
]).
longValueExact
(
));
item
.
setCreateDate
((
Date
)
obj
[
1
]);
item
.
setSubject
((
String
)
obj
[
2
]);
item
.
setStatusName
((
String
)
obj
[
3
]);
...
...
src/main/java/com/viettel/campaign/service/CampaignService.java
View file @
587b991f
...
...
@@ -13,6 +13,8 @@ public interface CampaignService {
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
);
ResultDTO
findByCampaignId
(
Long
campaignId
);
ResultDTO
addNewCampaign
(
CampaignDTO
campaignDTO
);
Map
countRecallCustomer
(
Long
companySiteId
,
Long
agentId
);
...
...
src/main/java/com/viettel/campaign/service/CustomerService.java
View file @
587b991f
package
com.viettel.campaign.service
;
import
com.viettel.campaign.web.dto.CustomerContactDTO
;
import
com.viettel.campaign.web.dto.CustomerDTO
;
import
com.viettel.campaign.web.dto.CustomerListDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
...
...
@@ -36,5 +37,11 @@ public interface CustomerService {
// ------------ customer contact ------------ //
ResultDTO
getCustomerContact
(
Long
customerId
,
Short
contactType
,
String
contact
);
ResultDTO
getCustomerContact
(
CustomerContactDTO
customer
);
// ------------ customer ------------ //
ResultDTO
getCustomerRecall
(
Long
campaignId
,
Long
customerId
);
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
587b991f
...
...
@@ -16,7 +16,6 @@ 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.modelmapper.ModelMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -59,6 +58,23 @@ public class CampaignServiceImpl implements CampaignService {
return
campaignRepository
.
findByCampaignCode
(
requestDTO
);
}
@Override
public
ResultDTO
findByCampaignId
(
Long
campaignId
)
{
ResultDTO
result
=
new
ResultDTO
();
Campaign
campaign
=
campaignRepository
.
findByCampaignId
(
campaignId
);
if
(
campaign
!=
null
)
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setErrorCode
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
result
.
setData
(
campaign
);
}
else
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
result
.
setErrorCode
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
return
result
;
}
@Override
public
ResultDTO
addNewCampaign
(
CampaignDTO
campaignDTO
)
{
logger
.
info
(
"=== Start add new campaign "
);
...
...
@@ -75,7 +91,8 @@ public class CampaignServiceImpl implements CampaignService {
Campaign
campaignResult
=
campaignRepository
.
save
(
campaign
);
campaignId
=
campaign
.
getCampaignId
();
//insert sub tables
if
(
campaignDTO
.
getLstTimeRange
().
size
()
>
0
)
{
if
(
campaignDTO
.
getLstTimeRange
().
size
()
>
0
)
{
timeRangeDialModes
=
campaignDTO
.
getLstTimeRange
();
timeRangeDialModes
.
forEach
(
item
->
{
item
.
setCampaignId
(
campaignId
);
...
...
@@ -84,7 +101,7 @@ public class CampaignServiceImpl implements CampaignService {
});
timeRangeDialModeRepository
.
saveAll
(
lstTimeRangeModeToInsert
);
}
if
(
campaignDTO
.
getLstTimeZone
().
size
()
>
0
)
{
if
(
campaignDTO
.
getLstTimeZone
().
size
()
>
0
)
{
timeZoneDialModes
=
campaignDTO
.
getLstTimeZone
();
timeZoneDialModes
.
forEach
(
item
->
{
item
.
setCampaignId
(
campaignId
);
...
...
@@ -160,16 +177,13 @@ public class CampaignServiceImpl implements CampaignService {
userActionLog
.
setStartTime
(
new
Date
());
userActionLog
.
setEndTime
(
null
);
userActionLog
.
setObjectId
(
entity
.
getCampaignId
());
if
(
dto
.
getStatus
().
equals
((
short
)
-
1
))
{
if
(
dto
.
getStatus
().
equals
((
short
)
-
1
))
{
userActionLog
.
setActionType
((
short
)
2
);
}
else
if
(
dto
.
getStatus
().
equals
((
short
)
5
))
{
}
else
if
(
dto
.
getStatus
().
equals
((
short
)
5
))
{
userActionLog
.
setActionType
((
short
)
7
);
}
else
if
(
dto
.
getStatus
().
equals
((
short
)
4
))
{
}
else
if
(
dto
.
getStatus
().
equals
((
short
)
4
))
{
userActionLog
.
setActionType
((
short
)
4
);
}
else
if
(
dto
.
getStatus
().
equals
((
short
)
3
))
{
}
else
if
(
dto
.
getStatus
().
equals
((
short
)
3
))
{
userActionLog
.
setActionType
((
short
)
5
);
}
...
...
@@ -192,7 +206,7 @@ public class CampaignServiceImpl implements CampaignService {
private
String
generateCampaignCode
(
String
campaignType
,
Short
chanel
)
{
int
year
=
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
);
String
maxIndexStr
=
campaignRepository
.
getMaxCampaignIndex
();
if
(
maxIndexStr
!=
null
)
{
if
(
maxIndexStr
!=
null
)
{
Long
maxIndex
=
Long
.
valueOf
(
maxIndexStr
)
+
1
;
String
result
=
campaignType
+
"_"
+
String
.
valueOf
(
chanel
)
+
"_"
+
String
.
valueOf
(
year
)
+
"_"
+
maxIndex
.
toString
();
return
result
;
...
...
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
View file @
587b991f
package
com.viettel.campaign.service.impl
;
import
com.viettel.campaign.mapper.CustomerListMapper
;
import
com.viettel.campaign.mapper.CustomerMapper
;
import
com.viettel.campaign.model.Customer
;
import
com.viettel.campaign.model.CustomerContact
;
import
com.viettel.campaign.model.CustomerList
;
import
com.viettel.campaign.repository.*
;
import
com.viettel.campaign.service.CustomerService
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.utils.HibernateUtil
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.web.dto.CustomerCustomDTO
;
import
com.viettel.campaign.web.dto.CustomerDTO
;
import
com.viettel.campaign.web.dto.CustomerListDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.mapper.CustomerMapper
;
import
com.viettel.campaign.model.Customer
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO
;
import
com.viettel.campaign.web.dto.*
;
import
com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO
;
import
org.hibernate.SQLQuery
;
import
org.hibernate.Session
;
import
org.hibernate.SessionFactory
;
...
...
@@ -32,7 +29,8 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.persistence.EntityManager
;
import
javax.persistence.Query
;
import
java.util.*
;
import
java.util.Date
;
import
java.util.List
;
@Service
public
class
CustomerServiceImpl
implements
CustomerService
{
...
...
@@ -52,6 +50,9 @@ public class CustomerServiceImpl implements CustomerService {
@Autowired
CampaignCustomerListRepository
campaignCustomerListRepository
;
@Autowired
CampaignCustomerRepository
campaignCustomerRepository
;
@Autowired
CustomerListMappingRepository
customerListMappingRepository
;
...
...
@@ -571,20 +572,47 @@ public class CustomerServiceImpl implements CustomerService {
}
@Override
public
ResultDTO
getCustomerContact
(
Long
customerId
,
Short
contactType
,
String
contact
)
{
public
ResultDTO
getCustomerContact
(
CustomerContactDTO
customer
)
{
ResultDTO
result
=
new
ResultDTO
();
List
<
CustomerContact
>
customer
=
customerContactRepository
.
findByCustomerIdAndAndContactTypeAndContact
(
customerId
,
contactType
,
contact
);
try
{
List
<
CustomerContact
>
data
=
customerContactRepository
.
findByCustomerIdAndAndContactTypeAndContact
(
customer
.
getCustomerId
(),
customer
.
getContactType
(),
customer
.
getContact
(),
SQLBuilder
.
buildPageable
(
customer
));
if
(
customer
!=
null
)
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setDescription
(
"customer contact data"
);
result
.
setListData
(
customer
);
result
.
setListData
(
data
);
result
.
setTotalRow
(
customerContactRepository
.
findByCustomerIdAndAndContactTypeAndContact
(
customer
.
getCustomerId
(),
customer
.
getContactType
(),
customer
.
getContact
(),
null
).
size
());
}
else
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
result
.
setDescription
(
"customer contact data null"
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
@Override
public
ResultDTO
getCustomerRecall
(
Long
campaignId
,
Long
customerId
)
{
ResultDTO
result
=
new
ResultDTO
();
try
{
Long
data
=
campaignCustomerRepository
.
getCustomerRecall
(
campaignId
,
customerId
);
if
(
data
!=
null
)
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setDescription
(
"campaign customer data"
);
result
.
setData
(
data
);
}
else
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
result
.
setDescription
(
"campaign customer data null"
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
}
src/main/java/com/viettel/campaign/web/dto/ContactCustResultDTO.java
View file @
587b991f
...
...
@@ -23,7 +23,7 @@ public class ContactCustResultDTO extends BaseDTO{
private
Long
agentId
;
private
Long
campaignId
;
private
String
campaignName
;
private
Lo
ng
phoneNumber
;
private
Stri
ng
phoneNumber
;
private
String
customerName
;
private
Long
customerId
;
private
String
contactStatus
;
...
...
src/main/java/com/viettel/campaign/web/dto/CustomerContactDTO.java
View file @
587b991f
...
...
@@ -7,7 +7,7 @@ import java.util.Date;
@Getter
@Setter
public
class
CustomerContactDTO
{
public
class
CustomerContactDTO
extends
BaseDTO
{
private
Long
contactId
;
private
Long
customerId
;
private
Short
contactType
;
...
...
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
View file @
587b991f
...
...
@@ -9,7 +9,11 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
<<<<<<<
HEAD
import
org.springframework.cloud.sleuth.instrument.reactor.ReactorSleuth
;
=======
import
org.springframework.http.HttpHeaders
;
>>>>>>>
55
a6b806b604aa92fca10c101776df185d0d67af
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.ResponseEntity
;
...
...
@@ -33,10 +37,14 @@ public class CampaignController {
@Autowired
CampaignService
campaignService
;
<<<<<<<
HEAD
@PostMapping
(
"/searchCampaignExecute"
)
=======
@Autowired
CampaignExecuteService
campaignExecuteService
;
@RequestMapping
(
"/searchCampaignExecute"
)
>>>>>>>
55
a6b806b604aa92fca10c101776df185d0d67af
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
searchCampaignExecute
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignService
.
searchCampaignExecute
(
requestDto
);
...
...
@@ -66,6 +74,14 @@ public class CampaignController {
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
<<<<<<<
HEAD
@GetMapping
(
"/findByCampaignId"
)
@ResponseBody
public
ResponseEntity
findByCampaignId
(
@RequestParam
(
"campaignId"
)
Long
campaignId
)
{
ResultDTO
result
=
campaignService
.
findByCampaignId
(
campaignId
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
=======
@PostMapping
(
"/searchInteractiveResult"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
searchInteractiveResult
(
@RequestBody
CampaignRequestDTO
dto
)
throws
Exception
{
...
...
@@ -110,4 +126,5 @@ public class CampaignController {
dto
.
setSessionId
(
request
.
getSession
().
getId
());
return
campaignService
.
changeCampaignStatus
(
dto
);
}
>>>>>>>
55
a6b806b604aa92fca10c101776df185d0d67af
}
src/main/java/com/viettel/campaign/web/rest/controller/CustomerController.java
View file @
587b991f
package
com.viettel.campaign.web.rest.controller
;
import
com.viettel.campaign.web.dto.CustomerContactDTO
;
import
com.viettel.campaign.web.dto.CustomerDTO
;
import
com.viettel.campaign.web.dto.CustomerListDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
...
...
@@ -164,10 +165,17 @@ public class CustomerController {
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@
Ge
tMapping
(
"/findCustomerContact"
)
@
Pos
tMapping
(
"/findCustomerContact"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
findAllCustomerContact
(
@RequestParam
(
"customerId"
)
Long
customerId
,
@RequestParam
(
"contactType"
)
Short
contactType
,
@RequestParam
(
"contact"
)
String
contact
)
{
ResultDTO
result
=
customerService
.
getCustomerContact
(
customerId
,
contactType
,
contact
);
public
ResponseEntity
<
ResultDTO
>
findAllCustomerContact
(
@RequestBody
CustomerContactDTO
customerContactDTO
)
{
ResultDTO
result
=
customerService
.
getCustomerContact
(
customerContactDTO
);
return
new
ResponseEntity
(
result
,
HttpStatus
.
OK
);
}
@GetMapping
(
"/getCustomerRecall"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
getCustomerRecall
(
@RequestParam
(
"campaignId"
)
Long
campaignId
,
@RequestParam
(
"customerId"
)
Long
customerId
)
{
ResultDTO
result
=
customerService
.
getCustomerRecall
(
campaignId
,
customerId
);
return
new
ResponseEntity
(
result
,
HttpStatus
.
OK
);
}
...
...
src/main/resources/i18n/language_en.properties
View file @
587b991f
#Common
detail
=
Chi ti?t
stt
=
STT
detail
=
Detail
stt
=
No
#Campaign Execute Interactive
campaign.execute.interactive.title
=
Chi ti
?t k?t qu? t??ng t
c
campaign.execute.interactive.campaignCode
=
M chi?n d?ch
campaign.execute.interactive.campaignName
=
Tn chi?n d?ch
campaign.execute.interactive.agentId
=
M t? v?n vin
campaign.execute.interactive.phoneNumber
=
S? ?i?n tho?i
campaign.execute.interactive.customerId
=
M khch hng
campaign.execute.interactive.customerName
=
Tn khch hng
campaign.execute.interactive.c
allTime
=
Th?i gian lin l?c
campaign.execute.interactive.contactStatus
=
Tr?ng thi k?t n?i
campaign.execute.interactive.surveyStatus
=
Tr
?ng thi kh?o s
t
campaign.execute.interactive.status
=
Tr
?ng thi chi?n d?
ch
campaign.execute.interactive.recordStatus
=
Tr
?ng thi b?
n ghi
campaign.execute.interactive.title
=
Chi ti
ết kết quả tương tá
c
campaign.execute.interactive.campaignCode
=
Campaign code
campaign.execute.interactive.campaignName
=
Campaign name
campaign.execute.interactive.agentId
=
Agent id
campaign.execute.interactive.phoneNumber
=
Phone number
campaign.execute.interactive.customerId
=
Customer id
campaign.execute.interactive.customerName
=
Customer name
campaign.execute.interactive.c
reateTime
=
Create time
campaign.execute.interactive.contactStatus
=
Contact status
campaign.execute.interactive.surveyStatus
=
Tr
ạng thái khảo sá
t
campaign.execute.interactive.status
=
Tr
ạng thái chiến dị
ch
campaign.execute.interactive.recordStatus
=
Tr
ạng thái bả
n ghi
src/main/resources/sql/campaign-execute/get-combo-campaign-type.sql
View file @
587b991f
select
AP_PARAM_ID
apParamId
,
select
PAR_VALUE
apParamId
,
PAR_NAME
parName
from
AP_PARAM
where
PAR_TYPE
=
'CAMPAIGN_TYPE'
and
COMPANY_SITE_ID
=
:
p_company_site_id
src/main/resources/sql/campaign-execute/get-execute-interactive.sql
View file @
587b991f
...
...
@@ -14,15 +14,10 @@ from contact_cust_result a
left
join
customer
d
on
a
.
customer_id
=
d
.
customer_id
left
join
campaign_complete_code
e
on
a
.
contact_status
=
e
.
complete_value
left
join
campaign_complete_code
f
on
a
.
call_status
=
e
.
complete_value
left
join
campaign
g
on
a
.
campaign_id
=
b
.
campaign_id
left
join
campaign
g
on
a
.
campaign_id
=
g
.
campaign_id
where
a
.
status
<>
0
and
a
.
campaign_id
in
(:
p_list_campaign_id
)
and
a
.
customer_id
like
'%'
||
:
p_customer_id
||
'%'
and
a
.
company_site_id
=
:
p_company_site_id
and
a
.
create_time
>=
to_date
(:
p_date_from
,
'DD/MM/YYYY'
)
and
a
.
create_time
<=
to_date
(:
p_date_to
,
'DD/MM/YYYY'
)
and
a
.
contact_status
in
(:
p_list_contact_status
)
and
a
.
call_status
in
(:
p_list_survey_status
)
and
a
.
status
in
(:
p_list_record_status
)
and
a
.
phone_number
like
'%'
||
:
p_phone_number
||
'%'
and
a
.
duration_call
>=
:
p_call_time_from
and
a
.
duration_call
<=
:
p_call_time_to
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