Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-platform-udesk
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
base_platform_enterprise
gic-platform-udesk
Commits
e577769f
Commit
e577769f
authored
Feb 24, 2020
by
guojuxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加不需要同步到tapd的触发器
parent
7923bee7
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
165 additions
and
0 deletions
+165
-0
UdeskMessageApiService.java
...in/java/com/gic/udesk/service/UdeskMessageApiService.java
+2
-0
UdeskMessageApiServiceImpl.java
.../udesk/service/outer/impl/UdeskMessageApiServiceImpl.java
+150
-0
MessageController.java
.../java/com/gic/udesk/web/controller/MessageController.java
+13
-0
No files found.
gic-platform-udesk-api/src/main/java/com/gic/udesk/service/UdeskMessageApiService.java
View file @
e577769f
...
...
@@ -14,4 +14,6 @@ public interface UdeskMessageApiService {
* @return com.gic.api.base.commons.ServiceResponse<java.lang.String>
*/
ServiceResponse
<
String
>
saveUdeskMessage
(
UdeskMessageDTO
messageDTO
);
ServiceResponse
<
String
>
saveUdeskMessageNoTapd
(
UdeskMessageDTO
messageDTO
);
}
gic-platform-udesk-service/src/main/java/com/gic/udesk/service/outer/impl/UdeskMessageApiServiceImpl.java
View file @
e577769f
...
...
@@ -311,6 +311,156 @@ public class UdeskMessageApiServiceImpl implements UdeskMessageApiService {
return
null
;
}
@Override
public
ServiceResponse
<
String
>
saveUdeskMessageNoTapd
(
UdeskMessageDTO
messageDTO
)
{
TabUdeskMessage
tabUdeskMessage
=
new
TabUdeskMessage
();
tabUdeskMessage
.
setEvent
(
messageDTO
.
getEvent
());
tabUdeskMessage
.
setMsgBody
(
messageDTO
.
getMsgBody
());
tabUdeskMessage
.
setSource
(
messageDTO
.
getSource
());
tabUdeskMessage
.
setStatus
(
UdeskConstant
.
UNDELETED
);
tabUdeskMessage
.
setTopic
(
messageDTO
.
getTopic
());
int
messageId
=
udeskMessageService
.
save
(
tabUdeskMessage
);
//设置主键,用于update
tabUdeskMessage
.
setId
(
messageId
);
logger
.
info
(
"消息为{}已经保存成功"
,
messageDTO
);
//创建工单消息
if
(
UdeskConstant
.
TICKET_CREATE
.
equals
(
messageDTO
.
getEvent
()))
{
//udesk工单ID
String
id
=
messageDTO
.
getMsgBody
();
//udesk工单详情接口
String
detailStr
=
this
.
getUdeskTicketDetail
(
id
);
UdeskTicketDetailDTO
detail
=
JSON
.
parseObject
(
detailStr
,
UdeskTicketDetailDTO
.
class
);
if
(
detail
.
getCode
()
==
UdeskConstant
.
UDESK_SUCCESS_CODE
)
{
//usesk工单信息
TicketDTO
ticket
=
detail
.
getTicket
();
//udesk自定义字段信息
Map
<
String
,
String
>
customFields
=
ticket
.
getCustom_fields
();
//udesk工单表实体
TabUdeskTicket
tabUdeskTicket
=
new
TabUdeskTicket
();
if
(
customFields
!=
null
)
{
//udesk客服名称--tapd创建人
String
staffValue
=
customFields
.
get
(
UdeskConstant
.
UDESK_FIELD_STAFF
);
tabUdeskTicket
.
setServiceStaff
(
udeskTapdRelMap
.
get
(
UdeskConstant
.
UDESK_FIELD_STAFF
+
":"
+
staffValue
));
//tapd项目ID
String
workspaceValue
=
customFields
.
get
(
UdeskConstant
.
UDESK_FIELD_WORKSPACE
);
tabUdeskTicket
.
setWorkspaceId
(
udeskTapdRelMap
.
get
(
UdeskConstant
.
UDESK_FIELD_WORKSPACE
+
":"
+
workspaceValue
));
//TPAD当前处理人
String
transactorValue
=
customFields
.
get
(
UdeskConstant
.
UDESK_FIELD_TRANSACTOR
);
if
(
StringUtils
.
isNotBlank
(
transactorValue
))
{
String
[]
transactors
=
transactorValue
.
split
(
","
);
StringBuilder
builder
=
new
StringBuilder
();
for
(
String
transactor
:
transactors
)
{
builder
.
append
(
udeskTapdRelMap
.
get
(
UdeskConstant
.
UDESK_FIELD_TRANSACTOR
+
":"
+
transactor
))
.
append
(
";"
);
}
tabUdeskTicket
.
setCurrentOwner
(
builder
.
toString
());
}
//填充部分自定义字段值
this
.
setUdeskCostomFields
(
tabUdeskTicket
,
new
TapdBugBaseDTO
(),
customFields
);
}
//受理客服id
tabUdeskTicket
.
setAssigneeId
(
ticket
.
getAssignee_id
());
//受理客服姓名
tabUdeskTicket
.
setAssigneeName
(
ticket
.
getAssignee_name
());
//创建人id
tabUdeskTicket
.
setCreatorId
(
ticket
.
getCreator_id
());
//工单编号
tabUdeskTicket
.
setFieldNum
(
ticket
.
getField_num
());
//工单id
tabUdeskTicket
.
setId
(
ticket
.
getId
());
//客户所属公司id
Integer
organizationId
=
ticket
.
getOrganization_id
();
if
(
organizationId
!=
null
)
{
this
.
setOrganizationIdAndName
(
tabUdeskTicket
,
organizationId
);
}
//填充工单优先级中文名称
this
.
setPriority
(
ticket
,
tabUdeskTicket
,
new
TapdBugBaseDTO
());
tabUdeskTicket
.
setStatus
(
UdeskConstant
.
UNDELETED
);
//状态英文名称
tabUdeskTicket
.
setStatusEn
(
ticket
.
getStatus_en
());
//tapd状态值
tabUdeskTicket
.
setStatusTapd
(
udeskTapdRelMap
.
get
(
ticket
.
getStatus_en
()));
//标题
tabUdeskTicket
.
setSubject
(
ticket
.
getSubject
());
//客户id
tabUdeskTicket
.
setUserId
(
ticket
.
getUser_id
());
//客户姓名
tabUdeskTicket
.
setUserName
(
ticket
.
getUser_name
());
try
{
udeskTicketService
.
save
(
tabUdeskTicket
);
updateGicTicketStatus
(
Integer
.
parseInt
(
id
),
ticket
.
getStatus_en
());
logger
.
info
(
"工单id为{}已经保存成功"
,
ticket
.
getId
());
}
catch
(
DataIntegrityViolationException
|
ConstraintViolationException
e
)
{
logger
.
info
(
"工单id为{}已经保存失败,重复插入"
,
ticket
.
getId
(),
e
);
return
null
;
}
}
else
{
String
exceptionRecord
=
"工单id为"
+
id
+
"请求udesk工单详情异常,返回为"
+
detailStr
;
logger
.
info
(
exceptionRecord
);
udeskBaseApiService
.
saveUdeskException
(
exceptionRecord
);
}
}
else
if
(
UdeskConstant
.
TICKET_UPDATE
.
equals
(
messageDTO
.
getEvent
()))
{
//更新消息
String
id
=
messageDTO
.
getMsgBody
();
String
detailStr
=
this
.
getUdeskTicketDetail
(
id
);
UdeskTicketDetailDTO
detail
=
JSON
.
parseObject
(
detailStr
,
UdeskTicketDetailDTO
.
class
);
logger
.
info
(
"工单详情{}"
,
detail
!=
null
?
JSON
.
toJSONString
(
detail
)
:
null
);
if
(
detail
.
getCode
()
==
UdeskConstant
.
UDESK_SUCCESS_CODE
)
{
//udesk接口查询的工单信息
TicketDTO
ticket
=
detail
.
getTicket
();
//数据库查询的工单记录信息
TabUdeskTicket
tabUdeskTicket
=
udeskTicketService
.
getById
(
Integer
.
parseInt
(
id
));
if
(
tabUdeskTicket
==
null
)
{
UdeskMessageDTO
createMessage
=
new
UdeskMessageDTO
();
//事件类型 创建/更新
createMessage
.
setEvent
(
UdeskConstant
.
TICKET_CREATE
);
//工单ID
createMessage
.
setMsgBody
(
id
);
createMessage
.
setSource
(
UdeskConstant
.
UDESK_UPDATE_CREATE
);
//消息主题
createMessage
.
setTopic
(
UdeskConstant
.
UDESK_TICKET_TOPIC
);
ServiceResponse
<
String
>
saveResult
=
this
.
saveUdeskMessage
(
createMessage
);
String
bugId
=
saveResult
.
getResult
();
//删除消息status = 0
this
.
updateTabUdeskMessage
(
tabUdeskMessage
,
id
,
bugId
);
return
ServiceResponse
.
success
(
bugId
);
}
//工单状态英文名称
String
statusEn
=
ticket
.
getStatus_en
();
//如果udesk工单状态不等于本地数据库对应的工单状态
if
(
StringUtils
.
isNotBlank
(
statusEn
)
&&
!
statusEn
.
equals
(
tabUdeskTicket
.
getStatusEn
()))
{
//获取字典的状态值
String
tapdStatus
=
udeskTapdRelMap
.
get
(
statusEn
);
tabUdeskTicket
.
setStatusEn
(
statusEn
);
tabUdeskTicket
.
setStatusTapd
(
tapdStatus
);
}
tabUdeskTicket
.
setSubject
(
ticket
.
getSubject
());
this
.
setPriority
(
ticket
,
tabUdeskTicket
,
new
TapdBugBaseDTO
());
Integer
organizationId
=
ticket
.
getOrganization_id
();
if
(
organizationId
!=
null
&&
!
organizationId
.
equals
(
tabUdeskTicket
.
getOrganizationId
())){
this
.
setOrganizationIdAndName
(
tabUdeskTicket
,
organizationId
);
}
Map
<
String
,
String
>
customFields
=
ticket
.
getCustom_fields
();
if
(
customFields
!=
null
){
this
.
setUdeskCostomFields
(
tabUdeskTicket
,
new
TapdBugBaseDTO
(),
customFields
);
}
tabUdeskTicket
.
setUserName
(
ticket
.
getUser_name
());
udeskTicketService
.
update
(
tabUdeskTicket
);
}
else
{
String
exceptionRecord
=
"工单id为"
+
id
+
"更新工单请求udesk工单详情异常,返回为"
+
detailStr
;
logger
.
info
(
exceptionRecord
);
udeskBaseApiService
.
saveUdeskException
(
exceptionRecord
);
}
}
return
ServiceResponse
.
success
();
}
/**
* udesk工单详情接口
* @param id
...
...
gic-platform-udesk-web/src/main/java/com/gic/udesk/web/controller/MessageController.java
View file @
e577769f
...
...
@@ -33,6 +33,19 @@ public class MessageController {
return
ResultControllerUtils
.
commonResult
(
udeskMessageApiService
.
saveUdeskMessage
(
udeskMessage
));
}
/**
* 不需要同步到tapd的触发器
* @param udeskMessage
* @return
*/
@IgnoreLogin
@RequestMapping
(
"udesk-message-no-tapd"
)
public
RestResponse
udeskMessageNoTapd
(
@RequestBody
UdeskMessageDTO
udeskMessage
)
{
logger
.
info
(
"接收UDESK不需要同步tapd的消息是:{}"
,
udeskMessage
);
udeskMessage
.
setSource
(
UdeskSharedConstant
.
UDESK_SOURCE
);
return
ResultControllerUtils
.
commonResult
(
udeskMessageApiService
.
saveUdeskMessageNoTapd
(
udeskMessage
));
}
@RequestMapping
(
value
=
"tapd-message"
,
method
=
RequestMethod
.
POST
)
@IgnoreLogin
public
RestResponse
tapdMessage
(
@RequestBody
String
tapdMessageStr
)
{
...
...
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