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
40f1295f
Commit
40f1295f
authored
Aug 14, 2019
by
Vu Duy Anh
Browse files
Options
Browse Files
Download
Plain Diff
commit merge
parents
1c8940a2
0e963c29
Changes
29
Show whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
828 additions
and
192 deletions
+828
-192
etc/app.conf
etc/app.conf
+3
-0
pom.xml
pom.xml
+24
-6
src/main/java/com/viettel/campaign/ServiceCampaignApplication.java
...java/com/viettel/campaign/ServiceCampaignApplication.java
+5
-0
src/main/java/com/viettel/campaign/config/WebSecurityConfig.java
...n/java/com/viettel/campaign/config/WebSecurityConfig.java
+13
-0
src/main/java/com/viettel/campaign/filter/CorsFilter.java
src/main/java/com/viettel/campaign/filter/CorsFilter.java
+27
-6
src/main/java/com/viettel/campaign/mapper/CampaignAgentsMapper.java
...ava/com/viettel/campaign/mapper/CampaignAgentsMapper.java
+32
-0
src/main/java/com/viettel/campaign/model/acd_full/Agents.java
...main/java/com/viettel/campaign/model/acd_full/Agents.java
+1
-1
src/main/java/com/viettel/campaign/model/ccms_full/CampaignAgent.java
...a/com/viettel/campaign/model/ccms_full/CampaignAgent.java
+3
-4
src/main/java/com/viettel/campaign/repository/acd_full/AgentsRepository.java
...iettel/campaign/repository/acd_full/AgentsRepository.java
+5
-1
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignAgentRepository.java
...ampaign/repository/ccms_full/CampaignAgentRepository.java
+22
-0
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignAgentsRepository.java
...mpaign/repository/ccms_full/CampaignAgentsRepository.java
+7
-0
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignExecuteRepository.java
...paign/repository/ccms_full/CampaignExecuteRepository.java
+4
-0
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignRepositoryCustom.java
...mpaign/repository/ccms_full/CampaignRepositoryCustom.java
+4
-2
src/main/java/com/viettel/campaign/repository/ccms_full/TimeRangeDialModeRepository.java
...ign/repository/ccms_full/TimeRangeDialModeRepository.java
+7
-0
src/main/java/com/viettel/campaign/repository/ccms_full/TimeZoneDialModeRepository.java
...aign/repository/ccms_full/TimeZoneDialModeRepository.java
+7
-0
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignExecuteRepositoryImp.java
...pository/ccms_full/impl/CampaignExecuteRepositoryImp.java
+150
-6
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
...ign/repository/ccms_full/impl/CampaignRepositoryImpl.java
+0
-135
src/main/java/com/viettel/campaign/service/AgentsService.java
...main/java/com/viettel/campaign/service/AgentsService.java
+5
-0
src/main/java/com/viettel/campaign/service/CampaignExecuteService.java
.../com/viettel/campaign/service/CampaignExecuteService.java
+6
-0
src/main/java/com/viettel/campaign/service/CampaignService.java
...in/java/com/viettel/campaign/service/CampaignService.java
+0
-1
src/main/java/com/viettel/campaign/service/impl/AgentsServiceImpl.java
.../com/viettel/campaign/service/impl/AgentsServiceImpl.java
+131
-12
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
...ttel/campaign/service/impl/CampaignExecuteServiceImp.java
+95
-4
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+0
-6
src/main/java/com/viettel/campaign/utils/Config.java
src/main/java/com/viettel/campaign/utils/Config.java
+87
-0
src/main/java/com/viettel/campaign/utils/RedisUtil.java
src/main/java/com/viettel/campaign/utils/RedisUtil.java
+129
-0
src/main/java/com/viettel/campaign/web/dto/CampaignAgentsDTO.java
.../java/com/viettel/campaign/web/dto/CampaignAgentsDTO.java
+16
-0
src/main/java/com/viettel/campaign/web/rest/AgentsController.java
.../java/com/viettel/campaign/web/rest/AgentsController.java
+18
-0
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
...ava/com/viettel/campaign/web/rest/CampaignController.java
+15
-1
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
...ava/com/viettel/campaign/web/rest/CustomerController.java
+12
-7
No files found.
etc/app.conf
View file @
40f1295f
#redis address, port
redis_address
=
10
.
60
.
156
.
82
:
8011
,
10
.
60
.
156
.
82
:
8012
,
10
.
60
.
156
.
82
:
8013
,
10
.
60
.
156
.
82
:
8014
,
10
.
60
.
156
.
82
:
8015
,
10
.
60
.
156
.
82
:
8016
redis_timeout
=
3000
\ No newline at end of file
pom.xml
View file @
40f1295f
...
...
@@ -83,13 +83,18 @@
<artifactId>
spring-boot-starter-websocket
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.kafka
</groupId>
<artifactId>
kafka-streams
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.kafka
</groupId>
<artifactId>
spring-kafka
</artifactId>
<groupId>
com.viettel
</groupId>
<artifactId>
viettelsercurity
</artifactId>
<version>
11.2.0.3
</version>
</dependency>
<!--<dependency>-->
<!--<groupId>org.apache.kafka</groupId>-->
<!--<artifactId>kafka-streams</artifactId>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>org.springframework.kafka</groupId>-->
<!--<artifactId>spring-kafka</artifactId>-->
<!--</dependency>-->
<dependency>
<groupId>
com.oracle
</groupId>
<artifactId>
ojdbc7
</artifactId>
...
...
@@ -212,6 +217,19 @@
<version>
2.3.0
</version>
</dependency>
<dependency>
<groupId>
redis.clients
</groupId>
<artifactId>
jedis
</artifactId>
<version>
2.8.0
</version>
<type>
jar
</type>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
<version>
3.4
</version>
<type>
jar
</type>
</dependency>
</dependencies>
<dependencyManagement>
...
...
src/main/java/com/viettel/campaign/ServiceCampaignApplication.java
View file @
40f1295f
package
com.viettel.campaign
;
import
com.viettel.campaign.utils.Config
;
import
com.viettel.campaign.utils.RedisUtil
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
...
...
@@ -8,6 +10,9 @@ public class ServiceCampaignApplication {
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ServiceCampaignApplication
.
class
,
args
);
RedisUtil
redis
=
new
RedisUtil
(
Config
.
redisAddress
,
Config
.
redisTimeout
);
redis
.
setup
();
}
}
src/main/java/com/viettel/campaign/config/WebSecurityConfig.java
View file @
40f1295f
package
com.viettel.campaign.config
;
import
com.viettel.campaign.filter.CorsFilter
;
import
org.springframework.boot.web.servlet.FilterRegistrationBean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity
;
import
org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
;
...
...
@@ -18,4 +21,14 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
protected
void
configure
(
HttpSecurity
http
)
throws
Exception
{
http
.
csrf
().
disable
();
}
@Bean
public
FilterRegistrationBean
filterRegistrationBean
()
{
FilterRegistrationBean
registrationBean
=
new
FilterRegistrationBean
();
registrationBean
.
setName
(
"CorsFilter"
);
CorsFilter
corsFilter
=
new
CorsFilter
();
registrationBean
.
setFilter
(
corsFilter
);
registrationBean
.
setOrder
(
1
);
return
registrationBean
;
}
}
src/main/java/com/viettel/campaign/filter/CorsFilter.java
View file @
40f1295f
package
com.viettel.campaign.filter
;
import
com.viettel.campaign.utils.RedisUtil
;
import
org.apache.log4j.Logger
;
import
org.springframework.stereotype.Component
;
...
...
@@ -14,20 +15,40 @@ public class CorsFilter implements Filter {
private
Logger
logger
=
Logger
.
getLogger
(
CorsFilter
.
class
);
@Override
public
void
init
(
FilterConfig
filterConfig
)
throws
ServletException
{
public
void
init
(
FilterConfig
filterConfig
){
}
@Override
public
void
doFilter
(
ServletRequest
req
,
ServletResponse
resp
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
HttpServletRequest
request
=
(
HttpServletRequest
)
req
;
HttpServletResponse
response
=
(
HttpServletResponse
)
resp
;
response
.
setHeader
(
"Access-Control-Allow-Origin"
,
"*"
);
response
.
setHeader
(
"Access-Control-Allow-Methods"
,
"POST, GET, OPTIONS, DELETE"
);
response
.
setHeader
(
"Access-Control-Max-Age"
,
"3600"
);
response
.
setHeader
(
"Access-Control-Allow-Headers"
,
"Origin, Authorization, X-Requested-With, Content-Type, Accept, token1, X-Auth-Token"
);
try
{
HttpServletRequest
request
=
(
HttpServletRequest
)
req
;
if
(
"OPTIONS"
.
equalsIgnoreCase
(
request
.
getMethod
()))
{
chain
.
doFilter
(
req
,
resp
);
return
;
}
logger
.
info
(
"uri: "
+
request
.
getRequestURI
());
if
(
"/"
.
equals
(
request
.
getRequestURI
()))
{
chain
.
doFilter
(
req
,
resp
);
return
;
}
String
xAuthToken
=
request
.
getHeader
(
"X-Auth-Token"
);
if
(
xAuthToken
==
null
||
""
.
equals
(
xAuthToken
))
{
response
.
sendError
(
HttpServletResponse
.
SC_UNAUTHORIZED
,
"The token is null."
);
return
;
}
Object
obj
=
RedisUtil
.
getInstance
().
get
(
xAuthToken
);
if
(
obj
instanceof
UserSession
)
{
chain
.
doFilter
(
req
,
resp
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
response
.
sendError
(
HttpServletResponse
.
SC_INTERNAL_SERVER_ERROR
,
e
.
getMessage
());
}
else
{
response
.
sendError
(
HttpServletResponse
.
SC_UNAUTHORIZED
,
"The token is invalid."
);
}
}
...
...
src/main/java/com/viettel/campaign/mapper/CampaignAgentsMapper.java
0 → 100644
View file @
40f1295f
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.model.ccms_full.CampaignAgent
;
import
com.viettel.campaign.web.dto.CampaignAgentsDTO
;
public
class
CampaignAgentsMapper
extends
BaseMapper
<
CampaignAgent
,
CampaignAgentsDTO
>
{
@Override
public
CampaignAgentsDTO
toDtoBean
(
CampaignAgent
campaignAgent
)
{
CampaignAgentsDTO
obj
=
new
CampaignAgentsDTO
();
obj
.
setAgentId
(
campaignAgent
.
getAgentId
());
obj
.
setCampaignAgentId
(
campaignAgent
.
getCampaignAgentId
());
obj
.
setCampaignId
(
campaignAgent
.
getCampaignId
());
obj
.
setCompanySiteId
(
campaignAgent
.
getCompanySiteId
());
obj
.
setFilterType
(
campaignAgent
.
getFilterType
());
obj
.
setReSchedule
(
campaignAgent
.
getReSchedule
());
obj
.
setStatus
(
campaignAgent
.
getStatus
());
return
obj
;
}
@Override
public
CampaignAgent
toPersistenceBean
(
CampaignAgentsDTO
dtoBean
)
{
CampaignAgent
obj
=
new
CampaignAgent
();
obj
.
setAgentId
(
dtoBean
.
getAgentId
());
obj
.
setCampaignAgentId
(
dtoBean
.
getCampaignAgentId
());
obj
.
setCampaignId
(
dtoBean
.
getCampaignId
());
obj
.
setCompanySiteId
(
dtoBean
.
getCompanySiteId
());
obj
.
setFilterType
(
dtoBean
.
getFilterType
());
obj
.
setReSchedule
(
dtoBean
.
getReSchedule
());
obj
.
setStatus
(
dtoBean
.
getStatus
());
return
obj
;
}
}
src/main/java/com/viettel/campaign/model/acd_full/Agents.java
View file @
40f1295f
...
...
@@ -7,7 +7,7 @@ import javax.persistence.*;
import
java.util.Date
;
@Entity
@Table
(
name
=
"
VSAUsers
"
)
@Table
(
name
=
"
AGENTS
"
)
@Getter
@Setter
public
class
Agents
{
...
...
src/main/java/com/viettel/campaign/model/ccms_full/CampaignAgent.java
View file @
40f1295f
...
...
@@ -3,10 +3,7 @@ package com.viettel.campaign.model.ccms_full;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
javax.persistence.*
;
import
java.io.Serializable
;
@Entity
...
...
@@ -16,6 +13,8 @@ import java.io.Serializable;
public
class
CampaignAgent
implements
Serializable
{
@Id
@GeneratedValue
(
generator
=
"CAMPAIGN_AGENT_SEQ"
)
@SequenceGenerator
(
name
=
"CAMPAIGN_AGENT_SEQ"
,
sequenceName
=
"CAMPAIGN_AGENT_SEQ"
,
allocationSize
=
1
)
@Column
(
name
=
"CAMPAIGN_AGENT_ID"
)
private
Long
campaignAgentId
;
@Column
(
name
=
"CAMPAIGN_ID"
)
...
...
src/main/java/com/viettel/campaign/repository/acd_full/AgentsRepository.java
View file @
40f1295f
package
com.viettel.campaign.repository.acd_full
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.acd_full.Agents
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
@Repository
public
interface
AgentsRepository
extends
JpaRepository
<
Agents
,
String
>
{
Agents
getByAgentId
(
String
agentId
);
@Transactional
(
DataSourceQualify
.
ACD_FULL
)
Agents
findByAgentId
(
String
agentId
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignAgentRepository.java
0 → 100644
View file @
40f1295f
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.ccms_full.CampaignAgent
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
@Repository
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
interface
CampaignAgentRepository
extends
JpaRepository
<
CampaignAgent
,
Long
>
{
@Query
(
value
=
"SELECT campaign_agent_seq.nextval FROM DUAL"
,
nativeQuery
=
true
)
Long
getNextSeqId
();
@Modifying
@Query
(
"UPDATE CampaignAgent SET status = :status WHERE agentId = :agentId AND campaignId = :campaignId"
)
void
updateCampaignAgentSetStatus
(
@Param
(
"agentId"
)
Long
agentId
,
@Param
(
"campaignId"
)
Long
campaignId
,
@Param
(
"status"
)
Integer
status
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignAgentsRepository.java
0 → 100644
View file @
40f1295f
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.model.ccms_full.CampaignAgent
;
import
org.springframework.data.jpa.repository.JpaRepository
;
public
interface
CampaignAgentsRepository
extends
JpaRepository
<
CampaignAgent
,
Long
>
{
}
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignExecuteRepository.java
View file @
40f1295f
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.web.dto.ApParamDTO
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ContactCustResultDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
...
...
@@ -11,6 +13,8 @@ import java.util.List;
@Repository
public
interface
CampaignExecuteRepository
{
List
<
CampaignDTO
>
searchCampaignExecute
(
CampaignRequestDTO
campaignRequestDto
,
Pageable
pageable
);
//<editor-fold: hungtt>
List
<
ApParamDTO
>
getComboBoxStatus
(
String
companySiteId
,
String
completeType
);
...
...
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignRepositoryCustom.java
View file @
40f1295f
package
com.viettel.campaign.repository.ccms_full
;
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.stereotype.Repository
;
import
java.util.List
;
@Repository
public
interface
CampaignRepositoryCustom
{
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
campaignRequestDto
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
...
...
@@ -14,5 +16,5 @@ public interface CampaignRepositoryCustom {
String
getMaxCampaignIndex
();
ResultDTO
checkAllowStatusToPrepare
(
Long
campaignId
);
ResultDTO
checkAllowStatusToPrepare
(
Long
campaignId
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/TimeRangeDialModeRepository.java
View file @
40f1295f
...
...
@@ -2,6 +2,8 @@ package com.viettel.campaign.repository.ccms_full;
import
com.viettel.campaign.model.ccms_full.TimeRangeDialMode
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
...
...
@@ -12,5 +14,10 @@ import java.util.List;
@Repository
public
interface
TimeRangeDialModeRepository
extends
JpaRepository
<
TimeRangeDialMode
,
Long
>
{
List
<
TimeRangeDialMode
>
findTimeRangeDialModeByCampaignIdAndCompanySiteId
(
Long
campaignId
,
Long
companySiteId
);
@Query
(
value
=
"SELECT * FROM TIME_RANGE_DIAL_MODE r "
+
"WHERE r.CAMPAIGN_ID = :campaignId AND r.COMPANY_SITE_ID = :companySiteId AND TO_CHAR(r.START_TIME,'HH24:MI:SS') <= TO_CHAR(SYSDATE,'HH24:MI:SS')"
,
nativeQuery
=
true
)
TimeRangeDialMode
findDialModeAtCurrent
(
@Param
(
"campaignId"
)
Long
campaignId
,
@Param
(
"companySiteId"
)
Long
companySiteId
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/TimeZoneDialModeRepository.java
View file @
40f1295f
...
...
@@ -2,6 +2,8 @@ package com.viettel.campaign.repository.ccms_full;
import
com.viettel.campaign.model.ccms_full.TimeZoneDialMode
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
...
...
@@ -12,5 +14,10 @@ import java.util.List;
@Repository
public
interface
TimeZoneDialModeRepository
extends
JpaRepository
<
TimeZoneDialMode
,
Long
>
{
List
<
TimeZoneDialMode
>
findTimeZoneDialModeByCampaignIdAndCompanySiteId
(
Long
campaignId
,
Long
companySiteId
);
@Query
(
value
=
"SELECT * FROM TIME_ZONE_DIAL_MODE z "
+
"WHERE z.CAMPAIGN_ID = :campaignId AND z.COMPANY_SITE_ID = :companySiteId AND concat(z.HOUR, ':', z.MINUTE) <= TO_CHAR(SYSDATE,'HH24:MI')"
,
nativeQuery
=
true
)
TimeZoneDialMode
findDialModeAtCurrent
(
@Param
(
"campaignId"
)
Long
campaignId
,
@Param
(
"companySiteId"
)
Long
companySiteId
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignExecuteRepositoryImp.java
View file @
40f1295f
...
...
@@ -2,11 +2,14 @@ package com.viettel.campaign.repository.ccms_full.impl;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.repository.ccms_full.CampaignExecuteRepository
;
import
com.viettel.campaign.repository.ccms_full.TimeRangeDialModeRepository
;
import
com.viettel.campaign.repository.ccms_full.TimeZoneDialModeRepository
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.utils.HibernateUtil
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.web.dto.ApParamDTO
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ContactCustResultDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
...
...
@@ -14,7 +17,10 @@ import org.hibernate.SQLQuery;
import
org.hibernate.Session
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.type.*
;
import
org.hibernate.type.DateType
;
import
org.hibernate.type.LongType
;
import
org.hibernate.type.ShortType
;
import
org.hibernate.type.StringType
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -25,9 +31,12 @@ import org.springframework.data.domain.Pageable;
import
org.springframework.jdbc.core.BeanPropertyRowMapper
;
import
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.Query
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -41,9 +50,15 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
NamedParameterJdbcTemplate
namedParameterJdbcTemplate
;
@Autowired
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
EntityManager
entityManager
;
@Autowired
TimeZoneDialModeRepository
zoneDialModeRepository
;
@Autowired
TimeRangeDialModeRepository
rangeDialModeRepository
;
@Override
public
List
<
ApParamDTO
>
getComboBoxStatus
(
String
companySiteId
,
String
completeType
)
{
List
<
ApParamDTO
>
list
=
new
ArrayList
<>();
...
...
@@ -172,13 +187,13 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
ContactCustResultDTO
>
data
=
query
.
list
();
for
(
ContactCustResultDTO
contactCustResultDTO:
data
)
{
for
(
ContactCustResultDTO
contactCustResultDTO
:
data
)
{
if
(!
"AGENT"
.
equals
(
dto
.
getRoleUser
()))
{
contactCustResultDTO
.
setEnableEdit
(
true
);
}
else
{
if
(
contactCustResultDTO
.
getRecordStatus
()
==
2
)
{
contactCustResultDTO
.
setEnableEdit
(
true
);
}
else
if
(
contactCustResultDTO
.
getRecordStatus
()
==
1
&&
isLower24Hour
(
contactCustResultDTO
.
getCreateTime
())){
}
else
if
(
contactCustResultDTO
.
getRecordStatus
()
==
1
&&
isLower24Hour
(
contactCustResultDTO
.
getCreateTime
()))
{
contactCustResultDTO
.
setEnableEdit
(
true
);
}
else
{
contactCustResultDTO
.
setEnableEdit
(
false
);
...
...
@@ -308,5 +323,134 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
return
true
;
}
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
List
<
CampaignDTO
>
searchCampaignExecute
(
CampaignRequestDTO
campaignRequestDto
,
Pageable
pageable
)
{
List
<
CampaignDTO
>
result
=
new
ArrayList
<>();
StringBuilder
expression
=
new
StringBuilder
()
.
append
(
" SELECT C.CAMPAIGN_CODE, C.CAMPAIGN_NAME, C.CONTENT, C.START_TIME, C.END_TIME, C.STATUS, CA.STATUS AS AGENT_STATUS, C.CAMPAIGN_ID "
)
.
append
(
" FROM CAMPAIGN C INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID "
)
.
append
(
" WHERE 1 = 1 "
)
.
append
(
" AND CA.AGENT_ID = :pAgentId "
);
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getCampaignCode
()))
{
expression
.
append
(
" AND C.CAMPAIGN_CODE IN (:pCampaignCode) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getCampaignName
()))
{
expression
.
append
(
" AND UPPER(C.CAMPAIGN_NAME) LIKE :pCampaignName "
);
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getStatus
().
longValue
()))
{
if
(
campaignRequestDto
.
getStatus
()
!=
0
)
expression
.
append
(
" AND C.STATUS = :pStatus "
);
}
else
{
expression
.
append
(
" AND C.STATUS IN (2, 3) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getFromDateFr
()))
{
expression
.
append
(
" AND TRUNC(C.START_TIME) >= TRUNC(:pStartTimeFr) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getFromDateTo
()))
{
expression
.
append
(
" AND TRUNC(C.START_TIME) <= TRUNC(:pStartTimeTo) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getToDateFr
()))
{
expression
.
append
(
" AND TRUNC(C.END_TIME) >= TRUNC(:pEndTimeFr) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getToDateTo
()))
{
expression
.
append
(
" AND TRUNC(C.END_TIME) <= TRUNC(:pEndTimeTo) "
);
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getNumOfCusFr
()))
{
expression
.
append
(
" AND C.CUSTOMER_NUMBER >= :pCustNumFr "
);
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getNumOfCusTo
()))
{
expression
.
append
(
" AND C.CUSTOMER_NUMBER <= :pCustNumTo "
);
}
try
{
Query
query
=
entityManager
.
createNativeQuery
(
expression
.
toString
());
query
.
setParameter
(
"pAgentId"
,
Long
.
parseLong
(
campaignRequestDto
.
getAgentId
()));
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getCampaignCode
()))
{
String
[]
lstCode
=
campaignRequestDto
.
getCampaignCode
().
split
(
","
);
query
.
setParameter
(
"pCampaignCode"
,
lstCode
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getCampaignName
()))
{
query
.
setParameter
(
"pCampaignName"
,
"%"
+
campaignRequestDto
.
getCampaignName
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\\\%"
)
.
replaceAll
(
"_"
,
"\\\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getStatus
().
longValue
()))
{
if
(
campaignRequestDto
.
getStatus
()
!=
0
)
query
.
setParameter
(
"pStatus"
,
campaignRequestDto
.
getStatus
());
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getFromDateFr
()))
{
query
.
setParameter
(
"pStartTimeFr"
,
campaignRequestDto
.
getFromDateFr
());
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getFromDateTo
()))
{
query
.
setParameter
(
"pStartTimeTo"
,
campaignRequestDto
.
getFromDateTo
());
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getToDateFr
()))
{
query
.
setParameter
(
"pEndTimeFr"
,
campaignRequestDto
.
getToDateFr
());
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getToDateTo
()))
{
query
.
setParameter
(
"pEndTimeTo"
,
campaignRequestDto
.
getToDateTo
());
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getNumOfCusFr
()))
{
query
.
setParameter
(
"pCustNumFr"
,
campaignRequestDto
.
getNumOfCusFr
());
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getNumOfCusTo
()))
{
query
.
setParameter
(
"pCustNumTo"
,
campaignRequestDto
.
getNumOfCusTo
());
}
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
Object
[]>
data
=
query
.
getResultList
();
//TimeZoneDialMode zoneDialMode = zoneDialModeRepository.findDialModeAtCurrent(Long.parseLong(campaignRequestDto.getCampaignId()), Long.parseLong(campaignRequestDto.getCompanySiteId()));
//TimeRangeDialMode rangeDialMode = rangeDialModeRepository.findDialModeAtCurrent(Long.parseLong(campaignRequestDto.getCampaignId()), Long.parseLong(campaignRequestDto.getCompanySiteId()));
for
(
Object
[]
obj
:
data
)
{
CampaignDTO
item
=
new
CampaignDTO
();
item
.
setPage
(
campaignRequestDto
.
getPage
());
item
.
setPageSize
(
campaignRequestDto
.
getPageSize
());
item
.
setSort
(
campaignRequestDto
.
getSort
());
item
.
setCampaignCode
((
String
)
obj
[
0
]);
item
.
setCampaignName
((
String
)
obj
[
1
]);
item
.
setContent
((
String
)
obj
[
2
]);
item
.
setStartTime
((
Date
)
obj
[
3
]);
item
.
setEndTime
((
Date
)
obj
[
4
]);
item
.
setStatus
(((
BigDecimal
)
obj
[
5
]).
shortValueExact
());
item
.
setAgentStatus
(((
BigDecimal
)
obj
[
6
]).
shortValueExact
());
item
.
setCampaignId
(((
BigDecimal
)
obj
[
7
]).
longValueExact
());
result
.
add
(
item
);
}
return
result
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
}
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
View file @
40f1295f
...
...
@@ -37,141 +37,6 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
EntityManager
entityManager
;
@Override
public
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
campaignRequestDto
)
{
ResultDTO
result
=
new
ResultDTO
();
List
<
CampaignDTO
>
lst
=
new
ArrayList
<>();
StringBuilder
expression
=
new
StringBuilder
()
.
append
(
" SELECT C.CAMPAIGN_CODE, C.CAMPAIGN_NAME, C.CONTENT, C.START_TIME, C.END_TIME, C.STATUS, CA.STATUS AS AGENT_STATUS, C.CAMPAIGN_ID "
)
.
append
(
" FROM CAMPAIGN C INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID "
)
.
append
(
" WHERE 1 = 1 "
)
.
append
(
" AND CA.AGENT_ID = :pAgentId "
);
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getCampaignCode
()))
{
expression
.
append
(
" AND C.CAMPAIGN_CODE IN (:pCampaignCode) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getCampaignName
()))
{
expression
.
append
(
" AND UPPER(C.CAMPAIGN_NAME) LIKE :pCampaignName "
);
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getStatus
().
longValue
()))
{
if
(
campaignRequestDto
.
getStatus
()
!=
0
)
expression
.
append
(
" AND C.STATUS = :pStatus "
);
else
expression
.
append
(
" AND C.STATUS IN (2, 3) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getFromDateFr
()))
{
expression
.
append
(
" AND TRUNC(C.START_TIME) >= TRUNC(:pStartTimeFr) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getFromDateTo
()))
{
expression
.
append
(
" AND TRUNC(C.START_TIME) <= TRUNC(:pStartTimeTo) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getToDateFr
()))
{
expression
.
append
(
" AND TRUNC(C.END_TIME) >= TRUNC(:pEndTimeFr) "
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getToDateTo
()))
{
expression
.
append
(
" AND TRUNC(C.END_TIME) <= TRUNC(:pEndTimeTo) "
);
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getNumOfCusFr
()))
{
expression
.
append
(
" AND C.CUSTOMER_NUMBER >= :pCustNumFr "
);
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getNumOfCusTo
()))
{
expression
.
append
(
" AND C.CUSTOMER_NUMBER <= :pCustNumTo "
);
}
try
{
Query
query
=
entityManager
.
createNativeQuery
(
expression
.
toString
());
query
.
setParameter
(
"pAgentId"
,
campaignRequestDto
.
getAgentId
());
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getCampaignCode
()))
{
String
[]
lstCode
=
campaignRequestDto
.
getCampaignCode
().
split
(
","
);
query
.
setParameter
(
"pCampaignCode"
,
lstCode
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getCampaignName
()))
{
query
.
setParameter
(
"pCampaignName"
,
"%"
+
campaignRequestDto
.
getCampaignName
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\\\%"
)
.
replaceAll
(
"_"
,
"\\\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getStatus
().
longValue
()))
{
if
(
campaignRequestDto
.
getStatus
()
!=
0
)
query
.
setParameter
(
"pStatus"
,
campaignRequestDto
.
getStatus
());
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getFromDateFr
()))
{
query
.
setParameter
(
"pStartTimeFr"
,
campaignRequestDto
.
getFromDateFr
());
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getFromDateTo
()))
{
query
.
setParameter
(
"pStartTimeTo"
,
campaignRequestDto
.
getFromDateTo
());
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getToDateFr
()))
{
query
.
setParameter
(
"pEndTimeFr"
,
campaignRequestDto
.
getToDateFr
());
}
if
(!
DataUtil
.
isNullOrEmpty
(
campaignRequestDto
.
getToDateTo
()))
{
query
.
setParameter
(
"pEndTimeTo"
,
campaignRequestDto
.
getToDateTo
());
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getNumOfCusFr
()))
{
query
.
setParameter
(
"pCustNumFr"
,
campaignRequestDto
.
getNumOfCusFr
());
}
if
(!
DataUtil
.
isNullOrZero
(
campaignRequestDto
.
getNumOfCusTo
()))
{
query
.
setParameter
(
"pCustNumTo"
,
campaignRequestDto
.
getNumOfCusTo
());
}
result
.
setTotalRow
(
query
.
getResultList
().
size
());
Pageable
pageable
=
SQLBuilder
.
buildPageable
(
campaignRequestDto
);
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
Object
[]>
data
=
query
.
getResultList
();
for
(
Object
[]
obj
:
data
)
{
CampaignDTO
item
=
new
CampaignDTO
();
item
.
setPage
(
campaignRequestDto
.
getPage
());
item
.
setPageSize
(
campaignRequestDto
.
getPageSize
());
item
.
setSort
(
campaignRequestDto
.
getSort
());
item
.
setCampaignCode
((
String
)
obj
[
0
]);
item
.
setCampaignName
((
String
)
obj
[
1
]);
item
.
setContent
((
String
)
obj
[
2
]);
item
.
setStartTime
((
Date
)
obj
[
3
]);
item
.
setEndTime
((
Date
)
obj
[
4
]);
item
.
setStatus
(((
BigDecimal
)
obj
[
5
]).
shortValueExact
());
item
.
setAgentStatus
(((
BigDecimal
)
obj
[
6
]).
shortValueExact
());
item
.
setCampaignId
(((
BigDecimal
)
obj
[
7
]).
longValueExact
());
lst
.
add
(
item
);
}
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
result
.
setListData
(
lst
);
return
result
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
logger
.
info
(
"Start search campaign::"
);
...
...
src/main/java/com/viettel/campaign/service/AgentsService.java
View file @
40f1295f
package
com.viettel.campaign.service
;
import
com.viettel.campaign.web.dto.CampaignAgentsDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
public
interface
AgentsService
{
ResultDTO
getAgentsByAgentId
(
String
agentId
);
ResultDTO
getAllAgentsByCompanySiteId
(
int
page
,
int
pageSize
,
Long
companySiteId
);
ResultDTO
getAllAgentsSelectedByCompanySiteId
(
int
page
,
int
pageSize
,
Long
companySiteId
,
Long
campaignId
);
ResultDTO
createCampaignAgents
(
CampaignAgentsDTO
campaignAgentsDTO
);
}
src/main/java/com/viettel/campaign/service/CampaignExecuteService.java
View file @
40f1295f
...
...
@@ -21,4 +21,10 @@ public interface CampaignExecuteService {
List
<
ContactCustResultDTO
>
getContactCustById
(
CampaignRequestDTO
dto
);
//</editor-fold>
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
);
ResultDTO
getExecuteCampaign
(
CampaignRequestDTO
requestDto
);
ResultDTO
getCall
(
CampaignRequestDTO
dto
);
}
src/main/java/com/viettel/campaign/service/CampaignService.java
View file @
40f1295f
...
...
@@ -13,7 +13,6 @@ import java.util.List;
import
java.util.Map
;
public
interface
CampaignService
{
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
...
...
src/main/java/com/viettel/campaign/service/impl/AgentsServiceImpl.java
View file @
40f1295f
package
com.viettel.campaign.service.impl
;
import
com.viettel.campaign.mapper.CampaignAgentsMapper
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.acd_full.Agents
;
import
com.viettel.campaign.model.ccms_full.CampaignAgent
;
import
com.viettel.campaign.repository.acd_full.AgentsRepository
;
import
com.viettel.campaign.repository.ccms_full.CampaignAgentsRepository
;
import
com.viettel.campaign.service.AgentsService
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.utils.HibernateUtil
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.web.dto.CampaignAgentsDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.VSAUsersDTO
;
import
org.hibernate.SQLQuery
;
import
org.hibernate.Session
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.type.DateType
;
import
org.hibernate.type.LongType
;
import
org.hibernate.type.ShortType
;
import
org.hibernate.type.StringType
;
import
org.hibernate.type.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.*
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
...
...
@@ -29,11 +32,15 @@ public class AgentsServiceImpl implements AgentsService {
@Autowired
AgentsRepository
agentsRepository
;
@Autowired
CampaignAgentsRepository
campaignAgentsRepository
;
@Override
public
ResultDTO
getAgentsByAgentId
(
String
agentId
)
{
ResultDTO
result
=
new
ResultDTO
();
Agents
data
=
agentsRepository
.
getByAgentId
(
agentId
);
try
{
Agents
data
=
agentsRepository
.
findByAgentId
(
agentId
);
if
(
data
!=
null
)
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
...
...
@@ -44,11 +51,15 @@ public class AgentsServiceImpl implements AgentsService {
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
result
.
setDescription
(
"agents data null"
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
@Override
@Transactional
(
DataSourceQualify
.
ACD_FULL
)
public
ResultDTO
getAllAgentsByCompanySiteId
(
int
page
,
int
pageSize
,
Long
companySiteId
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
...
...
@@ -130,4 +141,112 @@ public class AgentsServiceImpl implements AgentsService {
return
resultDTO
;
}
@Override
public
ResultDTO
getAllAgentsSelectedByCompanySiteId
(
int
page
,
int
pageSize
,
Long
companySiteId
,
Long
campaignId
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
if
(
DataUtil
.
isNullOrZero
(
companySiteId
))
{
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
return
resultDTO
;
}
try
{
StringBuilder
sqlStrBuilder
=
new
StringBuilder
();
sqlStrBuilder
.
append
(
SQLBuilder
.
getSqlQueryById
(
SQLBuilder
.
SQL_MODULE_CAMPAIGN_MNG
,
"campaign-agents-by-params"
));
sqlStrBuilder
.
append
(
" RIGHT JOIN CAMPAIGN_AGENT b on a.USER_ID = b.AGENT_ID"
);
sqlStrBuilder
.
append
(
" WHERE 1 = 1"
);
sqlStrBuilder
.
append
(
" AND b.COMPANY_SITE_ID = :p_company_site_id"
);
sqlStrBuilder
.
append
(
" AND b.CAMPAIGN_ID = :p_campaign_id"
);
sqlStrBuilder
.
append
(
" ORDER BY a.FULL_NAME ASC"
);
SQLQuery
query
=
session
.
createSQLQuery
(
sqlStrBuilder
.
toString
());
query
.
setParameter
(
"p_company_site_id"
,
companySiteId
);
query
.
setParameter
(
"p_campaign_id"
,
campaignId
);
query
.
addScalar
(
"userId"
,
new
LongType
());
query
.
addScalar
(
"userName"
,
new
StringType
());
query
.
addScalar
(
"status"
,
new
ShortType
());
query
.
addScalar
(
"fullName"
,
new
StringType
());
query
.
addScalar
(
"userTypeId"
,
new
LongType
());
query
.
addScalar
(
"createDate"
,
new
DateType
());
query
.
addScalar
(
"description"
,
new
StringType
());
query
.
addScalar
(
"staffCode"
,
new
StringType
());
query
.
addScalar
(
"managerId"
,
new
LongType
());
query
.
addScalar
(
"locationId"
,
new
LongType
());
query
.
addScalar
(
"deptId"
,
new
LongType
());
query
.
addScalar
(
"deptLevel"
,
new
StringType
());
query
.
addScalar
(
"posId"
,
new
LongType
());
query
.
addScalar
(
"deptName"
,
new
StringType
());
query
.
addScalar
(
"groupId"
,
new
LongType
());
query
.
addScalar
(
"siteId"
,
new
LongType
());
query
.
addScalar
(
"companySiteId"
,
new
LongType
());
query
.
addScalar
(
"agentType"
,
new
ShortType
());
query
.
addScalar
(
"mobileNumber"
,
new
StringType
());
query
.
addScalar
(
"facebookId"
,
new
StringType
());
query
.
addScalar
(
"loginType"
,
new
ShortType
());
query
.
addScalar
(
"googleId"
,
new
StringType
());
query
.
addScalar
(
"email"
,
new
StringType
());
query
.
addScalar
(
"availableTicket"
,
new
LongType
());
query
.
addScalar
(
"userKazooId"
,
new
StringType
());
query
.
addScalar
(
"filterType"
,
new
ShortType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
VSAUsersDTO
.
class
));
int
count
=
0
;
List
<
VSAUsersDTO
>
dtoList
=
query
.
list
();
if
(
dtoList
.
size
()
>
0
)
{
count
=
query
.
list
().
size
();
}
Pageable
pageable
=
PageRequest
.
of
(
page
,
pageSize
);
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
VSAUsersDTO
>
data
=
query
.
list
();
Page
<
VSAUsersDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
resultDTO
.
setData
(
dataPage
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
catch
(
Exception
e
)
{
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
finally
{
session
.
close
();
}
return
resultDTO
;
}
@Override
public
ResultDTO
createCampaignAgents
(
CampaignAgentsDTO
campaignAgentsDTO
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
CampaignAgentsMapper
campaignAgentsMapper
=
new
CampaignAgentsMapper
();
CampaignAgent
campaignAgent
=
new
CampaignAgent
();
try
{
if
(
campaignAgentsDTO
!=
null
)
{
// insert
campaignAgent
=
campaignAgentsMapper
.
toPersistenceBean
(
campaignAgentsDTO
);
campaignAgentsRepository
.
save
(
campaignAgent
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
else
{
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
resultDTO
;
}
}
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
View file @
40f1295f
package
com.viettel.campaign.service.impl
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.repository.ccms_full.CampaignExecuteRepository
;
import
com.viettel.campaign.model.acd_full.Agents
;
import
com.viettel.campaign.model.ccms_full.TimeRangeDialMode
;
import
com.viettel.campaign.model.ccms_full.TimeZoneDialMode
;
import
com.viettel.campaign.repository.acd_full.AgentsRepository
;
import
com.viettel.campaign.repository.ccms_full.*
;
import
com.viettel.campaign.service.CampaignExecuteService
;
import
com.viettel.campaign.utils.BundleUtils
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.web.dto.ApParamDTO
;
import
com.viettel.campaign.web.dto.ContactCustResultDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
...
...
@@ -19,9 +24,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.*
;
@Service
public
class
CampaignExecuteServiceImp
implements
CampaignExecuteService
{
...
...
@@ -29,9 +32,24 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
CampaignExecuteServiceImp
.
class
);
private
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
Constants
.
DATE_FORMAT
.
FOMART_DATE_TYPE_1
);
@Autowired
CampaignRepositoryCustom
campaignRepositoryCustom
;
@Autowired
CampaignExecuteRepository
campaignExecuteRepository
;
@Autowired
AgentsRepository
agentsRepository
;
@Autowired
CampaignAgentRepository
campaignAgentRepository
;
@Autowired
TimeZoneDialModeRepository
zoneDialModeRepository
;
@Autowired
TimeRangeDialModeRepository
rangeDialModeRepository
;
//<editor-fold: hungtt>
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
...
...
@@ -194,4 +212,77 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
cell
.
setCellStyle
(
rowStyle
);
}
//</editor-fold: hungtt>
@Override
public
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
new
ResultDTO
();
Map
data
=
new
HashMap
();
Integer
count
=
campaignExecuteRepository
.
searchCampaignExecute
(
requestDto
,
null
).
size
();
if
(
count
>
0
)
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
result
.
setTotalRow
(
count
);
result
.
setListData
(
campaignExecuteRepository
.
searchCampaignExecute
(
requestDto
,
SQLBuilder
.
buildPageable
(
requestDto
)));
Agents
agents
=
agentsRepository
.
findByAgentId
(
requestDto
.
getAgentId
());
//TimeZoneDialMode zoneDialMode = zoneDialModeRepository.findDialModeAtCurrent(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getCompanySiteId()));
//TimeRangeDialMode rangeDialMode = rangeDialModeRepository.findDialModeAtCurrent(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getCompanySiteId()));
if
(
agents
.
getUserStatus
()
!=
null
&&
agents
.
getCampaignSystemStatus
()
!=
null
)
{
if
(
agents
.
getUserStatus
().
equalsIgnoreCase
(
"CALLOUT"
)
&&
agents
.
getCampaignSystemStatus
().
equalsIgnoreCase
(
"AVAILABLE"
))
{
//if (zoneDialMode != null && zoneDialMode.getDialMode().equals(0) || rangeDialMode != null && rangeDialMode.getDialMode().equals(0))
data
.
put
(
"dialModeManual"
,
"1"
);
}
}
result
.
setData
(
data
);
}
else
{
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
return
result
;
}
@Override
public
ResultDTO
getExecuteCampaign
(
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
new
ResultDTO
();
try
{
Agents
agents
=
agentsRepository
.
findByAgentId
(
requestDto
.
getAgentId
());
//TimeZoneDialMode zoneDialMode = zoneDialModeRepository.findDialModeAtCurrent(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getCompanySiteId()));
//TimeRangeDialMode rangeDialMode = rangeDialModeRepository.findDialModeAtCurrent(Long.parseLong(requestDto.getCampaignId()), Long.parseLong(requestDto.getCompanySiteId()));
if
(
agents
.
getUserStatus
().
equalsIgnoreCase
(
"CALLOUT"
)
&&
agents
.
getCampaignSystemStatus
().
equalsIgnoreCase
(
"LOGOUT"
))
{
//if (zoneDialMode != null && zoneDialMode.getDialMode().equals(0) || rangeDialMode != null && rangeDialMode.getDialMode().equals(0))
// update acd_full.agents table
Agents
a
=
new
Agents
();
a
=
agents
;
a
.
setAgentId
(
requestDto
.
getAgentId
());
a
.
setCampaignSystemStatus
(
"AVAILABLE"
);
a
.
setCurrentCampaignId
(
Long
.
parseLong
(
requestDto
.
getCampaignId
()));
agentsRepository
.
save
(
a
);
// update ccms_full.campaign_agent table
campaignAgentRepository
.
updateCampaignAgentSetStatus
(
Long
.
parseLong
(
requestDto
.
getAgentId
()),
Long
.
parseLong
(
requestDto
.
getCampaignId
()),
1
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
@Override
public
ResultDTO
getCall
(
CampaignRequestDTO
dto
)
{
ResultDTO
result
=
new
ResultDTO
();
Map
data
=
new
HashMap
();
data
.
put
(
"campaignId"
,
dto
.
getCampaignId
());
Agents
agents
=
agentsRepository
.
findByAgentId
(
dto
.
getAgentId
());
TimeZoneDialMode
zoneDialMode
=
zoneDialModeRepository
.
findDialModeAtCurrent
(
Long
.
parseLong
(
dto
.
getCampaignId
()),
Long
.
parseLong
(
dto
.
getCompanySiteId
()));
TimeRangeDialMode
rangeDialMode
=
rangeDialModeRepository
.
findDialModeAtCurrent
(
Long
.
parseLong
(
dto
.
getCampaignId
()),
Long
.
parseLong
(
dto
.
getCompanySiteId
()));
return
result
;
}
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
40f1295f
...
...
@@ -61,12 +61,6 @@ public class CampaignServiceImpl implements CampaignService {
@Autowired
ApParamRepository
apParamRepository
;
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
)
{
return
campaignRepositoryCustom
.
searchCampaignExecute
(
requestDto
);
}
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
...
...
src/main/java/com/viettel/campaign/utils/Config.java
0 → 100644
View file @
40f1295f
package
com.viettel.campaign.utils
;
import
com.viettel.security.PassTranformer
;
import
org.apache.log4j.Logger
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.util.Properties
;
/**
* @author hanv_itsol
* @project campaign
*/
public
class
Config
{
public
static
final
String
APP_CONF_FILE_PATH
=
System
.
getProperty
(
"user.dir"
)
+
File
.
separator
+
"etc"
+
File
.
separator
+
"app.conf"
;
public
static
final
String
LOG_CONF_FILE_PATH
=
System
.
getProperty
(
"user.dir"
)
+
File
.
separator
+
"etc"
+
File
.
separator
+
"log.conf"
;
public
static
String
amcd_xmlrpc_url
;
public
static
int
num_client_amcd_xmlprc
;
// public static final int AGENT_ANSWER_TIMEOUT = 10;
// public static final int AGENT_ACCEPT_TIMEOUT = 10;
// public static final int SMS_ANSWER_TIMEOUT = 24 * 60 * 60;
// public static final int INTERVAL_SCAN_SMS = 100;
// public static final int NUM_SMSGW = 1;
// public static final int NUM_RETRY_SEND_SMSGW = 3;
// public static final int INTERVAL_RETRY_SEND_SMSGW = 10;
// public static final String SMS_SEND_OUT_CHANNEL = "198";
// public static final int INTERVAL_SCAN_FACEBOOK = 100;
// public static final int FACEBOOK_ANSWER_TIMEOUT = 24 * 60 * 60;
// public static final String prefixKeyRedis = "";
// public static final String redisPatternSMS = "";
// public static final String redisPatternFacebook = "";
// public static final String rabbitConnection;
// public static final String fbGatewayUser;
// public static final String fbGatewayPass;
// public static final String virtual_host;
// public static final String rb_queuename_kpi_log;
// public static final String facebook_text_queue_name;
// public static final String app_code;
// public static final String TICKET_SERVICES_URL;
public
static
final
int
redisTimeout
;
public
static
final
String
redisAddress
;
// public static String link_services_ticket;
private
static
final
Properties
properties
=
new
Properties
();
static
{
org
.
apache
.
log4j
.
PropertyConfigurator
.
configure
(
Config
.
LOG_CONF_FILE_PATH
);
try
{
properties
.
load
(
new
FileInputStream
(
APP_CONF_FILE_PATH
));
}
catch
(
IOException
ex
)
{
Logger
.
getLogger
(
Config
.
class
.
getName
()).
error
(
ex
.
getMessage
(),
ex
);
}
PassTranformer
.
setInputKey
(
"Ipcc#987654321#@!"
);
// rabbitConnection = properties.getProperty("rabbit_connection_string");
// fbGatewayUser = PassTranformer.decrypt(properties.getProperty("rabbit_user", "").trim());
// fbGatewayPass = PassTranformer.decrypt(properties.getProperty("rabbit_pass", "").trim());
// virtual_host = properties.getProperty("virtual_host", "/").trim();
// facebook_text_queue_name = properties.getProperty("facebook_text_queue_name", "mt2facebooktext").trim();
// rb_queuename_kpi_log = properties.getProperty("rb_queuename_kpi_log", "econtact_kpi_log").trim();
// app_code = properties.getProperty("app_code", "ECONTACT").trim();
// TICKET_SERVICES_URL = properties.getProperty("ticket_services_url", "").trim();
redisAddress
=
properties
.
getProperty
(
"redis_address"
,
""
).
trim
();
redisTimeout
=
Integer
.
valueOf
(
properties
.
getProperty
(
"redis_timeout"
,
"3000"
).
trim
());
// link_services_ticket = properties.getProperty("link_services_ticket");
}
private
static
String
getString
(
String
key
,
String
defaultValue
)
{
return
properties
.
getProperty
(
key
,
defaultValue
).
trim
();
}
private
static
int
getInt
(
String
key
,
int
defaultValue
)
{
return
Integer
.
valueOf
(
properties
.
getProperty
(
key
,
""
+
defaultValue
).
trim
());
}
}
src/main/java/com/viettel/campaign/utils/RedisUtil.java
0 → 100644
View file @
40f1295f
package
com.viettel.campaign.utils
;
import
org.apache.log4j.Logger
;
import
redis.clients.jedis.JedisCluster
;
import
redis.clients.jedis.HostAndPort
;
import
java.io.Serializable
;
import
java.util.*
;
/**
* @author hanv_itsol
* @project campaign
*/
public
class
RedisUtil
{
private
static
final
Logger
logger
=
Logger
.
getLogger
(
RedisUtil
.
class
);
private
static
volatile
RedisUtil
INSTANCE
=
null
;
private
JedisCluster
jedisCluster
;
private
String
redisAddress
;
private
int
redisTimeout
;
private
RedisUtil
(
JedisCluster
jedisCluster
)
{
this
.
jedisCluster
=
jedisCluster
;
}
public
RedisUtil
(
String
redisAddress
,
int
redisTimeout
)
{
this
.
redisAddress
=
redisAddress
;
this
.
redisTimeout
=
redisTimeout
;
}
public
RedisUtil
()
{
}
public
synchronized
RedisUtil
setup
()
{
if
(
INSTANCE
==
null
)
{
logger
.
info
(
"Start connect Redis: "
+
redisAddress
);
Set
<
HostAndPort
>
hostAndPortNodes
=
new
HashSet
();
String
[]
hostAndPorts
=
redisAddress
.
split
(
","
);
for
(
String
hostAndPort
:
hostAndPorts
)
{
String
[]
parts
=
hostAndPort
.
split
(
":"
);
String
host
=
parts
[
0
];
int
port
=
Integer
.
parseInt
(
parts
[
1
].
trim
());
hostAndPortNodes
.
add
(
new
HostAndPort
(
host
,
port
));
}
INSTANCE
=
new
RedisUtil
(
new
JedisCluster
(
hostAndPortNodes
,
redisTimeout
));
}
return
INSTANCE
;
}
public
static
synchronized
RedisUtil
getInstance
()
{
if
(
INSTANCE
==
null
)
{
INSTANCE
=
new
RedisUtil
().
setup
();
}
return
INSTANCE
;
}
public
JedisCluster
getRedis
()
{
return
INSTANCE
.
jedisCluster
;
}
public
void
setRedisAddress
(
String
dress
)
{
redisAddress
=
dress
;
}
public
void
setRedisTimeout
(
int
timeout
)
{
redisTimeout
=
timeout
;
}
public
String
getRedisAddress
()
{
return
redisAddress
;
}
public
int
getRedisTimeout
()
{
return
redisTimeout
;
}
public
boolean
set
(
String
key
,
Serializable
value
)
{
if
(
key
==
null
)
{
return
false
;
}
// Jedis jedis = null;
try
{
JedisCluster
jedis
=
getRedis
();
jedis
.
set
(
key
.
getBytes
(),
org
.
springframework
.
util
.
SerializationUtils
.
serialize
(
value
));
jedis
.
expire
(
key
.
getBytes
(),
60
);
// exprire
}
catch
(
Exception
ex
)
{
logger
.
error
(
ex
.
getMessage
(),
ex
);
}
return
true
;
}
public
Object
get
(
String
key
)
{
// Jedis jedis = null;
Object
object
=
null
;
try
{
// jedis = pool.getResource();
JedisCluster
jedis
=
getRedis
();
byte
[]
value
=
jedis
.
get
(
key
.
getBytes
());
if
(
value
!=
null
&&
value
.
length
>
0
)
{
object
=
(
Object
)
org
.
springframework
.
util
.
SerializationUtils
.
deserialize
(
value
);
}
}
catch
(
Exception
ex
)
{
logger
.
error
(
ex
.
getMessage
(),
ex
);
}
return
object
;
}
public
void
del
(
String
key
)
{
// Jedis jedis = null;
// Object object = null;
try
{
// jedis = pool.getResource();
JedisCluster
jedis
=
getRedis
();
jedis
.
del
(
key
);
}
catch
(
Exception
ex
)
{
logger
.
error
(
ex
.
getMessage
(),
ex
);
}
}
}
src/main/java/com/viettel/campaign/web/dto/CampaignAgentsDTO.java
0 → 100644
View file @
40f1295f
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
@Getter
@Setter
public
class
CampaignAgentsDTO
extends
BaseDTO
{
Long
campaignAgentId
;
Long
campaignId
;
Long
agentId
;
Short
filterType
;
Integer
status
;
Long
companySiteId
;
Long
reSchedule
;
}
src/main/java/com/viettel/campaign/web/rest/AgentsController.java
View file @
40f1295f
package
com.viettel.campaign.web.rest
;
import
com.viettel.campaign.service.AgentsService
;
import
com.viettel.campaign.web.dto.CampaignAgentsDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -9,6 +10,8 @@ import org.springframework.http.HttpStatus;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
@RestController
@RequestMapping
(
"/ipcc/agents"
)
@CrossOrigin
...
...
@@ -32,4 +35,19 @@ public class AgentsController {
ResultDTO
result
=
agentsService
.
getAllAgentsByCompanySiteId
(
page
,
pageSize
,
companySiteId
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@GetMapping
(
"/findAllSelected"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
listAgentsSelectedByCompanySiteId
(
@RequestParam
(
"page"
)
int
page
,
@RequestParam
(
"pageSize"
)
int
pageSize
,
@RequestParam
(
"companySiteId"
)
Long
companySiteId
,
@RequestParam
(
"campaignId"
)
Long
campaignId
)
{
ResultDTO
result
=
agentsService
.
getAllAgentsSelectedByCompanySiteId
(
page
,
pageSize
,
companySiteId
,
campaignId
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/createCampaignAgents"
)
@ResponseBody
public
ResultDTO
createCustomerList
(
@RequestBody
@Valid
CampaignAgentsDTO
campaignAgentsDTO
)
{
ResultDTO
result
=
new
ResultDTO
();
result
=
agentsService
.
createCampaignAgents
(
campaignAgentsDTO
);
return
result
;
}
}
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
View file @
40f1295f
...
...
@@ -42,7 +42,21 @@ public class CampaignController {
@PostMapping
(
"/searchCampaignExecute"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
searchCampaignExecute
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignService
.
searchCampaignExecute
(
requestDto
);
ResultDTO
result
=
campaignExecuteService
.
searchCampaignExecute
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/getExecuteCampaign"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
getExecuteCampaign
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignExecuteService
.
getExecuteCampaign
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/getCall"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
getCall
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignExecuteService
.
getCall
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
...
...
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
View file @
40f1295f
...
...
@@ -183,6 +183,7 @@ public class CustomerController {
return
new
ResponseEntity
(
result
,
HttpStatus
.
OK
);
}
//<editor-fold desc="Download and import excel" defaultState="collapsed">
@GetMapping
(
value
=
"/downloadFileTemplate"
)
public
ResponseEntity
<
byte
[]>
downloadFileTemplate
(
@RequestParam
(
"companySiteId"
)
Long
companySiteId
)
{
LOGGER
.
debug
(
"--------DOWNLOAD FILE TEMPLATE---------"
);
...
...
@@ -239,14 +240,18 @@ public class CustomerController {
return
new
ResponseEntity
<>(
HttpStatus
.
BAD_REQUEST
);
}
}
//</editor-fold>
@RequestMapping
(
value
=
"/searchCustomerListInfoFromCustomerList"
,
method
=
RequestMethod
.
GET
)
public
ResultDTO
searchCustomerListInfoFromCustomerList
(
@RequestParam
(
"page"
)
int
page
,
@RequestParam
(
"pageSize"
)
int
pageSize
,
@RequestParam
(
"sort"
)
String
sort
,
@RequestParam
(
"campaignId"
)
Long
campaignId
,
@RequestParam
(
"companySiteId"
)
Long
companySiteId
)
{
return
null
;
// customerService.searchCustomerListInfoFromCustomerList(page, pageSize, sort, campaignId, companySiteId);
@PostMapping
(
"/getCustomerListInfo"
)
public
ResponseEntity
<?>
getCustomerListInfo
(
@RequestBody
CampaignCustomerDTO
dto
)
{
List
<
CustomerListDTO
>
customers
=
customerService
.
getCustomerListInfo
(
dto
);
return
new
ResponseEntity
<>(
customers
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/getIndividualCustomerInfo"
)
public
ResponseEntity
<?>
getIndividualCustomerInfo
(
@RequestBody
CampaignCustomerDTO
dto
)
{
List
<
CustomerDTO
>
customers
=
customerService
.
getIndividualCustomerInfo
(
dto
);
return
new
ResponseEntity
<>(
customers
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/getCustomizeField"
)
...
...
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