Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
武汉红喜
whatsmars
提交
194512d9
W
whatsmars
项目概览
武汉红喜
/
whatsmars
通知
3
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
whatsmars
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
194512d9
编写于
5月 18, 2018
作者:
武汉红喜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Controller ResultHelper
上级
4ee8bb63
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
198 addition
and
305 deletion
+198
-305
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/Result.java
.../main/java/org/hongxi/whatsmars/common/result/Result.java
+50
-0
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ResultHelper.java
...java/org/hongxi/whatsmars/common/result/ResultHelper.java
+34
-0
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ReturnItem.java
...n/java/org/hongxi/whatsmars/common/result/ReturnItem.java
+0
-54
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ReturnItemUtils.java
...a/org/hongxi/whatsmars/common/result/ReturnItemUtils.java
+0
-45
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ReturnItems.java
.../java/org/hongxi/whatsmars/common/result/ReturnItems.java
+0
-78
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ReturnMessage.java
...ava/org/hongxi/whatsmars/common/result/ReturnMessage.java
+0
-97
whatsmars-earth/whatsmars-earth-web/src/main/java/org/hongxi/whatsmars/earth/web/controller/NewController.java
.../hongxi/whatsmars/earth/web/controller/NewController.java
+8
-9
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/common/result/Result.java
...rg/hongxi/whatsmars/spring/boot/common/result/Result.java
+50
-0
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/common/result/ResultHelper.java
...gxi/whatsmars/spring/boot/common/result/ResultHelper.java
+34
-0
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/controller/UserController.java
...ngxi/whatsmars/spring/boot/controller/UserController.java
+13
-12
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/exception/AppException.java
.../hongxi/whatsmars/spring/boot/exception/AppException.java
+4
-4
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/exception/AppExceptionHandler.java
.../whatsmars/spring/boot/exception/AppExceptionHandler.java
+5
-6
未找到文件。
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/Result.java
0 → 100644
浏览文件 @
194512d9
package
org.hongxi.whatsmars.common.result
;
/**
* Created by shenhongxi on 2018/5/18.
*/
public
class
Result
<
T
>
{
private
int
code
;
private
String
message
;
private
T
data
;
// T代替Object的好处是可以限定类型
public
Result
()
{}
public
Result
(
int
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
Result
(
int
code
,
String
message
,
T
data
)
{
this
.
code
=
code
;
this
.
message
=
message
;
this
.
data
=
data
;
}
public
int
getCode
()
{
return
code
;
}
public
void
setCode
(
int
code
)
{
this
.
code
=
code
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
Object
getData
()
{
return
data
;
}
public
void
setData
(
T
data
)
{
this
.
data
=
data
;
}
}
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ResultHelper.java
0 → 100644
浏览文件 @
194512d9
package
org.hongxi.whatsmars.common.result
;
/**
* Created by shenhongxi on 2018/5/18.
*/
public
class
ResultHelper
{
public
static
Result
newSuccessResult
()
{
return
newResult
(
true
);
}
public
static
<
T
>
Result
newSuccessResult
(
T
data
)
{
Result
result
=
newSuccessResult
();
result
.
setData
(
data
);
return
result
;
}
public
static
Result
newErrorResult
()
{
return
newResult
(
false
);
}
public
static
Result
newResult
(
boolean
success
)
{
return
newResult
(
success
,
null
);
}
public
static
Result
newResult
(
boolean
success
,
String
message
)
{
if
(
success
)
{
return
new
Result
(
200
,
message
==
null
?
"操作成功"
:
message
);
}
else
{
return
new
Result
(
500
,
message
==
null
?
"系统繁忙,请稍后再试"
:
message
);
}
}
}
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ReturnItem.java
已删除
100644 → 0
浏览文件 @
4ee8bb63
package
org.hongxi.whatsmars.common.result
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
public
class
ReturnItem
<
T
>
{
/* 请求状态 */
private
int
status
;
/* 查询结果 */
private
T
item
;
@JsonIgnore
private
String
[]
ignoreFields
=
new
String
[]{};
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
T
getItem
()
{
return
item
;
}
public
void
setItem
(
T
item
)
{
this
.
item
=
item
;
}
public
String
[]
getIgnoreFields
()
{
return
ignoreFields
;
}
public
void
setIgnoreFields
(
String
[]
ignoreFields
)
{
this
.
ignoreFields
=
ignoreFields
;
}
public
ReturnItem
()
{
super
();
}
public
ReturnItem
(
int
status
,
T
item
)
{
super
();
this
.
status
=
status
;
this
.
item
=
item
;
}
public
ReturnItem
(
int
status
,
T
item
,
String
[]
ignoreFields
)
{
this
.
status
=
status
;
this
.
item
=
item
;
this
.
ignoreFields
=
ignoreFields
;
}
}
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ReturnItemUtils.java
已删除
100644 → 0
浏览文件 @
4ee8bb63
package
org.hongxi.whatsmars.common.result
;
import
java.util.List
;
/**
* Created by shenhongxi on 2017/11/27.
*/
public
abstract
class
ReturnItemUtils
{
public
static
ReturnItem
newSuccessReturnItem
()
{
return
newReturnItem
(
true
);
}
public
static
<
T
>
ReturnItems
newSuccessReturnItems
(
List
<
T
>
messages
,
Long
total
)
{
ReturnItems
<
T
>
items
=
new
ReturnItems
();
items
.
setItems
(
messages
);
items
.
setTotal
(
total
);
items
.
setStatus
(
200
);
return
items
;
}
public
static
<
T
>
ReturnItem
newSuccessReturnItem
(
T
message
)
{
return
newReturnItem
(
true
,
message
);
}
public
static
ReturnItem
newErrorReturnItem
()
{
return
newReturnItem
(
false
);
}
public
static
ReturnItem
newReturnItem
(
Boolean
isSuccess
)
{
return
newReturnItem
(
isSuccess
,
null
);
}
public
static
<
T
>
ReturnItem
<
T
>
newReturnItem
(
Boolean
isSuccess
,
T
message
)
{
if
(
Boolean
.
TRUE
.
equals
(
isSuccess
))
{
return
new
ReturnItem
(
200
,
returnItemMsg
(
message
,
ReturnMessage
.
Message
.
OPERATION_SUCCESS
.
getValue
()));
}
else
{
return
new
ReturnItem
(
400
,
returnItemMsg
(
message
,
ReturnMessage
.
Message
.
OPERATION_SUCCESS
.
getValue
()));
}
}
private
static
Object
returnItemMsg
(
Object
message
,
String
defaultMsg
)
{
return
null
==
message
?
defaultMsg
:
message
;
}
}
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ReturnItems.java
已删除
100644 → 0
浏览文件 @
4ee8bb63
package
org.hongxi.whatsmars.common.result
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
java.util.Date
;
import
java.util.List
;
public
class
ReturnItems
<
T
>
{
/**
* 请求状态
*/
private
int
status
;
/**
* 总条数
*/
private
Long
total
;
/**
* 查询结果集
*/
private
List
<
T
>
items
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
serverDateTime
=
new
Date
();
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
long
getTotal
()
{
if
(
total
==
null
){
return
items
!=
null
?
items
.
size
()
:
0
;
}
return
total
;
}
public
void
setTotal
(
long
total
)
{
this
.
total
=
total
;
}
public
List
<
T
>
getItems
()
{
return
items
;
}
public
void
setItems
(
List
<
T
>
items
)
{
this
.
items
=
items
;
}
public
Date
getServerDateTime
()
{
return
serverDateTime
;
}
public
void
setServerDateTime
(
Date
serverDateTime
)
{
this
.
serverDateTime
=
serverDateTime
;
}
public
ReturnItems
()
{
super
();
}
public
ReturnItems
(
int
status
,
long
total
,
List
<
T
>
items
)
{
super
();
this
.
status
=
status
;
this
.
total
=
total
;
this
.
items
=
items
;
}
public
ReturnItems
(
List
<
T
>
items
)
{
super
();
this
.
items
=
items
;
}
}
whatsmars-common/src/main/java/org/hongxi/whatsmars/common/result/ReturnMessage.java
已删除
100644 → 0
浏览文件 @
4ee8bb63
package
org.hongxi.whatsmars.common.result
;
public
class
ReturnMessage
{
private
int
status
=
200
;
private
String
message
=
"操作成功"
;
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
ReturnMessage
()
{
super
();
}
public
ReturnMessage
(
int
status
)
{
super
();
this
.
status
=
status
;
}
public
ReturnMessage
(
int
status
,
String
message
)
{
super
();
this
.
status
=
status
;
this
.
message
=
message
;
}
public
enum
Message
{
/**
* 操作成功
*/
OPERATION_SUCCESS
(
"操作成功"
),
/**
* 操作失败
*/
OPERATION_ERROR
(
"操作失败"
),
/**
* 操作异常
*/
OPERATION_ABNORMAL
(
"操作异常"
),
/**
* 更新异常
*/
UPDATE_ANOMALIES
(
"更新异常"
),
/**
* 参数错误
*/
PARAMETER_ERROR
(
"参数错误"
),
/**
* 非法请求
*/
ILLEGAL_REQUEST
(
"非法请求"
),
/**
* 登陆超时
*/
LOGIN_TIMEOUT
(
"登陆超时"
),
/**
* 未登录
*/
NOT_LOGGED_IN
(
"未登录"
),
/**
* 登陆失败
*/
FAIL_LOGIN
(
"登陆失败"
),
/**
* 存在
*/
EXIST
(
"存在"
),
/**
* 不存在
*/
NOT_EXIST
(
"不存在"
);
String
value
;
public
String
getValue
()
{
return
value
;
}
private
Message
(
String
value
)
{
this
.
value
=
value
;
}
}
}
whatsmars-earth/whatsmars-earth-web/src/main/java/org/hongxi/whatsmars/earth/web/controller/NewController.java
浏览文件 @
194512d9
package
org.hongxi.whatsmars.earth.web.controller
;
import
org.apache.log4j.Logger
;
import
org.hongxi.whatsmars.common.result.Re
turnItem
;
import
org.hongxi.whatsmars.common.result.Re
turnItemUtils
;
import
org.hongxi.whatsmars.common.result.Re
sult
;
import
org.hongxi.whatsmars.common.result.Re
sultHelper
;
import
org.hongxi.whatsmars.earth.service.UserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
...
...
@@ -27,10 +26,10 @@ public class NewController {
// localhost:8080/test/add.jhtml
@RequestMapping
(
value
=
"/add"
,
method
=
RequestMethod
.
POST
)
public
Re
turnItem
<
String
>
add
(
@RequestParam
(
name
=
"name"
)
String
username
,
@RequestParam
(
required
=
false
)
String
nickname
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Integer
gender
,
@RequestParam
Integer
age
)
{
public
Re
sult
add
(
@RequestParam
(
name
=
"name"
)
String
username
,
@RequestParam
(
required
=
false
)
String
nickname
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Integer
gender
,
@RequestParam
Integer
age
)
{
try
{
User
user
=
new
User
();
user
.
setUsername
(
username
);
...
...
@@ -40,10 +39,10 @@ public class NewController {
userService
.
add
(
user
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"##########test add error"
,
e
);
return
Re
turnItemUtils
.
newErrorReturnItem
();
return
Re
sultHelper
.
newErrorResult
();
}
return
Re
turnItemUtils
.
newSuccessReturnItem
();
return
Re
sultHelper
.
newSuccessResult
();
}
}
...
...
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/common/result/Result.java
0 → 100644
浏览文件 @
194512d9
package
org.hongxi.whatsmars.spring.boot.common.result
;
/**
* Created by shenhongxi on 2018/5/18.
*/
public
class
Result
<
T
>
{
private
int
code
;
private
String
message
;
private
T
data
;
// T代替Object的好处是可以限定类型
public
Result
()
{}
public
Result
(
int
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
Result
(
int
code
,
String
message
,
T
data
)
{
this
.
code
=
code
;
this
.
message
=
message
;
this
.
data
=
data
;
}
public
int
getCode
()
{
return
code
;
}
public
void
setCode
(
int
code
)
{
this
.
code
=
code
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
Object
getData
()
{
return
data
;
}
public
void
setData
(
T
data
)
{
this
.
data
=
data
;
}
}
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/common/result/ResultHelper.java
0 → 100644
浏览文件 @
194512d9
package
org.hongxi.whatsmars.spring.boot.common.result
;
/**
* Created by shenhongxi on 2018/5/18.
*/
public
class
ResultHelper
{
public
static
Result
newSuccessResult
()
{
return
newResult
(
true
);
}
public
static
<
T
>
Result
newSuccessResult
(
T
data
)
{
Result
result
=
newSuccessResult
();
result
.
setData
(
data
);
return
result
;
}
public
static
Result
newErrorResult
()
{
return
newResult
(
false
);
}
public
static
Result
newResult
(
boolean
success
)
{
return
newResult
(
success
,
null
);
}
public
static
Result
newResult
(
boolean
success
,
String
message
)
{
if
(
success
)
{
return
new
Result
(
200
,
message
==
null
?
"操作成功"
:
message
);
}
else
{
return
new
Result
(
500
,
message
==
null
?
"系统繁忙,请稍后再试"
:
message
);
}
}
}
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/controller/UserController.java
浏览文件 @
194512d9
...
...
@@ -3,8 +3,9 @@ package org.hongxi.whatsmars.spring.boot.controller;
import
com.github.pagehelper.Page
;
import
org.apache.logging.log4j.LogManager
;
import
org.hongxi.whatsmars.spring.boot.common.ReturnItemUtils
;
import
org.hongxi.whatsmars.spring.boot.common.pojo.ReturnItem
;
import
org.hongxi.whatsmars.spring.boot.common.pojo.ReturnItems
;
import
org.hongxi.whatsmars.spring.boot.common.result.Result
;
import
org.hongxi.whatsmars.spring.boot.common.result.ResultHelper
;
import
org.hongxi.whatsmars.spring.boot.exception.AppException
;
import
org.hongxi.whatsmars.spring.boot.model.User
;
import
org.hongxi.whatsmars.spring.boot.service.UserService
;
...
...
@@ -28,13 +29,13 @@ public class UserController {
private
UserService
userService
;
@GetMapping
(
"/find/{username}"
)
public
Re
turnItem
<
User
>
find
(
@PathVariable
(
"username"
)
String
username
)
{
public
Re
sult
<
User
>
find
(
@PathVariable
(
"username"
)
String
username
)
{
User
user
=
userService
.
findByUsername
(
username
);
return
Re
turnItemUtils
.
newSuccessReturnItem
(
user
);
return
Re
sultHelper
.
newSuccessResult
(
user
);
}
@PostMapping
(
"/add"
)
public
Re
turnItem
<
String
>
add
(
@RequestParam
(
name
=
"name"
)
String
username
,
public
Re
sult
add
(
@RequestParam
(
name
=
"name"
)
String
username
,
@RequestParam
(
required
=
false
)
String
nickname
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Integer
gender
,
@RequestParam
Integer
age
)
{
...
...
@@ -44,19 +45,19 @@ public class UserController {
user
.
setGender
(
gender
);
user
.
setAge
(
age
);
userService
.
add
(
user
);
return
Re
turnItemUtils
.
newSuccessReturnItem
();
return
Re
sultHelper
.
newSuccessResult
();
}
@PutMapping
(
"/update"
)
public
Re
turnItem
<
String
>
update
(
@RequestBody
User
user
)
{
// 以json格式接收参数, RequestBody也可省略
public
Re
sult
update
(
@RequestBody
User
user
)
{
// 以json格式接收参数, RequestBody也可省略
userService
.
update
(
user
);
return
Re
turnItemUtils
.
newSuccessReturnItem
();
return
Re
sultHelper
.
newSuccessResult
();
}
@DeleteMapping
(
"/delete"
)
public
Re
turnItem
<
String
>
delete
(
@RequestParam
Long
id
)
{
public
Re
sult
delete
(
@RequestParam
Long
id
)
{
userService
.
delete
(
id
);
return
Re
turnItemUtils
.
newSuccessReturnItem
();
return
Re
sultHelper
.
newSuccessResult
();
}
@RequestMapping
(
value
=
"/e"
,
method
=
RequestMethod
.
GET
)
...
...
@@ -82,15 +83,15 @@ public class UserController {
}
@PostMapping
(
"/addBatch"
)
public
Re
turnItem
<
String
>
addBatch
()
{
public
Re
sult
addBatch
()
{
try
{
userService
.
testTransaction
(
buildUsers
());
}
catch
(
Exception
e
)
{
logger
.
error
(
"#########user addBatch error"
,
e
);
return
Re
turnItemUtils
.
newErrorReturnItem
();
return
Re
sultHelper
.
newErrorResult
();
}
return
Re
turnItemUtils
.
newSuccessReturnItem
();
return
Re
sultHelper
.
newSuccessResult
();
}
private
List
<
User
>
buildUsers
()
{
...
...
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/exception/AppException.java
浏览文件 @
194512d9
package
org.hongxi.whatsmars.spring.boot.exception
;
import
org.hongxi.whatsmars.spring.boot.common.
pojo.ReturnItem
;
import
org.hongxi.whatsmars.spring.boot.common.
result.Result
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.ObjectError
;
...
...
@@ -55,13 +55,13 @@ public class AppException extends RuntimeException {
return
this
;
}
public
Re
turnItem
<
String
>
toResultItem
()
{
return
new
Re
turnItem
<
String
>
(
getErrorCode
().
value
,
getErrorMsg
());
public
Re
sult
toResult
()
{
return
new
Re
sult
(
getErrorCode
().
value
,
getErrorMsg
());
}
public
enum
Code
{
SUCCESS
(
200
),
ERROR
(
4
00
);
ERROR
(
5
00
);
private
int
value
;
Code
(
int
code
)
{
...
...
whatsmars-spring-boot/src/main/java/org/hongxi/whatsmars/spring/boot/exception/AppExceptionHandler.java
浏览文件 @
194512d9
...
...
@@ -3,8 +3,7 @@ package org.hongxi.whatsmars.spring.boot.exception;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.collect.Maps
;
import
org.hongxi.whatsmars.spring.boot.common.ProfileUtils
;
import
org.hongxi.whatsmars.spring.boot.common.pojo.ReturnItem
;
import
org.hongxi.whatsmars.spring.boot.common.pojo.ReturnMessage
;
import
org.hongxi.whatsmars.spring.boot.common.result.Result
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.boot.logging.LogLevel
;
...
...
@@ -31,18 +30,18 @@ public class AppExceptionHandler {
* 业务异常处理,直接返回异常信息提示
*/
@ExceptionHandler
(
AppException
.
class
)
public
ResponseEntity
<
Re
turnItem
>
businessExceptionHandle
(
AppException
exception
,
HttpServletRequest
request
)
{
public
ResponseEntity
<
Re
sult
>
businessExceptionHandle
(
AppException
exception
,
HttpServletRequest
request
)
{
logError
(
exception
,
request
,
LogLevel
.
WARN
);
return
new
ResponseEntity
<
Re
turnItem
>(
exception
.
toResultItem
(),
HttpStatus
.
OK
);
return
new
ResponseEntity
<
Re
sult
>(
exception
.
toResult
(),
HttpStatus
.
OK
);
}
/**
* 其他为定义异常,统一返回默认错误信息,避免打印出异常堆栈
*/
@ExceptionHandler
(
Exception
.
class
)
public
ResponseEntity
<
Re
turnItem
>
defaultExceptionHandle
(
Exception
exception
,
HttpServletRequest
request
)
{
public
ResponseEntity
<
Re
sult
>
defaultExceptionHandle
(
Exception
exception
,
HttpServletRequest
request
)
{
logError
(
exception
,
request
,
LogLevel
.
ERROR
);
return
new
ResponseEntity
<
Re
turnItem
>(
new
ReturnItem
(
AppException
.
Code
.
ERROR
.
getValue
(),
ProfileUtils
.
isDev
()
?
exception
.
getMessage
()
:
ReturnMessage
.
Message
.
OPERATION_ERROR
.
getValue
()
),
HttpStatus
.
OK
);
return
new
ResponseEntity
<
Re
sult
>(
new
Result
(
AppException
.
Code
.
ERROR
.
getValue
(),
ProfileUtils
.
isDev
()
?
exception
.
getMessage
()
:
"操作失败"
),
HttpStatus
.
OK
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录