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
8d22a9c0
Commit
8d22a9c0
authored
Aug 06, 2019
by
Tu Bach
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tubn campaign execute
parent
661ba580
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
258 additions
and
58 deletions
+258
-58
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
+105
-31
src/main/java/com/viettel/campaign/service/CampaignService.java
...in/java/com/viettel/campaign/service/CampaignService.java
+3
-2
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+23
-17
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
-0
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 @
8d22a9c0
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 @
8d22a9c0
...
...
@@ -2,8 +2,18 @@ package com.viettel.campaign.repository;
import
com.viettel.campaign.model.Campaign
;
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
;
@Repository
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 @
8d22a9c0
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.request_dto.CampaignRequestDTO
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
public
interface
CampaignRepositoryCustom
{
List
<
CampaignDTO
>
searchCampaignExecute
(
String
agentId
,
Pageable
pageable
);
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
campaignRequestDto
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
);
}
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
View file @
8d22a9c0
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CampaignService.java
View file @
8d22a9c0
package
com.viettel.campaign.service
;
import
com.viettel.campaign.web.dto.CampaignCustomerDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
java.util.Map
;
public
interface
CampaignService
{
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
);
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
);
Map
countRecallCustomer
(
Long
companySiteId
,
Long
agentId
);
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
8d22a9c0
package
com.viettel.campaign.service.impl
;
import
com.viettel.campaign.model.Campaign
;
import
com.viettel.campaign.repository.CampaignRepository
;
import
com.viettel.campaign.service.CampaignService
;
import
com.viettel.campaign.
web.dto.CampaignDTO
;
import
com.viettel.campaign.
utils.Constants
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
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.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
...
...
@@ -23,17 +18,8 @@ public class CampaignServiceImpl implements CampaignService {
CampaignRepository
campaignRepository
;
@Override
public
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
)
{
Map
result
=
new
HashMap
();
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
;
public
ResultDTO
searchCampaignExecute
(
CampaignRequestDTO
requestDto
)
{
return
campaignRepository
.
searchCampaignExecute
(
requestDto
);
}
@Override
...
...
@@ -45,4 +31,24 @@ public class CampaignServiceImpl implements CampaignService {
public
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
)
{
return
campaignRepository
.
findByCampaignCode
(
requestDTO
);
}
@Override
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 @
8d22a9c0
...
...
@@ -3,7 +3,13 @@ import java.io.File;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
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.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
/**
* @author anhvd_itsol
...
...
@@ -29,4 +35,16 @@ public class SQLBuilder {
}
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 @
8d22a9c0
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 @
8d22a9c0
...
...
@@ -13,4 +13,5 @@ public class ResultDTO {
private
String
description
;
private
List
<?>
listData
=
new
ArrayList
();
private
Object
data
;
private
int
totalRow
=
0
;
}
src/main/java/com/viettel/campaign/web/dto/request_dto/CampaignRequestDTO.java
View file @
8d22a9c0
...
...
@@ -24,4 +24,5 @@ public class CampaignRequestDTO extends BaseDTO {
Short
type
;
Short
chanel
;
String
companySiteId
;
String
agentId
;
}
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
View file @
8d22a9c0
...
...
@@ -21,10 +21,10 @@ public class CampaignController {
@Autowired
CampaignService
campaignService
;
@
Ge
tMapping
(
"/searchCampaignExecute"
)
@
Reques
tMapping
(
"/searchCampaignExecute"
)
@ResponseBody
public
ResponseEntity
searchCampaignExecute
(
@RequestParam
(
"page"
)
int
page
,
@RequestParam
(
"pageSize"
)
int
pageSize
,
@RequestParam
(
"sort"
)
String
sort
,
@RequestParam
(
"agentId"
)
String
agentId
)
{
Map
result
=
campaignService
.
searchCampaignExecute
(
page
,
pageSize
,
sort
,
agentId
);
public
ResponseEntity
<
ResultDTO
>
searchCampaignExecute
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignService
.
searchCampaignExecute
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
...
...
@@ -39,4 +39,10 @@ public class CampaignController {
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