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
7cdb69ac
Commit
7cdb69ac
authored
Aug 06, 2019
by
Vu Duy Anh
Browse files
Options
Browse Files
Download
Plain Diff
anhvd commit TimeRangedial + TimeZoneDial
parents
52b3bc98
6b55d2d4
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
259 additions
and
57 deletions
+259
-57
src/main/java/com/viettel/campaign/model/CampaignCustomer.java
...ain/java/com/viettel/campaign/model/CampaignCustomer.java
+57
-0
src/main/java/com/viettel/campaign/repository/CampaignRepository.java
...a/com/viettel/campaign/repository/CampaignRepository.java
+10
-0
src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
...viettel/campaign/repository/CampaignRepositoryCustom.java
+2
-5
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
...ttel/campaign/repository/impl/CampaignRepositoryImpl.java
+108
-31
src/main/java/com/viettel/campaign/service/CampaignService.java
...in/java/com/viettel/campaign/service/CampaignService.java
+3
-1
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+21
-16
src/main/java/com/viettel/campaign/utils/SQLBuilder.java
src/main/java/com/viettel/campaign/utils/SQLBuilder.java
+18
-0
src/main/java/com/viettel/campaign/web/dto/CampaignCustomerDTO.java
...ava/com/viettel/campaign/web/dto/CampaignCustomerDTO.java
+29
-0
src/main/java/com/viettel/campaign/web/dto/ResultDTO.java
src/main/java/com/viettel/campaign/web/dto/ResultDTO.java
+1
-0
src/main/java/com/viettel/campaign/web/dto/request_dto/CampaignRequestDTO.java
...ttel/campaign/web/dto/request_dto/CampaignRequestDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
...ttel/campaign/web/rest/controller/CampaignController.java
+9
-3
No files found.
src/main/java/com/viettel/campaign/model/CampaignCustomer.java
0 → 100644
View file @
7cdb69ac
package
com.viettel.campaign.model
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
@Entity
@Table
(
name
=
"CAMPAIGN_CUSTOMER"
)
@Getter
@Setter
public
class
CampaignCustomer
{
@Id
@Basic
(
optional
=
false
)
@NotNull
@Column
(
name
=
"CAMPAIGN_CUSTOMERLIST_ID"
)
private
Long
campaignCustomerListId
;
@Column
(
name
=
"CAMPAIGN_ID"
)
private
Long
campaignId
;
@Column
(
name
=
"CUSTOMER_ID"
)
private
Long
customerId
;
@Column
(
name
=
"STATUS"
)
private
Short
status
;
@Column
(
name
=
"AGENT_ID"
)
private
Long
agentId
;
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"RECALL_TIME"
)
private
Date
recallTime
;
@Column
(
name
=
"RECALL_COUNT"
)
private
Long
recallCount
=
0L
;
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"CALL_TIME"
)
private
Date
callTime
;
@Column
(
name
=
"CUSTOMER_LIST_ID"
)
private
Long
customerListId
;
@Column
(
name
=
"IN_CAMPAIGN_STATUS"
)
private
Short
inCampaignStatus
;
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"SEND_TIME"
)
private
Date
sendTime
;
@Column
(
name
=
"PROCESS_STATUS"
)
private
Short
processStatus
=
0
;
@Column
(
name
=
"CONTACT_STATUS"
)
private
Short
contactStatus
;
@Column
(
name
=
"REDISTRIBUTE"
)
private
Short
redistribute
;
@Column
(
name
=
"SESSION_ID"
)
private
String
sessionId
;
@Column
(
name
=
"CALL_STATUS"
)
private
Long
callStatus
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
@Column
(
name
=
"COMPLAIN_ID"
)
private
Long
complainId
;
}
src/main/java/com/viettel/campaign/repository/CampaignRepository.java
View file @
7cdb69ac
...
@@ -2,8 +2,18 @@ package com.viettel.campaign.repository;
...
@@ -2,8 +2,18 @@ package com.viettel.campaign.repository;
import
com.viettel.campaign.model.Campaign
;
import
com.viettel.campaign.model.Campaign
;
import
org.springframework.data.jpa.repository.JpaRepository
;
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
org.springframework.stereotype.Repository
;
@Repository
@Repository
public
interface
CampaignRepository
extends
JpaRepository
<
Campaign
,
Long
>,
CampaignRepositoryCustom
{
public
interface
CampaignRepository
extends
JpaRepository
<
Campaign
,
Long
>,
CampaignRepositoryCustom
{
@Query
(
"SELECT COUNT(c.campaignId) "
+
" FROM Campaign c JOIN CampaignCustomer cc ON c.campaignId = cc.campaignId "
+
" WHERE cc.companySiteId = :pCompanySiteId "
+
" AND cc.status = 1 "
+
" AND cc.recallTime <= sysdate "
+
" AND cc.agentId = :pAgentId"
)
Long
countRecallCustomer
(
@Param
(
"pCompanySiteId"
)
Long
pCompanySiteId
,
@Param
(
"pAgentId"
)
Long
pAgentId
);
}
}
src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
View file @
7cdb69ac
package
com.viettel.campaign.repository
;
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
@Repository
public
interface
CampaignRepositoryCustom
{
public
interface
CampaignRepositoryCustom
{
List
<
CampaignDTO
>
searchCampaignExecute
(
String
agentId
,
Pageable
pageable
);
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
campaignRequestDto
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
);
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
);
}
}
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
View file @
7cdb69ac
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CampaignService.java
View file @
7cdb69ac
...
@@ -7,11 +7,13 @@ import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
...
@@ -7,11 +7,13 @@ import com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO;
import
java.util.Map
;
import
java.util.Map
;
public
interface
CampaignService
{
public
interface
CampaignService
{
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
);
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
);
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
);
ResultDTO
addNewCampaign
(
CampaignDTO
campaignDTO
);
ResultDTO
addNewCampaign
(
CampaignDTO
campaignDTO
);
Map
countRecallCustomer
(
Long
companySiteId
,
Long
agentId
);
}
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
7cdb69ac
...
@@ -12,15 +12,10 @@ import org.apache.logging.log4j.LogManager;
...
@@ -12,15 +12,10 @@ import org.apache.logging.log4j.LogManager;
import
org.apache.logging.log4j.Logger
;
import
org.apache.logging.log4j.Logger
;
import
org.modelmapper.ModelMapper
;
import
org.modelmapper.ModelMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
@Service
@Service
...
@@ -35,17 +30,8 @@ public class CampaignServiceImpl implements CampaignService {
...
@@ -35,17 +30,8 @@ public class CampaignServiceImpl implements CampaignService {
ModelMapper
modelMapper
;
ModelMapper
modelMapper
;
@Override
@Override
public
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
)
{
public
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
)
{
Map
result
=
new
HashMap
();
return
campaignRepository
.
searchCampaignExecute
(
requestDto
);
Pageable
pageable
=
PageRequest
.
of
(
page
,
pageSize
,
Sort
.
by
(
sort
));
List
<
CampaignDTO
>
lst
=
campaignRepository
.
searchCampaignExecute
(
agentId
,
pageable
);
List
<
CampaignDTO
>
count
=
campaignRepository
.
searchCampaignExecute
(
agentId
,
null
);
result
.
put
(
"totalItem"
,
count
.
size
());
result
.
put
(
"data"
,
lst
);
return
result
;
}
}
@Override
@Override
...
@@ -76,4 +62,23 @@ public class CampaignServiceImpl implements CampaignService {
...
@@ -76,4 +62,23 @@ public class CampaignServiceImpl implements CampaignService {
}
}
return
resultDTO
;
return
resultDTO
;
}
}
public
Map
countRecallCustomer
(
Long
companySiteId
,
Long
agentId
)
{
Map
result
=
new
HashMap
();
Long
count
=
campaignRepository
.
countRecallCustomer
(
companySiteId
,
agentId
);
ResultDTO
resultDTO
=
new
ResultDTO
();
if
(
count
!=
null
)
{
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
result
.
put
(
"info"
,
resultDTO
);
result
.
put
(
"result"
,
count
);
}
else
{
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
result
.
put
(
"info"
,
resultDTO
);
result
.
put
(
"result"
,
0
);
}
return
result
;
}
}
}
src/main/java/com/viettel/campaign/utils/SQLBuilder.java
View file @
7cdb69ac
...
@@ -3,7 +3,13 @@ import java.io.File;
...
@@ -3,7 +3,13 @@ import java.io.File;
import
java.nio.file.Files
;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.nio.file.Paths
;
import
java.io.IOException
;
import
java.io.IOException
;
import
com.viettel.campaign.web.dto.BaseDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
/**
/**
* @author anhvd_itsol
* @author anhvd_itsol
...
@@ -30,4 +36,16 @@ public class SQLBuilder {
...
@@ -30,4 +36,16 @@ public class SQLBuilder {
}
}
return
null
;
return
null
;
}
}
public
static
Pageable
buildPageable
(
BaseDTO
obj
)
{
Pageable
pageable
=
null
;
if
(
DataUtil
.
isNullOrEmpty
(
obj
.
getSort
()))
{
pageable
=
PageRequest
.
of
(
obj
.
getPage
(),
obj
.
getPageSize
(),
null
);
}
else
{
String
[]
sorts
=
obj
.
getSort
().
split
(
","
);
Sort
sort
=
new
Sort
(
Sort
.
Direction
.
fromString
(
sorts
[
1
]),
sorts
[
0
]);
pageable
=
PageRequest
.
of
(
obj
.
getPage
(),
obj
.
getPageSize
(),
sort
);
}
return
pageable
;
}
}
}
src/main/java/com/viettel/campaign/web/dto/CampaignCustomerDTO.java
0 → 100644
View file @
7cdb69ac
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
@Setter
public
class
CampaignCustomerDTO
{
private
Long
campaignCustomerListId
;
private
Long
campaignId
;
private
Long
customerId
;
private
Short
status
;
private
Long
agentId
;
private
Date
recallTime
;
private
Long
recallCount
=
0L
;
private
Date
callTime
;
private
Long
customerListId
;
private
Short
inCampaignStatus
;
private
Date
sendTime
;
private
Short
processStatus
=
0
;
private
Short
contactStatus
;
private
Short
redistribute
;
private
String
sessionId
;
private
Long
callStatus
;
private
Long
companySiteId
;
private
Long
complainId
;
}
src/main/java/com/viettel/campaign/web/dto/ResultDTO.java
View file @
7cdb69ac
...
@@ -13,4 +13,5 @@ public class ResultDTO {
...
@@ -13,4 +13,5 @@ public class ResultDTO {
private
String
description
;
private
String
description
;
private
List
<?>
listData
=
new
ArrayList
();
private
List
<?>
listData
=
new
ArrayList
();
private
Object
data
;
private
Object
data
;
private
int
totalRow
=
0
;
}
}
src/main/java/com/viettel/campaign/web/dto/request_dto/CampaignRequestDTO.java
View file @
7cdb69ac
...
@@ -8,7 +8,6 @@ import lombok.Setter;
...
@@ -8,7 +8,6 @@ import lombok.Setter;
* @author anhvd_itsol
* @author anhvd_itsol
*/
*/
@Getter
@Getter
@Setter
@Setter
public
class
CampaignRequestDTO
extends
BaseDTO
{
public
class
CampaignRequestDTO
extends
BaseDTO
{
...
@@ -24,5 +23,6 @@ public class CampaignRequestDTO extends BaseDTO {
...
@@ -24,5 +23,6 @@ public class CampaignRequestDTO extends BaseDTO {
Short
type
;
Short
type
;
Short
chanel
;
Short
chanel
;
String
companySiteId
;
String
companySiteId
;
String
agentId
;
String
types
;
String
types
;
}
}
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
View file @
7cdb69ac
...
@@ -21,10 +21,10 @@ public class CampaignController {
...
@@ -21,10 +21,10 @@ public class CampaignController {
@Autowired
@Autowired
CampaignService
campaignService
;
CampaignService
campaignService
;
@
Ge
tMapping
(
"/searchCampaignExecute"
)
@
Reques
tMapping
(
"/searchCampaignExecute"
)
@ResponseBody
@ResponseBody
public
ResponseEntity
searchCampaignExecute
(
@RequestParam
(
"page"
)
int
page
,
@RequestParam
(
"pageSize"
)
int
pageSize
,
@RequestParam
(
"sort"
)
String
sort
,
@RequestParam
(
"agentId"
)
String
agentId
)
{
public
ResponseEntity
<
ResultDTO
>
searchCampaignExecute
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
Map
result
=
campaignService
.
searchCampaignExecute
(
page
,
pageSize
,
sort
,
agentId
);
ResultDTO
result
=
campaignService
.
searchCampaignExecute
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
...
@@ -44,4 +44,10 @@ public class CampaignController {
...
@@ -44,4 +44,10 @@ public class CampaignController {
return
campaignService
.
findByCampaignCode
(
dto
);
return
campaignService
.
findByCampaignCode
(
dto
);
}
}
@GetMapping
(
"/countRecallCustomer"
)
@ResponseBody
public
ResponseEntity
countRecallCustomer
(
@RequestParam
(
"companySiteId"
)
Long
companySiteId
,
@RequestParam
(
"agentId"
)
Long
agentId
)
{
Map
result
=
campaignService
.
countRecallCustomer
(
companySiteId
,
agentId
);
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