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
3dd1723b
Commit
3dd1723b
authored
Aug 07, 2019
by
Phạm Duy Phi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://git.myitsol.com/hanv/service-campaign
parents
c3d582bb
e167e20a
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
332 additions
and
60 deletions
+332
-60
campaign.iml
campaign.iml
+2
-0
pom.xml
pom.xml
+6
-0
src/main/java/com/viettel/campaign/config/ModelMapperConfig.java
...n/java/com/viettel/campaign/config/ModelMapperConfig.java
+16
-0
src/main/java/com/viettel/campaign/model/Campaign.java
src/main/java/com/viettel/campaign/model/Campaign.java
+19
-20
src/main/java/com/viettel/campaign/model/CampaignCompleteCode.java
...java/com/viettel/campaign/model/CampaignCompleteCode.java
+1
-3
src/main/java/com/viettel/campaign/model/TimeRangeDialMode.java
...in/java/com/viettel/campaign/model/TimeRangeDialMode.java
+40
-0
src/main/java/com/viettel/campaign/model/TimeZoneDialMode.java
...ain/java/com/viettel/campaign/model/TimeZoneDialMode.java
+45
-0
src/main/java/com/viettel/campaign/repository/CampaignCompleteCodeRepositoryCustom.java
...aign/repository/CampaignCompleteCodeRepositoryCustom.java
+8
-0
src/main/java/com/viettel/campaign/repository/TimeRangeDialModeRepository.java
...ttel/campaign/repository/TimeRangeDialModeRepository.java
+13
-0
src/main/java/com/viettel/campaign/repository/TimeZoneDialModeRepository.java
...ettel/campaign/repository/TimeZoneDialModeRepository.java
+13
-0
src/main/java/com/viettel/campaign/repository/impl/CampaignCompleteCodeRepositoryIpml.java
...n/repository/impl/CampaignCompleteCodeRepositoryIpml.java
+1
-6
src/main/java/com/viettel/campaign/repository/impl/CampaignCompleteCompleteCodeRepositoryIpml.java
...tory/impl/CampaignCompleteCompleteCodeRepositoryIpml.java
+41
-0
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
...ttel/campaign/repository/impl/CampaignRepositoryImpl.java
+4
-6
src/main/java/com/viettel/campaign/repository/impl/TicketRepositoryImpl.java
...iettel/campaign/repository/impl/TicketRepositoryImpl.java
+1
-1
src/main/java/com/viettel/campaign/service/CampaignService.java
...in/java/com/viettel/campaign/service/CampaignService.java
+6
-1
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+46
-0
src/main/java/com/viettel/campaign/web/dto/CampaignCompleteCodeDTO.java
...com/viettel/campaign/web/dto/CampaignCompleteCodeDTO.java
+1
-2
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
+19
-18
src/main/java/com/viettel/campaign/web/dto/TimeRangeDialModeDTO.java
...va/com/viettel/campaign/web/dto/TimeRangeDialModeDTO.java
+21
-0
src/main/java/com/viettel/campaign/web/dto/TimeZoneDialModeDTO.java
...ava/com/viettel/campaign/web/dto/TimeZoneDialModeDTO.java
+20
-0
src/main/java/com/viettel/campaign/web/rest/CampaignCompleteCodeController.java
...tel/campaign/web/rest/CampaignCompleteCodeController.java
+2
-2
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
...ttel/campaign/web/rest/controller/CampaignController.java
+5
-0
src/main/resources/sql/campaign-status-mng/search-campaign-status-by-params.sql
.../campaign-status-mng/search-campaign-status-by-params.sql
+2
-1
No files found.
campaign.iml
View file @
3dd1723b
...
...
@@ -34,6 +34,7 @@
<SOURCES
/>
</library>
</orderEntry>
<orderEntry
type=
"library"
name=
"Maven: org.modelmapper:modelmapper:2.3.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-actuator:2.0.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter:2.0.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-logging:2.0.6.RELEASE"
level=
"project"
/>
...
...
@@ -207,5 +208,6 @@
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: joda-time:joda-time:2.9.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.modelmapper:modelmapper:2.3.2"
level=
"project"
/>
</component>
</module>
\ No newline at end of file
pom.xml
View file @
3dd1723b
...
...
@@ -183,6 +183,12 @@
<groupId>
joda-time
</groupId>
<artifactId>
joda-time
</artifactId>
</dependency>
<dependency>
<groupId>
org.modelmapper
</groupId>
<artifactId>
modelmapper
</artifactId>
<version>
2.3.2
</version>
</dependency>
</dependencies>
<dependencyManagement>
...
...
src/main/java/com/viettel/campaign/config/ModelMapperConfig.java
0 → 100644
View file @
3dd1723b
package
com.viettel.campaign.config
;
import
org.modelmapper.ModelMapper
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
/**
* @author anhvd_itsol
*/
@Configuration
public
class
ModelMapperConfig
{
@Bean
public
ModelMapper
modelMapper
()
{
return
new
ModelMapper
();
}
}
src/main/java/com/viettel/campaign/model/Campaign.java
View file @
3dd1723b
...
...
@@ -6,7 +6,6 @@ import lombok.Setter;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Entity
...
...
@@ -19,23 +18,23 @@ public class Campaign implements Serializable {
@NotNull
@Basic
(
optional
=
false
)
@Column
(
name
=
"CAMPAIGN_ID"
)
private
BigDecimal
campaignId
;
private
Long
campaignId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
BigDecimal
companySiteId
;
private
Long
companySiteId
;
@Column
(
name
=
"CAMPAIGN_CODE"
)
private
String
campaignCode
;
@Column
(
name
=
"CAMPAIGN_NAME"
)
private
String
campaignName
;
@Column
(
name
=
"CHANEL"
)
private
BigDecimal
chanel
;
private
Long
chanel
;
@Column
(
name
=
"CONTENT"
)
private
String
content
;
@Column
(
name
=
"CUSTOMER_NUMBER"
)
private
BigDecimal
customerNumber
;
private
Long
customerNumber
;
@Column
(
name
=
"TARGET"
)
private
String
target
;
@Column
(
name
=
"STATUS"
)
private
BigDecimal
status
;
private
Long
status
;
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"START_TIME"
)
private
Date
startTime
;
...
...
@@ -65,7 +64,7 @@ public class Campaign implements Serializable {
@Column
(
name
=
"PROCESS_STATUS"
)
private
Integer
processStatus
;
@Column
(
name
=
"DIAL_MODE"
)
private
BigDecimal
dialMode
;
private
Long
dialMode
;
@Column
(
name
=
"DEPT_CODE"
)
private
String
deptCode
;
@Column
(
name
=
"TIME_RANGE"
)
...
...
@@ -73,29 +72,29 @@ public class Campaign implements Serializable {
@Column
(
name
=
"DAY_OF_WEEK"
)
private
String
dayOfWeek
;
@Column
(
name
=
"CURRENT_TIME_MODE"
)
private
BigDecimal
currentTimeModel
;
private
Long
currentTimeMode
;
@Column
(
name
=
"WRAPUP_TIME_CONNECT"
)
private
BigDecimal
wrapupTimeConnect
;
private
Long
wrapupTimeConnect
;
@Column
(
name
=
"WRAPUP_TIME_DISCONNECT"
)
private
BigDecimal
wrapupTimeDisconnect
;
private
Long
wrapupTimeDisconnect
;
@Column
(
name
=
"PREVIEW_TIME"
)
private
BigDecimal
previewTime
;
private
Long
previewTime
;
@Column
(
name
=
"RATE_DIAL"
)
private
BigDecimal
rateDial
;
private
Long
rateDial
;
@Column
(
name
=
"RATE_MISS"
)
private
BigDecimal
rateMiss
;
private
Long
rateMiss
;
@Column
(
name
=
"AVG_TIME_PROCESS"
)
private
BigDecimal
avgTimeProcess
;
private
Long
avgTimeProcess
;
@Column
(
name
=
"IS_APPLY_CUST_LOCK"
)
private
BigDecimal
isApplyCustLock
;
private
Long
isApplyCustLock
;
@Column
(
name
=
"TARGET_TYPE"
)
private
BigDecimal
targetType
;
private
Long
targetType
;
@Column
(
name
=
"IS_TARGET"
)
private
BigDecimal
isTarget
;
private
Long
isTarget
;
@Column
(
name
=
"CAMPAIGN_IVR_CALLED_ID"
)
private
BigDecimal
campaignIvrCalledId
;
private
Long
campaignIvrCalledId
;
@Column
(
name
=
"CONCURRENT_CALL"
)
private
BigDecimal
concurrentCall
;
private
Long
concurrentCall
;
@Column
(
name
=
"CALL_OUT_TIME_IN_DAY"
)
private
String
callOutTimeInDay
;
@Column
(
name
=
"MUSIC_LIST"
)
...
...
@@ -111,6 +110,6 @@ public class Campaign implements Serializable {
@Column
(
name
=
"TIME_WAIT_AGENT"
)
private
Integer
timeWaitAgent
;
@Column
(
name
=
"QUEST_INDEX"
)
private
BigDecimal
questIndex
;
private
Long
questIndex
;
}
src/main/java/com/viettel/campaign/model/CampaignCompleteCode.java
View file @
3dd1723b
...
...
@@ -4,9 +4,7 @@ import lombok.Getter;
import
lombok.Setter
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Entity
...
...
@@ -56,6 +54,6 @@ public class CampaignCompleteCode implements Serializable {
@Column
(
name
=
"DURATION_LOCK"
)
private
Long
durationLock
;
@Column
(
name
=
"CHANEL"
)
private
BigDecimal
chanel
;
private
Long
chanel
;
}
src/main/java/com/viettel/campaign/model/TimeRangeDialMode.java
0 → 100644
View file @
3dd1723b
package
com.viettel.campaign.model
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author anhvd_itsol
*/
@Entity
@Table
(
name
=
"TIME_RANGE_DIAL_MODE"
)
@Getter
@Setter
public
class
TimeRangeDialMode
implements
Serializable
{
@Id
@NotNull
@Basic
(
optional
=
false
)
@Column
(
name
=
"TIME_RANGE_DIAL_MODE_ID"
)
private
Long
timeRangeDialModeId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
@Temporal
(
TemporalType
.
DATE
)
@Column
(
name
=
"START_TIME"
)
private
Date
startTime
;
@Column
(
name
=
"CAMPAIGN_ID"
)
private
Long
campaignId
;
@Column
(
name
=
"DIAL_MODE"
)
private
Short
dialMode
;
@Column
(
name
=
"USER_ID"
)
private
Long
userId
;
}
src/main/java/com/viettel/campaign/model/TimeZoneDialMode.java
0 → 100644
View file @
3dd1723b
package
com.viettel.campaign.model
;
import
javax.persistence.Entity
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @author anhvd_itsol
*/
@Entity
@Table
(
name
=
"TIME_ZONE_DIAL_MODE"
)
@Getter
@Setter
public
class
TimeZoneDialMode
implements
Serializable
{
@Id
@NotNull
@Basic
(
optional
=
false
)
@Column
(
name
=
"TIME_ZONE_DIAL_MODE_ID"
)
private
Long
timeRangeDialModeId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
@Column
(
name
=
"HOUR"
)
private
String
hour
;
@Column
(
name
=
"MINUTE"
)
private
String
minute
;
@Column
(
name
=
"CAMPAIGN_ID"
)
private
Long
campaignId
;
@Column
(
name
=
"DIAL_MODE"
)
private
Short
dialMode
;
@Column
(
name
=
"USER_ID"
)
private
Long
userId
;
}
src/main/java/com/viettel/campaign/repository/CampaignCompleteCodeRepositoryCustom.java
0 → 100644
View file @
3dd1723b
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.web.dto.ResultDTO
;
public
interface
CampaignCompleteCodeRepositoryCustom
{
ResultDTO
updateStatusById
(
Long
id
);
}
src/main/java/com/viettel/campaign/repository/TimeRangeDialModeRepository.java
0 → 100644
View file @
3dd1723b
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.model.TimeRangeDialMode
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.stereotype.Repository
;
/**
* @author anhvd_itsol
*/
@Repository
public
interface
TimeRangeDialModeRepository
extends
JpaRepository
<
TimeRangeDialMode
,
Long
>
{
}
src/main/java/com/viettel/campaign/repository/TimeZoneDialModeRepository.java
0 → 100644
View file @
3dd1723b
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.model.TimeZoneDialMode
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.stereotype.Repository
;
/**
* @author anhvd_itsol
*/
@Repository
public
interface
TimeZoneDialModeRepository
extends
JpaRepository
<
TimeZoneDialMode
,
Long
>
{
}
src/main/java/com/viettel/campaign/repository/impl/CampaignCompleteCodeRepositoryIpml.java
View file @
3dd1723b
...
...
@@ -2,17 +2,14 @@ package com.viettel.campaign.repository.impl;
import
com.viettel.campaign.model.CampaignCompleteCode
;
import
com.viettel.campaign.repository.CampaignCompleteCodeRepository
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.HibernateUtil
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.web.dto.CampaignCompleteCodeDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
org.hibernate.Query
;
import
org.hibernate.SQLQuery
;
import
org.hibernate.Session
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.type.BigDecimalType
;
import
org.hibernate.type.LongType
;
import
org.hibernate.type.ShortType
;
import
org.hibernate.type.StringType
;
...
...
@@ -23,11 +20,9 @@ import org.springframework.data.domain.Example;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.persistence.EntityManager
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
...
...
@@ -73,7 +68,7 @@ public class CampaignCompleteCodeRepositoryIpml implements CampaignCompleteCodeR
query
.
addScalar
(
"chanel"
,
new
ShortType
());
query
.
addScalar
(
"description"
,
new
StringType
());
query
.
addScalar
(
"status"
,
new
ShortType
());
query
.
addScalar
(
"chanel"
,
new
BigDecimal
Type
());
query
.
addScalar
(
"chanel"
,
new
Long
Type
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CampaignCompleteCodeDTO
.
class
));
...
...
src/main/java/com/viettel/campaign/repository/impl/CampaignCompleteCompleteCodeRepositoryIpml.java
0 → 100644
View file @
3dd1723b
package
com.viettel.campaign.repository.impl
;
import
com.viettel.campaign.model.CampaignCompleteCode
;
import
com.viettel.campaign.repository.CampaignCompleteCodeRepositoryCustom
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.persistence.EntityManager
;
import
java.util.List
;
@Repository
public
class
CampaignCompleteCompleteCodeRepositoryIpml
implements
CampaignCompleteCodeRepositoryCustom
{
@Autowired
EntityManager
entityManager
;
private
Logger
log
=
LoggerFactory
.
getLogger
(
CampaignCompleteCompleteCodeRepositoryIpml
.
class
);
@Override
@Transactional
public
ResultDTO
updateStatusById
(
Long
id
)
{
ResultDTO
dto
=
new
ResultDTO
();
try
{
CampaignCompleteCode
e
=
entityManager
.
find
(
CampaignCompleteCode
.
class
,
id
);
e
.
setStatus
(
new
Short
(
"0"
));
// set status = 0 --> khong hoat dong
entityManager
.
merge
(
e
);
dto
.
setErrorCode
(
"00"
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
dto
.
setErrorCode
(
"01"
);
dto
.
setDescription
(
e
.
getMessage
());
}
return
dto
;
}
}
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
View file @
3dd1723b
...
...
@@ -21,8 +21,6 @@ import org.springframework.stereotype.Repository;
import
javax.persistence.EntityManager
;
import
javax.persistence.Query
;
import
javax.xml.crypto.Data
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -146,7 +144,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
item
.
setContent
((
String
)
obj
[
2
]);
item
.
setStartTime
((
Date
)
obj
[
3
]);
item
.
setEndTime
((
Date
)
obj
[
4
]);
item
.
setStatus
(((
BigDecimal
)
obj
[
5
]).
shortValueExact
(
));
item
.
setStatus
(((
Short
)
obj
[
5
]
));
lst
.
add
(
item
);
}
...
...
@@ -269,7 +267,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
query
.
setParameter
(
"p_cusNumTo"
,
requestDto
.
getNumOfCusTo
()
==
0
?
null
:
requestDto
.
getNumOfCusTo
());
}
query
.
addScalar
(
"campaignId"
,
new
BigDecimal
Type
());
query
.
addScalar
(
"campaignId"
,
new
Long
Type
());
query
.
addScalar
(
"campaignCode"
,
new
StringType
());
query
.
addScalar
(
"campaignName"
,
new
StringType
());
query
.
addScalar
(
"campaignType"
,
new
StringType
());
...
...
@@ -277,7 +275,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
query
.
addScalar
(
"chanel"
,
new
ShortType
());
query
.
addScalar
(
"startTime"
,
new
DateType
());
query
.
addScalar
(
"endTime"
,
new
DateType
());
query
.
addScalar
(
"customerNumber"
,
new
BigDecimal
Type
());
query
.
addScalar
(
"customerNumber"
,
new
Long
Type
());
query
.
addScalar
(
"status"
,
new
ShortType
());
query
.
addScalar
(
"numOfJoinedCus"
,
new
LongType
());
query
.
addScalar
(
"numOfNotJoinedCus"
,
new
LongType
());
...
...
@@ -347,7 +345,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
.
replaceAll
(
"_"
,
"\\\\_"
)
+
"%"
);
}
query
.
addScalar
(
"campaignId"
,
new
BigDecimal
Type
());
query
.
addScalar
(
"campaignId"
,
new
Long
Type
());
query
.
addScalar
(
"campaignCode"
,
new
StringType
());
query
.
addScalar
(
"campaignName"
,
new
StringType
());
query
.
addScalar
(
"startTime"
,
new
DateType
());
...
...
src/main/java/com/viettel/campaign/repository/impl/TicketRepositoryImpl.java
View file @
3dd1723b
...
...
@@ -41,7 +41,7 @@ public class TicketRepositoryImpl implements TicketRepositoryCustom {
for
(
Object
[]
obj
:
data
)
{
TicketDTO
item
=
new
TicketDTO
();
item
.
setTicketId
(((
BigDecimal
)
obj
[
0
]).
longValueExact
(
));
item
.
setTicketId
(((
Long
)
obj
[
0
]
));
item
.
setCreateDate
((
Date
)
obj
[
1
]);
item
.
setSubject
((
String
)
obj
[
2
]);
item
.
setStatusName
((
String
)
obj
[
3
]);
...
...
src/main/java/com/viettel/campaign/service/CampaignService.java
View file @
3dd1723b
package
com.viettel.campaign.service
;
import
com.viettel.campaign.web.dto.Campaign
Customer
DTO
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
...
...
@@ -8,7 +8,12 @@ import java.util.Map;
public
interface
CampaignService
{
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
);
ResultDTO
addNewCampaign
(
CampaignDTO
campaignDTO
);
Map
countRecallCustomer
(
Long
companySiteId
,
Long
agentId
);
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
3dd1723b
package
com.viettel.campaign.service.impl
;
import
com.viettel.campaign.model.Campaign
;
import
com.viettel.campaign.model.TimeZoneDialMode
;
import
com.viettel.campaign.repository.CampaignRepository
;
import
com.viettel.campaign.repository.TimeZoneDialModeRepository
;
import
com.viettel.campaign.repository.impl.CampaignRepositoryImpl
;
import
com.viettel.campaign.service.CampaignService
;
import
com.viettel.campaign.utils.Constants
;
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.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.modelmapper.ModelMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.HashMap
;
import
java.util.Map
;
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
CampaignServiceImpl
implements
CampaignService
{
private
static
final
Logger
logger
=
LogManager
.
getLogger
(
CampaignRepositoryImpl
.
class
);
@Autowired
CampaignRepository
campaignRepository
;
@Autowired
TimeZoneDialModeRepository
timeZoneDialModeRepository
;
@Autowired
ModelMapper
modelMapper
;
@Override
public
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
)
{
return
campaignRepository
.
searchCampaignExecute
(
requestDto
);
...
...
@@ -33,6 +51,34 @@ public class CampaignServiceImpl implements CampaignService {
}
@Override
public
ResultDTO
addNewCampaign
(
CampaignDTO
campaignDTO
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
Campaign
campaign
=
modelMapper
.
map
(
campaignDTO
,
Campaign
.
class
);
TimeZoneDialMode
timeZoneDialMode
=
new
TimeZoneDialMode
();
try
{
campaign
=
campaignRepository
.
save
(
campaign
);
//insert sub tables
if
(
campaignDTO
.
getCurrentTimeMode
().
equals
(
1
)){
timeZoneDialMode
.
setCompanySiteId
(
campaignDTO
.
getCompanySiteId
());
timeZoneDialMode
.
setCampaignId
(
campaign
.
getCampaignId
());
// timeZoneDialMode.setHour(campaignDTO.getT);
timeZoneDialModeRepository
.
save
(
timeZoneDialMode
);
}
if
(
campaignDTO
.
getCurrentTimeMode
().
equals
(
2
))
{
}
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
resultDTO
.
setData
(
campaign
);
}
catch
(
Exception
ex
)
{
logger
.
error
(
ex
.
getMessage
(),
ex
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
return
resultDTO
;
}
public
Map
countRecallCustomer
(
Long
companySiteId
,
Long
agentId
)
{
Map
result
=
new
HashMap
();
Long
count
=
campaignRepository
.
countRecallCustomer
(
companySiteId
,
agentId
);
...
...
src/main/java/com/viettel/campaign/web/dto/CampaignCompleteCodeDTO.java
View file @
3dd1723b
...
...
@@ -3,7 +3,6 @@ package com.viettel.campaign.web.dto;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Getter
...
...
@@ -27,5 +26,5 @@ public class CampaignCompleteCodeDTO extends BaseDTO {
private
Long
companySiteId
;
private
Short
isLock
;
private
Long
durationLock
;
private
BigDecimal
chanel
;
private
Long
chanel
;
}
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
View file @
3dd1723b
...
...
@@ -3,20 +3,19 @@ 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
BigDecimal
campaignId
;
private
BigDecimal
companySiteId
;
private
Long
campaignId
;
private
Long
companySiteId
;
private
String
campaignCode
;
private
String
campaignName
;
private
Short
chanel
;
private
String
content
;
private
BigDecimal
customerNumber
;
private
Long
customerNumber
;
private
String
target
;
private
Short
status
;
private
Date
startTime
;
...
...
@@ -31,31 +30,33 @@ public class CampaignDTO extends BaseDTO {
private
String
campaignType
;
private
String
product
;
private
Integer
processStatus
;
private
BigDecimal
dialMode
;
private
Long
dialMode
;
private
String
deptCode
;
private
String
timeRange
;
private
String
dayOfWeek
;
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
Long
currentTimeMode
;
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
String
callOutTimeInDay
;
private
String
musicList
;
private
Integer
timePlayMusic
;
private
Date
campaignStart
;
private
Date
campaignEnd
;
private
Integer
timeWaitAgent
;
private
BigDecimal
questIndex
;
private
Long
questIndex
;
private
Long
numOfJoinedCus
;
private
Long
numOfNotJoinedCus
;
private
Long
numOfLockCus
;
private
String
campaignTypeName
;
}
src/main/java/com/viettel/campaign/web/dto/TimeRangeDialModeDTO.java
0 → 100644
View file @
3dd1723b
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
/**
* @author anhvd_itsol
*/
@Getter
@Setter
public
class
TimeRangeDialModeDTO
{
private
Long
timeRangeDialModeId
;
private
Long
companySiteId
;
private
Date
startTime
;
private
Long
campaignId
;
private
Short
dialMode
;
private
Long
userId
;
}
src/main/java/com/viettel/campaign/web/dto/TimeZoneDialModeDTO.java
0 → 100644
View file @
3dd1723b
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* @author anhvd_itsol
*/
@Getter
@Setter
public
class
TimeZoneDialModeDTO
{
private
Long
timeRangeDialModeId
;
private
Long
companySiteId
;
private
String
hour
;
private
String
minute
;
private
Long
campaignId
;
private
Short
dialMode
;
private
Long
userId
;
}
src/main/java/com/viettel/campaign/web/rest/CampaignCompleteCodeController.java
View file @
3dd1723b
...
...
@@ -84,8 +84,8 @@ public class CampaignCompleteCodeController {
ResultDTO
resultDTO
=
completeCodeService
.
deleteList
(
completeCodeDtos
);
return
new
ResponseEntity
<>(
resultDTO
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/deleteById
/{id}
"
)
@CrossOrigin
(
origins
=
"*"
)
@PostMapping
(
"/deleteById"
)
@ResponseBody
public
ResultDTO
deleteById
(
@RequestParam
(
"id"
)
Long
id
){
ResultDTO
resultDTO
=
new
ResultDTO
();
...
...
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
View file @
3dd1723b
...
...
@@ -39,6 +39,11 @@ public class CampaignController {
return
campaignService
.
findByCampaignCode
(
dto
);
}
@RequestMapping
(
method
=
RequestMethod
.
POST
)
public
ResultDTO
addNewCampaign
(
@RequestBody
CampaignRequestDTO
dto
)
{
return
campaignService
.
findByCampaignCode
(
dto
);
}
@GetMapping
(
"/countRecallCustomer"
)
@ResponseBody
public
ResponseEntity
countRecallCustomer
(
@RequestParam
(
"companySiteId"
)
Long
companySiteId
,
@RequestParam
(
"agentId"
)
Long
agentId
)
{
...
...
src/main/resources/sql/campaign-status-mng/search-campaign-status-by-params.sql
View file @
3dd1723b
...
...
@@ -11,6 +11,7 @@ SELECT
FROM
CAMPAIGN_COMPLETE_CODE
a
LEFT
JOIN
CAMPAIGN
b
ON
a
.
CAMPAIGN_ID
=
b
.
CAMPAIGN_ID
LEFT
JOIN
AP_PARAM
c
ON
a
.
CAMPAIGN_TYPE
=
to_char
(
c
.
AP_PARAM_ID
)
LEFT
JOIN
AP_PARAM
c
ON
a
.
CAMPAIGN_TYPE
=
to_char
(
c
.
AP_PARAM_ID
);
SELECT
max
(
COMPLETE_VALUE
)
,
COMPANY_SITE_ID
from
CAMPAIGN_COMPLETE_CODE
where
COMPANY_SITE_ID
=
:
p_site_id
GROUP
BY
COMPANY_SITE_ID
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