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
fca1ce1c
Commit
fca1ce1c
authored
Dec 26, 2019
by
guojuxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加工单上传附件接口
parent
4eb8140c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
66 additions
and
49 deletions
+66
-49
UdeskBaseApiService.java
.../main/java/com/gic/udesk/service/UdeskBaseApiService.java
+12
-1
UdeskBaseApiServiceImpl.java
...gic/udesk/service/outer/impl/UdeskBaseApiServiceImpl.java
+16
-16
UdeskHttpClientUtil.java
...rc/main/java/com/gic/udesk/utils/UdeskHttpClientUtil.java
+24
-19
GicTicketController.java
...ava/com/gic/udesk/web/controller/GicTicketController.java
+14
-13
No files found.
gic-platform-udesk-api/src/main/java/com/gic/udesk/service/UdeskBaseApiService.java
View file @
fca1ce1c
...
...
@@ -7,6 +7,7 @@ import com.gic.api.base.commons.ServiceResponse;
import
com.gic.udesk.dto.customfield.UdeskCustomFieldOptionDTO
;
import
com.gic.udesk.dto.customfield.UdeskResCustomFieldDataDTO
;
import
com.gic.udesk.dto.templates.UdeskResTemplatesDTO
;
import
org.springframework.web.multipart.MultipartFile
;
public
interface
UdeskBaseApiService
{
...
...
@@ -47,5 +48,15 @@ public interface UdeskBaseApiService {
*/
ServiceResponse
<
List
<
UdeskCustomFieldOptionDTO
>>
getGicServiceSelect
();
ServiceResponse
<
String
>
ticketUploadFile
(
File
file
,
String
fileName
,
Integer
ticketId
);
/**
* 上传附件
* @Title: ticketUploadFile
* @Description:
* @author guojuxing
* @param bytes
* @param fileName
* @param ticketId 工单ID
* @return com.gic.api.base.commons.ServiceResponse<java.lang.String>
*/
ServiceResponse
<
String
>
ticketUploadFile
(
byte
[]
bytes
,
String
fileName
,
Integer
ticketId
);
}
gic-platform-udesk-service/src/main/java/com/gic/udesk/service/outer/impl/UdeskBaseApiServiceImpl.java
View file @
fca1ce1c
package
com
.
gic
.
udesk
.
service
.
outer
.
impl
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.Resource
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.enterprise.error.ErrorCode
;
...
...
@@ -17,19 +31,6 @@ import com.gic.udesk.service.UdeskExceptionService;
import
com.gic.udesk.service.UdeskTapdRelService
;
import
com.gic.udesk.utils.UdeskConstant
;
import
com.gic.udesk.utils.UdeskHttpClientUtil
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
;
import
java.util.Map
;
@Service
(
"udeskBaseApiService"
)
public
class
UdeskBaseApiServiceImpl
implements
UdeskBaseApiService
{
...
...
@@ -179,10 +180,9 @@ public class UdeskBaseApiServiceImpl implements UdeskBaseApiService {
}
@Override
public
ServiceResponse
<
String
>
ticketUploadFile
(
File
file
,
String
fileName
,
Integer
ticketId
)
{
logger
.
info
(
"工单上传附件文件名:{}"
,
file
.
getName
());
public
ServiceResponse
<
String
>
ticketUploadFile
(
byte
[]
bytes
,
String
fileName
,
Integer
ticketId
)
{
logger
.
info
(
"udesk工单上传附件"
);
String
replyRespStr
=
UdeskHttpClientUtil
.
postUdeskJsonFromJsonForFile
(
UPLOAD_FILE
,
fileName
,
ticketId
,
fil
e
);
String
replyRespStr
=
UdeskHttpClientUtil
.
postUdeskJsonFromJsonForFile
(
UPLOAD_FILE
,
ticketId
,
bytes
,
fileNam
e
);
logger
.
info
(
"desk工单上传附件返回为{}"
,
replyRespStr
);
UploadFileDTO
result
=
JSON
.
parseObject
(
replyRespStr
,
UploadFileDTO
.
class
);
if
(
result
.
getCode
()
==
UdeskConstant
.
UDESK_SUCCESS_CODE
)
{
...
...
gic-platform-udesk-service/src/main/java/com/gic/udesk/utils/UdeskHttpClientUtil.java
View file @
fca1ce1c
package
com
.
gic
.
udesk
.
utils
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Set
;
import
javax.net.ssl.SSLContext
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.client.ClientProtocolException
;
...
...
@@ -13,6 +23,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.HttpMultipartMode
;
import
org.apache.http.entity.mime.MultipartEntityBuilder
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
...
...
@@ -21,15 +32,6 @@ import org.apache.http.util.EntityUtils;
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
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Set
;
public
class
UdeskHttpClientUtil
{
private
static
final
Logger
logger
=
LogManager
.
getLogger
(
UdeskHttpClientUtil
.
class
);
...
...
@@ -102,18 +104,17 @@ public class UdeskHttpClientUtil {
/**
* udesk的post请求,Request Body 上传文件参数天聪
*/
public
static
String
postUdeskJsonFromJsonForFile
(
String
url
,
String
fileName
,
Integer
ticketId
,
File
fil
e
)
{
public
static
String
postUdeskJsonFromJsonForFile
(
String
url
,
Integer
ticketId
,
byte
[]
bytes
,
String
fileNam
e
)
{
long
timeStamp
=
System
.
currentTimeMillis
()
/
1000
;
url
=
UdeskConstant
.
UDESK_URI
+
url
+
"?email="
+
UdeskConstant
.
EMAIL
+
"×tamp="
+
timeStamp
+
"&sign="
+
UdeskUtils
.
getSign
(
timeStamp
)
+
"&ticket_id="
+
ticketId
+
"&fileName="
+
fileName
;
url
=
UdeskConstant
.
UDESK_URI
+
url
+
"?email="
+
UdeskConstant
.
EMAIL
+
"×tamp="
+
timeStamp
+
"&sign="
+
UdeskUtils
.
getSign
(
timeStamp
);
logger
.
info
(
url
);
CloseableHttpResponse
response
=
null
;
try
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
response
=
getResponseForFile
(
file
,
httpPost
);
response
=
getResponseForFile
(
bytes
,
fileName
,
ticketId
,
httpPost
);
return
EntityUtils
.
toString
(
response
.
getEntity
(),
"utf-8"
);
}
catch
(
Exception
e
)
{
logger
.
info
(
"POST请求{}失败,参数
fileName:{}-ticketId:{}"
,
url
,
fileName
,
ticketId
,
e
);
logger
.
info
(
"POST请求{}失败,参数
ticketId:{}"
,
url
,
ticketId
,
e
);
}
finally
{
closeResponse
(
response
);
}
...
...
@@ -283,18 +284,22 @@ public class UdeskHttpClientUtil {
/**
* 上传文件填充
* @param file
* @param bytes
* @param fileName
* @param ticketId
* @param httpPost
* @return
* @throws IOException
* @throws ClientProtocolException
*/
private
static
CloseableHttpResponse
getResponseForFile
(
File
file
,
HttpPost
httpPost
)
private
static
CloseableHttpResponse
getResponseForFile
(
byte
[]
bytes
,
String
fileName
,
Integer
ticketId
,
HttpPost
httpPost
)
throws
IOException
,
ClientProtocolException
{
CloseableHttpResponse
response
;
MultipartEntityBuilder
multipartEntityBuilder
=
MultipartEntityBuilder
.
create
();
multipartEntityBuilder
.
addBinaryBody
(
"file"
,
file
);
multipartEntityBuilder
.
addTextBody
(
"comment"
,
"this is comment"
);
//解决乱码,设置mode
MultipartEntityBuilder
multipartEntityBuilder
=
MultipartEntityBuilder
.
create
().
setMode
(
HttpMultipartMode
.
RFC6532
);
multipartEntityBuilder
.
addBinaryBody
(
"file"
,
new
ByteArrayInputStream
(
bytes
),
ContentType
.
DEFAULT_BINARY
,
fileName
);
multipartEntityBuilder
.
addTextBody
(
"ticket_id"
,
ticketId
.
toString
());
multipartEntityBuilder
.
addTextBody
(
"file_name"
,
fileName
);
HttpEntity
httpEntity
=
multipartEntityBuilder
.
build
();
httpPost
.
setEntity
(
httpEntity
);
response
=
httpClient
.
execute
(
httpPost
);
...
...
gic-platform-udesk-web/src/main/java/com/gic/udesk/web/controller/GicTicketController.java
View file @
fca1ce1c
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
javax.servlet.http.HttpServletRequest
;
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
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.enterprise.ano.IgnoreLogin
;
import
com.gic.enterprise.error.ErrorCode
;
import
com.gic.enterprise.utils.ResultControllerUtils
;
import
com.gic.udesk.constant.AgentPermissionEnum
;
import
com.gic.udesk.constant.CalculateResultTypeEnum
;
import
com.gic.udesk.constant.CustomFieldContentTypeEnum
;
import
com.gic.udesk.constant.CustomerPermissionEnum
;
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
{
...
...
@@ -49,7 +48,7 @@ public class GicTicketController {
@RequestMapping
(
"/ticket-upload-file"
)
@IgnoreLogin
public
RestResponse
getCustomFieldFromUdeskTemplates
(
HttpServletRequest
request
)
{
public
RestResponse
getCustomFieldFromUdeskTemplates
(
HttpServletRequest
request
)
throws
Exception
{
String
ticketId
=
request
.
getParameter
(
"ticketId"
);
if
(!
StringUtils
.
isNumeric
(
ticketId
))
{
return
RestResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"工单ID错误,数值非法"
);
...
...
@@ -60,8 +59,9 @@ public class GicTicketController {
if
(
file
.
isEmpty
())
{
return
RestResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"文件为空"
);
}
return
ResultControllerUtils
.
commonResult
(
udeskBaseApiService
.
ticketUploadFile
((
File
)
file
,
file
.
getOriginalFilename
(),
Integer
.
parseInt
(
ticketId
)));
ServiceResponse
<
String
>
result
=
udeskBaseApiService
.
ticketUploadFile
(
file
.
getBytes
(),
file
.
getOriginalFilename
(),
Integer
.
parseInt
(
ticketId
));
return
ResultControllerUtils
.
commonResult
(
result
);
}
/**
...
...
@@ -103,4 +103,5 @@ public class GicTicketController {
public
RestResponse
customFieldContentTypeEnum
()
{
return
RestResponse
.
success
(
CustomFieldContentTypeEnum
.
list
());
}
}
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