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
a980081a
Commit
a980081a
authored
Aug 05, 2019
by
Tu Bach
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tubn campaign ticket history
parent
3933b412
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
439 additions
and
51 deletions
+439
-51
src/main/java/com/viettel/campaign/model/Ticket.java
src/main/java/com/viettel/campaign/model/Ticket.java
+159
-0
src/main/java/com/viettel/campaign/model/TicketCatStatus.java
...main/java/com/viettel/campaign/model/TicketCatStatus.java
+41
-0
src/main/java/com/viettel/campaign/repository/TicketRepository.java
...ava/com/viettel/campaign/repository/TicketRepository.java
+6
-0
src/main/java/com/viettel/campaign/repository/TicketRepositoryCustom.java
...m/viettel/campaign/repository/TicketRepositoryCustom.java
+10
-0
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
...ttel/campaign/repository/impl/CampaignRepositoryImpl.java
+1
-1
src/main/java/com/viettel/campaign/repository/impl/TicketRepositoryImpl.java
...iettel/campaign/repository/impl/TicketRepositoryImpl.java
+60
-0
src/main/java/com/viettel/campaign/service/TicketService.java
...main/java/com/viettel/campaign/service/TicketService.java
+7
-0
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java~HEAD
...ettel/campaign/service/impl/CampaignServiceImpl.java~HEAD
+0
-50
src/main/java/com/viettel/campaign/service/impl/TicketServiceImpl.java
.../com/viettel/campaign/service/impl/TicketServiceImpl.java
+34
-0
src/main/java/com/viettel/campaign/web/dto/TicketDTO.java
src/main/java/com/viettel/campaign/web/dto/TicketDTO.java
+93
-0
src/main/java/com/viettel/campaign/web/rest/TicketController.java
.../java/com/viettel/campaign/web/rest/TicketController.java
+28
-0
No files found.
src/main/java/com/viettel/campaign/model/Ticket.java
0 → 100644
View file @
a980081a
package
com.viettel.campaign.model
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.util.Date
;
import
javax.persistence.Basic
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Lob
;
import
javax.persistence.SequenceGenerator
;
import
javax.persistence.Table
;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
javax.xml.bind.annotation.XmlRootElement
;
@Entity
@Table
(
name
=
"TICKET"
)
@XmlRootElement
@Getter
@Setter
public
class
Ticket
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"ticket_seq"
)
@SequenceGenerator
(
name
=
"ticket_seq"
,
sequenceName
=
"ticket_seq"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@NotNull
@Column
(
name
=
"TICKET_ID"
)
private
Long
ticketId
;
@Column
(
name
=
"SOURCE_ID"
)
private
Long
sourceId
;
@Column
(
name
=
"CHANEL_ID"
)
private
Long
chanelId
;
@Column
(
name
=
"CREATE_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
createDate
;
@Size
(
max
=
200
)
@Column
(
name
=
"REF_ID"
)
private
String
refId
;
@Column
(
name
=
"CUSTOMER_ID"
)
private
Long
customerId
;
@Column
(
name
=
"TICKET_STATUS"
)
private
Short
ticketStatus
;
@Column
(
name
=
"RESPONSE_STATUS"
)
private
Long
responseStatus
;
@Column
(
name
=
"PRIORITY_ID"
)
private
Short
priorityId
;
@Column
(
name
=
"RESOLVE_SLA"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
resolveSla
;
@Column
(
name
=
"FIRST_RESPONE_SLA"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
firstResponeSla
;
@Size
(
max
=
400
)
@Column
(
name
=
"AGENT_PROCESS"
)
private
String
agentProcess
;
@Size
(
max
=
400
)
@Column
(
name
=
"AGENT_ASSIGN"
)
private
String
agentAssign
;
@Column
(
name
=
"FIRST_RESPONE_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
firstResponeDate
;
@Column
(
name
=
"RESOLVE_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
resolveDate
;
@Column
(
name
=
"ASSIGN_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
assignDate
;
@Column
(
name
=
"SECOND_RESPONE_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
secondResponeDate
;
@Size
(
max
=
20
)
@Column
(
name
=
"AGENT_ID"
)
private
String
agentId
;
@Size
(
max
=
20
)
@Column
(
name
=
"AGENT_ASSIGN_ID"
)
private
String
agentAssignId
;
@Column
(
name
=
"TICKET_SLA_ID"
)
private
Long
ticketSlaId
;
@Column
(
name
=
"SITE_ID"
)
private
Long
siteId
;
@Column
(
name
=
"REQUEST_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
requestDate
;
@Column
(
name
=
"LAST_REQUEST_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
lastRequestDate
;
@Column
(
name
=
"TICKET_TYPE_ID"
)
private
Long
ticketTypeId
;
@Column
(
name
=
"SECOND_RESPONE_SLA"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
secondResponeSla
;
@Column
(
name
=
"COOPERATE_ID"
)
private
Long
cooperateId
;
@Column
(
name
=
"POST_TYPE_ID"
)
private
Long
postTypeId
;
@Column
(
name
=
"USER_READ"
)
private
String
userRead
;
@Column
(
name
=
"POST_CUSTOMER"
)
private
Long
postCustomer
;
@Column
(
name
=
"REASON"
)
private
String
reason
;
@Column
(
name
=
"PROCESS"
)
private
String
process
;
@Column
(
name
=
"LAST_UPDATE_TIME"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
lastUpdateTime
;
@Column
(
name
=
"SLA_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
slaDate
;
@Column
(
name
=
"SLA_PROCESS_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
slaProcessDate
;
@Column
(
name
=
"SLA_COOPERATE_DATE"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
slaCooperateDate
;
@Column
(
name
=
"SLA_PROCESS_CONFIG"
)
private
Long
slaProcessConfig
;
@Column
(
name
=
"SLA_COOPERATE_CONFIG"
)
private
Long
slaCooperateConfig
;
// @Column(name = "COMPANY_SITE_ID")
// private Long companySiteId;
@Column
(
name
=
"REOPEN_DATE"
)
private
Date
reopenDate
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companyId
;
@Column
(
name
=
"ASSIGN_TYPE"
)
private
Long
assignType
;
//bo sung ignored va close reason
@Column
(
name
=
"IGNORED"
)
private
Long
ignored
;
@Column
(
name
=
"REASON_CAT_ITEM_ID"
)
private
Long
reasonCatItemId
;
@Column
(
name
=
"PROBLEM_CAT_ITEM_ID"
)
private
Long
problemCatItemId
;
@Column
(
name
=
"VIEW_TYPE"
)
private
Long
viewType
;
@Column
(
name
=
"SUBJECT"
)
private
String
subject
;
@Column
(
name
=
"CLASSIFY_REQUIRE_ID"
)
private
Long
classifyRequireId
;
@Column
(
name
=
"AGENT_RECEIVE"
)
private
String
agentReceive
;
@Lob
@Column
(
name
=
"CONTENT_RECEIVE"
)
private
String
contentReceive
;
}
src/main/java/com/viettel/campaign/model/TicketCatStatus.java
0 → 100644
View file @
a980081a
package
com.viettel.campaign.model
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.util.Date
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
@Entity
@Table
(
name
=
"TICKET_CAT_STATUS"
)
@Getter
@Setter
public
class
TicketCatStatus
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"ticket_cat_status_seq"
)
@SequenceGenerator
(
name
=
"ticket_cat_status_seq"
,
sequenceName
=
"ticket_cat_status_seq"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@NotNull
@Column
(
name
=
"STATUS_ID"
)
private
Long
statusId
;
@Size
(
max
=
100
)
@Column
(
name
=
"STATUS_NAME"
)
private
String
statusName
;
@Size
(
max
=
50
)
@Column
(
name
=
"STATUS_CODE"
)
private
String
statusCode
;
@Size
(
max
=
100
)
@Column
(
name
=
"CREATE_BY"
)
private
String
createBy
;
@Column
(
name
=
"CREATE_TIME"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Date
createTime
;
@Column
(
name
=
"COMPANY_ID"
)
private
Long
companyId
;
@Column
(
name
=
"ACTIVE"
)
private
Short
active
;
}
src/main/java/com/viettel/campaign/repository/TicketRepository.java
0 → 100644
View file @
a980081a
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.model.Ticket
;
public
interface
TicketRepository
extends
BaseRepository
<
Ticket
>,
TicketRepositoryCustom
{
}
src/main/java/com/viettel/campaign/repository/TicketRepositoryCustom.java
0 → 100644
View file @
a980081a
package
com.viettel.campaign.repository
;
import
com.viettel.campaign.web.dto.TicketDTO
;
import
org.springframework.data.domain.Pageable
;
import
java.util.List
;
public
interface
TicketRepositoryCustom
{
List
<
TicketDTO
>
getHistory
(
String
customerId
,
Pageable
pageable
);
}
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
View file @
a980081a
...
@@ -61,7 +61,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
...
@@ -61,7 +61,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
item
.
setContent
((
String
)
obj
[
2
]);
item
.
setContent
((
String
)
obj
[
2
]);
item
.
setStartTime
((
Date
)
obj
[
3
]);
item
.
setStartTime
((
Date
)
obj
[
3
]);
item
.
setEndTime
((
Date
)
obj
[
4
]);
item
.
setEndTime
((
Date
)
obj
[
4
]);
item
.
setStatus
((
BigDecimal
)
obj
[
5
]
);
item
.
setStatus
((
(
BigDecimal
)
obj
[
5
]).
shortValueExact
()
);
lst
.
add
(
item
);
lst
.
add
(
item
);
}
}
...
...
src/main/java/com/viettel/campaign/repository/impl/TicketRepositoryImpl.java
0 → 100644
View file @
a980081a
package
com.viettel.campaign.repository.impl
;
import
com.viettel.campaign.repository.TicketRepositoryCustom
;
import
com.viettel.campaign.web.dto.TicketDTO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
javax.persistence.EntityManager
;
import
javax.persistence.Query
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
public
class
TicketRepositoryImpl
implements
TicketRepositoryCustom
{
@Autowired
EntityManager
entityManager
;
@Override
public
List
<
TicketDTO
>
getHistory
(
String
customerId
,
Pageable
pageable
)
{
List
<
TicketDTO
>
lst
=
new
ArrayList
<>();
String
expression
=
new
StringBuilder
()
.
append
(
" SELECT T.TICKET_ID, T.CREATE_DATE, T.SUBJECT, TCS.STATUS_NAME, T.RESOLVE_DATE "
)
.
append
(
" FROM TICKET T "
)
.
append
(
" INNER JOIN TICKET_CAT_STATUS TCS ON T.TICKET_STATUS = TCS.STATUS_ID "
)
.
append
(
" WHERE 1 = 1 "
)
.
append
(
" AND T.CUSTOMER_ID = :pCustomerId "
)
.
toString
();
try
{
Query
query
=
entityManager
.
createNativeQuery
(
expression
);
query
.
setParameter
(
"pCustomerId"
,
customerId
);
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
Object
[]>
data
=
query
.
getResultList
();
for
(
Object
[]
obj
:
data
)
{
TicketDTO
item
=
new
TicketDTO
();
item
.
setTicketId
(((
BigDecimal
)
obj
[
0
]).
longValueExact
());
item
.
setCreateDate
((
Date
)
obj
[
1
]);
item
.
setSubject
((
String
)
obj
[
2
]);
item
.
setStatusName
((
String
)
obj
[
3
]);
item
.
setResolveDate
((
Date
)
obj
[
4
]);
lst
.
add
(
item
);
}
return
lst
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
lst
;
}
}
src/main/java/com/viettel/campaign/service/TicketService.java
0 → 100644
View file @
a980081a
package
com.viettel.campaign.service
;
import
java.util.Map
;
public
interface
TicketService
{
Map
getHistory
(
int
page
,
int
pageSize
,
String
sort
,
String
customerId
);
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java~HEAD
deleted
100644 → 0
View file @
3933b412
package
com
.
viettel
.
campaign
.
service
.
impl
;
<<<<<<<
HEAD
:
src
/
main
/
java
/
com
/
viettel
/
campaign
/
service
/
CampaignServiceImpl
.
java
import
com
.
viettel
.
campaign
.
repository
.
CampaignRepository
;
import
com
.
viettel
.
campaign
.
web
.
dto
.
CampaignDTO
;
=======
import
com
.
viettel
.
campaign
.
dto
.
CampaignDTO
;
import
com
.
viettel
.
campaign
.
dto
.
ResultDTO
;
import
com
.
viettel
.
campaign
.
dto
.
request_dto
.
CampaignRequestDTO
;
import
com
.
viettel
.
campaign
.
model
.
Campaign
;
import
com
.
viettel
.
campaign
.
repository
.
CampaignRepository
;
import
com
.
viettel
.
campaign
.
service
.
CampaignService
;
>>>>>>>
anhvd_campaign_mng
:
src
/
main
/
java
/
com
/
viettel
/
campaign
/
service
/
impl
/
CampaignServiceImpl
.
java
import
org
.
springframework
.
beans
.
factory
.
annotation
.
Autowired
;
import
org
.
springframework
.
data
.
domain
.
Page
;
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
.
ArrayList
;
import
java
.
util
.
HashMap
;
import
java
.
util
.
List
;
import
java
.
util
.
Map
;
@
Service
public
class
CampaignServiceImpl
implements
CampaignService
{
@
Autowired
(
required
=
true
)
CampaignRepository
campaignRepository
;
@
Override
public
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
)
{
Map
result
=
new
HashMap
();
List
<
CampaignDTO
>
lst
=
new
ArrayList
<>();
Pageable
pageable
=
PageRequest
.
of
(
page
,
pageSize
,
Sort
.
by
(
sort
));
lst
=
campaignRepository
.
searchCampaignExecute
(
agentId
,
pageable
);
result
.
put
(
"totalItem"
,
lst
.
size
());
result
.
put
(
"data"
,
lst
);
return
result
;
}
@
Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
return
campaignRepository
.
search
(
requestDto
);
}
}
src/main/java/com/viettel/campaign/service/impl/TicketServiceImpl.java
0 → 100644
View file @
a980081a
package
com.viettel.campaign.service.impl
;
import
com.viettel.campaign.repository.TicketRepository
;
import
com.viettel.campaign.service.TicketService
;
import
com.viettel.campaign.web.dto.TicketDTO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
TicketServiceImpl
implements
TicketService
{
@Autowired
TicketRepository
ticketRepository
;
@Override
public
Map
getHistory
(
int
page
,
int
pageSize
,
String
sort
,
String
customerId
)
{
Map
result
=
new
HashMap
();
List
<
TicketDTO
>
lst
=
new
ArrayList
<>();
lst
=
ticketRepository
.
getHistory
(
customerId
,
PageRequest
.
of
(
page
,
pageSize
,
Sort
.
by
(
sort
)));
result
.
put
(
"totalItem"
,
lst
.
size
());
result
.
put
(
"tickets"
,
lst
);
return
result
;
}
}
src/main/java/com/viettel/campaign/web/dto/TicketDTO.java
0 → 100644
View file @
a980081a
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
@Setter
public
class
TicketDTO
extends
BaseDTO
{
private
Long
ticketId
;
private
Long
sourceId
;
private
Date
createDate
;
private
String
refId
;
private
Long
customerId
;
private
Short
ticketStatus
;
private
Short
responseStatus
;
private
Short
priorityId
;
private
Date
resolveSla
;
private
Date
firstResponeSla
;
private
String
agentProcess
;
private
Date
firstResponeDate
;
private
Date
resolveDate
;
private
Date
assignDate
;
private
Date
secondResponeDate
;
private
String
agentId
;
private
Long
ticketSlaId
;
private
Long
companyId
;
private
Long
siteId
;
private
Date
requestDate
;
private
Date
lastRequestDate
;
private
Long
ticketTypeId
;
private
Long
ticketTypeTemp
;
private
Date
secondResponeSla
;
private
Long
cooperateId
;
private
String
subject
;
private
String
customerName
;
private
String
sourceName
;
private
Long
chanelId
;
private
int
overDue
;
private
String
fromDate
;
private
String
toDate
;
private
String
customerCode
;
private
String
agentAssignId
;
private
String
agentAssign
;
private
String
userLogin
;
private
Long
readed
;
private
String
emailFrom
;
private
String
ticketTypeName
;
private
Short
ticketStatusTemp
;
private
Short
priorityTemp
;
private
Long
postTypeId
;
private
String
postTypeName
;
private
Long
postCustomer
;
private
Long
agentAssignType
;
private
String
reason
;
private
String
process
;
private
Long
agentSiteId
;
private
String
agentRole
;
private
String
agentAssignTemp
;
private
String
agentAssignIdTemp
;
private
Long
siteAssignIdTemp
;
private
Long
siteAssign
;
private
Double
dateDiff
;
private
String
fromUser
;
private
Long
sendType
;
private
String
content
;
private
Date
createDateDetail
;
private
String
toUser
;
private
String
postContent
;
private
Date
postTime
;
private
String
link
;
private
Long
numLike
;
private
Long
numShare
;
private
Long
numView
;
private
Double
timeResponse
;
private
String
name
;
private
String
lastReflect
;
private
String
statusName
;
private
String
priorityName
;
private
String
siteName
;
private
int
maxRow
;
private
String
channelName
;
private
String
sendTypeName
;
private
Date
fromDateValue
;
private
Date
toDateValue
;
}
src/main/java/com/viettel/campaign/web/rest/TicketController.java
0 → 100644
View file @
a980081a
package
com.viettel.campaign.web.rest
;
import
com.viettel.campaign.service.TicketService
;
import
org.apache.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Map
;
@RestController
@RequestMapping
(
"/ipcc/ticket"
)
@CrossOrigin
public
class
TicketController
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
TicketController
.
class
);
@Autowired
TicketService
ticketService
;
@GetMapping
(
"/getHistory"
)
@ResponseBody
public
ResponseEntity
searchCampaignExecute
(
@RequestParam
(
"page"
)
int
page
,
@RequestParam
(
"pageSize"
)
int
pageSize
,
@RequestParam
(
"sort"
)
String
sort
,
@RequestParam
(
"customerId"
)
String
customerId
)
{
Map
result
=
ticketService
.
getHistory
(
page
,
pageSize
,
sort
,
customerId
);
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