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
5 years ago
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
);
...
...
This diff is collapsed.
Click to expand it.
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
);
}
This diff is collapsed.
Click to expand it.
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
);
}
This diff is collapsed.
Click to expand it.
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
);
}
This diff is collapsed.
Click to expand it.
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
;
}
}
This diff is collapsed.
Click to expand it.
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::"
);
...
...
This diff is collapsed.
Click to expand it.
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
);
}
This diff is collapsed.
Click to expand it.
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
);
...
...
This diff is collapsed.
Click to expand it.
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
;
}
}
This diff is collapsed.
Click to expand it.
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
)
{
...
...
This diff is collapsed.
Click to expand it.
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
);
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment