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
3be9c3d7
Commit
3be9c3d7
authored
Aug 20, 2019
by
Vu Duy Anh
Browse files
Options
Browse Files
Download
Plain Diff
commit merge
parents
e63b04b2
2b5770de
Changes
24
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
683 additions
and
51 deletions
+683
-51
src/main/java/com/viettel/campaign/mapper/CampaignAgentMapper.java
...java/com/viettel/campaign/mapper/CampaignAgentMapper.java
+8
-18
src/main/java/com/viettel/campaign/model/ccms_full/CampaignCustomer.java
...om/viettel/campaign/model/ccms_full/CampaignCustomer.java
+5
-2
src/main/java/com/viettel/campaign/model/ccms_full/ContactCustResult.java
...m/viettel/campaign/model/ccms_full/ContactCustResult.java
+96
-0
src/main/java/com/viettel/campaign/model/ccms_full/ContactQuestResult.java
.../viettel/campaign/model/ccms_full/ContactQuestResult.java
+44
-0
src/main/java/com/viettel/campaign/model/ccms_full/ReceiveCustLog.java
.../com/viettel/campaign/model/ccms_full/ReceiveCustLog.java
+39
-0
src/main/java/com/viettel/campaign/repository/acd_full/AgentsRepository.java
...iettel/campaign/repository/acd_full/AgentsRepository.java
+7
-0
src/main/java/com/viettel/campaign/repository/ccms_full/ApParamRepository.java
...ttel/campaign/repository/ccms_full/ApParamRepository.java
+2
-2
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCustomerRepository.java
...aign/repository/ccms_full/CampaignCustomerRepository.java
+5
-1
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCustomerRepositoryCustom.java
...epository/ccms_full/CampaignCustomerRepositoryCustom.java
+12
-0
src/main/java/com/viettel/campaign/repository/ccms_full/ContactCustResultRepository.java
...ign/repository/ccms_full/ContactCustResultRepository.java
+9
-0
src/main/java/com/viettel/campaign/repository/ccms_full/ContactQuestResultRepository.java
...gn/repository/ccms_full/ContactQuestResultRepository.java
+13
-0
src/main/java/com/viettel/campaign/repository/ccms_full/ReceiveCustLogRepository.java
...mpaign/repository/ccms_full/ReceiveCustLogRepository.java
+7
-0
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignCustomerRepositoryImpl.java
...sitory/ccms_full/impl/CampaignCustomerRepositoryImpl.java
+76
-0
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
...ign/repository/ccms_full/impl/CampaignRepositoryImpl.java
+5
-1
src/main/java/com/viettel/campaign/service/CampaignExecuteService.java
.../com/viettel/campaign/service/CampaignExecuteService.java
+11
-2
src/main/java/com/viettel/campaign/service/impl/ApParamServiceImpl.java
...com/viettel/campaign/service/impl/ApParamServiceImpl.java
+1
-1
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
...ttel/campaign/service/impl/CampaignExecuteServiceImp.java
+200
-7
src/main/java/com/viettel/campaign/utils/Config.java
src/main/java/com/viettel/campaign/utils/Config.java
+1
-1
src/main/java/com/viettel/campaign/web/dto/ContactCustResultDTO.java
...va/com/viettel/campaign/web/dto/ContactCustResultDTO.java
+30
-10
src/main/java/com/viettel/campaign/web/dto/ContactQuestResultDTO.java
...a/com/viettel/campaign/web/dto/ContactQuestResultDTO.java
+19
-0
src/main/java/com/viettel/campaign/web/dto/ReceiveCustLogDTO.java
.../java/com/viettel/campaign/web/dto/ReceiveCustLogDTO.java
+18
-0
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
...ava/com/viettel/campaign/web/rest/CampaignController.java
+26
-5
src/main/resources/i18n/language_en.properties
src/main/resources/i18n/language_en.properties
+25
-0
src/main/resources/i18n/language_vi.properties
src/main/resources/i18n/language_vi.properties
+24
-1
No files found.
src/main/java/com/viettel/campaign/mapper/CampaignAgentMapper.java
View file @
3be9c3d7
...
...
@@ -2,31 +2,21 @@ package com.viettel.campaign.mapper;
import
com.viettel.campaign.model.ccms_full.CampaignAgent
;
import
com.viettel.campaign.web.dto.CampaignAgentDTO
;
import
org.modelmapper.ModelMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
public
class
CampaignAgentMapper
extends
BaseMapper
<
CampaignAgent
,
CampaignAgentDTO
>
{
@Autowired
ModelMapper
modelMapper
;
@Override
public
CampaignAgentDTO
toDtoBean
(
CampaignAgent
campaignAgent
)
{
CampaignAgentDTO
obj
=
new
CampaignAgentDTO
();
obj
.
setAgentId
(
campaignAgent
.
getAgentId
());
obj
.
setCampaignAgentId
(
campaignAgent
.
getCampaignAgentId
());
obj
.
setCampaignId
(
campaignAgent
.
getCampaignId
());
obj
.
setCompanySiteId
(
campaignAgent
.
getCompanySiteId
());
obj
.
setFilterType
(
campaignAgent
.
getFilterType
());
obj
.
setReSchedule
(
campaignAgent
.
getReSchedule
());
obj
.
setStatus
(
campaignAgent
.
getStatus
());
return
obj
;
return
modelMapper
.
map
(
campaignAgent
,
CampaignAgentDTO
.
class
);
}
@Override
public
CampaignAgent
toPersistenceBean
(
CampaignAgentDTO
dtoBean
)
{
CampaignAgent
obj
=
new
CampaignAgent
();
obj
.
setAgentId
(
dtoBean
.
getAgentId
());
obj
.
setCampaignAgentId
(
dtoBean
.
getCampaignAgentId
());
obj
.
setCampaignId
(
dtoBean
.
getCampaignId
());
obj
.
setCompanySiteId
(
dtoBean
.
getCompanySiteId
());
obj
.
setFilterType
(
dtoBean
.
getFilterType
());
obj
.
setReSchedule
(
dtoBean
.
getReSchedule
());
obj
.
setStatus
(
dtoBean
.
getStatus
());
return
obj
;
return
modelMapper
.
map
(
dtoBean
,
CampaignAgent
.
class
);
}
}
src/main/java/com/viettel/campaign/model/ccms_full/CampaignCustomer.java
View file @
3be9c3d7
...
...
@@ -12,11 +12,14 @@ import java.util.Date;
@Getter
@Setter
public
class
CampaignCustomer
{
@Id
@GeneratedValue
(
generator
=
"CAMPAIGN_CUSTOMER_SEQ"
)
@SequenceGenerator
(
name
=
"CAMPAIGN_CUSTOMER_SEQ"
,
sequenceName
=
"CAMPAIGN_CUSTOMER_SEQ"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@NotNull
@Column
(
name
=
"CAMPAIGN_CUSTOMER
LIST
_ID"
)
private
Long
campaignCustomer
List
Id
;
@Column
(
name
=
"CAMPAIGN_CUSTOMER_ID"
)
private
Long
campaignCustomerId
;
@Column
(
name
=
"CAMPAIGN_ID"
)
private
Long
campaignId
;
@Column
(
name
=
"CUSTOMER_ID"
)
...
...
src/main/java/com/viettel/campaign/model/ccms_full/ContactCustResult.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.model.ccms_full
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.Date
;
@Entity
@Table
(
name
=
"CONTACT_CUST_RESULT"
)
@Getter
@Setter
public
class
ContactCustResult
implements
Serializable
{
@Id
@NotNull
@GeneratedValue
(
generator
=
"CONTACT_CUST_RESULT_SEQ"
)
@SequenceGenerator
(
name
=
"CONTACT_CUST_RESULT_SEQ"
,
sequenceName
=
"CONTACT_CUST_RESULT_SEQ"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@Column
(
name
=
"CONTACT_CUST_RESULT_ID"
)
private
Long
contactCustResultId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
@Column
(
name
=
"CALL_STATUS"
)
private
Short
callStatus
;
@Column
(
name
=
"CONTACT_STATUS"
)
@NotNull
private
Short
contactStatus
;
@Column
(
name
=
"STATUS"
)
private
Short
status
;
@Column
(
name
=
"SATISFACTION"
)
private
Integer
satisfaction
;
@Column
(
name
=
"DESCRIPTION"
)
private
String
description
;
@Column
(
name
=
"CREATE_TIME"
)
@NotNull
private
Date
createTime
;
@Column
(
name
=
"AGENT_ID"
)
private
Long
agentId
;
@Column
(
name
=
"UPDATE_TIME"
)
private
Date
updateTime
;
@Column
(
name
=
"UPDATE_BY"
)
private
Long
updateBy
;
@Column
(
name
=
"CAMPAIGN_ID"
)
@NotNull
private
Long
campaignId
;
@Column
(
name
=
"OLD_CONTACT_CUST_RESULT_ID"
)
private
Long
oldContactCustResultId
;
@Column
(
name
=
"CUSTOMER_ID"
)
@NotNull
private
Long
customerId
;
@Column
(
name
=
"DURATION_CALL"
)
private
Long
durationCall
;
@Column
(
name
=
"START_CALL"
)
private
Date
startCall
;
@Column
(
name
=
"RECEIVE_CUST_LOG_ID"
)
@NotNull
private
Long
receiveCustLogId
;
@Column
(
name
=
"IPCC_CALL_STATUS"
)
private
Short
ipccCallStatus
;
@Column
(
name
=
"CALL_ID"
)
private
String
callId
;
@Column
(
name
=
"PHONE_NUMBER"
)
@NotNull
private
String
phoneNumber
;
@Column
(
name
=
"RECEIVE_TIME"
)
@NotNull
private
Date
receiveTime
;
@Column
(
name
=
"PRE_END_TIME"
)
private
Date
preEndTime
;
@Column
(
name
=
"URL_CALL"
)
private
String
urlCall
;
@Column
(
name
=
"TRANSACTION_ID"
)
private
String
transactionId
;
@Column
(
name
=
"RECALL_TIME"
)
private
Date
recallTime
;
@Column
(
name
=
"IS_FINAL_RECALL"
)
private
Short
isFinalRecall
;
@Column
(
name
=
"IS_SEND_EMAIL"
)
private
Short
isSendEmail
=
0
;
@Column
(
name
=
"SALED_ON_TPIN"
)
private
Long
saledOnTpin
;
@Column
(
name
=
"END_TIME"
)
private
Date
endTime
;
@Column
(
name
=
"WAIT_TIME"
)
private
Long
waitTime
;
@Column
(
name
=
"DIAL_MODE"
)
private
String
dialMode
;
@Column
(
name
=
"WRAPUP_TIME"
)
private
Long
wrapupTime
;
@Column
(
name
=
"TIME_MAKE_CALL"
)
private
Long
timeMakeCall
=
0L
;
@Column
(
name
=
"TIME_RECEIVE_CUST"
)
private
Long
timeReceiveCust
=
0L
;
}
src/main/java/com/viettel/campaign/model/ccms_full/ContactQuestResult.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.model.ccms_full
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
@Entity
@Table
(
name
=
"CONTACT_QUEST_RESULT"
)
@Getter
@Setter
public
class
ContactQuestResult
implements
Serializable
{
@Id
@Column
(
name
=
"CONTACT_QUEST_RESULT_ID"
)
@NotNull
private
Long
contactQuestResultId
;
@Column
(
name
=
"CONTACT_CUST_RESULT_ID"
)
@NotNull
private
Long
contactCustResultId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
@Column
(
name
=
"SCENARIO_QUESTION_ID"
)
@NotNull
private
Long
scenarioQuestionId
;
@Column
(
name
=
"OTHER_OPINION"
)
private
String
otherOpinion
;
@Column
(
name
=
"SCENARIO_ANSWER_ID"
)
private
Long
scenarioAnswerId
;
@Column
(
name
=
"STATUS"
)
private
Short
status
;
@Column
(
name
=
"OLD_CONTACT_CUST_RESULT_ID"
)
private
Long
oldContactCustResultId
;
@Column
(
name
=
"CUSTOMER_ID"
)
@NotNull
private
Long
customerId
;
@Column
(
name
=
"CAMPAIGN_ID"
)
@NotNull
private
Long
campaignId
;
}
src/main/java/com/viettel/campaign/model/ccms_full/ReceiveCustLog.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.model.ccms_full
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.Date
;
@Entity
@Table
(
name
=
"RECEIVE_CUST_LOG"
)
@Getter
@Setter
public
class
ReceiveCustLog
implements
Serializable
{
@Id
@GeneratedValue
(
generator
=
"RECEIVE_CUST_LOG_SEQ"
)
@SequenceGenerator
(
name
=
"RECEIVE_CUST_LOG_SEQ"
,
sequenceName
=
"RECEIVE_CUST_LOG_SEQ"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@NotNull
@Column
(
name
=
"RECEIVE_CUST_LOG_ID"
)
private
Long
receiveCustLogId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
@Column
(
name
=
"CUSTOMER_ID"
)
@NotNull
private
Long
customerId
;
@Column
(
name
=
"START_TIME"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
@NotNull
private
Date
startTime
;
@Column
(
name
=
"AGENT_ID"
)
private
Long
agentId
;
@Column
(
name
=
"CAMPAIGN_ID"
)
private
Long
campaignId
;
@Column
(
name
=
"END_TIME"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
endTime
;
}
src/main/java/com/viettel/campaign/repository/acd_full/AgentsRepository.java
View file @
3be9c3d7
...
...
@@ -3,6 +3,9 @@ package com.viettel.campaign.repository.acd_full;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.acd_full.Agents
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -11,4 +14,8 @@ import org.springframework.transaction.annotation.Transactional;
public
interface
AgentsRepository
extends
JpaRepository
<
Agents
,
String
>
{
Agents
findByAgentId
(
String
agentId
);
@Modifying
@Query
(
value
=
"UPDATE Agents SET campaignSystemStatus = :campaignSystemStatus WHERE agentId = :agentId"
)
void
updateAgentLogoutFromCampaign
(
@Param
(
"agentId"
)
Long
agentId
,
@Param
(
"campaignSystemStatus"
)
String
campaignSystemStatus
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/ApParamRepository.java
View file @
3be9c3d7
...
...
@@ -21,6 +21,6 @@ public interface ApParamRepository extends JpaRepository<ApParam, Long>, ApParam
@Query
(
value
=
"SELECT p FROM ApParam p WHERE status = 1 AND parType LIKE concat('%', :parType, '%') "
)
List
<
ApParam
>
findParamByParType
(
@Param
(
"parType"
)
String
parType
);
@Query
(
value
=
"
select a from ApParam a WHERE status = 1 AND parType = 'CAMPAIGN_TYPE'
"
)
List
<
ApParam
>
findAllParam
();
@Query
(
value
=
"
FROM ApParam WHERE status = 1 AND parType = :parType
"
)
List
<
ApParam
>
findAllParam
(
@Param
(
"parType"
)
String
parType
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCustomerRepository.java
View file @
3be9c3d7
...
...
@@ -5,12 +5,14 @@ import com.viettel.campaign.model.ccms_full.CampaignCustomer;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
@Repository
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
interface
CampaignCustomerRepository
extends
JpaRepository
<
CampaignCustomer
,
Long
>
{
public
interface
CampaignCustomerRepository
extends
JpaRepository
<
CampaignCustomer
,
Long
>
,
CampaignCustomerRepositoryCustom
{
@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 "
,
...
...
@@ -33,4 +35,6 @@ public interface CampaignCustomerRepository extends JpaRepository<CampaignCustom
" AND cc.recall_time <= SYSDATE\n"
+
" AND cc.recall_time + interval :apParam MINUTE >= SYSDATE"
,
nativeQuery
=
true
)
List
<
CampaignCustomer
>
getCustomerRecallDate
(
@Param
(
"campaignId"
)
Long
campaignId
,
@Param
(
"agentId"
)
Long
agentId
,
@Param
(
"companySiteId"
)
Long
companySiteId
,
@Param
(
"apParam"
)
String
apParam
);
CampaignCustomer
findCampaignCustomerByCampaignCustomerId
(
Long
id
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignCustomerRepositoryCustom.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.web.dto.CampaignCustomerDTO
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
public
interface
CampaignCustomerRepositoryCustom
{
List
<
CampaignCustomerDTO
>
getDataCampaignCustomer
(
CampaignCustomerDTO
dto
,
String
expression
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/ContactCustResultRepository.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.model.ccms_full.ContactCustResult
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.stereotype.Repository
;
@Repository
public
interface
ContactCustResultRepository
extends
JpaRepository
<
ContactCustResult
,
Long
>
{
}
src/main/java/com/viettel/campaign/repository/ccms_full/ContactQuestResultRepository.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.model.ccms_full.ContactQuestResult
;
import
com.viettel.campaign.web.dto.ContactQuestResultDTO
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
public
interface
ContactQuestResultRepository
extends
JpaRepository
<
ContactQuestResult
,
Long
>
{
List
<
ContactQuestResultDTO
>
findByCompanySiteIdAndCampaignId
(
Long
companySiteId
,
Long
campaignId
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/ReceiveCustLogRepository.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.model.ccms_full.ReceiveCustLog
;
import
org.springframework.data.jpa.repository.JpaRepository
;
public
interface
ReceiveCustLogRepository
extends
JpaRepository
<
ReceiveCustLog
,
Long
>
{
}
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignCustomerRepositoryImpl.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.repository.ccms_full.impl
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.ccms_full.ApParam
;
import
com.viettel.campaign.repository.ccms_full.ApParamRepository
;
import
com.viettel.campaign.repository.ccms_full.CampaignCustomerRepositoryCustom
;
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.CampaignCustomerDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
org.hibernate.SQLQuery
;
import
org.hibernate.Session
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.type.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.Pageable
;
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.ArrayList
;
import
java.util.List
;
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
class
CampaignCustomerRepositoryImpl
implements
CampaignCustomerRepositoryCustom
{
@Autowired
ApParamRepository
apParamRepository
;
@Autowired
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
EntityManager
entityManager
;
@Override
public
List
<
CampaignCustomerDTO
>
getDataCampaignCustomer
(
CampaignCustomerDTO
customerDTO
,
String
expression
)
{
List
<
CampaignCustomerDTO
>
result
=
new
ArrayList
<>();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
try
{
SQLQuery
query
=
session
.
createSQLQuery
(
expression
);
query
.
setParameter
(
"campaignId"
,
customerDTO
.
getCampaignId
());
query
.
setParameter
(
"companySiteId"
,
customerDTO
.
getCompanySiteId
());
if
(
expression
.
contains
(
":agentId"
))
{
query
.
setParameter
(
"agentId"
,
customerDTO
.
getAgentId
());
}
if
(
expression
.
contains
(
":dungSai"
))
{
List
<
ApParam
>
apParam
=
apParamRepository
.
findAllParam
(
"DUNG_SAI"
);
query
.
setParameter
(
"dungSai"
,
apParam
.
get
(
0
).
getParValue
());
}
query
.
addScalar
(
"customerId"
,
new
LongType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CampaignCustomerDTO
.
class
));
result
=
query
.
list
();
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
}
finally
{
session
.
close
();
}
return
result
;
}
}
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
View file @
3be9c3d7
...
...
@@ -2,6 +2,7 @@ package com.viettel.campaign.repository.ccms_full.impl;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.ccms_full.CampaignCustomer
;
import
com.viettel.campaign.repository.ccms_full.CampaignCustomerRepository
;
import
com.viettel.campaign.repository.ccms_full.CampaignRepositoryCustom
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.DataUtil
;
...
...
@@ -46,6 +47,9 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@Qualifier
(
DataSourceQualify
.
NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL
)
NamedParameterJdbcTemplate
namedParameterJdbcTemplate
;
@Autowired
CampaignCustomerRepository
campaignCustomerRepository
;
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
logger
.
info
(
"Start search campaign::"
);
...
...
@@ -486,7 +490,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
try
{
List
<
CustomerCustomDTO
>
list
=
dto
.
getCustomerCustomDTOList
();
for
(
CustomerCustomDTO
customerCustomDTO:
list
)
{
CampaignCustomer
campaignCustomer
=
entityManager
.
find
(
CampaignCustomer
.
class
,
customerCustomDTO
.
getCampaignCustomerId
());
CampaignCustomer
campaignCustomer
=
campaignCustomerRepository
.
findCampaignCustomerByCampaignCustomerId
(
customerCustomDTO
.
getCampaignCustomerId
());
campaignCustomer
.
setStatus
((
short
)
0
);
campaignCustomer
.
setCallStatus
(
null
);
campaignCustomer
.
setRedistribute
((
short
)
1
);
...
...
src/main/java/com/viettel/campaign/service/CampaignExecuteService.java
View file @
3be9c3d7
package
com.viettel.campaign.service
;
import
com.viettel.campaign.web.dto.CampaignCustomerDTO
;
import
com.viettel.campaign.web.dto.ContactCustResultDTO
;
import
com.viettel.campaign.web.dto.ReceiveCustLogDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
...
...
@@ -22,9 +24,16 @@ public interface CampaignExecuteService {
List
<
ContactCustResultDTO
>
getContactCustById
(
CampaignRequestDTO
dto
);
//</editor-fold>
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
);
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
,
String
xAuthToken
);
ResultDTO
getExecuteCampaign
(
CampaignRequestDTO
requestDto
);
ResultDTO
getCall
(
CampaignRequestDTO
dto
);
ResultDTO
getCall
(
CampaignCustomerDTO
dto
);
ResultDTO
getCallLog
(
ReceiveCustLogDTO
dto
);
ResultDTO
getAgentLogout
(
CampaignRequestDTO
dto
);
ResultDTO
callCustomer
(
ContactCustResultDTO
dto
);
}
src/main/java/com/viettel/campaign/service/impl/ApParamServiceImpl.java
View file @
3be9c3d7
...
...
@@ -92,7 +92,7 @@ public class ApParamServiceImpl implements ApParamService {
@Override
public
List
<
ApParam
>
findAllParam
()
{
return
apParamRepository
.
findAllParam
()
;
return
apParamRepository
.
findAllParam
(
"CAMPAIGN_TYPE"
)
;
}
...
...
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
View file @
3be9c3d7
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/utils/Config.java
View file @
3be9c3d7
package
com.viettel.campaign.utils
;
//
import com.viettel.security.PassTranformer;
import
com.viettel.security.PassTranformer
;
import
org.apache.log4j.Logger
;
import
java.io.File
;
...
...
src/main/java/com/viettel/campaign/web/dto/ContactCustResultDTO.java
View file @
3be9c3d7
...
...
@@ -10,27 +10,47 @@ import java.util.Date;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public
class
ContactCustResultDTO
extends
BaseDTO
{
private
Long
contacCustResultId
;
private
Long
contactCustResultId
;
private
Long
companySiteId
;
private
Short
callStatus
;
private
Short
recordStatus
;
private
Short
contactStatus
;
private
Short
status
;
private
Integer
satisfaction
;
private
String
description
;
private
Date
createTime
;
private
Long
callTime
;
private
Long
agentId
;
private
Date
updateTime
;
private
Long
updateBy
;
private
Long
campaignId
;
private
String
campaignName
;
private
Long
oldContactCustResultId
;
private
Long
customerId
;
private
Long
durationCall
;
private
Date
startCall
;
private
Long
receiveCustLogId
;
private
Short
ipccCallStatus
;
private
String
callId
;
private
String
phoneNumber
;
private
Date
receiveTime
;
private
Date
preEndTime
;
private
String
urlCall
;
private
String
transactionId
;
private
Date
recallTime
;
private
Short
isFinalRecall
;
private
Short
isSendEmail
=
0
;
private
Long
saledOnTpin
;
private
Date
endTime
;
private
Long
waitTime
;
private
String
dialMode
;
private
Long
wrapupTime
;
private
Long
timeMakeCall
=
0L
;
private
Long
timeReceiveCust
=
0L
;
private
Short
recordStatus
;
private
Long
callTime
;
private
String
campaignName
;
private
String
customerName
;
private
Long
customerId
;
private
String
contactStatus
;
private
String
campaignCode
;
private
String
userName
;
private
String
surveyStatus
;
private
Short
status
;
private
Boolean
enableEdit
;
}
src/main/java/com/viettel/campaign/web/dto/ContactQuestResultDTO.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
@Getter
@Setter
public
class
ContactQuestResultDTO
extends
BaseDTO
{
private
Long
contactQuestResultId
;
private
Long
contactCustResultId
;
private
Long
companySiteId
;
private
Long
scenarioQuestionId
;
private
String
otherOpinion
;
private
Long
scenarioAnswerId
;
private
Short
status
;
private
Long
oldContactCustResultId
;
private
Long
customerId
;
private
Long
campaignId
;
}
src/main/java/com/viettel/campaign/web/dto/ReceiveCustLogDTO.java
0 → 100644
View file @
3be9c3d7
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
@Setter
public
class
ReceiveCustLogDTO
{
private
Long
receiveCustLogId
;
private
Long
companySiteId
;
private
Long
customerId
;
private
Date
startTime
;
private
Long
agentId
;
private
Long
campaignId
;
private
Date
endTime
;
}
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
View file @
3be9c3d7
...
...
@@ -4,8 +4,7 @@ import com.viettel.campaign.model.ccms_full.TimeRangeDialMode;
import
com.viettel.campaign.model.ccms_full.TimeZoneDialMode
;
import
com.viettel.campaign.service.CampaignExecuteService
;
import
com.viettel.campaign.service.CampaignService
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.*
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.slf4j.Logger
;
...
...
@@ -40,8 +39,9 @@ public class CampaignController {
@PostMapping
(
"/searchCampaignExecute"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
searchCampaignExecute
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignExecuteService
.
searchCampaignExecute
(
requestDto
);
public
ResponseEntity
<
ResultDTO
>
searchCampaignExecute
(
@RequestBody
CampaignRequestDTO
requestDto
,
HttpServletRequest
request
)
{
String
xAuthToken
=
request
.
getHeader
(
"X-Auth-Token"
);
ResultDTO
result
=
campaignExecuteService
.
searchCampaignExecute
(
requestDto
,
xAuthToken
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
...
...
@@ -54,11 +54,32 @@ public class CampaignController {
@PostMapping
(
"/getCall"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
getCall
(
@RequestBody
Campaign
Request
DTO
requestDto
)
{
public
ResponseEntity
<
ResultDTO
>
getCall
(
@RequestBody
Campaign
Customer
DTO
requestDto
)
{
ResultDTO
result
=
campaignExecuteService
.
getCall
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/getCallLog"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
getCallLog
(
@RequestBody
ReceiveCustLogDTO
requestDto
)
{
ResultDTO
result
=
campaignExecuteService
.
getCallLog
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/callCustomer"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
callCustomer
(
@RequestBody
ContactCustResultDTO
requestDto
)
{
ResultDTO
result
=
campaignExecuteService
.
callCustomer
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/getAgentLogout"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
getAgentLogout
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignExecuteService
.
getAgentLogout
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@RequestMapping
(
value
=
"/search"
,
method
=
RequestMethod
.
POST
)
public
ResponseEntity
<
ResultDTO
>
search
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignService
.
search
(
requestDto
);
...
...
src/main/resources/i18n/language_en.properties
View file @
3be9c3d7
...
...
@@ -39,3 +39,28 @@ campaign.status.2 = Deploy
campaign.status.3
=
Pause
campaign.status.4
=
Finish
campaign.status.5
=
Kêt thúc sớm
#Campaign customer list management
CUSTOMER_ID
=
Id khách hàng
CODE
=
Mã khách hàng
NAME
=
Tên khách hàng
DESCRIPTION
=
Mô tả
COMPANY_NAME
=
Tên công ty
CUSTOMER_IMG
=
Ảnh khách hàng
CREATE_DATE
=
Ngày tạo
UPDATE_DATE
=
Ngày cập nhật
STATUS
=
Trạng thái
CREATE_BY
=
Tạo bởi
UPDATE_BY
=
Cập nhật bởi
SITE_ID
=
Mã công ty
GENDER
=
Giới tính
CURRENT_ADDRESS
=
Địa chỉ hiện tại
PLACE_OF_BIRTH
=
Nơi sinh
DATE_OF_BIRTH
=
Ngày sinh
MOBILE_NUMBER
=
Số điện thoại
USERNAME
=
Tài khoản
AREA_CODE
=
Khu vực
CALL_ALLOWED
=
CALL_ALLOWED
EMAIL_ALLOWED
=
EMAIL_ALLOWED
SMS_ALLOWED
=
SMS_ALLOWED
IPCC_STATUS
=
IPCC_STATUS
src/main/resources/i18n/language_vi.properties
View file @
3be9c3d7
...
...
@@ -42,4 +42,27 @@ campaign.status.3 = Tạm ngừng
campaign.status.4
=
Kêt thúc
campaign.status.5
=
Kêt thúc sớm
#Campaign customer list management
CUSTOMER_ID
=
Id khách hàng
CODE
=
Mã khách hàng
NAME
=
Tên khách hàng
DESCRIPTION
=
Mô tả
COMPANY_NAME
=
Tên công ty
CUSTOMER_IMG
=
Ảnh khách hàng
CREATE_DATE
=
Ngày tạo
UPDATE_DATE
=
Ngày cập nhật
STATUS
=
Trạng thái
CREATE_BY
=
Tạo bởi
UPDATE_BY
=
Cập nhật bởi
SITE_ID
=
Mã công ty
GENDER
=
Giới tính
CURRENT_ADDRESS
=
Địa chỉ hiện tại
PLACE_OF_BIRTH
=
Nơi sinh
DATE_OF_BIRTH
=
Ngày sinh
MOBILE_NUMBER
=
Số điện thoại
USERNAME
=
Tài khoản
AREA_CODE
=
Khu vực
CALL_ALLOWED
=
CALL_ALLOWED
EMAIL_ALLOWED
=
EMAIL_ALLOWED
SMS_ALLOWED
=
SMS_ALLOWED
IPCC_STATUS
=
IPCC_STATUS
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