Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
roncoo
roncoo-education
提交
a7b38daa
R
roncoo-education
项目概览
roncoo
/
roncoo-education
12 个月 前同步成功
通知
146
Star
5
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roncoo-education
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a7b38daa
编写于
8月 31, 2022
作者:
F
fengyw
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改
上级
5dcbc88e
变更
10
显示空白变更内容
内联
并排
Showing
10 changed file
with
281 addition
and
0 deletion
+281
-0
roncoo-education-common/roncoo-education-common-core/src/main/java/com/roncoo/education/common/core/enums/UploadModeEnum.java
...om/roncoo/education/common/core/enums/UploadModeEnum.java
+37
-0
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/config/WebConfig.java
...in/java/com/roncoo/education/common/config/WebConfig.java
+8
-0
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/upload/Upload.java
.../main/java/com/roncoo/education/common/upload/Upload.java
+34
-0
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/upload/UploadFace.java
...n/java/com/roncoo/education/common/upload/UploadFace.java
+15
-0
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/upload/impl/LocalUploadImpl.java
.../roncoo/education/common/upload/impl/LocalUploadImpl.java
+36
-0
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/upload/impl/MinIOUploadImpl.java
.../roncoo/education/common/upload/impl/MinIOUploadImpl.java
+31
-0
roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysConfigDao.java
...in/java/com/roncoo/education/system/dao/SysConfigDao.java
+2
-0
roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysConfigDaoImpl.java
...om/roncoo/education/system/dao/impl/SysConfigDaoImpl.java
+13
-0
roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/AdminUploadController.java
...education/system/service/admin/AdminUploadController.java
+45
-0
roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/biz/AdminUploadBiz.java
...oo/education/system/service/admin/biz/AdminUploadBiz.java
+60
-0
未找到文件。
roncoo-education-common/roncoo-education-common-core/src/main/java/com/roncoo/education/common/core/enums/UploadModeEnum.java
0 → 100644
浏览文件 @
a7b38daa
package
com.roncoo.education.common.core.enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* 上传方式
*
* @author LHR
*/
@Getter
@AllArgsConstructor
public
enum
UploadModeEnum
{
LOCAL
(
1
,
"本地"
,
"local"
),
MinIO
(
2
,
"MinIO"
,
"minio"
);
private
Integer
code
;
private
String
desc
;
private
String
mode
;
/**
* 根据编码获取枚举信息
*
* @param code 编码
* @return 枚举信息
*/
public
static
UploadModeEnum
getByCode
(
Integer
code
)
{
for
(
UploadModeEnum
val
:
UploadModeEnum
.
values
())
{
if
(
val
.
getCode
().
equals
(
code
))
{
return
val
;
}
}
return
null
;
}
}
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/config/WebConfig.java
浏览文件 @
a7b38daa
package
com.roncoo.education.common.config
;
import
com.roncoo.education.common.core.tools.Constants
;
import
com.roncoo.education.common.upload.impl.LocalUploadImpl
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.AsyncHandlerInterceptor
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -15,6 +17,12 @@ import javax.servlet.http.HttpServletResponse;
@Configuration
public
class
WebConfig
implements
WebMvcConfigurer
{
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
registry
.
addResourceHandler
(
LocalUploadImpl
.
PATH
+
"/**"
).
addResourceLocations
(
"file:"
+
LocalUploadImpl
.
LOCALPATH
);
}
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
new
InterceptorConfig
());
...
...
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/upload/Upload.java
0 → 100644
浏览文件 @
a7b38daa
package
com.roncoo.education.common.upload
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* 交易下单通知
*
* @author LYQ
*/
@Data
@Accessors
(
chain
=
true
)
public
class
Upload
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1195869049655301491L
;
/**
* 存储平台,参考:UploadModeEnum
*/
private
String
storagePlatform
;
/**
* 站点域名
*/
private
String
websiteDomain
;
/**
* MinIO
*/
private
String
minioDomain
;
private
String
minioBucket
;
}
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/upload/UploadFace.java
0 → 100644
浏览文件 @
a7b38daa
package
com.roncoo.education.common.upload
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* 上传功能
*/
public
interface
UploadFace
{
/**
* 图片上传
* @return 图片url
*/
String
uploadPic
(
MultipartFile
file
,
Upload
upload
);
}
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/upload/impl/LocalUploadImpl.java
0 → 100644
浏览文件 @
a7b38daa
package
com.roncoo.education.common.upload.impl
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.util.IdUtil
;
import
com.roncoo.education.common.upload.Upload
;
import
com.roncoo.education.common.upload.UploadFace
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.File
;
import
java.io.IOException
;
/**
* @author fengyw
*/
@Slf4j
@Component
(
value
=
"local"
)
public
class
LocalUploadImpl
implements
UploadFace
{
public
static
final
String
LOCALPATH
=
System
.
getProperty
(
"user.dir"
)
+
"/files/images/"
;
public
static
final
String
PATH
=
"/system/images/"
;
@Override
public
String
uploadPic
(
MultipartFile
file
,
Upload
upload
)
{
String
fileName
=
IdUtil
.
simpleUUID
()
+
FileUtil
.
getSuffix
(
file
.
getOriginalFilename
());
try
{
file
.
transferTo
(
new
File
(
LOCALPATH
+
fileName
));
}
catch
(
IOException
e
)
{
log
.
error
(
"本地上传错误"
,
e
);
return
""
;
}
return
upload
.
getWebsiteDomain
()
+
"gateway/system"
+
PATH
+
fileName
;
}
}
roncoo-education-common/roncoo-education-common-service/src/main/java/com/roncoo/education/common/upload/impl/MinIOUploadImpl.java
0 → 100644
浏览文件 @
a7b38daa
package
com.roncoo.education.common.upload.impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.roncoo.education.common.core.base.BaseException
;
import
com.roncoo.education.common.upload.Upload
;
import
com.roncoo.education.common.upload.UploadFace
;
import
io.minio.MinioClient
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.multipart.MultipartFile
;
@Slf4j
@Component
(
value
=
"minio"
)
public
class
MinIOUploadImpl
implements
UploadFace
{
/**
* 按需引入,需要打开jar
*/
@Autowired
(
required
=
false
)
private
MinioClient
minioClient
;
@Override
public
String
uploadPic
(
MultipartFile
file
,
Upload
upload
)
{
if
(
ObjectUtil
.
isEmpty
(
minioClient
)){
throw
new
BaseException
(
"请完成MinIO的配置"
);
}
return
null
;
}
}
roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/SysConfigDao.java
浏览文件 @
a7b38daa
...
...
@@ -71,4 +71,6 @@ public interface SysConfigDao {
* @return 系统配置数量
*/
int
countByExample
(
SysConfigExample
example
);
SysConfig
getByConfigKey
(
String
configKey
);
}
roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/dao/impl/SysConfigDaoImpl.java
浏览文件 @
a7b38daa
package
com.roncoo.education.system.dao.impl
;
import
cn.hutool.core.collection.CollUtil
;
import
com.roncoo.education.common.core.base.Page
;
import
com.roncoo.education.common.core.base.PageUtil
;
import
com.roncoo.education.common.core.tools.IdWorker
;
...
...
@@ -71,4 +72,16 @@ public class SysConfigDaoImpl implements SysConfigDao {
public
int
countByExample
(
SysConfigExample
example
)
{
return
this
.
mapper
.
countByExample
(
example
);
}
@Override
public
SysConfig
getByConfigKey
(
String
configKey
)
{
SysConfigExample
example
=
new
SysConfigExample
();
example
.
createCriteria
().
andConfigKeyEqualTo
(
configKey
);
example
.
setOrderByClause
(
"sort asc, id desc"
);
List
<
SysConfig
>
configList
=
this
.
mapper
.
selectByExampleWithBLOBs
(
example
);
if
(
CollUtil
.
isNotEmpty
(
configList
)){
return
configList
.
get
(
0
);
}
return
null
;
}
}
roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/AdminUploadController.java
0 → 100644
浏览文件 @
a7b38daa
package
com.roncoo.education.system.service.admin
;
import
com.roncoo.education.common.core.base.Result
;
import
com.roncoo.education.common.service.BaseController
;
import
com.roncoo.education.system.service.admin.biz.AdminUploadBiz
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
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.File
;
/**
* 上传接口
*
* @author wuyun
*/
@Api
(
tags
=
"Admin-上传接口"
)
@RestController
@RequestMapping
(
value
=
"/system/admin/upload"
)
public
class
AdminUploadController
extends
BaseController
{
@Autowired
private
AdminUploadBiz
biz
;
@ApiOperation
(
value
=
"上传图片"
,
notes
=
"服务端上传图片接口,只支持图片格式"
)
@ApiImplicitParam
(
name
=
"picFile"
,
value
=
"图片文件"
,
dataType
=
"File"
,
dataTypeClass
=
File
.
class
,
paramType
=
"query"
,
required
=
true
)
@PostMapping
(
value
=
"/pic"
)
public
Result
<
String
>
uploadPic
(
@RequestParam
(
value
=
"picFile"
,
required
=
false
)
MultipartFile
picFile
)
{
return
biz
.
uploadPic
(
picFile
);
}
@ApiOperation
(
value
=
"上传文档"
,
notes
=
"服务端上传文档接口,只支持文档格式"
)
@ApiImplicitParam
(
name
=
"docFile"
,
value
=
"文档文件"
,
dataType
=
"File"
,
dataTypeClass
=
File
.
class
,
paramType
=
"query"
,
required
=
true
)
@PostMapping
(
value
=
"/doc"
)
public
Result
<
String
>
uploadDoc
(
@RequestParam
(
name
=
"docFile"
,
required
=
false
)
MultipartFile
docFile
)
{
return
biz
.
uploadDoc
(
docFile
);
}
}
roncoo-education-system/roncoo-education-system-service/src/main/java/com/roncoo/education/system/service/admin/biz/AdminUploadBiz.java
0 → 100644
浏览文件 @
a7b38daa
/**
* Copyright 2015-现在 广州市领课网络科技有限公司
*/
package
com.roncoo.education.system.service.admin.biz
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.roncoo.education.common.core.base.Result
;
import
com.roncoo.education.common.core.enums.UploadModeEnum
;
import
com.roncoo.education.common.core.tools.BeanUtil
;
import
com.roncoo.education.common.upload.Upload
;
import
com.roncoo.education.common.upload.UploadFace
;
import
com.roncoo.education.system.dao.SysConfigDao
;
import
com.roncoo.education.system.dao.impl.mapper.entity.SysConfig
;
import
com.roncoo.education.system.dao.impl.mapper.entity.SysConfigExample
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* 上传接口
*
* @author wuyun
*/
@Slf4j
@Component
public
class
AdminUploadBiz
{
@Autowired
private
Map
<
String
,
UploadFace
>
uploadFaceMap
;
@Autowired
private
SysConfigDao
sysConfigDao
;
public
Result
<
String
>
uploadPic
(
MultipartFile
picFile
)
{
Upload
upload
=
getUploadForSysConfig
();
if
(
ObjectUtil
.
isNotEmpty
(
upload
)||
StringUtils
.
isEmpty
(
upload
.
getStoragePlatform
())){
UploadFace
uploadFace
=
uploadFaceMap
.
get
(
UploadModeEnum
.
getByCode
(
Integer
.
valueOf
(
upload
.
getStoragePlatform
())));
String
fileUrl
=
uploadFace
.
uploadPic
(
picFile
,
upload
);
return
Result
.
success
(
fileUrl
);
}
return
Result
.
error
(
"上传参数配置"
);
}
public
Result
<
String
>
uploadDoc
(
MultipartFile
docFile
)
{
return
null
;
}
private
Upload
getUploadForSysConfig
()
{
SysConfigExample
example
=
new
SysConfigExample
();
List
<
SysConfig
>
sysConfigs
=
sysConfigDao
.
listByExample
(
example
);
Map
<
String
,
String
>
map
=
sysConfigs
.
stream
().
collect
(
Collectors
.
toMap
(
SysConfig:
:
getConfigKey
,
SysConfig:
:
getConfigValue
));
return
BeanUtil
.
objToBean
(
map
,
Upload
.
class
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录