Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Eladmin
Commits
8c4fd97e
"jetbrains:/idea/checkout/git" did not exist on "0f5828d47dae14f9aaecdee72029e85a9353ccfd"
Commit
8c4fd97e
authored
Jan 20, 2019
by
郑杰
Browse files
v1.5 beta版发布,详细查看发行版说明
parent
b066bb99
Changes
198
Hide whitespace changes
Inline
Side-by-side
src/main/java/me/zhengjie/
tools/
domain/QiniuConfig.java
→
eladmin-tools/
src/main/java/me/zhengjie/domain/QiniuConfig.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
domain
;
package
me.zhengjie.domain
;
import
lombok.Data
;
import
javax.persistence.*
;
...
...
@@ -23,12 +23,14 @@ public class QiniuConfig implements Serializable {
* 一个账号最多拥有两对密钥(Access/Secret Key)
*/
@NotBlank
@Column
(
name
=
"access_key"
,
columnDefinition
=
"text"
)
private
String
accessKey
;
/**
* 一个账号最多拥有两对密钥(Access/Secret Key)
*/
@NotBlank
@Column
(
name
=
"secret_key"
,
columnDefinition
=
"text"
)
private
String
secretKey
;
/**
...
...
src/main/java/me/zhengjie/
tools/
domain/QiniuContent.java
→
eladmin-tools/
src/main/java/me/zhengjie/domain/QiniuContent.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
domain
;
package
me.zhengjie.domain
;
import
lombok.Data
;
import
org.hibernate.annotations.UpdateTimestamp
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
...
...
@@ -50,5 +51,6 @@ public class QiniuContent implements Serializable {
* 更新时间
*/
@UpdateTimestamp
@Column
(
name
=
"update_time"
)
private
Timestamp
updateTime
;
}
src/main/java/me/zhengjie/
system/
domain/VerificationCode.java
→
eladmin-tools/
src/main/java/me/zhengjie/domain/VerificationCode.java
View file @
8c4fd97e
package
me.zhengjie.
system.
domain
;
package
me.zhengjie.domain
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
@@ -53,6 +53,7 @@ public class VerificationCode {
* 创建日期
*/
@CreationTimestamp
@Column
(
name
=
"create_time"
)
private
Timestamp
createTime
;
public
VerificationCode
(
String
code
,
String
scenes
,
@NotBlank
String
type
,
@NotBlank
String
value
)
{
...
...
src/main/java/me/zhengjie/
tools/
domain/vo/EmailVo.java
→
eladmin-tools/
src/main/java/me/zhengjie/domain/vo/EmailVo.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
domain.vo
;
package
me.zhengjie.domain.vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
@@ -6,7 +6,6 @@ import lombok.NoArgsConstructor;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotEmpty
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
src/main/java/me/zhengjie/
tools/
domain/vo/TradeVo.java
→
eladmin-tools/
src/main/java/me/zhengjie/domain/vo/TradeVo.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
domain.vo
;
package
me.zhengjie.domain.vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
src/main/java/me/zhengjie/
tools/
repository/AlipayRepository.java
→
eladmin-tools/
src/main/java/me/zhengjie/repository/AlipayRepository.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
tools.
domain.AlipayConfig
;
import
me.zhengjie.domain.AlipayConfig
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
...
...
src/main/java/me/zhengjie/
tools/
repository/EmailRepository.java
→
eladmin-tools/
src/main/java/me/zhengjie/repository/EmailRepository.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
tools.
domain.EmailConfig
;
import
me.zhengjie.domain.EmailConfig
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
...
...
src/main/java/me/zhengjie/
tools/
repository/PictureRepository.java
→
eladmin-tools/
src/main/java/me/zhengjie/repository/PictureRepository.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
tools.
domain.Picture
;
import
me.zhengjie.domain.Picture
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
...
...
src/main/java/me/zhengjie/
tools/
repository/QiNiuConfigRepository.java
→
eladmin-tools/
src/main/java/me/zhengjie/repository/QiNiuConfigRepository.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
tools.
domain.QiniuConfig
;
import
me.zhengjie.domain.QiniuConfig
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
...
...
src/main/java/me/zhengjie/
tools/
repository/QiniuContentRepository.java
→
eladmin-tools/
src/main/java/me/zhengjie/repository/QiniuContentRepository.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
tools.
domain.QiniuContent
;
import
me.zhengjie.domain.QiniuContent
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
...
...
src/main/java/me/zhengjie/
system/
repository/VerificationCodeRepository.java
→
eladmin-tools/
src/main/java/me/zhengjie/repository/VerificationCodeRepository.java
View file @
8c4fd97e
package
me.zhengjie.
system.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
system.
domain.VerificationCode
;
import
me.zhengjie.domain.VerificationCode
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
...
...
@@ -16,5 +16,5 @@ public interface VerificationCodeRepository extends JpaRepository<VerificationCo
* @param value
* @return
*/
VerificationCode
findByScenesAndTypeAndValueAndStatusIsTrue
(
String
scenes
,
String
type
,
String
value
);
VerificationCode
findByScenesAndTypeAndValueAndStatusIsTrue
(
String
scenes
,
String
type
,
String
value
);
}
src/main/java/me/zhengjie/
tools/
rest/AliPayController.java
→
eladmin-tools/
src/main/java/me/zhengjie/rest/AliPayController.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
rest
;
package
me.zhengjie.rest
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
me.zhengjie.
common.
aop.log.Log
;
import
me.zhengjie.
tools.
domain.AlipayConfig
;
import
me.zhengjie.
tools.
domain.vo.TradeVo
;
import
me.zhengjie.
tools.
service.AlipayService
;
import
me.zhengjie.
tools.
util.AliPayStatusEnum
;
import
me.zhengjie.
tools.
util.AlipayUtils
;
import
me.zhengjie.aop.log.Log
;
import
me.zhengjie.domain.AlipayConfig
;
import
me.zhengjie.domain.vo.TradeVo
;
import
me.zhengjie.service.AlipayService
;
import
me.zhengjie.util.AliPayStatusEnum
;
import
me.zhengjie.util.AlipayUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
...
...
@@ -38,7 +38,7 @@ public class AliPayController {
return
new
ResponseEntity
(
alipayService
.
find
(),
HttpStatus
.
OK
);
}
@Log
(
description
=
"配置支付宝"
)
@Log
(
"配置支付宝"
)
@PutMapping
(
value
=
"/aliPay"
)
public
ResponseEntity
payConfig
(
@Validated
@RequestBody
AlipayConfig
alipayConfig
){
alipayConfig
.
setId
(
1L
);
...
...
@@ -46,7 +46,7 @@ public class AliPayController {
return
new
ResponseEntity
(
HttpStatus
.
OK
);
}
@Log
(
description
=
"支付宝PC网页支付"
)
@Log
(
"支付宝PC网页支付"
)
@ApiOperation
(
value
=
"PC网页支付"
)
@PostMapping
(
value
=
"/aliPay/toPayAsPC"
)
public
ResponseEntity
toPayAsPC
(
@Validated@RequestBody
TradeVo
trade
)
throws
Exception
{
...
...
@@ -57,7 +57,7 @@ public class AliPayController {
return
ResponseEntity
.
ok
(
payUrl
);
}
@Log
(
description
=
"支付宝手机网页支付"
)
@Log
(
"支付宝手机网页支付"
)
@ApiOperation
(
value
=
"手机网页支付"
)
@PostMapping
(
value
=
"/aliPay/toPayAsWeb"
)
public
ResponseEntity
toPayAsWeb
(
@Validated
@RequestBody
TradeVo
trade
)
throws
Exception
{
...
...
src/main/java/me/zhengjie/
tools/
rest/EmailController.java
→
eladmin-tools/
src/main/java/me/zhengjie/rest/EmailController.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
rest
;
package
me.zhengjie.rest
;
import
lombok.extern.slf4j.Slf4j
;
import
me.zhengjie.
common.
aop.log.Log
;
import
me.zhengjie.
tools.
domain.EmailConfig
;
import
me.zhengjie.
tools.
domain.vo.EmailVo
;
import
me.zhengjie.
tools.
service.EmailService
;
import
me.zhengjie.aop.log.Log
;
import
me.zhengjie.domain.EmailConfig
;
import
me.zhengjie.domain.vo.EmailVo
;
import
me.zhengjie.service.EmailService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -30,14 +29,14 @@ public class EmailController {
return
new
ResponseEntity
(
emailService
.
find
(),
HttpStatus
.
OK
);
}
@Log
(
description
=
"配置邮件"
)
@Log
(
"配置邮件"
)
@PutMapping
(
value
=
"/email"
)
public
ResponseEntity
emailConfig
(
@Validated
@RequestBody
EmailConfig
emailConfig
){
emailService
.
update
(
emailConfig
,
emailService
.
find
());
return
new
ResponseEntity
(
HttpStatus
.
OK
);
}
@Log
(
description
=
"发送邮件"
)
@Log
(
"发送邮件"
)
@PostMapping
(
value
=
"/email"
)
public
ResponseEntity
send
(
@Validated
@RequestBody
EmailVo
emailVo
)
throws
Exception
{
log
.
warn
(
"REST request to send Email : {}"
+
emailVo
);
...
...
src/main/java/me/zhengjie/
tools/
rest/PictureController.java
→
eladmin-tools/
src/main/java/me/zhengjie/rest/PictureController.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
rest
;
package
me.zhengjie.rest
;
import
me.zhengjie.common.aop.log.Log
;
import
me.zhengjie.common.utils.RequestHolder
;
import
me.zhengjie.core.utils.JwtTokenUtil
;
import
me.zhengjie.tools.domain.Picture
;
import
me.zhengjie.tools.service.PictureService
;
import
me.zhengjie.tools.service.query.PictureQueryService
;
import
me.zhengjie.aop.log.Log
;
import
me.zhengjie.domain.Picture
;
import
me.zhengjie.service.PictureService
;
import
me.zhengjie.service.query.PictureQueryService
;
import
me.zhengjie.utils.SecurityContextHolder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.HashMap
;
...
...
@@ -30,10 +30,7 @@ public class PictureController {
@Autowired
private
PictureQueryService
pictureQueryService
;
@Autowired
private
JwtTokenUtil
jwtTokenUtil
;
@Log
(
description
=
"查询图片"
)
@Log
(
"查询图片"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','PICTURE_ALL','PICTURE_SELECT')"
)
@GetMapping
(
value
=
"/pictures"
)
public
ResponseEntity
getRoles
(
Picture
resources
,
Pageable
pageable
){
...
...
@@ -46,11 +43,12 @@ public class PictureController {
* @return
* @throws Exception
*/
@Log
(
description
=
"上传图片"
)
@Log
(
"上传图片"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','PICTURE_ALL','PICTURE_UPLOAD')"
)
@PostMapping
(
value
=
"/pictures"
)
public
ResponseEntity
upload
(
@RequestParam
MultipartFile
file
){
String
userName
=
jwtTokenUtil
.
getUserName
(
RequestHolder
.
getHttpServletRequest
());
UserDetails
userDetails
=
SecurityContextHolder
.
getUserDetails
();
String
userName
=
userDetails
.
getUsername
();
Picture
picture
=
pictureService
.
upload
(
file
,
userName
);
Map
map
=
new
HashMap
();
map
.
put
(
"errno"
,
0
);
...
...
@@ -64,7 +62,7 @@ public class PictureController {
* @param id
* @return
*/
@Log
(
description
=
"删除图片"
)
@Log
(
"删除图片"
)
@PreAuthorize
(
"hasAnyRole('ADMIN','PICTURE_ALL','PICTURE_DELETE')"
)
@DeleteMapping
(
value
=
"/pictures/{id}"
)
public
ResponseEntity
delete
(
@PathVariable
Long
id
)
{
...
...
src/main/java/me/zhengjie/
tools/
rest/QiniuController.java
→
eladmin-tools/
src/main/java/me/zhengjie/rest/QiniuController.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
rest
;
package
me.zhengjie.rest
;
import
lombok.extern.slf4j.Slf4j
;
import
me.zhengjie.
common.
aop.log.Log
;
import
me.zhengjie.
tools.
domain.QiniuConfig
;
import
me.zhengjie.
tools.
domain.QiniuContent
;
import
me.zhengjie.
tools.
service.QiNiuService
;
import
me.zhengjie.
tools.
service.query.QiNiuQueryService
;
import
me.zhengjie.aop.log.Log
;
import
me.zhengjie.domain.QiniuConfig
;
import
me.zhengjie.domain.QiniuContent
;
import
me.zhengjie.service.QiNiuService
;
import
me.zhengjie.service.query.QiNiuQueryService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.UnsupportedEncodingException
;
import
java.util.HashMap
;
import
java.util.Map
;
...
...
@@ -40,14 +37,14 @@ public class QiniuController {
return
new
ResponseEntity
(
qiNiuService
.
find
(),
HttpStatus
.
OK
);
}
@Log
(
description
=
"配置七牛云存储"
)
@Log
(
"配置七牛云存储"
)
@PutMapping
(
value
=
"/qiNiuConfig"
)
public
ResponseEntity
emailConfig
(
@Validated
@RequestBody
QiniuConfig
qiniuConfig
){
qiNiuService
.
update
(
qiniuConfig
);
return
new
ResponseEntity
(
HttpStatus
.
OK
);
}
@Log
(
description
=
"查询文件"
)
@Log
(
"查询文件"
)
@GetMapping
(
value
=
"/qiNiuContent"
)
public
ResponseEntity
getRoles
(
QiniuContent
resources
,
Pageable
pageable
){
return
new
ResponseEntity
(
qiNiuQueryService
.
queryAll
(
resources
,
pageable
),
HttpStatus
.
OK
);
...
...
@@ -58,7 +55,7 @@ public class QiniuController {
* @param file
* @return
*/
@Log
(
description
=
"上传文件"
)
@Log
(
"上传文件"
)
@PostMapping
(
value
=
"/qiNiuContent"
)
public
ResponseEntity
upload
(
@RequestParam
MultipartFile
file
){
QiniuContent
qiniuContent
=
qiNiuService
.
upload
(
file
,
qiNiuService
.
find
());
...
...
@@ -73,7 +70,7 @@ public class QiniuController {
* 同步七牛云数据到数据库
* @return
*/
@Log
(
description
=
"同步七牛云数据"
)
@Log
(
"同步七牛云数据"
)
@PostMapping
(
value
=
"/qiNiuContent/synchronize"
)
public
ResponseEntity
synchronize
(){
log
.
warn
(
"REST request to synchronize qiNiu : {}"
);
...
...
@@ -87,7 +84,7 @@ public class QiniuController {
* @return
* @throws Exception
*/
@Log
(
description
=
"下载文件"
)
@Log
(
"下载文件"
)
@GetMapping
(
value
=
"/qiNiuContent/download/{id}"
)
public
ResponseEntity
download
(
@PathVariable
Long
id
){
return
new
ResponseEntity
(
qiNiuService
.
download
(
qiNiuService
.
findByContentId
(
id
),
qiNiuService
.
find
()),
HttpStatus
.
OK
);
...
...
@@ -99,7 +96,7 @@ public class QiniuController {
* @return
* @throws Exception
*/
@Log
(
description
=
"删除文件"
)
@Log
(
"删除文件"
)
@DeleteMapping
(
value
=
"/qiNiuContent/{id}"
)
public
ResponseEntity
delete
(
@PathVariable
Long
id
){
qiNiuService
.
delete
(
qiNiuService
.
findByContentId
(
id
),
qiNiuService
.
find
());
...
...
src/main/java/me/zhengjie/
system/
rest/VerificationCodeController.java
→
eladmin-tools/
src/main/java/me/zhengjie/rest/VerificationCodeController.java
View file @
8c4fd97e
package
me.zhengjie.
system.
rest
;
package
me.zhengjie.rest
;
import
me.zhengjie.common.utils.ElAdminConstant
;
import
me.zhengjie.common.utils.RequestHolder
;
import
me.zhengjie.core.security.JwtUser
;
import
me.zhengjie.core.utils.JwtTokenUtil
;
import
me.zhengjie.system.domain.VerificationCode
;
import
me.zhengjie.system.service.VerificationCodeService
;
import
me.zhengjie.tools.domain.vo.EmailVo
;
import
me.zhengjie.tools.service.EmailService
;
import
me.zhengjie.domain.VerificationCode
;
import
me.zhengjie.domain.vo.EmailVo
;
import
me.zhengjie.service.EmailService
;
import
me.zhengjie.service.VerificationCodeService
;
import
me.zhengjie.utils.ElAdminConstant
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.http.HttpStatus
;
...
...
@@ -26,9 +23,6 @@ public class VerificationCodeController {
@Autowired
private
VerificationCodeService
verificationCodeService
;
@Autowired
private
JwtTokenUtil
jwtTokenUtil
;
@Autowired
@Qualifier
(
"jwtUserDetailsService"
)
private
UserDetailsService
userDetailsService
;
...
...
@@ -45,11 +39,10 @@ public class VerificationCodeController {
}
@PostMapping
(
value
=
"/code/email/resetPass"
)
public
ResponseEntity
resetPass
()
throws
Exception
{
JwtUser
jwtUser
=
(
JwtUser
)
userDetailsService
.
loadUserByUsername
(
jwtTokenUtil
.
getUserName
(
RequestHolder
.
getHttpServletRequest
()));
public
ResponseEntity
resetPass
(
@RequestParam
String
email
)
throws
Exception
{
VerificationCode
code
=
new
VerificationCode
();
code
.
setType
(
"email"
);
code
.
setValue
(
jwtUser
.
getE
mail
()
);
code
.
setValue
(
e
mail
);
code
.
setScenes
(
ElAdminConstant
.
RESET_MAIL
);
EmailVo
emailVo
=
verificationCodeService
.
sendEmail
(
code
);
emailService
.
send
(
emailVo
,
emailService
.
find
());
...
...
src/main/java/me/zhengjie/
tools/
service/AlipayService.java
→
eladmin-tools/
src/main/java/me/zhengjie/service/AlipayService.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
service
;
package
me.zhengjie.service
;
import
me.zhengjie.
tools.
domain.AlipayConfig
;
import
me.zhengjie.
tools.
domain.vo.TradeVo
;
import
me.zhengjie.domain.AlipayConfig
;
import
me.zhengjie.domain.vo.TradeVo
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CachePut
;
import
org.springframework.cache.annotation.Cacheable
;
...
...
src/main/java/me/zhengjie/
tools/
service/EmailService.java
→
eladmin-tools/
src/main/java/me/zhengjie/service/EmailService.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
service
;
package
me.zhengjie.service
;
import
me.zhengjie.
tools.
domain.EmailConfig
;
import
me.zhengjie.
tools.
domain.vo.EmailVo
;
import
me.zhengjie.domain.EmailConfig
;
import
me.zhengjie.domain.vo.EmailVo
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CachePut
;
import
org.springframework.cache.annotation.Cacheable
;
...
...
src/main/java/me/zhengjie/
tools/
service/PictureService.java
→
eladmin-tools/
src/main/java/me/zhengjie/service/PictureService.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
service
;
package
me.zhengjie.service
;
import
me.zhengjie.
tools.
domain.Picture
;
import
me.zhengjie.domain.Picture
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
...
...
src/main/java/me/zhengjie/
tools/
service/QiNiuService.java
→
eladmin-tools/
src/main/java/me/zhengjie/service/QiNiuService.java
View file @
8c4fd97e
package
me.zhengjie.
tools.
service
;
package
me.zhengjie.service
;
import
me.zhengjie.
tools.
domain.QiniuConfig
;
import
me.zhengjie.
tools.
domain.QiniuContent
;
import
me.zhengjie.domain.QiniuConfig
;
import
me.zhengjie.domain.QiniuContent
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.CachePut
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.UnsupportedEncodingException
;
/**
* @author jie
...
...
Prev
1
…
5
6
7
8
9
10
Next
Write
Preview
Supports
Markdown
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