Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
ftp_proxy
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李辅翼
ftp_proxy
Commits
06395cc3
Commit
06395cc3
authored
Oct 26, 2019
by
张付兵
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加违法举报图片上传接口
parent
950e11fa
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
521 additions
and
4 deletions
+521
-4
src/main/java/com/hikcreate/ftp/proxy/base/exception/BusinessException.java
+98
-0
src/main/java/com/hikcreate/ftp/proxy/base/exception/DefaultExceptionHandler.java
+122
-0
src/main/java/com/hikcreate/ftp/proxy/base/response/Response.java
+71
-0
src/main/java/com/hikcreate/ftp/proxy/base/response/ResponseGenerator.java
+113
-0
src/main/java/com/hikcreate/ftp/proxy/base/statuscode/IStatusCode.java
+17
-0
src/main/java/com/hikcreate/ftp/proxy/base/statuscode/StatusCode.java
+42
-0
src/main/java/com/hikcreate/ftp/proxy/configbean/FtpConfigBean.java
+21
-0
src/main/java/com/hikcreate/ftp/proxy/modules/ftp/api/FtpProxyWebApi.java
+0
-0
src/main/java/com/hikcreate/ftp/proxy/modules/ftp/param/request/UploadIllegalReportReq.java
+20
-0
src/main/java/com/hikcreate/ftp/proxy/modules/ftp/param/response/PicByte.java
+1
-1
src/main/resources/application-dev.yml
+8
-0
src/main/resources/application-progy.yml
+8
-0
src/main/resources/application.yml
+0
-3
No files found.
src/main/java/com/hikcreate/ftp/proxy/base/exception/BusinessException.java
0 → 100644
View file @
06395cc3
package
com
.
hikcreate
.
ftp
.
proxy
.
base
.
exception
;
import
com.hikcreate.ftp.proxy.base.statuscode.IStatusCode
;
import
com.hikcreate.ftp.proxy.base.statuscode.StatusCode
;
import
lombok.Getter
;
import
lombok.Setter
;
@Getter
@Setter
public
class
BusinessException
extends
RuntimeException
{
private
long
code
;
// 状态码
private
String
msg
;
// 消息
private
String
errorMsg
;
// 错误消息
private
Object
param
;
// 附加参数
public
BusinessException
(
IStatusCode
sc
)
{
super
();
set
(
sc
.
getCode
(),
sc
.
getMsg
(),
sc
.
getMsg
());
}
public
BusinessException
(
String
msg
,
String
errorMsg
)
{
super
();
set
(
StatusCode
.
SYSTEM_ERROR
.
getCode
(),
msg
,
errorMsg
);
}
public
BusinessException
(
IStatusCode
sc
,
String
msg
)
{
super
();
set
(
sc
.
getCode
(),
msg
,
msg
);
}
public
BusinessException
(
IStatusCode
sc
,
String
msg
,
String
errorMsg
)
{
super
();
set
(
sc
.
getCode
(),
msg
,
errorMsg
);
}
public
BusinessException
(
Throwable
throwable
)
{
super
(
throwable
);
if
(
throwable
instanceof
BusinessException
)
{
BusinessException
cast
=
(
BusinessException
)
throwable
;
set
(
cast
.
code
,
cast
.
msg
,
cast
.
errorMsg
);
setParam
(
cast
.
param
);
}
else
{
set
(
StatusCode
.
SYSTEM_ERROR
.
getCode
(),
StatusCode
.
SYSTEM_ERROR
.
getMsg
(),
throwable
.
toString
());
}
}
public
BusinessException
(
Throwable
throwable
,
IStatusCode
sc
,
String
msg
)
{
super
(
throwable
);
set
(
sc
.
getCode
(),
msg
,
msg
);
}
public
BusinessException
(
long
code
,
String
msg
)
{
super
();
set
(
code
,
msg
,
msg
);
}
public
BusinessException
(
String
msg
)
{
super
();
set
(
StatusCode
.
BUSINESS_ERROR
.
getCode
(),
msg
,
msg
);
}
public
BusinessException
setParam
(
Object
param
)
{
this
.
param
=
param
;
return
this
;
}
@Override
public
String
getMessage
()
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
code
);
if
(
msg
!=
null
)
{
sb
.
append
(
", msg="
).
append
(
msg
);
}
if
(
errorMsg
!=
null
)
{
sb
.
append
(
", errorMsg="
).
append
(
errorMsg
);
}
if
(
param
!=
null
)
{
sb
.
append
(
", param="
).
append
(
param
);
}
return
sb
.
toString
();
}
@Override
public
String
toString
()
{
return
this
.
getClass
().
getName
()
+
":"
+
getMessage
();
}
private
void
set
(
long
code
,
String
msg
,
String
errorMsg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
this
.
errorMsg
=
errorMsg
;
}
}
src/main/java/com/hikcreate/ftp/proxy/base/exception/DefaultExceptionHandler.java
0 → 100644
View file @
06395cc3
package
com
.
hikcreate
.
ftp
.
proxy
.
base
.
exception
;
import
com.hikcreate.ftp.proxy.base.response.Response
;
import
com.hikcreate.ftp.proxy.base.response.ResponseGenerator
;
import
com.hikcreate.ftp.proxy.base.statuscode.StatusCode
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.BindException
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.FieldError
;
import
org.springframework.web.bind.MethodArgumentNotValidException
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
java.io.PrintWriter
;
import
java.io.StringWriter
;
import
java.util.List
;
/**
* 统一异常处理
*
* @author zhangfubing
*/
@Slf4j
@ControllerAdvice
public
class
DefaultExceptionHandler
{
@ExceptionHandler
(
value
=
BindException
.
class
)
@ResponseBody
public
Response
<
Void
>
handle
(
BindException
e
)
{
BindingResult
bindingResult
=
e
.
getBindingResult
();
String
errorMessage
=
buildErrorMessage
(
bindingResult
);
log
.
error
(
errorMessage
);
FieldError
fieldError
=
e
.
getFieldError
();
String
message
=
fieldError
.
getDefaultMessage
();
return
ResponseGenerator
.
fail
(
StatusCode
.
PARAM_ERROR
.
getCode
(),
message
,
errorMessage
);
}
/**
* 可能原因:@Validated 注解的对象验证不通过
*
* @param e
* @return
*/
@ExceptionHandler
(
value
=
MethodArgumentNotValidException
.
class
)
@ResponseBody
public
Response
<
Void
>
handle
(
MethodArgumentNotValidException
e
)
{
BindingResult
bindingResult
=
e
.
getBindingResult
();
String
errorMessage
=
buildErrorMessage
(
bindingResult
);
log
.
error
(
errorMessage
);
List
<
FieldError
>
fieldErrors
=
bindingResult
.
getFieldErrors
();
String
message
=
"参数错误"
;
if
(
null
!=
fieldErrors
&&
fieldErrors
.
size
()
>
0
)
{
FieldError
fieldError
=
fieldErrors
.
get
(
0
);
if
(
null
!=
fieldError
)
{
message
=
fieldError
.
getDefaultMessage
();
}
}
return
ResponseGenerator
.
fail
(
StatusCode
.
PARAM_ERROR
.
getCode
(),
message
,
errorMessage
);
}
/**
* 服务类异常
*
* @param e 异常对象
* @return 接口返回对象
*/
@ExceptionHandler
(
BusinessException
.
class
)
@ResponseBody
public
Response
<
Void
>
handle
(
BusinessException
e
)
{
log
.
error
(
e
.
toString
(),
e
);
return
ResponseGenerator
.
fail
(
e
.
getCode
(),
e
.
getMsg
(),
e
.
getErrorMsg
());
}
/**
* 其他异常
*
* @param e 异常对象
* @return 接口返回对象
*/
@ExceptionHandler
(
Throwable
.
class
)
@ResponseBody
public
Response
<
Void
>
handle
(
Throwable
e
)
{
log
.
error
(
e
.
toString
(),
e
);
return
ResponseGenerator
.
fail
(
StatusCode
.
SYSTEM_ERROR
,
getStackTrace
(
e
));
}
/**
* 从{@code @BindingResult}中构建异常信息
* on field 'verifyCode': null];
*
* @param bindingResult
*/
private
String
buildErrorMessage
(
BindingResult
bindingResult
)
{
StringBuffer
sb
=
new
StringBuffer
(
"BindException. "
);
sb
.
append
(
"Field error in object '"
+
bindingResult
.
getObjectName
()
+
"'. ["
+
bindingResult
.
getTarget
()
+
"]"
);
bindingResult
.
getFieldErrors
()
.
forEach
(
error
->
{
sb
.
append
(
"\r\n on field '"
+
error
.
getField
()
+
"': "
);
sb
.
append
(
"rejected value ["
+
error
.
getRejectedValue
()
+
"]. "
);
sb
.
append
(
"default message ["
+
error
.
getDefaultMessage
()
+
"]"
);
});
return
sb
.
toString
();
}
/**
* 获取异常对象的堆栈信息
*
* @param throwable 异常对象
* @return 堆栈信息
*/
protected
String
getStackTrace
(
Throwable
throwable
)
{
StringWriter
sw
=
new
StringWriter
();
try
(
PrintWriter
pw
=
new
PrintWriter
(
sw
))
{
throwable
.
printStackTrace
(
pw
);
return
sw
.
toString
();
}
}
}
src/main/java/com/hikcreate/ftp/proxy/base/response/Response.java
0 → 100644
View file @
06395cc3
package
com
.
hikcreate
.
ftp
.
proxy
.
base
.
response
;
import
com.hikcreate.ftp.proxy.base.exception.BusinessException
;
import
com.hikcreate.ftp.proxy.base.statuscode.StatusCode
;
import
lombok.Data
;
/**
* 统一的返回结果,作为服务间进行通信的数据协议。<br/>
* code表示状态码,不同服务不同接口会返回不同的状态码<br/>
* msg表示返回的结果信息描述<br/>
* errorMsg表示返回的错误结果信息描述<br/>
* data作为泛型参数类型,在不同接口可以定义不同的类型
*
* @param <T> 数据泛型类型
*/
@Data
public
class
Response
<
T
>
{
/**
* 成功标记
*/
private
boolean
success
=
true
;
/**
* 状态码
*/
private
long
code
=
StatusCode
.
SUCCESS
.
getCode
();
/**
* 描述
*/
private
String
msg
=
StatusCode
.
SUCCESS
.
getMsg
();
/**
* 错误描述
*/
private
String
errorMsg
=
StatusCode
.
SUCCESS
.
getMsg
();
/**
* 挂载数据
*/
private
T
data
;
public
Response
<
T
>
fallback
()
{
return
fallback
(
code
,
msg
);
}
public
Response
<
T
>
fallback
(
String
msg
)
{
return
fallback
(
code
,
msg
);
}
public
Response
<
T
>
fallback
(
long
code
)
{
return
fallback
(
code
,
msg
);
}
/**
* 失败时抛出业务异常
*
* @param code 状态码
* @param msg 描述
* @return 当前对象
*/
public
Response
<
T
>
fallback
(
long
code
,
String
msg
)
{
if
(!
success
)
{
BusinessException
ex
=
new
BusinessException
(
code
,
msg
);
ex
.
setErrorMsg
(
errorMsg
);
throw
ex
;
}
return
this
;
}
}
src/main/java/com/hikcreate/ftp/proxy/base/response/ResponseGenerator.java
0 → 100644
View file @
06395cc3
package
com
.
hikcreate
.
ftp
.
proxy
.
base
.
response
;
import
com.hikcreate.ftp.proxy.base.statuscode.IStatusCode
;
import
com.hikcreate.ftp.proxy.base.statuscode.StatusCode
;
public
class
ResponseGenerator
{
public
static
<
T
>
Response
<
T
>
success
()
{
return
new
Response
<>();
}
public
static
<
T
>
Response
<
T
>
success
(
String
msg
,
T
data
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setMsg
(
msg
);
response
.
setData
(
data
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
success
(
T
data
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setData
(
data
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
success4Msg
(
String
msg
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setMsg
(
msg
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
fail
(
String
msg
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setSuccess
(
false
);
response
.
setCode
(
StatusCode
.
BUSINESS_ERROR
.
getCode
());
response
.
setMsg
(
msg
);
response
.
setErrorMsg
(
msg
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
fail
(
IStatusCode
statusCode
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setSuccess
(
false
);
response
.
setCode
(
statusCode
.
getCode
());
response
.
setMsg
(
statusCode
.
getMsg
());
response
.
setErrorMsg
(
statusCode
.
getMsg
());
return
response
;
}
public
static
<
T
>
Response
<
T
>
fail
(
long
code
,
String
msg
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setSuccess
(
false
);
response
.
setCode
(
code
);
response
.
setMsg
(
msg
);
response
.
setErrorMsg
(
msg
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
fail
(
long
code
,
String
msg
,
T
data
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setSuccess
(
false
);
response
.
setCode
(
code
);
response
.
setMsg
(
msg
);
response
.
setErrorMsg
(
msg
);
response
.
setData
(
data
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
fail
(
String
msg
,
String
errorMsg
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setSuccess
(
false
);
response
.
setCode
(
StatusCode
.
BUSINESS_ERROR
.
getCode
());
response
.
setMsg
(
msg
);
response
.
setErrorMsg
(
errorMsg
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
fail
(
IStatusCode
statusCode
,
String
errorMsg
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setSuccess
(
false
);
response
.
setCode
(
statusCode
.
getCode
());
response
.
setMsg
(
statusCode
.
getMsg
());
response
.
setErrorMsg
(
errorMsg
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
fail
(
long
code
,
String
msg
,
String
errorMsg
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setSuccess
(
false
);
response
.
setCode
(
code
);
response
.
setMsg
(
msg
);
response
.
setErrorMsg
(
errorMsg
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
fail
(
long
code
,
String
msg
,
String
errorMsg
,
T
data
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setSuccess
(
false
);
response
.
setCode
(
code
);
response
.
setMsg
(
msg
);
response
.
setErrorMsg
(
errorMsg
);
response
.
setData
(
data
);
return
response
;
}
public
static
<
T
>
Response
<
T
>
copy
(
Response
<?>
from
)
{
Response
<
T
>
response
=
new
Response
<>();
response
.
setSuccess
(
from
.
isSuccess
());
response
.
setCode
(
from
.
getCode
());
response
.
setMsg
(
from
.
getMsg
());
response
.
setErrorMsg
(
from
.
getErrorMsg
());
return
response
;
}
}
src/main/java/com/hikcreate/ftp/proxy/base/statuscode/IStatusCode.java
0 → 100644
View file @
06395cc3
package
com
.
hikcreate
.
ftp
.
proxy
.
base
.
statuscode
;
/**
* 状态码抽象接口
*/
public
interface
IStatusCode
{
/**
* 状态码
*/
long
getCode
();
/**
* 描述信息
*/
String
getMsg
();
}
src/main/java/com/hikcreate/ftp/proxy/base/statuscode/StatusCode.java
0 → 100644
View file @
06395cc3
package
com
.
hikcreate
.
ftp
.
proxy
.
base
.
statuscode
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* 公共状态码
*/
@Getter
@AllArgsConstructor
public
enum
StatusCode
implements
IStatusCode
{
SUCCESS
(
1000
,
"操作成功"
,
"操作成功"
),
SYSTEM_ERROR
(
1001
,
"系统出现错误[1001]"
,
"系统未知错误"
),
PERMISSION_DENIED
(
1002
,
"没有权限"
,
"没有权限"
),
DATA_ERROR
(
1003
,
"数据错误"
,
"数据错误"
),
REPEAT_SUBMIT
(
1004
,
"重复提交"
,
"重复提交"
),
PARAM_ERROR
(
1005
,
"参数错误"
,
"参数错误"
),
BUSINESS_ERROR
(
1006
,
"业务错误"
,
"业务错误"
),
SIGN_ERROR
(
1007
,
"登录失效"
,
"签名错误"
),
NO_TOKEN
(
1008
,
"登录失效,请重新登录"
,
"缺少Token"
),
CROWDED_ERROR
(
1009
,
"被挤下线"
,
"被挤下线"
),
INVALID_TOKEN
(
1010
,
"登录失效,请重新登录"
,
"非法Token"
),
EXPIRED_TOKEN
(
1011
,
"登录失效,请重新登录"
,
"过期Token"
),
OUTDATE_WEAPP_VERSION
(
1012
,
"有更新的版本,请重启小程序"
,
"过时的微信版本"
),
ACCOUNT_IS_FROZEN
(
1013
,
"用户账号被冻结"
,
"用户账号被冻结"
),
INVALID_REQUEST
(
1014
,
"非法的请求"
,
"非法请求, token时间戳异常"
),
ALERT_ERROR
(
1015
,
"业务错误"
,
"弹框的业务错误"
),
;
/**
* 状态码
*/
private
long
code
;
/**
* 描述信息
*/
private
String
msg
;
private
String
errorMsg
;
}
src/main/java/com/hikcreate/ftp/proxy/configbean/FtpConfigBean.java
0 → 100644
View file @
06395cc3
package
com
.
hikcreate
.
ftp
.
proxy
.
configbean
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Component
;
/**
* @author zhangfubing
* @create 2019/10/26 15:54
*/
@Component
@ConfigurationProperties
(
"biz.ftp"
)
@Data
public
class
FtpConfigBean
{
private
String
ip
;
private
Integer
port
;
private
String
username
;
private
String
password
;
private
String
illegalReportDir
;
}
src/main/java/com/hikcreate/ftp/proxy/modules/FtpProxyWebApi.java
→
src/main/java/com/hikcreate/ftp/proxy/modules/
ftp/api/
FtpProxyWebApi.java
View file @
06395cc3
This diff is collapsed.
Click to expand it.
src/main/java/com/hikcreate/ftp/proxy/modules/ftp/param/request/UploadIllegalReportReq.java
0 → 100644
View file @
06395cc3
package
com
.
hikcreate
.
ftp
.
proxy
.
modules
.
ftp
.
param
.
request
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
/**
* @author zhangfubing
* @create 2019/10/26 16:01
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors
(
chain
=
true
)
public
class
UploadIllegalReportReq
{
private
String
fileName
;
// 文件名
private
String
fileBase64Content
;
// 文件base64内容
}
src/main/java/com/hikcreate/ftp/proxy/
entity
/PicByte.java
→
src/main/java/com/hikcreate/ftp/proxy/
modules/ftp/param/response
/PicByte.java
View file @
06395cc3
package
com
.
hikcreate
.
ftp
.
proxy
.
entity
;
package
com
.
hikcreate
.
ftp
.
proxy
.
modules
.
ftp
.
param
.
response
;
import
lombok.Data
;
...
...
src/main/resources/application-dev.yml
0 → 100644
View file @
06395cc3
biz
:
ftp
:
ip
:
51.1.123.235
port
:
21
username
:
jsc
password
:
jsc
illegalReportDir
:
/hik_pic/illegalReport
\ No newline at end of file
src/main/resources/application-progy.yml
0 → 100644
View file @
06395cc3
biz
:
ftp
:
ip
:
51.1.123.235
port
:
21
username
:
jsc
password
:
jsc
illegalReportDir
:
/hik_pic/illegalReport
\ No newline at end of file
src/main/resources/application.yml
View file @
06395cc3
server
:
port
:
80
spring
:
profiles
:
active
:
dev
application
:
name
:
ftp-proxy
\ No newline at end of file
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