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
c6169534
Commit
c6169534
authored
Jul 31, 2019
by
Phạm Duy Phi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into phipd
parents
a4fd7a9b
10aab5e8
Changes
44
Show whitespace changes
Inline
Side-by-side
Showing
44 changed files
with
734 additions
and
158 deletions
+734
-158
.gitignore
.gitignore
+3
-1
campaign.iml
campaign.iml
+0
-18
lib/ojdbc7.jar
lib/ojdbc7.jar
+0
-0
out/production/service-campaign/META-INF/service-campaign.kotlin_module
.../service-campaign/META-INF/service-campaign.kotlin_module
+0
-0
pom.xml
pom.xml
+29
-2
src/main/java/com/viettel/campaign/domain/ApParam.java
src/main/java/com/viettel/campaign/domain/ApParam.java
+0
-61
src/main/java/com/viettel/campaign/mapper/ApParamMapper.java
src/main/java/com/viettel/campaign/mapper/ApParamMapper.java
+1
-1
src/main/java/com/viettel/campaign/mapper/BaseMapper.java
src/main/java/com/viettel/campaign/mapper/BaseMapper.java
+1
-1
src/main/java/com/viettel/campaign/mapper/CampaignCompleteCodeMapper.java
...m/viettel/campaign/mapper/CampaignCompleteCodeMapper.java
+1
-1
src/main/java/com/viettel/campaign/mapper/CustomerMapper.java
...main/java/com/viettel/campaign/mapper/CustomerMapper.java
+1
-1
src/main/java/com/viettel/campaign/model/Campaign.java
src/main/java/com/viettel/campaign/model/Campaign.java
+20
-19
src/main/java/com/viettel/campaign/repository/CampaignRepository.java
...a/com/viettel/campaign/repository/CampaignRepository.java
+9
-0
src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
...viettel/campaign/repository/CampaignRepositoryCustom.java
+13
-0
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
...ttel/campaign/repository/impl/CampaignRepositoryImpl.java
+195
-0
src/main/java/com/viettel/campaign/service/ApParamService.java
...ain/java/com/viettel/campaign/service/ApParamService.java
+2
-2
src/main/java/com/viettel/campaign/service/ApParamServiceImpl.java
...java/com/viettel/campaign/service/ApParamServiceImpl.java
+2
-2
src/main/java/com/viettel/campaign/service/CampaignCompleteCodeService.java
...viettel/campaign/service/CampaignCompleteCodeService.java
+2
-2
src/main/java/com/viettel/campaign/service/CampaignCompleteCodeServiceImpl.java
...tel/campaign/service/CampaignCompleteCodeServiceImpl.java
+5
-3
src/main/java/com/viettel/campaign/service/CampaignService.java
...in/java/com/viettel/campaign/service/CampaignService.java
+12
-0
src/main/java/com/viettel/campaign/service/CustomerService.java
...in/java/com/viettel/campaign/service/CustomerService.java
+2
-2
src/main/java/com/viettel/campaign/service/CustomerServiceImpl.java
...ava/com/viettel/campaign/service/CustomerServiceImpl.java
+2
-2
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+45
-0
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java~HEAD
...ettel/campaign/service/impl/CampaignServiceImpl.java~HEAD
+50
-0
src/main/java/com/viettel/campaign/utils/Constants.java
src/main/java/com/viettel/campaign/utils/Constants.java
+20
-0
src/main/java/com/viettel/campaign/utils/DateTimeUtil.java
src/main/java/com/viettel/campaign/utils/DateTimeUtil.java
+87
-0
src/main/java/com/viettel/campaign/utils/HibernateUtil.java
src/main/java/com/viettel/campaign/utils/HibernateUtil.java
+42
-0
src/main/java/com/viettel/campaign/utils/SQLBuilder.java
src/main/java/com/viettel/campaign/utils/SQLBuilder.java
+31
-0
src/main/java/com/viettel/campaign/web/dto/ApParamDTO.java
src/main/java/com/viettel/campaign/web/dto/ApParamDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/dto/BaseDTO.java
src/main/java/com/viettel/campaign/web/dto/BaseDTO.java
+4
-1
src/main/java/com/viettel/campaign/web/dto/CampaignCompleteCodeDTO.java
...com/viettel/campaign/web/dto/CampaignCompleteCodeDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
+24
-20
src/main/java/com/viettel/campaign/web/dto/CustomerDTO.java
src/main/java/com/viettel/campaign/web/dto/CustomerDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/dto/CustomerListDTO.java
...in/java/com/viettel/campaign/web/dto/CustomerListDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/dto/ResultDTO.java
src/main/java/com/viettel/campaign/web/dto/ResultDTO.java
+2
-3
src/main/java/com/viettel/campaign/web/dto/TicketSiteDTO.java
...main/java/com/viettel/campaign/web/dto/TicketSiteDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/dto/request_dto/CampaignRequestDTO.java
...ttel/campaign/web/dto/request_dto/CampaignRequestDTO.java
+28
-0
src/main/java/com/viettel/campaign/web/rest/ApParamController.java
...java/com/viettel/campaign/web/rest/ApParamController.java
+1
-1
src/main/java/com/viettel/campaign/web/rest/CampaignCompleteCodeController.java
...tel/campaign/web/rest/CampaignCompleteCodeController.java
+3
-3
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
...ava/com/viettel/campaign/web/rest/CustomerController.java
+3
-3
src/main/java/com/viettel/campaign/web/rest/CustomerListController.java
...com/viettel/campaign/web/rest/CustomerListController.java
+0
-0
src/main/java/com/viettel/campaign/web/rest/KafkaController.java
...n/java/com/viettel/campaign/web/rest/KafkaController.java
+1
-4
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
...ttel/campaign/web/rest/controller/CampaignController.java
+40
-0
src/main/resources/hibernate.cfg.xml
src/main/resources/hibernate.cfg.xml
+16
-0
src/main/resources/sql/campaign-mng/search-campaign-by-params.sql
.../resources/sql/campaign-mng/search-campaign-by-params.sql
+32
-0
No files found.
.gitignore
View file @
c6169534
target/
/.idea/
logs/
out/
/campaign.iml
campaign.iml
deleted
100644 → 0
View file @
a4fd7a9b
<?xml version="1.0" encoding="UTF-8"?>
<module
version=
"4"
>
<component
name=
"ExternalSystem"
externalSystem=
"Maven"
/>
<component
name=
"FacetManager"
>
<facet
type=
"Spring"
name=
"Spring"
>
<configuration
/>
</facet>
<facet
type=
"web"
name=
"Web"
>
<configuration>
<webroots
/>
<sourceRoots>
<root
url=
"file://$MODULE_DIR$/src/main/java"
/>
<root
url=
"file://$MODULE_DIR$/src/main/resources"
/>
</sourceRoots>
</configuration>
</facet>
</component>
</module>
\ No newline at end of file
lib/ojdbc7.jar
0 → 100755
View file @
c6169534
File added
out/production/service-campaign/META-INF/service-campaign.kotlin_module
deleted
100644 → 0
View file @
a4fd7a9b
File deleted
pom.xml
View file @
c6169534
...
...
@@ -92,8 +92,10 @@
</dependency>
<dependency>
<groupId>
com.oracle
</groupId>
<artifactId>
ojdbc6
</artifactId>
<version>
11.2.0.3
</version>
<artifactId>
ojdbc7
</artifactId>
<scope>
system
</scope>
<systemPath>
${project.basedir}/lib/ojdbc7.jar
</systemPath>
<version>
1.0
</version>
</dependency>
<dependency>
<groupId>
org.hibernate
</groupId>
...
...
@@ -156,6 +158,31 @@
<artifactId>
log4j
</artifactId>
<version>
1.2.17
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-core
</artifactId>
<version>
2.9.8
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-databind
</artifactId>
<version>
2.9.8
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-annotations
</artifactId>
<version>
2.9.8
</version>
</dependency>
<dependency>
<groupId>
joda-time
</groupId>
<artifactId>
joda-time
</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
...
...
src/main/java/com/viettel/campaign/domain/ApParam.java
deleted
100644 → 0
View file @
a4fd7a9b
package
com.viettel.campaign.domain
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
@Entity
@Table
(
name
=
"AP_PARAM"
)
@Getter
@Setter
@NoArgsConstructor
public
class
ApParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"AP_PARAM_SEQ"
)
@SequenceGenerator
(
name
=
"AP_PARAM_SEQ"
,
sequenceName
=
"AP_PARAM_SEQ"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@NotNull
@Column
(
name
=
"AP_PARAM_ID"
)
private
String
apParamId
;
@Column
(
name
=
"PAR_NAME"
)
private
String
parName
;
@Column
(
name
=
"PAR_VALUE"
)
private
String
parValue
;
@Column
(
name
=
"RESOURCE_ID"
)
private
String
resourceId
;
@Column
(
name
=
"STATUS"
)
private
String
status
;
@Column
(
name
=
"PAR_CODE"
)
private
String
parCode
;
@Column
(
name
=
"PAR_TYPE"
)
private
String
parType
;
@Column
(
name
=
"DESCRIPTION"
)
private
String
description
;
@Column
(
name
=
"IS_DELETE"
)
private
String
isDelete
;
@Column
(
name
=
"IS_DEFAULT"
)
private
String
isDefault
;
@Column
(
name
=
"ENABLE_EDIT"
)
private
String
enableEdit
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
String
companySiteId
;
}
src/main/java/com/viettel/campaign/mapper/ApParamMapper.java
View file @
c6169534
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.dto.ApParamDTO
;
import
com.viettel.campaign.
web.
dto.ApParamDTO
;
import
com.viettel.campaign.model.ApParam
;
public
class
ApParamMapper
extends
BaseMapper
<
ApParam
,
ApParamDTO
>
{
...
...
src/main/java/com/viettel/campaign/mapper/BaseMapper.java
View file @
c6169534
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.dto.BaseDTO
;
import
com.viettel.campaign.
web.
dto.BaseDTO
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
src/main/java/com/viettel/campaign/mapper/CampaignCompleteCodeMapper.java
View file @
c6169534
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.
web.
dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.model.CampaignCompleteCode
;
public
class
CampaignCompleteCodeMapper
extends
BaseMapper
<
CampaignCompleteCode
,
CampaignCompleteCodeDTO
>
{
...
...
src/main/java/com/viettel/campaign/mapper/CustomerMapper.java
View file @
c6169534
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.dto.CustomerDTO
;
import
com.viettel.campaign.
web.
dto.CustomerDTO
;
import
com.viettel.campaign.model.Customer
;
public
class
CustomerMapper
extends
BaseMapper
<
Customer
,
CustomerDTO
>
{
...
...
src/main/java/com/viettel/campaign/model/Campaign.java
View file @
c6169534
...
...
@@ -6,6 +6,7 @@ import lombok.Setter;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Entity
...
...
@@ -18,23 +19,23 @@ public class Campaign implements Serializable {
@NotNull
@Basic
(
optional
=
false
)
@Column
(
name
=
"CAMPAIGN_ID"
)
private
Long
campaignId
;
private
BigDecimal
campaignId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
private
BigDecimal
companySiteId
;
@Column
(
name
=
"CAMPAIGN_CODE"
)
private
String
campaignCode
;
@Column
(
name
=
"CAMPAIGN_NAME"
)
private
String
campaignName
;
@Column
(
name
=
"CHANEL"
)
private
Short
chanel
;
private
BigDecimal
chanel
;
@Column
(
name
=
"CONTENT"
)
private
String
content
;
@Column
(
name
=
"CUSTOMER_NUMBER"
)
private
Long
customerNumber
;
private
BigDecimal
customerNumber
;
@Column
(
name
=
"TARGET"
)
private
String
target
;
@Column
(
name
=
"STATUS"
)
private
Short
status
;
private
BigDecimal
status
;
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"START_TIME"
)
private
Date
startTime
;
...
...
@@ -64,7 +65,7 @@ public class Campaign implements Serializable {
@Column
(
name
=
"PROCESS_STATUS"
)
private
Integer
processStatus
;
@Column
(
name
=
"DIAL_MODE"
)
private
Short
dialMode
;
private
BigDecimal
dialMode
;
@Column
(
name
=
"DEPT_CODE"
)
private
String
deptCode
;
@Column
(
name
=
"TIME_RANGE"
)
...
...
@@ -72,29 +73,29 @@ public class Campaign implements Serializable {
@Column
(
name
=
"DAY_OF_WEEK"
)
private
String
dayOfWeek
;
@Column
(
name
=
"CURRENT_TIME_MODE"
)
private
Long
currentTimeModel
;
private
BigDecimal
currentTimeModel
;
@Column
(
name
=
"WRAPUP_TIME_CONNECT"
)
private
Long
wrapupTimeConnect
;
private
BigDecimal
wrapupTimeConnect
;
@Column
(
name
=
"WRAPUP_TIME_DISCONNECT"
)
private
Long
wrapupTimeDisconnect
;
private
BigDecimal
wrapupTimeDisconnect
;
@Column
(
name
=
"PREVIEW_TIME"
)
private
Long
previewTime
;
private
BigDecimal
previewTime
;
@Column
(
name
=
"RATE_DIAL"
)
private
Long
rateDial
;
private
BigDecimal
rateDial
;
@Column
(
name
=
"RATE_MISS"
)
private
Long
rateMiss
;
private
BigDecimal
rateMiss
;
@Column
(
name
=
"AVG_TIME_PROCESS"
)
private
Long
avgTimeProcess
;
private
BigDecimal
avgTimeProcess
;
@Column
(
name
=
"IS_APPLY_CUST_LOCK"
)
private
Long
isApplyCustLock
;
private
BigDecimal
isApplyCustLock
;
@Column
(
name
=
"TARGET_TYPE"
)
private
Long
targetType
;
private
BigDecimal
targetType
;
@Column
(
name
=
"IS_TARGET"
)
private
Long
isTarget
;
private
BigDecimal
isTarget
;
@Column
(
name
=
"CAMPAIGN_IVR_CALLED_ID"
)
private
Long
campaignIvrCalledId
;
private
BigDecimal
campaignIvrCalledId
;
@Column
(
name
=
"CONCURRENT_CALL"
)
private
Long
concurrentCall
;
private
BigDecimal
concurrentCall
;
@Column
(
name
=
"CALL_OUT_TIME_IN_DAY"
)
private
String
callOutTimeInDay
;
@Column
(
name
=
"MUSIC_LIST"
)
...
...
@@ -110,5 +111,5 @@ public class Campaign implements Serializable {
@Column
(
name
=
"TIME_WAIT_AGENT"
)
private
Integer
timeWaitAgent
;
@Column
(
name
=
"QUEST_INDEX"
)
private
Long
questIndex
;
private
BigDecimal
questIndex
;
}
src/main/java/com/viettel/campaign/repository/CampaignRepository.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.model.Campaign
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.stereotype.Repository
;
@Repository
public
interface
CampaignRepository
extends
JpaRepository
<
Campaign
,
Long
>,
CampaignRepositoryCustom
{
}
src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.springframework.data.domain.Pageable
;
import
java.util.List
;
public
interface
CampaignRepositoryCustom
{
List
<
CampaignDTO
>
searchCampaignExecute
(
String
agentId
,
Pageable
pageable
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
}
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.repository.impl
;
import
com.viettel.campaign.repository.CampaignRepositoryCustom
;
import
com.viettel.campaign.utils.*
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
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.*
;
import
org.springframework.stereotype.Repository
;
import
javax.persistence.EntityManager
;
import
java.util.ArrayList
;
import
java.util.List
;
@Repository
public
class
CampaignRepositoryImpl
implements
CampaignRepositoryCustom
{
@Autowired
EntityManager
entityManager
;
@Override
public
List
<
CampaignDTO
>
searchCampaignExecute
(
String
agentId
,
Pageable
pageable
)
{
List
<
CampaignDTO
>
lst
=
new
ArrayList
<>();
// String expression = new StringBuilder()
// .append(" SELECT C.CAMPAIGN_ID, C.CAMPAIGN_NAME, C.STATUS ")
// .append(" FROM CAMPAIGN C ")
// .append(" INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID ")
// .append(" WHERE 1 = 1 ")
// .append(" AND CA.AGENT_ID = :pAgentId ")
// .append(" AND C.STATUS IN (2,3) ")
// .toString();
//
// Query query = entityManager.createNativeQuery(expression);
// query.setParameter("pAgentId", agentId);
//
// List<Object[]> data = query.getResultList();
//
// for (Object[] obj : data) {
// CampaignDTO item = new CampaignDTO();
// item.setCampaignId((Long) obj[0]);
// item.setCampaignName((String) obj[1]);
// item.setStatus((Short) obj[0]);
//
// lst.add(item);
// }
return
lst
;
}
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
new
ResultDTO
();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
try
{
StringBuilder
sqlStr
=
new
StringBuilder
();
sqlStr
.
append
(
SQLBuilder
.
getSqlQueryById
(
SQLBuilder
.
SQL_MODULE_CAMPAIGN_MNG
,
"search-campaign-by-params"
));
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getCampaignCode
()))
{
sqlStr
.
append
(
" AND UPPER(a.CAMPAIGN_CODE) LIKE :p_code"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getCampaignName
()))
{
sqlStr
.
append
(
" AND UPPER(a.CAMPAIGN_NAME) LIKE :p_name"
);
}
if
(
requestDto
.
getStatus
()
!=
null
)
{
sqlStr
.
append
(
" AND a.STATUS = :p_status"
);
}
if
(
requestDto
.
getFromDateFr
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getFromDateFr
().
getTime
()))
{
sqlStr
.
append
(
" AND a.START_TIME >= :p_frDateFr"
);
}
if
(
requestDto
.
getFromDateTo
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getFromDateTo
().
getTime
()))
{
sqlStr
.
append
(
" AND a.START_TIME <= :p_frDateTo"
);
}
if
(
requestDto
.
getToDateFr
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getToDateFr
().
getTime
()))
{
sqlStr
.
append
(
" AND a.END_TIME >= :p_toDateFr"
);
}
if
(
requestDto
.
getToDateTo
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getToDateTo
().
getTime
()))
{
sqlStr
.
append
(
" AND a.END_TIME <= :p_toDateTo"
);
}
if
(!
DataUtil
.
isNullOrZero
(
requestDto
.
getNumOfCusFr
()))
{
sqlStr
.
append
(
" AND a.CUSTOMER_NUMBER >= :p_cusNumFr"
);
}
if
(!
DataUtil
.
isNullOrZero
(
requestDto
.
getNumOfCusTo
()))
{
sqlStr
.
append
(
" AND a.CUSTOMER_NUMBER <= :p_cusNumTo"
);
}
if
(
requestDto
.
getType
()
!=
null
)
{
sqlStr
.
append
(
" AND a.CAMPAIGN_TYPE = :p_type"
);
}
if
(
requestDto
.
getChanel
()
!=
null
)
{
sqlStr
.
append
(
" AND a.CHANEL = :p_chanel"
);
}
// Query query = entityManager.createNativeQuery(sqlStr.toString(), Campaign.class);
SQLQuery
query
=
session
.
createSQLQuery
(
sqlStr
.
toString
());
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getCampaignCode
()))
{
query
.
setParameter
(
"p_code"
,
"%"
+
requestDto
.
getCampaignCode
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\\\%"
)
.
replaceAll
(
"_"
,
"\\\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getCampaignName
()))
{
query
.
setParameter
(
"p_name"
,
"%"
+
requestDto
.
getCampaignName
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\\\%"
)
.
replaceAll
(
"_"
,
"\\\\_"
)
+
"%"
);
}
if
(
requestDto
.
getStatus
()
!=
null
)
{
query
.
setParameter
(
"p_status"
,
requestDto
.
getStatus
());
}
if
(
requestDto
.
getFromDateFr
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getFromDateFr
().
getTime
()))
{
query
.
setParameter
(
"p_frDateFr"
,
requestDto
.
getFromDateFr
());
}
if
(
requestDto
.
getFromDateTo
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getFromDateTo
().
getTime
()))
{
query
.
setParameter
(
"p_frDateTo"
,
requestDto
.
getFromDateTo
());
}
if
(
requestDto
.
getToDateFr
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getToDateFr
().
getTime
()))
{
query
.
setParameter
(
"p_toDateFr"
,
requestDto
.
getToDateFr
());
}
if
(
requestDto
.
getToDateTo
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getToDateTo
().
getTime
()))
{
query
.
setParameter
(
"p_toDateTo"
,
requestDto
.
getToDateTo
());
}
if
(
requestDto
.
getType
()
!=
null
)
{
query
.
setParameter
(
"p_type"
,
requestDto
.
getType
());
}
if
(
requestDto
.
getChanel
()
!=
null
)
{
query
.
setParameter
(
"p_chanel"
,
requestDto
.
getChanel
());
}
if
(!
DataUtil
.
isNullOrZero
(
requestDto
.
getNumOfCusFr
()))
{
query
.
setParameter
(
"p_cusNumFr"
,
requestDto
.
getNumOfCusFr
());
}
if
(!
DataUtil
.
isNullOrZero
(
requestDto
.
getNumOfCusTo
()))
{
query
.
setParameter
(
"p_cusNumTo"
,
requestDto
.
getNumOfCusTo
());
}
query
.
addScalar
(
"campaignId"
,
new
LongType
());
query
.
addScalar
(
"campaignCode"
,
new
StringType
());
query
.
addScalar
(
"campaignName"
,
new
StringType
());
query
.
addScalar
(
"campaignType"
,
new
StringType
());
query
.
addScalar
(
"chanel"
,
new
ShortType
());
query
.
addScalar
(
"startTime"
,
new
DateType
());
query
.
addScalar
(
"endTime"
,
new
DateType
());
query
.
addScalar
(
"customerNumber"
,
new
LongType
());
query
.
addScalar
(
"status"
,
new
ShortType
());
query
.
addScalar
(
"numOfJoinedCus"
,
new
LongType
());
query
.
addScalar
(
"numOfNotJoinedCus"
,
new
LongType
());
query
.
addScalar
(
"numOfLockCus"
,
new
LongType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CampaignDTO
.
class
));
int
count
=
0
;
List
<
CampaignDTO
>
list
=
query
.
list
();
if
(
list
.
size
()
>
0
)
{
count
=
query
.
list
().
size
();
}
Pageable
pageable
=
buildPageable
(
requestDto
);
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
CampaignDTO
>
data
=
query
.
list
();
Page
<
CampaignDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
result
.
setData
(
dataPage
);
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
session
.
close
();
return
result
;
}
catch
(
Exception
ex
)
{
session
.
close
();
}
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
return
result
;
}
private
Pageable
buildPageable
(
CampaignRequestDTO
obj
)
{
Pageable
pageable
=
null
;
String
[]
sorts
=
obj
.
getSort
().
split
(
","
);
Sort
sort
=
new
Sort
(
Sort
.
Direction
.
fromString
(
sorts
[
1
]),
sorts
[
0
]);
pageable
=
new
PageRequest
(
obj
.
getPage
(),
obj
.
getPageSize
(),
sort
);
return
pageable
;
}
}
src/main/java/com/viettel/campaign/service/ApParamService.java
View file @
c6169534
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.ApParamDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ApParamDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.model.ApParam
;
import
java.util.List
;
...
...
src/main/java/com/viettel/campaign/service/ApParamServiceImpl.java
View file @
c6169534
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.ApParamDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ApParamDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.mapper.ApParamMapper
;
import
com.viettel.campaign.model.ApParam
;
import
com.viettel.campaign.repository.ApParamRepository
;
...
...
src/main/java/com/viettel/campaign/service/CampaignCompleteCodeService.java
View file @
c6169534
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
java.util.Map
;
...
...
src/main/java/com/viettel/campaign/service/CampaignCompleteCodeServiceImpl.java
View file @
c6169534
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.mapper.CampaignCompleteCodeMapper
;
import
com.viettel.campaign.model.CampaignCompleteCode
;
import
com.viettel.campaign.repository.CampaignCompleteCodeRepository
;
...
...
@@ -32,10 +32,12 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
public
Map
listCompleteCodeByName
(
int
page
,
int
pageSize
,
String
sort
,
String
name
)
{
Map
result
=
new
HashMap
();
List
<
CampaignCompleteCode
>
lst
=
new
ArrayList
<>();
List
<
CampaignCompleteCode
>
count
=
new
ArrayList
<>();
lst
=
completeCodeRepository
.
findByCompleteNameContains
(
name
,
PageRequest
.
of
(
page
,
pageSize
,
Sort
.
by
(
sort
)));
count
=
completeCodeRepository
.
findByCompleteNameContains
(
name
,
null
);
result
.
put
(
"totalItem"
,
ls
t
.
size
());
result
.
put
(
"totalItem"
,
coun
t
.
size
());
result
.
put
(
"customers"
,
lst
);
return
result
;
...
...
src/main/java/com/viettel/campaign/service/CampaignService.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.service
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
java.util.Map
;
public
interface
CampaignService
{
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
}
src/main/java/com/viettel/campaign/service/CustomerService.java
View file @
c6169534
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.CustomerDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.CustomerDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
java.util.Map
;
...
...
src/main/java/com/viettel/campaign/service/CustomerServiceImpl.java
View file @
c6169534
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.CustomerDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.CustomerDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.mapper.CustomerMapper
;
import
com.viettel.campaign.model.Customer
;
import
com.viettel.campaign.repository.CustomerRepository
;
...
...
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.service.impl
;
import
com.viettel.campaign.repository.CampaignRepository
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.service.CampaignService
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
CampaignServiceImpl
implements
CampaignService
{
@Autowired
(
required
=
true
)
CampaignRepository
campaignRepository
;
@Override
public
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
)
{
Map
result
=
new
HashMap
();
List
<
CampaignDTO
>
lst
=
new
ArrayList
<>();
Pageable
pageable
=
PageRequest
.
of
(
page
,
pageSize
,
Sort
.
by
(
sort
));
lst
=
campaignRepository
.
searchCampaignExecute
(
agentId
,
pageable
);
result
.
put
(
"totalItem"
,
lst
.
size
());
result
.
put
(
"data"
,
lst
);
return
result
;
}
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
return
campaignRepository
.
search
(
requestDto
);
}
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java~HEAD
0 → 100644
View file @
c6169534
package
com
.
viettel
.
campaign
.
service
.
impl
;
<<<<<<<
HEAD
:
src
/
main
/
java
/
com
/
viettel
/
campaign
/
service
/
CampaignServiceImpl
.
java
import
com
.
viettel
.
campaign
.
repository
.
CampaignRepository
;
import
com
.
viettel
.
campaign
.
web
.
dto
.
CampaignDTO
;
=======
import
com
.
viettel
.
campaign
.
dto
.
CampaignDTO
;
import
com
.
viettel
.
campaign
.
dto
.
ResultDTO
;
import
com
.
viettel
.
campaign
.
dto
.
request_dto
.
CampaignRequestDTO
;
import
com
.
viettel
.
campaign
.
model
.
Campaign
;
import
com
.
viettel
.
campaign
.
repository
.
CampaignRepository
;
import
com
.
viettel
.
campaign
.
service
.
CampaignService
;
>>>>>>>
anhvd_campaign_mng
:
src
/
main
/
java
/
com
/
viettel
/
campaign
/
service
/
impl
/
CampaignServiceImpl
.
java
import
org
.
springframework
.
beans
.
factory
.
annotation
.
Autowired
;
import
org
.
springframework
.
data
.
domain
.
Page
;
import
org
.
springframework
.
data
.
domain
.
PageRequest
;
import
org
.
springframework
.
data
.
domain
.
Pageable
;
import
org
.
springframework
.
data
.
domain
.
Sort
;
import
org
.
springframework
.
stereotype
.
Service
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
HashMap
;
import
java
.
util
.
List
;
import
java
.
util
.
Map
;
@
Service
public
class
CampaignServiceImpl
implements
CampaignService
{
@
Autowired
(
required
=
true
)
CampaignRepository
campaignRepository
;
@
Override
public
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
)
{
Map
result
=
new
HashMap
();
List
<
CampaignDTO
>
lst
=
new
ArrayList
<>();
Pageable
pageable
=
PageRequest
.
of
(
page
,
pageSize
,
Sort
.
by
(
sort
));
lst
=
campaignRepository
.
searchCampaignExecute
(
agentId
,
pageable
);
result
.
put
(
"totalItem"
,
lst
.
size
());
result
.
put
(
"data"
,
lst
);
return
result
;
}
@
Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
return
campaignRepository
.
search
(
requestDto
);
}
}
src/main/java/com/viettel/campaign/utils/Constants.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.utils
;
/**
* @author anhvd_itsol
*/
public
class
Constants
{
public
interface
ApiErrorCode
{
String
ERROR
=
"01"
;
String
SUCCESS
=
"00"
;
}
public
interface
ApiErrorDesc
{
String
ERROR
=
"ERROR"
;
String
SUCCESS
=
"SUCCESS"
;
}
public
interface
FileType
{
String
pdf
=
"pdf"
;
String
xls
=
"xls"
;
String
xlsx
=
"xlsx"
;
}
}
src/main/java/com/viettel/campaign/utils/DateTimeUtil.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.utils
;
import
org.apache.logging.log4j.util.Strings
;
import
org.joda.time.format.DateTimeFormat
;
import
java.util.Date
;
import
java.util.TimeZone
;
import
java.util.concurrent.atomic.AtomicReference
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
MILLISECONDS
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
NANOSECONDS
;
/**
* @author anhvd_itsol
*/
public
final
class
DateTimeUtil
{
public
static
final
long
DAY_IN_MILLIS
=
86400000L
;
public
static
interface
DateTimeProvider
{
long
now
();
}
private
static
final
AtomicReference
<
DateTimeProvider
>
PROVIDER
=
new
AtomicReference
<
DateTimeProvider
>();
public
static
final
DateTimeProvider
getProvider
()
{
return
PROVIDER
.
get
();
}
static
{
PROVIDER
.
set
(
new
DateTimeProvider
()
{
@Override
public
long
now
()
{
return
System
.
currentTimeMillis
();
}
});
}
public
static
Date
currentTime
()
{
return
new
Date
(
now
());
}
public
static
Date
currentDate
()
{
return
date
(
now
());
}
public
static
final
Date
date
(
final
long
millis
)
{
final
int
offset
=
getTimeZoneOffset
(
millis
);
long
t
=
millis
-
((
t
=
(
millis
+
offset
)
%
DAY_IN_MILLIS
)
<
0
?
DAY_IN_MILLIS
+
t
:
t
);
t
=
t
+
(
offset
-
getTimeZoneOffset
(
t
));
return
new
Date
(
t
);
}
public
static
int
getTimeZoneOffset
(
long
millis
)
{
return
TimeZone
.
getDefault
().
getOffset
(
millis
);
}
public
static
long
now
()
{
return
getProvider
().
now
();
}
public
static
long
toMillis
(
long
nanos
)
{
return
MILLISECONDS
.
convert
(
nanos
,
NANOSECONDS
);
}
public
static
long
currentTimeMillis
()
{
return
getProvider
().
now
();
}
/**
* Format
*/
public
static
String
format
(
String
pattern
,
long
millis
)
{
return
DateTimeFormat
.
forPattern
(
pattern
).
print
(
millis
);
}
public
static
String
format
(
String
pattern
,
Date
date
,
String
defaultValue
)
{
if
(
date
==
null
)
return
defaultValue
;
return
format
(
pattern
,
date
.
getTime
());
}
/**
*
*/
public
static
boolean
isValid
(
final
long
millis
)
{
return
millis
>
0L
;
}
/**
*
*/
public
static
long
parse
(
final
String
pattern
,
String
date
)
{
return
DateTimeFormat
.
forPattern
(
pattern
).
parseMillis
(
date
);
}
public
static
Date
parseDate
(
final
String
pattern
,
String
date
)
{
return
Strings
.
isEmpty
(
date
)
?
null
:
date
(
parse
(
pattern
,
date
));
}
/**
*
*/
}
src/main/java/com/viettel/campaign/utils/HibernateUtil.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.utils
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.boot.registry.StandardServiceRegistryBuilder
;
import
org.hibernate.cfg.Configuration
;
import
org.hibernate.service.ServiceRegistry
;
/**
* @author anhvd_itsol
*/
public
class
HibernateUtil
{
private
static
SessionFactory
sessionFactory
=
buildSessionFactory
();
private
static
SessionFactory
buildSessionFactory
()
{
try
{
if
(
sessionFactory
==
null
)
{
Configuration
configuration
=
new
Configuration
().
configure
(
HibernateUtil
.
class
.
getResource
(
"/hibernate.cfg.xml"
));
StandardServiceRegistryBuilder
serviceRegistryBuilder
=
new
StandardServiceRegistryBuilder
();
serviceRegistryBuilder
.
applySettings
(
configuration
.
getProperties
());
ServiceRegistry
serviceRegistry
=
serviceRegistryBuilder
.
build
();
sessionFactory
=
configuration
.
buildSessionFactory
(
serviceRegistry
);
}
return
sessionFactory
;
}
catch
(
Throwable
ex
)
{
System
.
err
.
println
(
"Initial SessionFactory creation failed."
+
ex
);
throw
new
ExceptionInInitializerError
(
ex
);
}
}
public
static
SessionFactory
getSessionFactory
()
{
return
sessionFactory
;
}
public
static
void
shutdown
()
{
getSessionFactory
().
close
();
}
}
src/main/java/com/viettel/campaign/utils/SQLBuilder.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.utils
;
import
java.io.File
;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.io.IOException
;
import
org.springframework.core.io.ClassPathResource
;
/**
* @author anhvd_itsol
*/
public
class
SQLBuilder
{
public
static
final
String
SQL_MODULE_CAMPAIGN_MNG
=
"campaign-mng"
;
public
static
String
getSqlQueryById
(
String
module
,
String
queryId
)
{
File
folder
=
null
;
try
{
folder
=
new
ClassPathResource
(
"sql"
+
File
.
separator
+
module
+
File
.
separator
+
queryId
+
".sql"
).
getFile
();
// Read file
if
(
folder
.
isFile
())
{
String
sql
=
new
String
(
Files
.
readAllBytes
(
Paths
.
get
(
folder
.
getAbsolutePath
())));
return
sql
;
}
}
catch
(
IOException
e
)
{
return
null
;
}
return
null
;
}
}
src/main/java/com/viettel/campaign/dto/ApParamDTO.java
→
src/main/java/com/viettel/campaign/
web/
dto/ApParamDTO.java
View file @
c6169534
package
com.viettel.campaign.dto
;
package
com.viettel.campaign.
web.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
src/main/java/com/viettel/campaign/dto/BaseDTO.java
→
src/main/java/com/viettel/campaign/
web/
dto/BaseDTO.java
View file @
c6169534
package
com.viettel.campaign.dto
;
package
com.viettel.campaign.
web.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -10,4 +10,7 @@ import java.io.Serializable;
public
class
BaseDTO
implements
Serializable
{
protected
String
keySet
;
protected
int
pageSize
;
protected
int
page
;
protected
String
sort
;
}
src/main/java/com/viettel/campaign/dto/CampaignCompleteCodeDTO.java
→
src/main/java/com/viettel/campaign/
web/
dto/CampaignCompleteCodeDTO.java
View file @
c6169534
package
com.viettel.campaign.dto
;
package
com.viettel.campaign.
web.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
src/main/java/com/viettel/campaign/dto/CampaignDTO.java
→
src/main/java/com/viettel/campaign/
web/
dto/CampaignDTO.java
View file @
c6169534
package
com.viettel.campaign.dto
;
package
com.viettel.campaign.
web.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Getter
@Setter
public
class
CampaignDTO
extends
BaseDTO
{
private
Long
campaignId
;
private
Long
companySiteId
;
private
BigDecimal
campaignId
;
private
BigDecimal
companySiteId
;
private
String
campaignCode
;
private
String
campaignName
;
private
Short
chanel
;
private
BigDecimal
chanel
;
private
String
content
;
private
Long
customerNumber
;
private
BigDecimal
customerNumber
;
private
String
target
;
private
Short
status
;
private
BigDecimal
status
;
private
Date
startTime
;
private
Date
endTime
;
private
Integer
maxRecall
;
...
...
@@ -30,27 +31,30 @@ public class CampaignDTO extends BaseDTO {
private
String
campaignType
;
private
String
product
;
private
Integer
processStatus
;
private
Short
dialMode
;
private
BigDecimal
dialMode
;
private
String
deptCode
;
private
String
timeRange
;
private
String
dayOfWeek
;
private
Long
currentTimeModel
;
private
Long
wrapupTimeConnect
;
private
Long
wrapupTimeDisconnect
;
private
Long
previewTime
;
private
Long
rateDial
;
private
Long
rateMiss
;
private
Long
avgTimeProcess
;
private
Long
isApplyCustLock
;
private
Long
targetType
;
private
Long
isTarget
;
private
Long
campaignIvrCalledId
;
private
Long
concurrentCall
;
private
BigDecimal
currentTimeModel
;
private
BigDecimal
wrapupTimeConnect
;
private
BigDecimal
wrapupTimeDisconnect
;
private
BigDecimal
previewTime
;
private
BigDecimal
rateDial
;
private
BigDecimal
rateMiss
;
private
BigDecimal
avgTimeProcess
;
private
BigDecimal
isApplyCustLock
;
private
BigDecimal
targetType
;
private
BigDecimal
isTarget
;
private
BigDecimal
campaignIvrCalledId
;
private
BigDecimal
concurrentCall
;
private
String
callOutTimeInDay
;
private
String
musicList
;
private
Integer
timePlayMusic
;
private
Date
campaignStart
;
private
Date
campaignEnd
;
private
Integer
timeWaitAgent
;
private
Long
questIndex
;
private
BigDecimal
questIndex
;
private
Long
numOfJoinedCus
;
private
Long
numOfNotJoinedCus
;
private
Long
numOfLockCus
;
}
src/main/java/com/viettel/campaign/dto/CustomerDTO.java
→
src/main/java/com/viettel/campaign/
web/
dto/CustomerDTO.java
View file @
c6169534
package
com.viettel.campaign.dto
;
package
com.viettel.campaign.
web.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
src/main/java/com/viettel/campaign/dto/CustomerListDTO.java
→
src/main/java/com/viettel/campaign/
web/
dto/CustomerListDTO.java
View file @
c6169534
package
com.viettel.campaign.dto
;
package
com.viettel.campaign.
web.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
src/main/java/com/viettel/campaign/dto/ResultDTO.java
→
src/main/java/com/viettel/campaign/
web/
dto/ResultDTO.java
View file @
c6169534
package
com.viettel.campaign.dto
;
package
com.viettel.campaign.
web.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
@@ -9,9 +9,8 @@ import java.util.List;
@Getter
@Setter
public
class
ResultDTO
{
private
String
errorCode
;
private
String
description
;
private
List
listData
=
new
ArrayList
();
private
List
<?>
listData
=
new
ArrayList
();
private
Object
data
;
}
src/main/java/com/viettel/campaign/dto/TicketSiteDTO.java
→
src/main/java/com/viettel/campaign/
web/
dto/TicketSiteDTO.java
View file @
c6169534
package
com.viettel.campaign.dto
;
package
com.viettel.campaign.
web.
dto
;
import
lombok.Getter
;
import
lombok.Setter
;
...
...
src/main/java/com/viettel/campaign/web/dto/request_dto/CampaignRequestDTO.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.web.dto.request_dto
;
import
com.viettel.campaign.web.dto.BaseDTO
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
/**
* @author anhvd_itsol
*/
@Getter
@Setter
public
class
CampaignRequestDTO
extends
BaseDTO
{
String
campaignCode
;
String
campaignName
;
Short
status
;
Date
fromDateFr
;
Date
fromDateTo
;
Date
toDateTo
;
Date
toDateFr
;
Long
numOfCusFr
;
Long
numOfCusTo
;
Short
type
;
Short
chanel
;
}
src/main/java/com/viettel/campaign/
controller
/ApParamController.java
→
src/main/java/com/viettel/campaign/
web/rest
/ApParamController.java
View file @
c6169534
package
com.viettel.campaign.
controller
;
package
com.viettel.campaign.
web.rest
;
import
com.viettel.campaign.model.ApParam
;
import
com.viettel.campaign.service.ApParamService
;
...
...
src/main/java/com/viettel/campaign/
controller
/CampaignCompleteCodeController.java
→
src/main/java/com/viettel/campaign/
web/rest
/CampaignCompleteCodeController.java
View file @
c6169534
package
com.viettel.campaign.
controller
;
package
com.viettel.campaign.
web.rest
;
import
com.viettel.campaign.dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.service.CampaignCompleteCodeService
;
import
org.apache.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
src/main/java/com/viettel/campaign/
controller
/CustomerController.java
→
src/main/java/com/viettel/campaign/
web/rest
/CustomerController.java
View file @
c6169534
package
com.viettel.campaign.
controller
;
package
com.viettel.campaign.
web.rest
;
import
com.viettel.campaign.dto.CustomerDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.CustomerDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.service.CustomerService
;
import
org.apache.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
src/main/java/com/viettel/campaign/
controller
/CustomerListController.java
→
src/main/java/com/viettel/campaign/
web/rest
/CustomerListController.java
View file @
c6169534
File moved
src/main/java/com/viettel/campaign/web/
controller
/KafkaController.java
→
src/main/java/com/viettel/campaign/web/
rest
/KafkaController.java
View file @
c6169534
package
com.viettel.campaign.web.
controller
;
package
com.viettel.campaign.web.
rest
;
import
com.viettel.campaign.service.Sender
;
import
com.viettel.campaign.service.Producer
;
...
...
@@ -6,8 +6,6 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.apache.log4j.Logger
;
/**
* @author hanv_itsol
* @project service-campaign
...
...
@@ -18,7 +16,6 @@ import org.apache.log4j.Logger;
public
class
KafkaController
{
private
final
Sender
sender
;
private
static
final
Logger
log
=
Logger
.
getLogger
(
KafkaController
.
class
);
private
final
Producer
producer
;
...
...
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
0 → 100644
View file @
c6169534
package
com.viettel.campaign.web.rest.controller
;
import
com.viettel.campaign.service.CampaignService
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.data.domain.Page
;
import
java.util.Map
;
@RestController
@RequestMapping
(
"/ipcc/campaign"
)
@CrossOrigin
public
class
CampaignController
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
CampaignController
.
class
);
@Autowired
CampaignService
campaignService
;
@GetMapping
(
"/searchCampaignExecute"
)
@ResponseBody
public
ResponseEntity
searchCampaignExecute
(
@RequestParam
(
"page"
)
int
page
,
@RequestParam
(
"pageSize"
)
int
pageSize
,
@RequestParam
(
"sort"
)
String
sort
,
@RequestParam
(
"agentId"
)
String
agentId
)
{
Map
result
=
campaignService
.
searchCampaignExecute
(
page
,
pageSize
,
sort
,
agentId
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@RequestMapping
(
value
=
"/search"
,
method
=
RequestMethod
.
POST
)
public
ResponseEntity
<
ResultDTO
>
search
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignService
.
search
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
src/main/resources/hibernate.cfg.xml
0 → 100644
View file @
c6169534
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property
name=
"hibernate.connection.driver_class"
>
oracle.jdbc.driver.OracleDriver
</property>
<property
name=
"hibernate.connection.url"
>
jdbc:oracle:thin:@10.60.157.135:1521:vt
</property>
<property
name=
"hibernate.connection.username"
>
CCMS_FULL
</property>
<property
name=
"hibernate.connection.password"
>
CCMS_FULL#123
</property>
<property
name=
"hibernate.connection.pool_size"
>
64
</property>
<property
name=
"hibernate.current_session_context_class"
>
thread
</property>
<property
name=
"hibernate.show_sql"
>
true
</property>
<property
name=
"hibernate.dialect"
>
org.hibernate.dialect.Oracle10gDialect
</property>
</session-factory>
</hibernate-configuration>
src/main/resources/sql/campaign-mng/search-campaign-by-params.sql
0 → 100644
View file @
c6169534
SELECT
a
.
CAMPAIGN_ID
campaignId
,
a
.
CAMPAIGN_CODE
campaignCode
,
a
.
CAMPAIGN_NAME
campaignName
,
a
.
CAMPAIGN_TYPE
campaignType
,
a
.
CHANEL
chanel
,
a
.
START_TIME
startTime
,
a
.
END_TIME
endTime
,
a
.
CUSTOMER_NUMBER
customerNumber
,
a
.
STATUS
status
,
a
.
CUSTOMER_NUMBER
cusNum
,
b
.
SLKHThamgiaCD
numOfJoinedCus
,
c
.
SLKHChuaTuongTac
numOfNotJoinedCus
,
d
.
SLKHDoNotCall_Khoa
numOfLockCus
FROM
CAMPAIGN
a
LEFT
JOIN
(
SELECT
campaign_id
,
COUNT
(
*
)
AS
SLKHThamgiaCD
FROM
campaign_customer
cc
INNER
JOIN
CUSTOMER
cus
ON
cc
.
CUSTOMER_ID
=
cus
.
CUSTOMER_ID
WHERE
1
=
1
AND
cc
.
IN_CAMPAIGN_STATUS
=
1
AND
cus
.
STATUS
=
1
group
by
campaign_id
)
b
ON
a
.
CAMPAIGN_ID
=
b
.
CAMPAIGN_ID
LEFT
JOIN
(
SELECT
campaign_id
,
COUNT
(
*
)
AS
SLKHChuaTuongTac
FROM
campaign_customer
cc
INNER
JOIN
CUSTOMER
cus
ON
cc
.
CUSTOMER_ID
=
cus
.
CUSTOMER_ID
WHERE
1
=
1
AND
cc
.
STATUS
<>
0
AND
cus
.
STATUS
=
1
group
by
campaign_id
)
c
ON
c
.
CAMPAIGN_ID
=
a
.
CAMPAIGN_ID
LEFT
JOIN
(
SELECT
cc
.
campaign_id
,
count
(
*
)
AS
SLKHDoNotCall_Khoa
FROM
CAMPAIGN_CUSTOMER
cc
,
CUSTOMER
c
WHERE
cc
.
CUSTOMER_ID
=
c
.
CUSTOMER_ID
AND
(
c
.
IPCC_STATUS
=
'locked'
or
c
.
CALL_ALLOWED
=
0
)
AND
cc
.
STATUS
=
1
GROUP
BY
cc
.
CAMPAIGN_ID
)
d
ON
d
.
CAMPAIGN_ID
=
a
.
CAMPAIGN_ID
WHERE
1
=
1
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