Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
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
段启岩
beyond-clouds
Commits
30d5e50c
Commit
30d5e50c
authored
Jan 17, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加oss,抽取配置文件到application.yml
parent
32b9aa4e
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
531 additions
and
15 deletions
+531
-15
pom.xml
+6
-0
src/main/java/cn/meteor/beyondclouds/BeyondCloudsApplication.java
+2
-0
src/main/java/cn/meteor/beyondclouds/common/exception/OssException.java
+18
-0
src/main/java/cn/meteor/beyondclouds/common/helper/IOssHelper.java
+21
-0
src/main/java/cn/meteor/beyondclouds/common/helper/impl/OssHelperImpl.java
+45
-0
src/main/java/cn/meteor/beyondclouds/common/helper/impl/SmsHelperImpl.java
+26
-14
src/main/java/cn/meteor/beyondclouds/config/AliyunConfig.java
+47
-0
src/main/java/cn/meteor/beyondclouds/config/properties/AliyunProperties.java
+13
-0
src/main/java/cn/meteor/beyondclouds/config/properties/OssProperties.java
+13
-0
src/main/java/cn/meteor/beyondclouds/config/properties/SmsProperties.java
+12
-0
src/main/java/cn/meteor/beyondclouds/modules/file/api/FileUploadApi.java
+59
-0
src/main/java/cn/meteor/beyondclouds/modules/file/entity/UploadResource.java
+40
-0
src/main/java/cn/meteor/beyondclouds/modules/file/enums/FileUploadErrorCode.java
+30
-0
src/main/java/cn/meteor/beyondclouds/modules/file/enums/UploadType.java
+36
-0
src/main/java/cn/meteor/beyondclouds/modules/file/exception/FileUploadServiceException.java
+18
-0
src/main/java/cn/meteor/beyondclouds/modules/file/mapper/IUploadResourceMapper.java
+11
-0
src/main/java/cn/meteor/beyondclouds/modules/file/service/IFileUploadService.java
+22
-0
src/main/java/cn/meteor/beyondclouds/modules/file/service/IUploadResourceService.java
+10
-0
src/main/java/cn/meteor/beyondclouds/modules/file/service/impl/FileUploadServiceImpl.java
+53
-0
src/main/java/cn/meteor/beyondclouds/modules/file/service/impl/UploadResourceServiceImpl.java
+14
-0
src/main/java/cn/meteor/beyondclouds/util/UUIDUtils.java
+19
-0
src/main/java/cn/meteor/beyondclouds/util/VerifyCodeUtils.java
+1
-1
src/main/resources/application.yml
+15
-0
No files found.
pom.xml
View file @
30d5e50c
...
@@ -79,6 +79,12 @@
...
@@ -79,6 +79,12 @@
<artifactId>
aliyun-java-sdk-core
</artifactId>
<artifactId>
aliyun-java-sdk-core
</artifactId>
<version>
4.1.0
</version>
<version>
4.1.0
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.aliyun.oss
</groupId>
<artifactId>
aliyun-sdk-oss
</artifactId>
<version>
3.8.0
</version>
</dependency>
<!-- 阿里sdk end -->
<!-- 阿里sdk end -->
...
...
src/main/java/cn/meteor/beyondclouds/BeyondCloudsApplication.java
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
;
package
cn
.
meteor
.
beyondclouds
;
import
cn.meteor.beyondclouds.config.properties.AliyunProperties
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
/**
/**
* @author meteor
* @author meteor
...
...
src/main/java/cn/meteor/beyondclouds/common/exception/OssException.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
common
.
exception
;
/**
* Oss异常
* @author meteor
*/
public
class
OssException
extends
Exception
{
public
OssException
()
{
}
public
OssException
(
String
message
)
{
super
(
message
);
}
public
OssException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
src/main/java/cn/meteor/beyondclouds/common/helper/IOssHelper.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
common
.
helper
;
import
cn.meteor.beyondclouds.common.exception.OssException
;
import
java.io.InputStream
;
/**
* 阿里对象存储辅助类
* @author meteor
*/
public
interface
IOssHelper
{
/**
* 上传文件
* @param ins
* @param path 要上传到的路径
* @return
*/
String
upload
(
InputStream
ins
,
String
path
)
throws
OssException
;
}
src/main/java/cn/meteor/beyondclouds/common/helper/impl/OssHelperImpl.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
common
.
helper
.
impl
;
import
cn.meteor.beyondclouds.common.exception.OssException
;
import
cn.meteor.beyondclouds.common.helper.IOssHelper
;
import
cn.meteor.beyondclouds.config.properties.AliyunProperties
;
import
com.aliyun.oss.OSS
;
import
com.aliyun.oss.OSSClientBuilder
;
import
com.aliyun.oss.model.PutObjectRequest
;
import
com.aliyun.oss.model.PutObjectResult
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.io.FileNotFoundException
;
import
java.io.InputStream
;
/**
* @author 段启岩
*/
@Service
public
class
OssHelperImpl
implements
IOssHelper
{
private
OSS
ossClient
;
private
AliyunProperties
aliyunProperties
;
@Autowired
public
void
setAliyunProperties
(
OSS
ossClient
,
AliyunProperties
aliyunProperties
)
{
this
.
ossClient
=
ossClient
;
this
.
aliyunProperties
=
aliyunProperties
;
}
@Override
public
String
upload
(
InputStream
ins
,
String
path
)
throws
OssException
{
try
{
PutObjectRequest
putObjectRequest
=
new
PutObjectRequest
(
aliyunProperties
.
getOss
().
getBucket
(),
path
,
ins
);
PutObjectResult
result
=
ossClient
.
putObject
(
putObjectRequest
);
String
baseUrl
=
aliyunProperties
.
getOss
().
getBaseUrl
();
String
downloadUrl
=
baseUrl
.
endsWith
(
"/"
)
?
baseUrl
+
path
:
baseUrl
+
"/"
+
path
;
return
downloadUrl
;
}
catch
(
Exception
e
)
{
throw
new
OssException
(
"文件上传失败"
,
e
);
}
}
}
src/main/java/cn/meteor/beyondclouds/common/helper/impl/SmsHelperImpl.java
View file @
30d5e50c
...
@@ -2,6 +2,8 @@ package cn.meteor.beyondclouds.common.helper.impl;
...
@@ -2,6 +2,8 @@ package cn.meteor.beyondclouds.common.helper.impl;
import
cn.meteor.beyondclouds.common.exception.SmsException
;
import
cn.meteor.beyondclouds.common.exception.SmsException
;
import
cn.meteor.beyondclouds.common.helper.ISmsHelper
;
import
cn.meteor.beyondclouds.common.helper.ISmsHelper
;
import
cn.meteor.beyondclouds.config.properties.AliyunProperties
;
import
cn.meteor.beyondclouds.config.properties.SmsProperties
;
import
cn.meteor.beyondclouds.util.JsonUtils
;
import
cn.meteor.beyondclouds.util.JsonUtils
;
import
com.aliyuncs.CommonRequest
;
import
com.aliyuncs.CommonRequest
;
import
com.aliyuncs.CommonResponse
;
import
com.aliyuncs.CommonResponse
;
...
@@ -9,6 +11,7 @@ import com.aliyuncs.DefaultAcsClient;
...
@@ -9,6 +11,7 @@ import com.aliyuncs.DefaultAcsClient;
import
com.aliyuncs.IAcsClient
;
import
com.aliyuncs.IAcsClient
;
import
com.aliyuncs.http.MethodType
;
import
com.aliyuncs.http.MethodType
;
import
com.aliyuncs.profile.DefaultProfile
;
import
com.aliyuncs.profile.DefaultProfile
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -21,27 +24,39 @@ public class SmsHelperImpl implements ISmsHelper {
...
@@ -21,27 +24,39 @@ public class SmsHelperImpl implements ISmsHelper {
private
static
final
String
SMS_RESPONSE_DATA_KEY
=
"Code"
;
private
static
final
String
SMS_RESPONSE_DATA_KEY
=
"Code"
;
private
static
final
String
SMS_RESPONSE_DATA_VALUE_OK
=
"OK"
;
private
static
final
String
SMS_RESPONSE_DATA_VALUE_OK
=
"OK"
;
private
static
final
String
SMS_REQUEST_PARAM_NAME_REGION_ID
=
"RegionId"
;
private
static
final
String
SMS_REQUEST_PARAM_NAME_SIGN_NAME
=
"SignName"
;
private
static
final
String
SMS_REQUEST_PARAM_NAME_PHONE_NUMBERS
=
"PhoneNumbers"
;
private
static
final
String
SMS_REQUEST_PARAM_NAME_TEMPLATE_CODE
=
"TemplateCode"
;
private
static
final
String
SMS_REQUEST_PARAM_NAME_TEMPLATE_PARAM
=
"TemplateParam"
;
private
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
"cn-hangzhou"
,
"LTAIeHWeydaWT3ZZ"
,
"2FTWlODpzEZjsBQw10NO6SUBMwYOcL"
);
private
IAcsClient
iAcsClient
;
private
IAcsClient
client
=
new
DefaultAcsClient
(
profile
);
private
AliyunProperties
aliyunProperties
;
@Autowired
public
void
setiAcsClient
(
IAcsClient
iAcsClient
,
AliyunProperties
aliyunProperties
)
{
this
.
iAcsClient
=
iAcsClient
;
this
.
aliyunProperties
=
aliyunProperties
;
}
@Override
@Override
public
void
sendVerifyCode
(
String
mobile
,
String
verifyCode
)
throws
SmsException
{
public
void
sendVerifyCode
(
String
mobile
,
String
verifyCode
)
throws
SmsException
{
SmsProperties
smsProperties
=
aliyunProperties
.
getSms
();
CommonRequest
request
=
new
CommonRequest
();
CommonRequest
request
=
new
CommonRequest
();
request
.
setMethod
(
MethodType
.
POST
);
request
.
setMethod
(
MethodType
.
POST
);
request
.
setDomain
(
"dysmsapi.aliyuncs.com"
);
request
.
setDomain
(
smsProperties
.
getDomain
()
);
request
.
setVersion
(
"2017-05-25"
);
request
.
setVersion
(
smsProperties
.
getVersion
()
);
request
.
setAction
(
"SendSms"
);
request
.
setAction
(
smsProperties
.
getAction
()
);
request
.
putQueryParameter
(
"RegionId"
,
"cn-hangzhou"
);
request
.
putQueryParameter
(
SMS_REQUEST_PARAM_NAME_REGION_ID
,
smsProperties
.
getRegionId
()
);
request
.
putQueryParameter
(
"PhoneNumbers"
,
mobile
);
request
.
putQueryParameter
(
SMS_REQUEST_PARAM_NAME_SIGN_NAME
,
smsProperties
.
getSignName
()
);
request
.
putQueryParameter
(
"SignName"
,
"段启岩"
);
request
.
putQueryParameter
(
SMS_REQUEST_PARAM_NAME_PHONE_NUMBERS
,
mobile
);
request
.
putQueryParameter
(
"TemplateCode"
,
"SMS_142384912"
);
request
.
putQueryParameter
(
SMS_REQUEST_PARAM_NAME_TEMPLATE_CODE
,
"SMS_142384912"
);
request
.
putQueryParameter
(
"TemplateParam"
,
String
.
format
(
"{\"code\" : \"%s\"}"
,
verifyCode
));
request
.
putQueryParameter
(
SMS_REQUEST_PARAM_NAME_TEMPLATE_PARAM
,
String
.
format
(
"{\"code\" : \"%s\"}"
,
verifyCode
));
try
{
try
{
CommonResponse
response
=
c
lient
.
getCommonResponse
(
request
);
CommonResponse
response
=
iAcsC
lient
.
getCommonResponse
(
request
);
Map
data
=
JsonUtils
.
toBean
(
response
.
getData
(),
Map
.
class
);
Map
data
=
JsonUtils
.
toBean
(
response
.
getData
(),
Map
.
class
);
if
(!
data
.
get
(
SMS_RESPONSE_DATA_KEY
).
equals
(
SMS_RESPONSE_DATA_VALUE_OK
))
{
if
(!
data
.
get
(
SMS_RESPONSE_DATA_KEY
).
equals
(
SMS_RESPONSE_DATA_VALUE_OK
))
{
throw
new
SmsException
(
"短信发送失败"
);
throw
new
SmsException
(
"短信发送失败"
);
...
@@ -51,7 +66,4 @@ public class SmsHelperImpl implements ISmsHelper {
...
@@ -51,7 +66,4 @@ public class SmsHelperImpl implements ISmsHelper {
}
}
}
}
public
static
void
main
(
String
[]
args
)
{
// new SmsHelperImpl().sendVerifyCode("13546386889", "");
}
}
}
src/main/java/cn/meteor/beyondclouds/config/AliyunConfig.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
config
;
import
cn.meteor.beyondclouds.config.properties.AliyunProperties
;
import
com.aliyun.oss.OSS
;
import
com.aliyun.oss.OSSClientBuilder
;
import
com.aliyuncs.DefaultAcsClient
;
import
com.aliyuncs.IAcsClient
;
import
com.aliyuncs.profile.DefaultProfile
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.PropertySource
;
/**
* @author meteor
*/
@Configuration
@PropertySource
(
"classpath:application.yml"
)
@EnableConfigurationProperties
({
AliyunProperties
.
class
})
public
class
AliyunConfig
{
private
AliyunProperties
aliyunProperties
;
@Autowired
public
AliyunConfig
(
AliyunProperties
aliyunProperties
)
{
this
.
aliyunProperties
=
aliyunProperties
;
}
@Bean
public
OSS
oss
()
{
System
.
out
.
println
(
"new osss"
);
return
new
OSSClientBuilder
().
build
(
aliyunProperties
.
getOss
().
getEndpoint
(),
aliyunProperties
.
getAccessKeyId
(),
aliyunProperties
.
getAccessKeySecret
());
}
@Bean
public
DefaultProfile
defaultProfile
()
{
return
DefaultProfile
.
getProfile
(
aliyunProperties
.
getSms
().
getRegionId
(),
aliyunProperties
.
getAccessKeyId
(),
aliyunProperties
.
getAccessKeySecret
());
}
@Bean
IAcsClient
iAcsClient
()
{
return
new
DefaultAcsClient
(
defaultProfile
());
}
}
src/main/java/cn/meteor/beyondclouds/config/properties/AliyunProperties.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
config
.
properties
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
@ConfigurationProperties
(
prefix
=
"aliyun"
)
@Data
public
class
AliyunProperties
{
private
String
accessKeyId
;
private
String
accessKeySecret
;
private
OssProperties
oss
;
private
SmsProperties
sms
;
}
src/main/java/cn/meteor/beyondclouds/config/properties/OssProperties.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
config
.
properties
;
import
lombok.Data
;
/**
* @author meteor
*/
@Data
public
class
OssProperties
{
private
String
bucket
;
private
String
endpoint
;
private
String
baseUrl
;
}
src/main/java/cn/meteor/beyondclouds/config/properties/SmsProperties.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
config
.
properties
;
import
lombok.Data
;
@Data
public
class
SmsProperties
{
private
String
domain
;
private
String
version
;
private
String
action
;
private
String
regionId
;
private
String
signName
;
}
src/main/java/cn/meteor/beyondclouds/modules/file/api/FileUploadApi.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
api
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
import
cn.meteor.beyondclouds.core.bean.Subject
;
import
cn.meteor.beyondclouds.modules.file.enums.FileUploadErrorCode
;
import
cn.meteor.beyondclouds.modules.file.enums.UploadType
;
import
cn.meteor.beyondclouds.modules.file.exception.FileUploadServiceException
;
import
cn.meteor.beyondclouds.modules.file.service.IFileUploadService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
/**
* 文件相关Api
* @author 段启岩
*/
@RestController
@RequestMapping
(
"/api/file"
)
public
class
FileUploadApi
{
private
IFileUploadService
fileUploadService
;
@Autowired
public
void
setFileUploadService
(
IFileUploadService
fileUploadService
)
{
this
.
fileUploadService
=
fileUploadService
;
}
@PostMapping
(
"/upload"
)
public
Response
upload
(
@RequestParam
(
"file"
)
MultipartFile
file
,
@RequestParam
(
"type"
)
Integer
type
,
@CurrentSubject
Subject
subject
)
{
//1.获取上传类型
UploadType
uploadType
=
UploadType
.
valueOf
(
type
);
if
(
null
==
uploadType
)
{
return
Response
.
error
(
FileUploadErrorCode
.
UPLOAD_TYPE_ERROR
);
}
//2.获取文件后缀
String
originalFilename
=
file
.
getOriginalFilename
();
String
suffix
=
originalFilename
.
substring
(
originalFilename
.
lastIndexOf
(
"."
));
//3.上传文件
try
{
String
downloadUrl
=
fileUploadService
.
upload
(
file
.
getInputStream
(),
uploadType
,
suffix
,
subject
.
getId
());
return
Response
.
success
(
downloadUrl
);
}
catch
(
FileUploadServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
FileUploadErrorCode
.
UPLOAD_FAILURE
);
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/file/entity/UploadResource.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.models.auth.In
;
import
lombok.Data
;
import
lombok.ToString
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author 段启岩
*/
@Data
@ToString
@TableName
(
"upload_resource"
)
public
class
UploadResource
implements
Serializable
{
@TableField
@TableId
(
type
=
IdType
.
ASSIGN_UUID
)
private
String
resourceId
;
@TableField
private
String
userId
;
@TableField
private
String
resourceUrl
;
@TableField
private
Integer
resourceType
;
@TableField
private
Date
createTime
;
@TableField
private
Date
updateTime
;
}
src/main/java/cn/meteor/beyondclouds/modules/file/enums/FileUploadErrorCode.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
enums
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
/**
* @author 段启岩
*/
public
enum
FileUploadErrorCode
implements
IErrorCode
{
UPLOAD_FAILURE
(
2001
,
"文件上传失败"
),
UPLOAD_TYPE_ERROR
(
2002
,
"文件上传类型错误"
);
private
long
code
;
private
String
msg
;
FileUploadErrorCode
(
long
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
@Override
public
long
code
()
{
return
code
;
}
@Override
public
String
msg
()
{
return
msg
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/file/enums/UploadType.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
enums
;
/**
* 上传的类型
* @author meteor
*/
public
enum
UploadType
{
/**
* 上传头像
*/
AVATAR
(
0
,
"avatar/"
);
private
int
ordinal
;
private
String
basePath
;
UploadType
(
int
ordinal
,
String
basePath
)
{
this
.
ordinal
=
ordinal
;
this
.
basePath
=
basePath
;
}
public
String
getBasePath
()
{
return
basePath
;
}
public
int
getOrdinal
()
{
return
ordinal
;
}
public
static
UploadType
valueOf
(
int
ordinal
)
{
for
(
UploadType
uploadType
:
values
())
{
if
(
uploadType
.
getOrdinal
()
==
ordinal
)
{
return
uploadType
;
}
}
return
null
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/file/exception/FileUploadServiceException.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
exception
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
import
cn.meteor.beyondclouds.core.exception.ServiceException
;
/**
* 文件上传业务异常
* @author meteor
*/
public
class
FileUploadServiceException
extends
ServiceException
{
public
FileUploadServiceException
(
long
errorCode
,
String
errorMsg
)
{
super
(
errorCode
,
errorMsg
);
}
public
FileUploadServiceException
(
IErrorCode
errorCode
)
{
super
(
errorCode
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/file/mapper/IUploadResourceMapper.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
mapper
;
import
cn.meteor.beyondclouds.modules.file.entity.UploadResource
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.Mapper
;
/**
* @author meteor
*/
public
interface
IUploadResourceMapper
extends
BaseMapper
<
UploadResource
>
{
}
src/main/java/cn/meteor/beyondclouds/modules/file/service/IFileUploadService.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
service
;
import
cn.meteor.beyondclouds.modules.file.enums.UploadType
;
import
cn.meteor.beyondclouds.modules.file.exception.FileUploadServiceException
;
import
java.io.InputStream
;
/**
* 文件上传业务
* @author 段启岩
*/
public
interface
IFileUploadService
{
/**
* 上传文件
* @param ins
* @param uploadType
* @param suffix
* @param userId
* @return
*/
String
upload
(
InputStream
ins
,
UploadType
uploadType
,
String
suffix
,
String
userId
)
throws
FileUploadServiceException
;
}
src/main/java/cn/meteor/beyondclouds/modules/file/service/IUploadResourceService.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
service
;
import
cn.meteor.beyondclouds.modules.file.entity.UploadResource
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* @author meteor
*/
public
interface
IUploadResourceService
extends
IService
<
UploadResource
>
{
}
src/main/java/cn/meteor/beyondclouds/modules/file/service/impl/FileUploadServiceImpl.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
service
.
impl
;
import
cn.meteor.beyondclouds.common.exception.OssException
;
import
cn.meteor.beyondclouds.common.helper.IOssHelper
;
import
cn.meteor.beyondclouds.modules.file.entity.UploadResource
;
import
cn.meteor.beyondclouds.modules.file.enums.FileUploadErrorCode
;
import
cn.meteor.beyondclouds.modules.file.enums.UploadType
;
import
cn.meteor.beyondclouds.modules.file.exception.FileUploadServiceException
;
import
cn.meteor.beyondclouds.modules.file.service.IFileUploadService
;
import
cn.meteor.beyondclouds.modules.file.service.IUploadResourceService
;
import
cn.meteor.beyondclouds.util.UUIDUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.io.InputStream
;
/**
* 文件上传业务实现
* @author meteor
*/
@Service
public
class
FileUploadServiceImpl
implements
IFileUploadService
{
private
IOssHelper
ossHelper
;
private
IUploadResourceService
uploadResourceService
;
@Autowired
public
void
setOssHelper
(
IOssHelper
ossHelper
,
IUploadResourceService
uploadResourceService
)
{
this
.
ossHelper
=
ossHelper
;
this
.
uploadResourceService
=
uploadResourceService
;
}
@Override
public
String
upload
(
InputStream
ins
,
UploadType
uploadType
,
String
suffix
,
String
userId
)
throws
FileUploadServiceException
{
//1. 生成随机文件名
String
filename
=
UUIDUtils
.
randomUUID
()
+
suffix
;
String
uploadPath
=
uploadType
.
getBasePath
()
+
filename
;
//2. 上传文件到OSS
try
{
//3.把上传信息记录到数据库
String
downloadUrl
=
ossHelper
.
upload
(
ins
,
uploadPath
);
UploadResource
uploadResource
=
new
UploadResource
();
uploadResource
.
setUserId
(
userId
);
uploadResource
.
setResourceType
(
uploadType
.
getOrdinal
());
uploadResource
.
setResourceUrl
(
downloadUrl
);
uploadResourceService
.
save
(
uploadResource
);
return
downloadUrl
;
}
catch
(
OssException
e
)
{
e
.
printStackTrace
();
throw
new
FileUploadServiceException
(
FileUploadErrorCode
.
UPLOAD_FAILURE
);
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/file/service/impl/UploadResourceServiceImpl.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
modules
.
file
.
service
.
impl
;
import
cn.meteor.beyondclouds.modules.file.entity.UploadResource
;
import
cn.meteor.beyondclouds.modules.file.mapper.IUploadResourceMapper
;
import
cn.meteor.beyondclouds.modules.file.service.IUploadResourceService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
/**
* @author meteor
*/
@Service
public
class
UploadResourceServiceImpl
extends
ServiceImpl
<
IUploadResourceMapper
,
UploadResource
>
implements
IUploadResourceService
{
}
src/main/java/cn/meteor/beyondclouds/util/UUIDUtils.java
0 → 100644
View file @
30d5e50c
package
cn
.
meteor
.
beyondclouds
.
util
;
import
java.util.UUID
;
/**
* UUID工具类
* @author meteor
*/
public
class
UUIDUtils
{
/**
* 生成随机UUID
* @return
*/
public
static
String
randomUUID
()
{
return
UUID
.
randomUUID
().
toString
().
toLowerCase
();
}
}
src/main/java/cn/meteor/beyondclouds/util/VerifyCodeUtils.java
View file @
30d5e50c
...
@@ -15,7 +15,7 @@ public final class VerifyCodeUtils {
...
@@ -15,7 +15,7 @@ public final class VerifyCodeUtils {
* @return
* @return
*/
*/
public
static
String
randomVerifyCode
()
{
public
static
String
randomVerifyCode
()
{
return
String
.
format
(
"%d%d%d%d
"
,
randomNumber
(),
randomNumber
(),
randomNumber
(),
randomNumber
());
return
String
.
format
(
"%d%d%d%d
%d%d"
,
randomNumber
(),
randomNumber
()
,
randomNumber
(),
randomNumber
(),
randomNumber
(),
randomNumber
());
}
}
private
static
int
randomNumber
()
{
private
static
int
randomNumber
()
{
...
...
src/main/resources/application.yml
View file @
30d5e50c
...
@@ -7,3 +7,18 @@ spring:
...
@@ -7,3 +7,18 @@ spring:
swagger
:
swagger
:
enable
:
true
enable
:
true
aliyun
:
accessKeyId
:
LTAIeHWeydaWT3ZZ
accessKeySecret
:
2FTWlODpzEZjsBQw10NO6SUBMwYOcL
oss
:
bucket
:
beyondclouds
endpoint
:
http://oss-cn-beijing.aliyuncs.com
baseUrl
:
https://beyondclouds.oss-cn-beijing.aliyuncs.com
sms
:
domain
:
dysmsapi.aliyuncs.com
version
:
2017-05-25
action
:
SendSms
regionId
:
cn-hangzhou
signName
:
段启岩
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