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
4eb8140c
Commit
4eb8140c
authored
Dec 26, 2019
by
guojuxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加工单上传附件接口
parent
3f51930e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
134 additions
and
1 deletions
+134
-1
UploadFileDTO.java
...main/java/com/gic/udesk/dto/uploadfile/UploadFileDTO.java
+37
-0
UdeskBaseApiService.java
.../main/java/com/gic/udesk/service/UdeskBaseApiService.java
+10
-1
UdeskBaseApiServiceImpl.java
...gic/udesk/service/outer/impl/UdeskBaseApiServiceImpl.java
+17
-0
UdeskHttpClientUtil.java
...rc/main/java/com/gic/udesk/utils/UdeskHttpClientUtil.java
+45
-0
GicTicketController.java
...ava/com/gic/udesk/web/controller/GicTicketController.java
+25
-0
No files found.
gic-platform-udesk-api/src/main/java/com/gic/udesk/dto/uploadfile/UploadFileDTO.java
0 → 100644
View file @
4eb8140c
package
com
.
gic
.
udesk
.
dto
.
uploadfile
;
import
java.io.Serializable
;
/**
* udesk工单上传附件
* @ClassName: UploadFileDTO
* @Description:
* @author guojuxing
* @date 2019/12/26 9:52 AM
*/
public
class
UploadFileDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1110187452080769886L
;
/**
* 执行结果码,1000表示成功
*/
private
Integer
code
;
/**
* 结果说明
*/
private
String
message
;
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
}
gic-platform-udesk-api/src/main/java/com/gic/udesk/service/UdeskBaseApiService.java
View file @
4eb8140c
package
com
.
gic
.
udesk
.
service
;
import
java.io.File
;
import
java.util.List
;
import
com.gic.api.base.commons.ServiceResponse
;
...
...
@@ -37,6 +38,14 @@ public interface UdeskBaseApiService {
* @return com.gic.api.base.commons.ServiceResponse<com.gic.udesk.dto.templates.UdeskResTemplatesDTO>
*/
ServiceResponse
<
List
<
UdeskResCustomFieldDataDTO
>>
getCustomFieldFromUdeskTemplates
(
Integer
type
);
/**
* gic基础服务字段的级联数据
* @Title: getGicServiceSelect
* @Description:
* @author guojuxing
* @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.udesk.dto.customfield.UdeskCustomFieldOptionDTO>>
*/
ServiceResponse
<
List
<
UdeskCustomFieldOptionDTO
>>
getGicServiceSelect
();
ServiceResponse
<
String
>
ticketUploadFile
(
File
file
,
String
fileName
,
Integer
ticketId
);
}
gic-platform-udesk-service/src/main/java/com/gic/udesk/service/outer/impl/UdeskBaseApiServiceImpl.java
View file @
4eb8140c
...
...
@@ -9,6 +9,7 @@ import com.gic.udesk.dto.customfield.UdeskResCustomFieldDataDTO;
import
com.gic.udesk.dto.templates.UdeskResTemplatesDTO
;
import
com.gic.udesk.dto.templates.UdeskResTemplatesDataDTO
;
import
com.gic.udesk.dto.templates.UdeskTemplatesCustomFieldDTO
;
import
com.gic.udesk.dto.uploadfile.UploadFileDTO
;
import
com.gic.udesk.entity.TabUdeskException
;
import
com.gic.udesk.entity.TabUdeskTapdRel
;
import
com.gic.udesk.service.UdeskBaseApiService
;
...
...
@@ -24,6 +25,7 @@ import org.springframework.stereotype.Service;
import
javax.annotation.PostConstruct
;
import
javax.annotation.Resource
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -47,6 +49,8 @@ public class UdeskBaseApiServiceImpl implements UdeskBaseApiService {
private
final
static
String
CUSTOM_FIELD_URL
=
"/custom_fields"
;
private
final
static
String
UPLOAD_FILE
=
"/tickets/upload_file"
;
@PostConstruct
public
void
init
()
{
logger
.
info
(
"初始化udeskTapdRelMap启动。。。。。。。。。。。。。。。"
);
...
...
@@ -174,6 +178,19 @@ public class UdeskBaseApiServiceImpl implements UdeskBaseApiService {
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
"无数据"
);
}
@Override
public
ServiceResponse
<
String
>
ticketUploadFile
(
File
file
,
String
fileName
,
Integer
ticketId
)
{
logger
.
info
(
"工单上传附件文件名:{}"
,
file
.
getName
());
logger
.
info
(
"udesk工单上传附件"
);
String
replyRespStr
=
UdeskHttpClientUtil
.
postUdeskJsonFromJsonForFile
(
UPLOAD_FILE
,
fileName
,
ticketId
,
file
);
logger
.
info
(
"desk工单上传附件返回为{}"
,
replyRespStr
);
UploadFileDTO
result
=
JSON
.
parseObject
(
replyRespStr
,
UploadFileDTO
.
class
);
if
(
result
.
getCode
()
==
UdeskConstant
.
UDESK_SUCCESS_CODE
)
{
return
ServiceResponse
.
success
();
}
return
ServiceResponse
.
failure
(
ErrorCode
.
SYSTEM_ERROR
.
getCode
(),
result
.
getMessage
());
}
private
List
<
UdeskResCustomFieldDataDTO
>
queryUdeskCustomField
(
List
<
String
>
fieldNameList
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>(
4
);
//枚举,取值范围:["ticket", "customer", "organization"]
...
...
gic-platform-udesk-service/src/main/java/com/gic/udesk/utils/UdeskHttpClientUtil.java
View file @
4eb8140c
package
com
.
gic
.
udesk
.
utils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.client.ClientProtocolException
;
import
org.apache.http.client.methods.*
;
import
org.apache.http.client.utils.URIBuilder
;
...
...
@@ -12,6 +13,7 @@ import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import
org.apache.http.conn.ssl.SSLConnectionSocketFactory
;
import
org.apache.http.entity.ContentType
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.entity.mime.MultipartEntityBuilder
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.impl.conn.PoolingHttpClientConnectionManager
;
...
...
@@ -20,6 +22,7 @@ import org.apache.logging.log4j.LogManager;
import
org.apache.logging.log4j.Logger
;
import
javax.net.ssl.SSLContext
;
import
java.io.File
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
java.security.NoSuchAlgorithmException
;
...
...
@@ -97,6 +100,28 @@ public class UdeskHttpClientUtil {
}
/**
* udesk的post请求,Request Body 上传文件参数天聪
*/
public
static
String
postUdeskJsonFromJsonForFile
(
String
url
,
String
fileName
,
Integer
ticketId
,
File
file
)
{
long
timeStamp
=
System
.
currentTimeMillis
()
/
1000
;
url
=
UdeskConstant
.
UDESK_URI
+
url
+
"?email="
+
UdeskConstant
.
EMAIL
+
"×tamp="
+
timeStamp
+
"&sign="
+
UdeskUtils
.
getSign
(
timeStamp
)
+
"&ticket_id="
+
ticketId
+
"&fileName="
+
fileName
;
logger
.
info
(
url
);
CloseableHttpResponse
response
=
null
;
try
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
response
=
getResponseForFile
(
file
,
httpPost
);
return
EntityUtils
.
toString
(
response
.
getEntity
(),
"utf-8"
);
}
catch
(
Exception
e
)
{
logger
.
info
(
"POST请求{}失败,参数fileName:{}-ticketId:{}"
,
url
,
fileName
,
ticketId
,
e
);
}
finally
{
closeResponse
(
response
);
}
return
null
;
}
/**
* udesk的put请求,Request Body
*/
public
static
String
putUdeskJsonFromJson
(
String
url
,
String
json
)
{
...
...
@@ -255,4 +280,24 @@ public class UdeskHttpClientUtil {
response
=
httpClient
.
execute
(
httpPost
);
return
response
;
}
/**
* 上传文件填充
* @param file
* @param httpPost
* @return
* @throws IOException
* @throws ClientProtocolException
*/
private
static
CloseableHttpResponse
getResponseForFile
(
File
file
,
HttpPost
httpPost
)
throws
IOException
,
ClientProtocolException
{
CloseableHttpResponse
response
;
MultipartEntityBuilder
multipartEntityBuilder
=
MultipartEntityBuilder
.
create
();
multipartEntityBuilder
.
addBinaryBody
(
"file"
,
file
);
multipartEntityBuilder
.
addTextBody
(
"comment"
,
"this is comment"
);
HttpEntity
httpEntity
=
multipartEntityBuilder
.
build
();
httpPost
.
setEntity
(
httpEntity
);
response
=
httpClient
.
execute
(
httpPost
);
return
response
;
}
}
gic-platform-udesk-web/src/main/java/com/gic/udesk/web/controller/GicTicketController.java
View file @
4eb8140c
package
com
.
gic
.
udesk
.
web
.
controller
;
import
com.gic.enterprise.error.ErrorCode
;
import
com.gic.udesk.constant.CalculateResultTypeEnum
;
import
com.gic.udesk.constant.CustomFieldContentTypeEnum
;
import
com.gic.udesk.constant.CustomerPermissionEnum
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -14,6 +16,12 @@ import com.gic.enterprise.ano.IgnoreLogin;
import
com.gic.enterprise.utils.ResultControllerUtils
;
import
com.gic.udesk.constant.AgentPermissionEnum
;
import
com.gic.udesk.service.UdeskBaseApiService
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.File
;
import
java.util.List
;
@RestController
public
class
GicTicketController
{
...
...
@@ -39,6 +47,23 @@ public class GicTicketController {
return
ResultControllerUtils
.
commonResult
(
udeskBaseApiService
.
getCustomFieldFromUdeskTemplates
(
type
));
}
@RequestMapping
(
"/ticket-upload-file"
)
@IgnoreLogin
public
RestResponse
getCustomFieldFromUdeskTemplates
(
HttpServletRequest
request
)
{
String
ticketId
=
request
.
getParameter
(
"ticketId"
);
if
(!
StringUtils
.
isNumeric
(
ticketId
))
{
return
RestResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"工单ID错误,数值非法"
);
}
MultipartHttpServletRequest
multipartRequest
=
(
MultipartHttpServletRequest
)
request
;
//上传一个文件处理方式,如果是多个,用getFiles
MultipartFile
file
=
multipartRequest
.
getFile
(
"file"
);
if
(
file
.
isEmpty
())
{
return
RestResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"文件为空"
);
}
return
ResultControllerUtils
.
commonResult
(
udeskBaseApiService
.
ticketUploadFile
((
File
)
file
,
file
.
getOriginalFilename
(),
Integer
.
parseInt
(
ticketId
)));
}
/**
* udesk自定义字段 客服权限
* @return
...
...
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