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
1fdd0ee6
Commit
1fdd0ee6
authored
Aug 14, 2019
by
Tu Bach
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tubn campaign execute search
parent
6681858b
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
293 additions
and
154 deletions
+293
-154
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
+148
-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/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/CampaignExecuteServiceImp.java
...ttel/campaign/service/impl/CampaignExecuteServiceImp.java
+102
-3
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/web/rest/CampaignController.java
...ava/com/viettel/campaign/web/rest/CampaignController.java
+15
-1
No files found.
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignExecuteRepository.java
View file @
1fdd0ee6
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 @
1fdd0ee6
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 @
1fdd0ee6
...
...
@@ -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 @
1fdd0ee6
...
...
@@ -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 @
1fdd0ee6
...
...
@@ -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
;
...
...
@@ -28,6 +34,8 @@ import org.springframework.stereotype.Repository;
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 +49,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 +186,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 +322,133 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
return
true
;
}
@Override
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 @
1fdd0ee6
...
...
@@ -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/CampaignExecuteService.java
View file @
1fdd0ee6
...
...
@@ -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 @
1fdd0ee6
...
...
@@ -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/CampaignExecuteServiceImp.java
View file @
1fdd0ee6
package
com.viettel.campaign.service.impl
;
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.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.CampaignExecuteRepository
;
import
com.viettel.campaign.repository.ccms_full.CampaignRepositoryCustom
;
import
com.viettel.campaign.repository.ccms_full.TimeRangeDialModeRepository
;
import
com.viettel.campaign.repository.ccms_full.TimeZoneDialModeRepository
;
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 +28,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 +36,22 @@ 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
TimeZoneDialModeRepository
zoneDialModeRepository
;
@Autowired
TimeRangeDialModeRepository
rangeDialModeRepository
;
//<editor-fold: hungtt>
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
...
...
@@ -194,4 +214,83 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
cell
.
setCellStyle
(
rowStyle
);
}
//</editor-fold: hungtt>
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
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
.
getByAgentId
(
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
(
"AVAILABLE"
))
{
//if (zoneDialMode != null && zoneDialMode.getDialMode().equals(0) || rangeDialMode != null && rangeDialMode.getDialMode().equals(0))
data
.
put
(
"dialModeManual"
,
"1"
);
}
}
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
.
getByAgentId
(
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))
Agents
a
=
new
Agents
();
a
.
setAgentId
(
requestDto
.
getAgentId
());
a
.
setCampaignSystemStatus
(
"AVAILABLE"
);
a
.
setCurrentCampaignId
(
Long
.
parseLong
(
requestDto
.
getCampaignId
()));
saveAgents
(
a
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
Agents
saveAgents
(
Agents
a
)
{
return
agentsRepository
.
save
(
a
);
}
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
CampaignAgent
saveCampaignAgent
(
CampaignAgent
ca
)
{
return
null
;
}
@Override
public
ResultDTO
getCall
(
CampaignRequestDTO
dto
)
{
ResultDTO
result
=
new
ResultDTO
();
Map
data
=
new
HashMap
();
data
.
put
(
"campaignId"
,
dto
.
getCampaignId
());
Agents
agents
=
agentsRepository
.
getByAgentId
(
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 @
1fdd0ee6
...
...
@@ -60,12 +60,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/web/rest/CampaignController.java
View file @
1fdd0ee6
...
...
@@ -39,7 +39,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
);
}
...
...
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