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
5 years ago
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/
target/
/.idea/
/.idea/
logs/
logs/
out/
/campaign.iml
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
lib/ojdbc7.jar
0 → 100755
View file @
c6169534
File added
This diff is collapsed.
Click to expand it.
out/production/service-campaign/META-INF/service-campaign.kotlin_module
deleted
100644 → 0
View file @
a4fd7a9b
File deleted
This diff is collapsed.
Click to expand it.
pom.xml
View file @
c6169534
...
@@ -92,8 +92,10 @@
...
@@ -92,8 +92,10 @@
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.oracle
</groupId>
<groupId>
com.oracle
</groupId>
<artifactId>
ojdbc6
</artifactId>
<artifactId>
ojdbc7
</artifactId>
<version>
11.2.0.3
</version>
<scope>
system
</scope>
<systemPath>
${project.basedir}/lib/ojdbc7.jar
</systemPath>
<version>
1.0
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.hibernate
</groupId>
<groupId>
org.hibernate
</groupId>
...
@@ -156,6 +158,31 @@
...
@@ -156,6 +158,31 @@
<artifactId>
log4j
</artifactId>
<artifactId>
log4j
</artifactId>
<version>
1.2.17
</version>
<version>
1.2.17
</version>
</dependency>
</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>
</dependencies>
<dependencyManagement>
<dependencyManagement>
...
...
This diff is collapsed.
Click to expand it.
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
;
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/mapper/ApParamMapper.java
View file @
c6169534
package
com.viettel.campaign.mapper
;
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.dto.ApParamDTO
;
import
com.viettel.campaign.
web.
dto.ApParamDTO
;
import
com.viettel.campaign.model.ApParam
;
import
com.viettel.campaign.model.ApParam
;
public
class
ApParamMapper
extends
BaseMapper
<
ApParam
,
ApParamDTO
>
{
public
class
ApParamMapper
extends
BaseMapper
<
ApParam
,
ApParamDTO
>
{
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/mapper/BaseMapper.java
View file @
c6169534
package
com.viettel.campaign.mapper
;
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.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/mapper/CampaignCompleteCodeMapper.java
View file @
c6169534
package
com.viettel.campaign.mapper
;
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.
web.
dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.model.CampaignCompleteCode
;
import
com.viettel.campaign.model.CampaignCompleteCode
;
public
class
CampaignCompleteCodeMapper
extends
BaseMapper
<
CampaignCompleteCode
,
CampaignCompleteCodeDTO
>
{
public
class
CampaignCompleteCodeMapper
extends
BaseMapper
<
CampaignCompleteCode
,
CampaignCompleteCodeDTO
>
{
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/mapper/CustomerMapper.java
View file @
c6169534
package
com.viettel.campaign.mapper
;
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.dto.CustomerDTO
;
import
com.viettel.campaign.
web.
dto.CustomerDTO
;
import
com.viettel.campaign.model.Customer
;
import
com.viettel.campaign.model.Customer
;
public
class
CustomerMapper
extends
BaseMapper
<
Customer
,
CustomerDTO
>
{
public
class
CustomerMapper
extends
BaseMapper
<
Customer
,
CustomerDTO
>
{
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/model/Campaign.java
View file @
c6169534
...
@@ -6,6 +6,7 @@ import lombok.Setter;
...
@@ -6,6 +6,7 @@ import lombok.Setter;
import
javax.persistence.*
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
@Entity
@Entity
...
@@ -18,23 +19,23 @@ public class Campaign implements Serializable {
...
@@ -18,23 +19,23 @@ public class Campaign implements Serializable {
@NotNull
@NotNull
@Basic
(
optional
=
false
)
@Basic
(
optional
=
false
)
@Column
(
name
=
"CAMPAIGN_ID"
)
@Column
(
name
=
"CAMPAIGN_ID"
)
private
Long
campaignId
;
private
BigDecimal
campaignId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
private
BigDecimal
companySiteId
;
@Column
(
name
=
"CAMPAIGN_CODE"
)
@Column
(
name
=
"CAMPAIGN_CODE"
)
private
String
campaignCode
;
private
String
campaignCode
;
@Column
(
name
=
"CAMPAIGN_NAME"
)
@Column
(
name
=
"CAMPAIGN_NAME"
)
private
String
campaignName
;
private
String
campaignName
;
@Column
(
name
=
"CHANEL"
)
@Column
(
name
=
"CHANEL"
)
private
Short
chanel
;
private
BigDecimal
chanel
;
@Column
(
name
=
"CONTENT"
)
@Column
(
name
=
"CONTENT"
)
private
String
content
;
private
String
content
;
@Column
(
name
=
"CUSTOMER_NUMBER"
)
@Column
(
name
=
"CUSTOMER_NUMBER"
)
private
Long
customerNumber
;
private
BigDecimal
customerNumber
;
@Column
(
name
=
"TARGET"
)
@Column
(
name
=
"TARGET"
)
private
String
target
;
private
String
target
;
@Column
(
name
=
"STATUS"
)
@Column
(
name
=
"STATUS"
)
private
Short
status
;
private
BigDecimal
status
;
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"START_TIME"
)
@Column
(
name
=
"START_TIME"
)
private
Date
startTime
;
private
Date
startTime
;
...
@@ -64,7 +65,7 @@ public class Campaign implements Serializable {
...
@@ -64,7 +65,7 @@ public class Campaign implements Serializable {
@Column
(
name
=
"PROCESS_STATUS"
)
@Column
(
name
=
"PROCESS_STATUS"
)
private
Integer
processStatus
;
private
Integer
processStatus
;
@Column
(
name
=
"DIAL_MODE"
)
@Column
(
name
=
"DIAL_MODE"
)
private
Short
dialMode
;
private
BigDecimal
dialMode
;
@Column
(
name
=
"DEPT_CODE"
)
@Column
(
name
=
"DEPT_CODE"
)
private
String
deptCode
;
private
String
deptCode
;
@Column
(
name
=
"TIME_RANGE"
)
@Column
(
name
=
"TIME_RANGE"
)
...
@@ -72,29 +73,29 @@ public class Campaign implements Serializable {
...
@@ -72,29 +73,29 @@ public class Campaign implements Serializable {
@Column
(
name
=
"DAY_OF_WEEK"
)
@Column
(
name
=
"DAY_OF_WEEK"
)
private
String
dayOfWeek
;
private
String
dayOfWeek
;
@Column
(
name
=
"CURRENT_TIME_MODE"
)
@Column
(
name
=
"CURRENT_TIME_MODE"
)
private
Long
currentTimeModel
;
private
BigDecimal
currentTimeModel
;
@Column
(
name
=
"WRAPUP_TIME_CONNECT"
)
@Column
(
name
=
"WRAPUP_TIME_CONNECT"
)
private
Long
wrapupTimeConnect
;
private
BigDecimal
wrapupTimeConnect
;
@Column
(
name
=
"WRAPUP_TIME_DISCONNECT"
)
@Column
(
name
=
"WRAPUP_TIME_DISCONNECT"
)
private
Long
wrapupTimeDisconnect
;
private
BigDecimal
wrapupTimeDisconnect
;
@Column
(
name
=
"PREVIEW_TIME"
)
@Column
(
name
=
"PREVIEW_TIME"
)
private
Long
previewTime
;
private
BigDecimal
previewTime
;
@Column
(
name
=
"RATE_DIAL"
)
@Column
(
name
=
"RATE_DIAL"
)
private
Long
rateDial
;
private
BigDecimal
rateDial
;
@Column
(
name
=
"RATE_MISS"
)
@Column
(
name
=
"RATE_MISS"
)
private
Long
rateMiss
;
private
BigDecimal
rateMiss
;
@Column
(
name
=
"AVG_TIME_PROCESS"
)
@Column
(
name
=
"AVG_TIME_PROCESS"
)
private
Long
avgTimeProcess
;
private
BigDecimal
avgTimeProcess
;
@Column
(
name
=
"IS_APPLY_CUST_LOCK"
)
@Column
(
name
=
"IS_APPLY_CUST_LOCK"
)
private
Long
isApplyCustLock
;
private
BigDecimal
isApplyCustLock
;
@Column
(
name
=
"TARGET_TYPE"
)
@Column
(
name
=
"TARGET_TYPE"
)
private
Long
targetType
;
private
BigDecimal
targetType
;
@Column
(
name
=
"IS_TARGET"
)
@Column
(
name
=
"IS_TARGET"
)
private
Long
isTarget
;
private
BigDecimal
isTarget
;
@Column
(
name
=
"CAMPAIGN_IVR_CALLED_ID"
)
@Column
(
name
=
"CAMPAIGN_IVR_CALLED_ID"
)
private
Long
campaignIvrCalledId
;
private
BigDecimal
campaignIvrCalledId
;
@Column
(
name
=
"CONCURRENT_CALL"
)
@Column
(
name
=
"CONCURRENT_CALL"
)
private
Long
concurrentCall
;
private
BigDecimal
concurrentCall
;
@Column
(
name
=
"CALL_OUT_TIME_IN_DAY"
)
@Column
(
name
=
"CALL_OUT_TIME_IN_DAY"
)
private
String
callOutTimeInDay
;
private
String
callOutTimeInDay
;
@Column
(
name
=
"MUSIC_LIST"
)
@Column
(
name
=
"MUSIC_LIST"
)
...
@@ -110,5 +111,5 @@ public class Campaign implements Serializable {
...
@@ -110,5 +111,5 @@ public class Campaign implements Serializable {
@Column
(
name
=
"TIME_WAIT_AGENT"
)
@Column
(
name
=
"TIME_WAIT_AGENT"
)
private
Integer
timeWaitAgent
;
private
Integer
timeWaitAgent
;
@Column
(
name
=
"QUEST_INDEX"
)
@Column
(
name
=
"QUEST_INDEX"
)
private
Long
questIndex
;
private
BigDecimal
questIndex
;
}
}
This diff is collapsed.
Click to expand it.
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
{
}
This diff is collapsed.
Click to expand it.
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
);
}
This diff is collapsed.
Click to expand it.
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
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/ApParamService.java
View file @
c6169534
package
com.viettel.campaign.service
;
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.ApParamDTO
;
import
com.viettel.campaign.
web.
dto.ApParamDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.model.ApParam
;
import
com.viettel.campaign.model.ApParam
;
import
java.util.List
;
import
java.util.List
;
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/ApParamServiceImpl.java
View file @
c6169534
package
com.viettel.campaign.service
;
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.ApParamDTO
;
import
com.viettel.campaign.
web.
dto.ApParamDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.mapper.ApParamMapper
;
import
com.viettel.campaign.mapper.ApParamMapper
;
import
com.viettel.campaign.model.ApParam
;
import
com.viettel.campaign.model.ApParam
;
import
com.viettel.campaign.repository.ApParamRepository
;
import
com.viettel.campaign.repository.ApParamRepository
;
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CampaignCompleteCodeService.java
View file @
c6169534
package
com.viettel.campaign.service
;
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.
web.
dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
java.util.Map
;
import
java.util.Map
;
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CampaignCompleteCodeServiceImpl.java
View file @
c6169534
package
com.viettel.campaign.service
;
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.
web.
dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.mapper.CampaignCompleteCodeMapper
;
import
com.viettel.campaign.mapper.CampaignCompleteCodeMapper
;
import
com.viettel.campaign.model.CampaignCompleteCode
;
import
com.viettel.campaign.model.CampaignCompleteCode
;
import
com.viettel.campaign.repository.CampaignCompleteCodeRepository
;
import
com.viettel.campaign.repository.CampaignCompleteCodeRepository
;
...
@@ -32,10 +32,12 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
...
@@ -32,10 +32,12 @@ public class CampaignCompleteCodeServiceImpl implements CampaignCompleteCodeServ
public
Map
listCompleteCodeByName
(
int
page
,
int
pageSize
,
String
sort
,
String
name
)
{
public
Map
listCompleteCodeByName
(
int
page
,
int
pageSize
,
String
sort
,
String
name
)
{
Map
result
=
new
HashMap
();
Map
result
=
new
HashMap
();
List
<
CampaignCompleteCode
>
lst
=
new
ArrayList
<>();
List
<
CampaignCompleteCode
>
lst
=
new
ArrayList
<>();
List
<
CampaignCompleteCode
>
count
=
new
ArrayList
<>();
lst
=
completeCodeRepository
.
findByCompleteNameContains
(
name
,
PageRequest
.
of
(
page
,
pageSize
,
Sort
.
by
(
sort
)));
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
);
result
.
put
(
"customers"
,
lst
);
return
result
;
return
result
;
...
...
This diff is collapsed.
Click to expand it.
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
);
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CustomerService.java
View file @
c6169534
package
com.viettel.campaign.service
;
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.CustomerDTO
;
import
com.viettel.campaign.
web.
dto.CustomerDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
java.util.Map
;
import
java.util.Map
;
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CustomerServiceImpl.java
View file @
c6169534
package
com.viettel.campaign.service
;
package
com.viettel.campaign.service
;
import
com.viettel.campaign.dto.CustomerDTO
;
import
com.viettel.campaign.
web.
dto.CustomerDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.mapper.CustomerMapper
;
import
com.viettel.campaign.mapper.CustomerMapper
;
import
com.viettel.campaign.model.Customer
;
import
com.viettel.campaign.model.Customer
;
import
com.viettel.campaign.repository.CustomerRepository
;
import
com.viettel.campaign.repository.CustomerRepository
;
...
...
This diff is collapsed.
Click to expand it.
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
);
}
}
This diff is collapsed.
Click to expand it.
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
);
}
}
This diff is collapsed.
Click to expand it.
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"
;
}
}
This diff is collapsed.
Click to expand it.
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
));
}
/**
*
*/
}
This diff is collapsed.
Click to expand it.
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
();
}
}
This diff is collapsed.
Click to expand it.
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
;
}
}
This diff is collapsed.
Click to expand it.
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.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
...
This diff is collapsed.
Click to expand it.
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.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
@@ -10,4 +10,7 @@ import java.io.Serializable;
...
@@ -10,4 +10,7 @@ import java.io.Serializable;
public
class
BaseDTO
implements
Serializable
{
public
class
BaseDTO
implements
Serializable
{
protected
String
keySet
;
protected
String
keySet
;
protected
int
pageSize
;
protected
int
page
;
protected
String
sort
;
}
}
This diff is collapsed.
Click to expand it.
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.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
...
This diff is collapsed.
Click to expand it.
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.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
@Getter
@Getter
@Setter
@Setter
public
class
CampaignDTO
extends
BaseDTO
{
public
class
CampaignDTO
extends
BaseDTO
{
private
Long
campaignId
;
private
BigDecimal
campaignId
;
private
Long
companySiteId
;
private
BigDecimal
companySiteId
;
private
String
campaignCode
;
private
String
campaignCode
;
private
String
campaignName
;
private
String
campaignName
;
private
Short
chanel
;
private
BigDecimal
chanel
;
private
String
content
;
private
String
content
;
private
Long
customerNumber
;
private
BigDecimal
customerNumber
;
private
String
target
;
private
String
target
;
private
Short
status
;
private
BigDecimal
status
;
private
Date
startTime
;
private
Date
startTime
;
private
Date
endTime
;
private
Date
endTime
;
private
Integer
maxRecall
;
private
Integer
maxRecall
;
...
@@ -30,27 +31,30 @@ public class CampaignDTO extends BaseDTO {
...
@@ -30,27 +31,30 @@ public class CampaignDTO extends BaseDTO {
private
String
campaignType
;
private
String
campaignType
;
private
String
product
;
private
String
product
;
private
Integer
processStatus
;
private
Integer
processStatus
;
private
Short
dialMode
;
private
BigDecimal
dialMode
;
private
String
deptCode
;
private
String
deptCode
;
private
String
timeRange
;
private
String
timeRange
;
private
String
dayOfWeek
;
private
String
dayOfWeek
;
private
Long
currentTimeModel
;
private
BigDecimal
currentTimeModel
;
private
Long
wrapupTimeConnect
;
private
BigDecimal
wrapupTimeConnect
;
private
Long
wrapupTimeDisconnect
;
private
BigDecimal
wrapupTimeDisconnect
;
private
Long
previewTime
;
private
BigDecimal
previewTime
;
private
Long
rateDial
;
private
BigDecimal
rateDial
;
private
Long
rateMiss
;
private
BigDecimal
rateMiss
;
private
Long
avgTimeProcess
;
private
BigDecimal
avgTimeProcess
;
private
Long
isApplyCustLock
;
private
BigDecimal
isApplyCustLock
;
private
Long
targetType
;
private
BigDecimal
targetType
;
private
Long
isTarget
;
private
BigDecimal
isTarget
;
private
Long
campaignIvrCalledId
;
private
BigDecimal
campaignIvrCalledId
;
private
Long
concurrentCall
;
private
BigDecimal
concurrentCall
;
private
String
callOutTimeInDay
;
private
String
callOutTimeInDay
;
private
String
musicList
;
private
String
musicList
;
private
Integer
timePlayMusic
;
private
Integer
timePlayMusic
;
private
Date
campaignStart
;
private
Date
campaignStart
;
private
Date
campaignEnd
;
private
Date
campaignEnd
;
private
Integer
timeWaitAgent
;
private
Integer
timeWaitAgent
;
private
Long
questIndex
;
private
BigDecimal
questIndex
;
private
Long
numOfJoinedCus
;
private
Long
numOfNotJoinedCus
;
private
Long
numOfLockCus
;
}
}
This diff is collapsed.
Click to expand it.
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.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
...
This diff is collapsed.
Click to expand it.
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.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
...
This diff is collapsed.
Click to expand it.
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.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
@@ -9,9 +9,8 @@ import java.util.List;
...
@@ -9,9 +9,8 @@ import java.util.List;
@Getter
@Getter
@Setter
@Setter
public
class
ResultDTO
{
public
class
ResultDTO
{
private
String
errorCode
;
private
String
errorCode
;
private
String
description
;
private
String
description
;
private
List
listData
=
new
ArrayList
();
private
List
<?>
listData
=
new
ArrayList
();
private
Object
data
;
private
Object
data
;
}
}
This diff is collapsed.
Click to expand it.
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.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
...
This diff is collapsed.
Click to expand it.
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
;
}
This diff is collapsed.
Click to expand it.
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.model.ApParam
;
import
com.viettel.campaign.service.ApParamService
;
import
com.viettel.campaign.service.ApParamService
;
...
...
This diff is collapsed.
Click to expand it.
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.
web.
dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.service.CampaignCompleteCodeService
;
import
com.viettel.campaign.service.CampaignCompleteCodeService
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
This diff is collapsed.
Click to expand it.
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.
web.
dto.CustomerDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.
web.
dto.ResultDTO
;
import
com.viettel.campaign.service.CustomerService
;
import
com.viettel.campaign.service.CustomerService
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/
controller
/CustomerListController.java
→
src/main/java/com/viettel/campaign/
web/rest
/CustomerListController.java
View file @
c6169534
File moved
This diff is collapsed.
Click to expand it.
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.Sender
;
import
com.viettel.campaign.service.Producer
;
import
com.viettel.campaign.service.Producer
;
...
@@ -6,8 +6,6 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -6,8 +6,6 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.apache.log4j.Logger
;
/**
/**
* @author hanv_itsol
* @author hanv_itsol
* @project service-campaign
* @project service-campaign
...
@@ -18,7 +16,6 @@ import org.apache.log4j.Logger;
...
@@ -18,7 +16,6 @@ import org.apache.log4j.Logger;
public
class
KafkaController
{
public
class
KafkaController
{
private
final
Sender
sender
;
private
final
Sender
sender
;
private
static
final
Logger
log
=
Logger
.
getLogger
(
KafkaController
.
class
);
private
final
Producer
producer
;
private
final
Producer
producer
;
...
...
This diff is collapsed.
Click to expand it.
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
);
}
}
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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