Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-oss
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
xingmin
yd-oss
Commits
962fbd42
Commit
962fbd42
authored
Sep 25, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
通用导出
parent
da06d17c
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1333 additions
and
204 deletions
+1333
-204
yd-oss-api/src/main/java/com/yd/oss/api/controller/ApiExcelController.java
+11
-0
yd-oss-api/src/main/java/com/yd/oss/api/service/ApiExcelService.java
+6
-0
yd-oss-api/src/main/java/com/yd/oss/api/service/impl/ApiExcelServiceImpl.java
+21
-0
yd-oss-api/src/main/java/com/yd/oss/api/service/impl/ApiOssServiceImpl.java
+5
-2
yd-oss-api/yd-oss-api.iml
+223
-2
yd-oss-feign/src/main/java/com/yd/oss/feign/client/ApiExcelFeignClient.java
+10
-1
yd-oss-feign/src/main/java/com/yd/oss/feign/dto/ExportParam.java
+28
-0
yd-oss-feign/src/main/java/com/yd/oss/feign/dto/ExportResult.java
+47
-0
yd-oss-feign/src/main/java/com/yd/oss/feign/fallback/ApiExcelFeignFallbackFactory.java
+7
-0
yd-oss-feign/src/main/java/com/yd/oss/feign/request/ApiExportRequest.java
+25
-0
yd-oss-feign/yd-oss-feign.iml
+89
-2
yd-oss-service/src/main/java/com/yd/oss/service/dto/OssUploadFileDto.java
+31
-0
yd-oss-service/src/main/java/com/yd/oss/service/service/ExcelExportService.java
+10
-0
yd-oss-service/src/main/java/com/yd/oss/service/service/OssService.java
+2
-1
yd-oss-service/src/main/java/com/yd/oss/service/service/impl/AliYunOssServiceImpl.java
+36
-177
yd-oss-service/src/main/java/com/yd/oss/service/service/impl/ExcelExportServiceImpl.java
+223
-0
yd-oss-service/src/main/java/com/yd/oss/service/utils/FileUtil.java
+340
-0
yd-oss-service/yd-oss-service.iml
+219
-2
yd-oss.iml
+0
-17
No files found.
yd-oss-api/src/main/java/com/yd/oss/api/controller/ApiExcelController.java
View file @
962fbd42
...
@@ -3,6 +3,8 @@ package com.yd.oss.api.controller;
...
@@ -3,6 +3,8 @@ package com.yd.oss.api.controller;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.oss.api.service.ApiExcelService
;
import
com.yd.oss.api.service.ApiExcelService
;
import
com.yd.oss.feign.client.ApiExcelFeignClient
;
import
com.yd.oss.feign.client.ApiExcelFeignClient
;
import
com.yd.oss.feign.dto.ExportResult
;
import
com.yd.oss.feign.request.ApiExportRequest
;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
import
com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse
;
import
com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse
;
...
@@ -47,4 +49,13 @@ public class ApiExcelController implements ApiExcelFeignClient {
...
@@ -47,4 +49,13 @@ public class ApiExcelController implements ApiExcelFeignClient {
return
apiExcelService
.
parse
(
file
,
sheetClassNames
);
return
apiExcelService
.
parse
(
file
,
sheetClassNames
);
}
}
/**
* 导出excel(通用)
* @return
*/
@Override
public
Result
<
ExportResult
>
export
(
ApiExportRequest
request
)
{
return
apiExcelService
.
export
(
request
.
getDataList
(),
request
.
getExportParam
(),
request
.
getEntityClass
());
}
}
}
yd-oss-api/src/main/java/com/yd/oss/api/service/ApiExcelService.java
View file @
962fbd42
package
com
.
yd
.
oss
.
api
.
service
;
package
com
.
yd
.
oss
.
api
.
service
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.oss.feign.dto.ExportParam
;
import
com.yd.oss.feign.dto.ExportResult
;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
import
com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse
;
import
com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
public
interface
ApiExcelService
{
public
interface
ApiExcelService
{
Result
<
ApiOssExportAppointmentExcelResponse
>
exportAppointment
(
ApiOssExportAppointmentExcelRequest
request
);
Result
<
ApiOssExportAppointmentExcelResponse
>
exportAppointment
(
ApiOssExportAppointmentExcelRequest
request
);
Result
<
ApiOssExcelParseResponse
>
parse
(
MultipartFile
file
,
String
[]
sheetClassNames
);
Result
<
ApiOssExcelParseResponse
>
parse
(
MultipartFile
file
,
String
[]
sheetClassNames
);
Result
<
ExportResult
>
export
(
List
<?>
dataList
,
ExportParam
exportParam
,
Class
<?>
entityClass
);
}
}
yd-oss-api/src/main/java/com/yd/oss/api/service/impl/ApiExcelServiceImpl.java
View file @
962fbd42
...
@@ -6,12 +6,17 @@ import com.yd.oss.api.service.ApiExcelService;
...
@@ -6,12 +6,17 @@ import com.yd.oss.api.service.ApiExcelService;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
import
com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse
;
import
com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse
;
import
com.yd.oss.feign.dto.ExportParam
;
import
com.yd.oss.feign.dto.ExportResult
;
import
com.yd.oss.service.service.AppointmentExcelService
;
import
com.yd.oss.service.service.AppointmentExcelService
;
import
com.yd.oss.service.service.ExcelExportService
;
import
com.yd.oss.service.service.ExcelParserService
;
import
com.yd.oss.service.service.ExcelParserService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
@Slf4j
@Slf4j
...
@@ -24,6 +29,9 @@ public class ApiExcelServiceImpl implements ApiExcelService {
...
@@ -24,6 +29,9 @@ public class ApiExcelServiceImpl implements ApiExcelService {
@Autowired
@Autowired
private
ExcelParserService
excelParserService
;
private
ExcelParserService
excelParserService
;
@Autowired
private
ExcelExportService
excelExportService
;
/**
/**
* 导出excel-预约信息
* 导出excel-预约信息
* @param request
* @param request
...
@@ -65,4 +73,17 @@ public class ApiExcelServiceImpl implements ApiExcelService {
...
@@ -65,4 +73,17 @@ public class ApiExcelServiceImpl implements ApiExcelService {
}
}
}
}
/**
* 通用-Excel导出参数(如果传dataList附加数据,不传单纯导出表头参数)
* @param dataList
* @param exportParam
* @param entityClass
* @return
*/
@Override
public
Result
<
ExportResult
>
export
(
List
<?>
dataList
,
ExportParam
exportParam
,
Class
<?>
entityClass
)
{
ExportResult
exportResult
=
excelExportService
.
exportAndUploadToOss
(
dataList
,
exportParam
,
entityClass
);
return
Result
.
success
(
exportResult
);
}
}
}
yd-oss-api/src/main/java/com/yd/oss/api/service/impl/ApiOssServiceImpl.java
View file @
962fbd42
...
@@ -6,8 +6,10 @@ import com.yd.oss.api.service.ApiOssService;
...
@@ -6,8 +6,10 @@ import com.yd.oss.api.service.ApiOssService;
import
com.yd.oss.feign.response.ApiFileMetadataResponse
;
import
com.yd.oss.feign.response.ApiFileMetadataResponse
;
import
com.yd.oss.feign.response.ApiUploadResponse
;
import
com.yd.oss.feign.response.ApiUploadResponse
;
import
com.yd.oss.service.dto.FileMetadata
;
import
com.yd.oss.service.dto.FileMetadata
;
import
com.yd.oss.service.dto.OssUploadFileDto
;
import
com.yd.oss.service.dto.UploadResult
;
import
com.yd.oss.service.dto.UploadResult
;
import
com.yd.oss.service.service.OssService
;
import
com.yd.oss.service.service.OssService
;
import
com.yd.oss.service.utils.FileUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.io.IOUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
...
@@ -44,10 +46,11 @@ public class ApiOssServiceImpl implements ApiOssService {
...
@@ -44,10 +46,11 @@ public class ApiOssServiceImpl implements ApiOssService {
}
}
// 上传文件
// 上传文件
String
fileKey
=
ossService
.
uploadFile
(
file
.
getInputStream
(),
file
.
getOriginalFilename
(),
bucket
,
uploadUser
);
OssUploadFileDto
ossUploadFileDto
=
ossService
.
uploadFile
(
file
.
getInputStream
(),
file
.
getOriginalFilename
(),
bucket
,
uploadUser
,
FileUtil
.
getFileType
(
file
.
getOriginalFilename
()));
// 获取上传结果(包含文件信息和访问URL)
// 获取上传结果(包含文件信息和访问URL)
UploadResult
result
=
ossService
.
getUploadResult
(
fileKey
,
Duration
.
ofHours
(
1
));
UploadResult
result
=
ossService
.
getUploadResult
(
ossUploadFileDto
.
getFileKey
()
,
Duration
.
ofHours
(
1
));
BeanUtils
.
copyProperties
(
result
,
response
);
BeanUtils
.
copyProperties
(
result
,
response
);
...
...
yd-oss-api/yd-oss-api.iml
View file @
962fbd42
...
@@ -16,8 +16,8 @@
...
@@ -16,8 +16,8 @@
</facet>
</facet>
</component>
</component>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<output
url=
"file://$MODULE_DIR$/
../
target/classes"
/>
<output
url=
"file://$MODULE_DIR$/target/classes"
/>
<output-test
url=
"file://$MODULE_DIR$/
../
target/test-classes"
/>
<output-test
url=
"file://$MODULE_DIR$/target/test-classes"
/>
<content
url=
"file://$MODULE_DIR$"
>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
...
@@ -26,5 +26,225 @@
...
@@ -26,5 +26,225 @@
</content>
</content>
<orderEntry
type=
"jdk"
jdkName=
"1.8"
jdkType=
"JavaSDK"
/>
<orderEntry
type=
"jdk"
jdkName=
"1.8"
jdkType=
"JavaSDK"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2021.0.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2021.0.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.nacos:nacos-client:1.4.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.nacos:nacos-common:1.4.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpasyncclient:4.1.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpcore-nio:4.4.15"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.nacos:nacos-api:1.4.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-codec:commons-codec:1.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.prometheus:simpleclient:0.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.prometheus:simpleclient_tracer_otel:0.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.prometheus:simpleclient_tracer_common:0.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.prometheus:simpleclient_tracer_otel_agent:0.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.spring:spring-context-support:1.0.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-commons:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-crypto:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-context:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:2021.0.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-web:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-json:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-tomcat:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.60"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.60"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-web:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-beans:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-webmvc:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-aop:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-autoconfigure:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-logging:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-classic:1.2.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:jul-to-slf4j:1.7.36"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.annotation:jakarta.annotation-api:1.3.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-core:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jcl:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.yaml:snakeyaml:1.29"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-swagger2:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-spi:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-core:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: net.bytebuddy:byte-buddy:1.11.22"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-schema:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-swagger-common:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-spring-web:2.9.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.guava:guava:20.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml:classmate:1.5.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:slf4j-api:1.7.36"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mapstruct:mapstruct:1.2.0.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter-bootstrap:3.0.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-rsa:1.0.10.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcpkix-jdk15on:1.68"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcprov-jdk15on:1.69"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-databind:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-core:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-annotations:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2"
level=
"project"
/>
<orderEntry
type=
"module"
module-name=
"yd-oss-service"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-boot-starter:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-annotation:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mybatis:mybatis:3.5.15"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.jsqlparser:jsqlparser:4.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mybatis:mybatis-spring:2.1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-spring-boot-autoconfigure:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-jdbc:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.zaxxer:HikariCP:4.0.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jdbc:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-tx:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-generator:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-extension:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-core:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba:druid-spring-boot-starter:1.2.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba:druid:1.2.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.annotation:javax.annotation-api:1.3.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: mysql:mysql-connector-java:8.0.28"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: p6spy:p6spy:3.9.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.freemarker:freemarker:2.3.31"
level=
"project"
/>
<orderEntry
type=
"module"
module-name=
"yd-oss-feign"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-common:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba:fastjson:1.2.83"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-validation:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.hibernate.validator:hibernate-validator:6.2.3.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.validation:jakarta.validation-api:2.0.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.logging:jboss-logging:3.4.3.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-data-redis:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-redis:2.6.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-keyvalue:2.6.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-commons:2.6.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-oxm:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.lettuce:lettuce-core:6.1.8.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-auth-core:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.xiaoymin:knife4j-openapi3-spring-boot-starter:4.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.xiaoymin:knife4j-core:4.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.xiaoymin:knife4j-openapi3-ui:4.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springdoc:springdoc-openapi-ui:1.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springdoc:springdoc-openapi-webmvc-core:1.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springdoc:springdoc-openapi-common:1.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger.core.v3:swagger-core:2.2.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.activation:jakarta.activation-api:1.2.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger.core.v3:swagger-annotations:2.2.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger.core.v3:swagger-models:2.2.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.webjars:swagger-ui:4.18.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-security:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-config:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-web:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-oauth2-resource-server:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-oauth2-core:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-oauth2-jose:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.nimbusds:nimbus-jose-jwt:9.14"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.stephenc.jcip:jcip-annotations:1.0-1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.jsonwebtoken:jjwt-api:0.11.5"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: io.jsonwebtoken:jjwt-impl:0.11.5"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: io.jsonwebtoken:jjwt-jackson:0.11.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.projectreactor:reactor-core:3.4.16"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.reactivestreams:reactive-streams:1.0.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter-loadbalancer:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-loadbalancer:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.projectreactor.addons:reactor-extra:3.4.7"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-cache:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context-support:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.stoyanr:evictor:1.0.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-user-service:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-user-feign:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-framework:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-aop:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.aspectj:aspectjweaver:1.9.7"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.projectlombok:lombok:1.18.16"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-core:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.redisson:redisson:3.20.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-common:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-codec:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-buffer:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-transport:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-resolver:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-resolver-dns:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-codec-dns:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-handler:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.cache:cache-api:1.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.reactivex.rxjava3:rxjava:3.1.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.marshalling:jboss-marshalling:2.0.11.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.marshalling:jboss-marshalling-river:2.0.11.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.esotericsoftware:kryo:5.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.esotericsoftware:reflectasm:1.11.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.objenesis:objenesis:3.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.esotericsoftware:minlog:1.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jodd:jodd-bean:5.1.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jodd:jodd-core:5.1.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-feign:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter-openfeign:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-openfeign-core:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign.form:feign-form-spring:3.8.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign.form:feign-form:3.8.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-fileupload:commons-fileupload:1.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign:feign-core:11.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign:feign-slf4j:11.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun.oss:aliyun-sdk-oss:3.15.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpclient:4.5.13"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpcore:4.4.15"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jdom:jdom2:2.0.6.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.codehaus.jettison:jettison:1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: stax:stax-api:1.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:aliyun-java-sdk-core:4.5.10"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.code.gson:gson:2.8.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-logging:commons-logging:1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.xml.bind:jaxb-api:2.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.activation:javax.activation-api:1.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jacoco:org.jacoco.agent:runtime:0.8.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.ini4j:ini4j:0.5.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-api:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-util:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-noop:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:aliyun-java-sdk-ram:3.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:aliyun-java-sdk-kms:2.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.60"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat:tomcat-annotations-api:9.0.60"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-local:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-api:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-transformer:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-util-conversion:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.zeroturnaround:zt-exec:1.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-transformer-msoffice-word:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-transformer-msoffice-base:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-transformer-api:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-util-all:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-util-transformer-process:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi:5.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-collections4:4.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-math3:3.6.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-io:commons-io:2.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.zaxxer:SparseBitSet:1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.17.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi-ooxml:5.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi-ooxml-lite:5.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-compress:1.21"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.virtuald:curvesapi:1.07"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.xmlbeans:xmlbeans:5.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: cn.afterturn:easypoi-base:4.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi-ooxml-schemas:4.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.14.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ognl:ognl:3.2.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.javassist:javassist:3.20.0-GA"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.validation:validation-api:2.0.1.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: cn.afterturn:easypoi-web:4.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: cn.afterturn:easypoi-annotation:4.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jxls:jxls:2.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-jexl3:3.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-beanutils:commons-beanutils:1.9.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-collections:commons-collections:3.2.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.slf4j:jcl-over-slf4j:1.7.36"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-core:1.2.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jxls:jxls-poi:2.12.0"
level=
"project"
/>
</component>
</component>
</module>
</module>
\ No newline at end of file
yd-oss-feign/src/main/java/com/yd/oss/feign/client/ApiExcelFeignClient.java
View file @
962fbd42
package
com
.
yd
.
oss
.
feign
.
client
;
package
com
.
yd
.
oss
.
feign
.
client
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.oss.feign.dto.ExportResult
;
import
com.yd.oss.feign.fallback.ApiExcelFeignFallbackFactory
;
import
com.yd.oss.feign.fallback.ApiExcelFeignFallbackFactory
;
import
com.yd.oss.feign.request.ApiExportRequest
;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
import
com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse
;
import
com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse
;
...
@@ -16,7 +18,7 @@ import org.springframework.web.multipart.MultipartFile;
...
@@ -16,7 +18,7 @@ import org.springframework.web.multipart.MultipartFile;
/**
/**
* Excel信息Feign客户端
* Excel信息Feign客户端
*/
*/
@FeignClient
(
name
=
"yd-oss-api"
,
fallbackFactory
=
ApiExcelFeignFallbackFactory
.
class
)
@FeignClient
(
name
=
"yd-oss-api"
,
path
=
"/oss/api/excel"
,
fallbackFactory
=
ApiExcelFeignFallbackFactory
.
class
)
public
interface
ApiExcelFeignClient
{
public
interface
ApiExcelFeignClient
{
/**
/**
...
@@ -33,4 +35,11 @@ public interface ApiExcelFeignClient {
...
@@ -33,4 +35,11 @@ public interface ApiExcelFeignClient {
@PostMapping
(
value
=
"/parse-excel"
,
consumes
=
MediaType
.
MULTIPART_FORM_DATA_VALUE
)
@PostMapping
(
value
=
"/parse-excel"
,
consumes
=
MediaType
.
MULTIPART_FORM_DATA_VALUE
)
Result
<
ApiOssExcelParseResponse
>
parse
(
@RequestPart
(
"file"
)
MultipartFile
file
,
Result
<
ApiOssExcelParseResponse
>
parse
(
@RequestPart
(
"file"
)
MultipartFile
file
,
@RequestPart
(
"sheetClassNames"
)
String
[]
sheetClassNames
);
@RequestPart
(
"sheetClassNames"
)
String
[]
sheetClassNames
);
/**
* 导出excel(通用)
* @return
*/
@PostMapping
(
"/export"
)
Result
<
ExportResult
>
export
(
@Validated
@RequestBody
ApiExportRequest
request
);
}
}
yd-oss-feign/src/main/java/com/yd/oss/feign/dto/ExportParam.java
0 → 100644
View file @
962fbd42
package
com
.
yd
.
oss
.
feign
.
dto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
ExportParam
{
/**
* 要导出的字段名列表
*/
private
List
<
String
>
fieldNames
;
/**
* 导出的文件名(不含扩展名)
*/
private
String
fileName
;
/**
* 是否上传到OSS
*/
private
Boolean
uploadToOss
=
false
;
/**
* OSS存储路径(如:exports/excel/)
*/
private
String
ossPath
=
"exports/excel/"
;
}
\ No newline at end of file
yd-oss-feign/src/main/java/com/yd/oss/feign/dto/ExportResult.java
0 → 100644
View file @
962fbd42
package
com
.
yd
.
oss
.
feign
.
dto
;
import
lombok.Data
;
@Data
public
class
ExportResult
{
/**
* 导出是否成功
*/
private
Boolean
success
;
/**
* 错误信息
*/
private
String
errorMsg
;
/**
* 文件大小(字节)
*/
private
Long
fileSize
;
/**
* OSS文件URL(如果上传到OSS)
*/
private
String
ossUrl
;
/**
* 本地文件路径(如果不上传OSS)
*/
private
String
localFilePath
;
public
static
ExportResult
success
(
String
ossUrl
,
Long
fileSize
)
{
ExportResult
result
=
new
ExportResult
();
result
.
setSuccess
(
true
);
result
.
setOssUrl
(
ossUrl
);
result
.
setFileSize
(
fileSize
);
return
result
;
}
public
static
ExportResult
error
(
String
errorMsg
)
{
ExportResult
result
=
new
ExportResult
();
result
.
setSuccess
(
false
);
result
.
setErrorMsg
(
errorMsg
);
return
result
;
}
}
\ No newline at end of file
yd-oss-feign/src/main/java/com/yd/oss/feign/fallback/ApiExcelFeignFallbackFactory.java
View file @
962fbd42
...
@@ -2,6 +2,8 @@ package com.yd.oss.feign.fallback;
...
@@ -2,6 +2,8 @@ package com.yd.oss.feign.fallback;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.oss.feign.client.ApiExcelFeignClient
;
import
com.yd.oss.feign.client.ApiExcelFeignClient
;
import
com.yd.oss.feign.dto.ExportResult
;
import
com.yd.oss.feign.request.ApiExportRequest
;
import
com.yd.oss.feign.request.ApiOssExcelParseRequest
;
import
com.yd.oss.feign.request.ApiOssExcelParseRequest
;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
import
com.yd.oss.feign.response.ApiOssExcelParseResponse
;
...
@@ -30,6 +32,11 @@ public class ApiExcelFeignFallbackFactory implements FallbackFactory<ApiExcelFei
...
@@ -30,6 +32,11 @@ public class ApiExcelFeignFallbackFactory implements FallbackFactory<ApiExcelFei
return
null
;
return
null
;
}
}
@Override
public
Result
<
ExportResult
>
export
(
ApiExportRequest
request
)
{
return
null
;
}
};
};
}
}
}
}
yd-oss-feign/src/main/java/com/yd/oss/feign/request/ApiExportRequest.java
0 → 100644
View file @
962fbd42
package
com
.
yd
.
oss
.
feign
.
request
;
import
com.yd.oss.feign.dto.ExportParam
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
ApiExportRequest
{
/**
* 需要导出的数据列表
*/
private
List
<?>
dataList
;
/**
* 导出参数配置
*/
private
ExportParam
exportParam
;
/**
* 实体类类型
*/
private
Class
<?>
entityClass
;
}
yd-oss-feign/yd-oss-feign.iml
View file @
962fbd42
...
@@ -7,8 +7,8 @@
...
@@ -7,8 +7,8 @@
</facet>
</facet>
</component>
</component>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<output
url=
"file://$MODULE_DIR$/
../
target/classes"
/>
<output
url=
"file://$MODULE_DIR$/target/classes"
/>
<output-test
url=
"file://$MODULE_DIR$/
../
target/test-classes"
/>
<output-test
url=
"file://$MODULE_DIR$/target/test-classes"
/>
<content
url=
"file://$MODULE_DIR$"
>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
...
@@ -17,5 +17,91 @@
...
@@ -17,5 +17,91 @@
</content>
</content>
<orderEntry
type=
"jdk"
jdkName=
"1.8"
jdkType=
"JavaSDK"
/>
<orderEntry
type=
"jdk"
jdkName=
"1.8"
jdkType=
"JavaSDK"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-feign:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter-openfeign:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-context:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-rsa:1.0.10.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcpkix-jdk15on:1.68"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcprov-jdk15on:1.69"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-openfeign-core:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-autoconfigure:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-aop:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.aspectj:aspectjweaver:1.9.7"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign.form:feign-form-spring:3.8.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign.form:feign-form:3.8.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-fileupload:commons-fileupload:1.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-io:commons-io:2.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-web:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-beans:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-core:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jcl:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-commons:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-crypto:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign:feign-core:11.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign:feign-slf4j:11.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:slf4j-api:1.7.36"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.projectlombok:lombok:1.18.16"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-common:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.xiaoymin:knife4j-openapi3-spring-boot-starter:4.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.xiaoymin:knife4j-core:4.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.xiaoymin:knife4j-openapi3-ui:4.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springdoc:springdoc-openapi-ui:1.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springdoc:springdoc-openapi-webmvc-core:1.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springdoc:springdoc-openapi-common:1.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger.core.v3:swagger-core:2.2.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.activation:jakarta.activation-api:1.2.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-databind:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-core:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger.core.v3:swagger-annotations:2.2.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger.core.v3:swagger-models:2.2.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-webmvc:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.webjars:swagger-ui:4.18.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba:fastjson:1.2.83"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-validation:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-logging:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-classic:1.2.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-core:1.2.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.17.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:jul-to-slf4j:1.7.36"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.annotation:jakarta.annotation-api:1.3.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.yaml:snakeyaml:1.29"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.60"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.hibernate.validator:hibernate-validator:6.2.3.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.validation:jakarta.validation-api:2.0.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.logging:jboss-logging:3.4.3.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml:classmate:1.5.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter-loadbalancer:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-loadbalancer:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.projectreactor:reactor-core:3.4.16"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.reactivestreams:reactive-streams:1.0.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.projectreactor.addons:reactor-extra:3.4.7"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-cache:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context-support:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.stoyanr:evictor:1.0.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.14.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-data-redis:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-redis:2.6.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-keyvalue:2.6.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-commons:2.6.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-tx:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-oxm:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-aop:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.lettuce:lettuce-core:6.1.8.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-common:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-handler:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-resolver:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-buffer:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-codec:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-transport:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-annotations:2.13.2"
level=
"project"
/>
</component>
</component>
</module>
</module>
\ No newline at end of file
yd-oss-service/src/main/java/com/yd/oss/service/dto/OssUploadFileDto.java
0 → 100644
View file @
962fbd42
package
com
.
yd
.
oss
.
service
.
dto
;
import
lombok.Data
;
/**
* 提供OSS上传文件返回的DTO
*/
@Data
public
class
OssUploadFileDto
{
/**
* 文件元数据表业务ID唯一标识
*/
private
String
fileBizId
;
/**
* 文件唯一标识
*/
private
String
fileKey
;
/**
* 原始文件名
*/
private
String
originalName
;
/**
* 完整的访问路径
*/
private
String
url
;
}
yd-oss-service/src/main/java/com/yd/oss/service/service/ExcelExportService.java
0 → 100644
View file @
962fbd42
package
com
.
yd
.
oss
.
service
.
service
;
import
com.yd.oss.feign.dto.ExportParam
;
import
com.yd.oss.feign.dto.ExportResult
;
import
java.util.List
;
public
interface
ExcelExportService
{
ExportResult
exportAndUploadToOss
(
List
<?>
dataList
,
ExportParam
exportParam
,
Class
<?>
entityClass
);
}
yd-oss-service/src/main/java/com/yd/oss/service/service/OssService.java
View file @
962fbd42
package
com
.
yd
.
oss
.
service
.
service
;
package
com
.
yd
.
oss
.
service
.
service
;
import
com.yd.oss.service.dto.FileMetadata
;
import
com.yd.oss.service.dto.FileMetadata
;
import
com.yd.oss.service.dto.OssUploadFileDto
;
import
com.yd.oss.service.dto.UploadResult
;
import
com.yd.oss.service.dto.UploadResult
;
import
com.yd.oss.service.model.OssProvider
;
import
com.yd.oss.service.model.OssProvider
;
import
java.io.InputStream
;
import
java.io.InputStream
;
...
@@ -12,7 +13,7 @@ import java.time.Duration;
...
@@ -12,7 +13,7 @@ import java.time.Duration;
public
interface
OssService
{
public
interface
OssService
{
// 上传文件
// 上传文件
String
uploadFile
(
InputStream
inputStream
,
String
fileName
,
String
bucketName
,
String
uploadUser
);
OssUploadFileDto
uploadFile
(
InputStream
inputStream
,
String
fileName
,
String
bucketName
,
String
uploadUser
,
String
type
);
// 上传文件(使用默认存储桶)
// 上传文件(使用默认存储桶)
String
uploadFile
(
InputStream
inputStream
,
String
fileName
,
String
uploadUser
);
String
uploadFile
(
InputStream
inputStream
,
String
fileName
,
String
uploadUser
);
...
...
yd-oss-service/src/main/java/com/yd/oss/service/service/impl/AliYunOssServiceImpl.java
View file @
962fbd42
...
@@ -7,8 +7,10 @@ import com.aliyun.oss.model.OSSObject;
...
@@ -7,8 +7,10 @@ import com.aliyun.oss.model.OSSObject;
import
com.aliyun.oss.model.ObjectMetadata
;
import
com.aliyun.oss.model.ObjectMetadata
;
import
com.aliyun.oss.model.PutObjectRequest
;
import
com.aliyun.oss.model.PutObjectRequest
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.utils.IpUtil
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.oss.service.dto.FileMetadata
;
import
com.yd.oss.service.dto.FileMetadata
;
import
com.yd.oss.service.dto.OssUploadFileDto
;
import
com.yd.oss.service.dto.UploadResult
;
import
com.yd.oss.service.dto.UploadResult
;
import
com.yd.oss.service.model.OssFile
;
import
com.yd.oss.service.model.OssFile
;
import
com.yd.oss.service.model.OssOperationLog
;
import
com.yd.oss.service.model.OssOperationLog
;
...
@@ -16,6 +18,7 @@ import com.yd.oss.service.model.OssProvider;
...
@@ -16,6 +18,7 @@ import com.yd.oss.service.model.OssProvider;
import
com.yd.oss.service.service.IOssFileService
;
import
com.yd.oss.service.service.IOssFileService
;
import
com.yd.oss.service.service.IOssProviderService
;
import
com.yd.oss.service.service.IOssProviderService
;
import
com.yd.oss.service.service.OssService
;
import
com.yd.oss.service.service.OssService
;
import
com.yd.oss.service.utils.FileUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -57,14 +60,17 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -57,14 +60,17 @@ public class AliYunOssServiceImpl implements OssService {
/**
/**
* 上传文件
* 上传文件
* @param inputStream
* @param inputStream 文件流
* @param fileName
* @param fileName 原始文件名
* @param bucketName
* @param bucketName OSS桶名
* @param uploadUser
* @param uploadUser 操作用户
* @param type oss文件夹分类目录类型,例:如果是.xls那就是excel/
* @return
* @return
*/
*/
@Override
@Override
public
String
uploadFile
(
InputStream
inputStream
,
String
fileName
,
String
bucketName
,
String
uploadUser
)
{
public
OssUploadFileDto
uploadFile
(
InputStream
inputStream
,
String
fileName
,
String
bucketName
,
String
uploadUser
,
String
type
)
{
OssUploadFileDto
ossUploadFileDto
=
new
OssUploadFileDto
();
long
startTime
=
System
.
currentTimeMillis
();
// 记录开始时间
long
startTime
=
System
.
currentTimeMillis
();
// 记录开始时间
String
operationResult
=
"success"
;
// 操作结果
String
operationResult
=
"success"
;
// 操作结果
String
errorMessage
=
null
;
// 错误信息
String
errorMessage
=
null
;
// 错误信息
...
@@ -72,19 +78,19 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -72,19 +78,19 @@ public class AliYunOssServiceImpl implements OssService {
try
{
try
{
// 读取输入流到字节数组
// 读取输入流到字节数组
byte
[]
fileData
=
readInputStreamToBytes
(
inputStream
);
byte
[]
fileData
=
FileUtil
.
readInputStreamToBytes
(
inputStream
);
long
fileSize
=
fileData
.
length
;
long
fileSize
=
fileData
.
length
;
ByteArrayInputStream
byteArrayInputStream
=
new
ByteArrayInputStream
(
fileData
);
ByteArrayInputStream
byteArrayInputStream
=
new
ByteArrayInputStream
(
fileData
);
// 生成文件key
// 生成文件key
String
fileKey
=
generateFileKey
(
fileNam
e
);
String
fileKey
=
FileUtil
.
generateFileKey
(
fileName
,
typ
e
);
String
actualBucket
=
StringUtils
.
isNotBlank
(
bucketName
)
?
bucketName
:
defaultBucket
;
String
actualBucket
=
StringUtils
.
isNotBlank
(
bucketName
)
?
bucketName
:
defaultBucket
;
String
fileType
=
getFileType
(
fileName
);
String
fileType
=
FileUtil
.
getFileType
(
fileName
);
// 创建上传请求
// 创建上传请求
ObjectMetadata
metadata
=
new
ObjectMetadata
();
ObjectMetadata
metadata
=
new
ObjectMetadata
();
metadata
.
setContentLength
(
fileSize
);
metadata
.
setContentLength
(
fileSize
);
metadata
.
setContentType
(
getContentType
(
fileType
));
metadata
.
setContentType
(
FileUtil
.
getContentType
(
fileType
));
// 设置公共读权限(如果需要)
// 设置公共读权限(如果需要)
// metadata.setObjectAcl(CannedAccessControlList.PublicRead);
// metadata.setObjectAcl(CannedAccessControlList.PublicRead);
...
@@ -115,14 +121,20 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -115,14 +121,20 @@ public class AliYunOssServiceImpl implements OssService {
operationLog
.
setOperationUser
(
uploadUser
);
operationLog
.
setOperationUser
(
uploadUser
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setClientIp
(
getClientIp
());
operationLog
.
setClientIp
(
IpUtil
.
getClientIp
());
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
// 保存操作日志到数据库
// 保存操作日志到数据库
ossFileService
.
saveOperationLog
(
operationLog
);
ossFileService
.
saveOperationLog
(
operationLog
);
log
.
info
(
"文件上传成功: {} -> {}/{}"
,
fileName
,
actualBucket
,
fileKey
);
log
.
info
(
"文件上传成功: {} -> {}/{}"
,
fileName
,
actualBucket
,
fileKey
);
return
fileKey
;
ossUploadFileDto
.
setFileBizId
(
ossFile
.
getFileBizId
());
ossUploadFileDto
.
setFileKey
(
fileKey
);
ossUploadFileDto
.
setOriginalName
(
fileName
);
// 如果设置了公共读,可以直接拼接URL
String
publicUrl
=
"https://"
+
actualBucket
+
"."
+
defaultEndpoint
+
"/"
+
fileKey
;
ossUploadFileDto
.
setUrl
(
publicUrl
);
return
ossUploadFileDto
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
operationResult
=
"failure"
;
// 标记操作失败
operationResult
=
"failure"
;
// 标记操作失败
errorMessage
=
e
.
getMessage
();
// 记录错误信息
errorMessage
=
e
.
getMessage
();
// 记录错误信息
...
@@ -130,7 +142,7 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -130,7 +142,7 @@ public class AliYunOssServiceImpl implements OssService {
throw
new
RuntimeException
(
"阿里云OSS上传文件失败: "
+
fileName
,
e
);
throw
new
RuntimeException
(
"阿里云OSS上传文件失败: "
+
fileName
,
e
);
}
finally
{
}
finally
{
// 关闭资源
// 关闭资源
closeQuietly
(
inputStream
);
FileUtil
.
closeQuietly
(
inputStream
);
// 记录失败日志
// 记录失败日志
if
(
"failure"
.
equals
(
operationResult
))
{
if
(
"failure"
.
equals
(
operationResult
))
{
...
@@ -144,7 +156,7 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -144,7 +156,7 @@ public class AliYunOssServiceImpl implements OssService {
operationLog
.
setOperationUser
(
uploadUser
);
operationLog
.
setOperationUser
(
uploadUser
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setClientIp
(
getClientIp
());
operationLog
.
setClientIp
(
IpUtil
.
getClientIp
());
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
// 保存操作日志到数据库
// 保存操作日志到数据库
...
@@ -163,7 +175,8 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -163,7 +175,8 @@ public class AliYunOssServiceImpl implements OssService {
@Override
@Override
public
String
uploadFile
(
InputStream
inputStream
,
String
fileName
,
String
uploadUser
)
{
public
String
uploadFile
(
InputStream
inputStream
,
String
fileName
,
String
uploadUser
)
{
// 调用重载方法,使用默认存储桶
// 调用重载方法,使用默认存储桶
return
uploadFile
(
inputStream
,
fileName
,
defaultBucket
,
uploadUser
);
// return uploadFile(inputStream, fileName, defaultBucket, uploadUser);
return
null
;
}
}
/**
/**
...
@@ -197,7 +210,7 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -197,7 +210,7 @@ public class AliYunOssServiceImpl implements OssService {
operationLog
.
setOperationUser
(
"system"
);
// 系统操作
operationLog
.
setOperationUser
(
"system"
);
// 系统操作
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setClientIp
(
getClientIp
());
operationLog
.
setClientIp
(
IpUtil
.
getClientIp
());
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
// 保存操作日志到数据库
// 保存操作日志到数据库
...
@@ -223,7 +236,7 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -223,7 +236,7 @@ public class AliYunOssServiceImpl implements OssService {
operationLog
.
setOperationUser
(
"system"
);
operationLog
.
setOperationUser
(
"system"
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setClientIp
(
getClientIp
());
operationLog
.
setClientIp
(
IpUtil
.
getClientIp
());
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
// 保存操作日志到数据库
// 保存操作日志到数据库
...
@@ -277,7 +290,7 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -277,7 +290,7 @@ public class AliYunOssServiceImpl implements OssService {
operationLog
.
setOperationUser
(
operator
);
operationLog
.
setOperationUser
(
operator
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setClientIp
(
getClientIp
());
operationLog
.
setClientIp
(
IpUtil
.
getClientIp
());
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
// 保存操作日志到数据库
// 保存操作日志到数据库
...
@@ -303,7 +316,7 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -303,7 +316,7 @@ public class AliYunOssServiceImpl implements OssService {
operationLog
.
setOperationUser
(
operator
);
operationLog
.
setOperationUser
(
operator
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setOperationResult
(
operationResult
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setErrorMessage
(
errorMessage
);
operationLog
.
setClientIp
(
getClientIp
());
operationLog
.
setClientIp
(
IpUtil
.
getClientIp
());
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
operationLog
.
setCostTime
(
System
.
currentTimeMillis
()
-
startTime
);
// 保存操作日志到数据库
// 保存操作日志到数据库
...
@@ -472,7 +485,10 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -472,7 +485,10 @@ public class AliYunOssServiceImpl implements OssService {
}
}
}
}
// 切换到指定的OSS提供商
/**
* 切换到指定的OSS提供商
* @param provider
*/
private
void
switchToProvider
(
OssProvider
provider
)
{
private
void
switchToProvider
(
OssProvider
provider
)
{
// 关闭旧的客户端
// 关闭旧的客户端
if
(
this
.
ossClient
!=
null
)
{
if
(
this
.
ossClient
!=
null
)
{
...
@@ -554,162 +570,6 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -554,162 +570,6 @@ public class AliYunOssServiceImpl implements OssService {
}
}
/**
/**
* 生成文件key(唯一标识)
* @param originalFileName
* @return
*/
private
String
generateFileKey
(
String
originalFileName
)
{
// 提取文件扩展名
String
fileExtension
=
originalFileName
.
contains
(
"."
)
?
originalFileName
.
substring
(
originalFileName
.
lastIndexOf
(
"."
))
:
""
;
// 生成唯一文件key:日期目录 + UUID + 扩展名
return
LocalDateTime
.
now
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy/MM/dd/"
))
+
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
)
+
fileExtension
;
}
/**
* 获取输入流大小
* @param inputStream
* @return
* @throws IOException
*/
private
Long
getInputStreamSize
(
InputStream
inputStream
)
throws
IOException
{
if
(
inputStream
instanceof
ByteArrayInputStream
)
{
// 如果是ByteArrayInputStream,直接获取可用字节数
return
(
long
)
inputStream
.
available
();
}
// 对于其他类型的流,需要读取并计算大小
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
byte
[]
buffer
=
new
byte
[
1024
];
int
len
;
long
size
=
0
;
while
((
len
=
inputStream
.
read
(
buffer
))
>
-
1
)
{
baos
.
write
(
buffer
,
0
,
len
);
size
+=
len
;
}
return
size
;
}
/**
* 读取输入流到字节数组
* @param inputStream
* @return
* @throws IOException
*/
private
byte
[]
readInputStreamToBytes
(
InputStream
inputStream
)
throws
IOException
{
ByteArrayOutputStream
buffer
=
new
ByteArrayOutputStream
();
int
nRead
;
byte
[]
data
=
new
byte
[
1024
];
while
((
nRead
=
inputStream
.
read
(
data
,
0
,
data
.
length
))
!=
-
1
)
{
buffer
.
write
(
data
,
0
,
nRead
);
}
buffer
.
flush
();
return
buffer
.
toByteArray
();
}
/**
* 重置输入流
* @param originalStream
* @param size
* @return
* @throws IOException
*/
private
InputStream
resetInputStream
(
InputStream
originalStream
,
long
size
)
throws
IOException
{
if
(
originalStream
instanceof
ByteArrayInputStream
)
{
// 如果是ByteArrayInputStream,可以直接重置
((
ByteArrayInputStream
)
originalStream
).
reset
();
return
originalStream
;
}
// 对于其他类型的流,需要重新创建
// 注意:这里简化处理,实际应用中可能需要更复杂的逻辑
byte
[]
data
=
new
byte
[(
int
)
size
];
try
(
ByteArrayInputStream
bais
=
new
ByteArrayInputStream
(
data
))
{
return
bais
;
}
}
/**
* 获取文件类型(扩展名)
* @param fileName
* @return
*/
private
String
getFileType
(
String
fileName
)
{
return
fileName
.
contains
(
"."
)
?
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
)
+
1
)
:
""
;
}
/**
* 根据文件类型获取内容类型
* @param fileType
* @return
*/
private
String
getContentType
(
String
fileType
)
{
switch
(
fileType
.
toLowerCase
())
{
case
"jpg"
:
case
"jpeg"
:
return
"image/jpeg"
;
case
"png"
:
return
"image/png"
;
case
"gif"
:
return
"image/gif"
;
case
"pdf"
:
return
"application/pdf"
;
case
"txt"
:
return
"text/plain"
;
case
"html"
:
return
"text/html"
;
case
"css"
:
return
"text/css"
;
case
"js"
:
return
"application/javascript"
;
default
:
return
"application/octet-stream"
;
}
}
/**
* 获取客户端IP
* @return
*/
private
String
getClientIp
()
{
try
{
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
ip
=
request
.
getHeader
(
"X-Forwarded-For"
);
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"WL-Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getRemoteAddr
();
}
return
ip
;
}
catch
(
Exception
e
)
{
return
"unknown"
;
}
}
/**
* 安静关闭资源
* @param closeable
*/
private
void
closeQuietly
(
Closeable
closeable
)
{
if
(
closeable
!=
null
)
{
try
{
closeable
.
close
();
}
catch
(
IOException
e
)
{
// 安静关闭,忽略异常
}
}
}
/**
* 创建虚拟文件记录(用于操作日志)
* 创建虚拟文件记录(用于操作日志)
* @return
* @return
*/
*/
...
@@ -719,7 +579,6 @@ public class AliYunOssServiceImpl implements OssService {
...
@@ -719,7 +579,6 @@ public class AliYunOssServiceImpl implements OssService {
return
file
;
return
file
;
}
}
/**
/**
* 上传字节数组到OSS并设置为公共读权限
* 上传字节数组到OSS并设置为公共读权限
* @param content 文件内容字节数组
* @param content 文件内容字节数组
...
...
yd-oss-service/src/main/java/com/yd/oss/service/service/impl/ExcelExportServiceImpl.java
0 → 100644
View file @
962fbd42
package
com
.
yd
.
oss
.
service
.
service
.
impl
;
import
cn.afterturn.easypoi.excel.ExcelExportUtil
;
import
cn.afterturn.easypoi.excel.entity.ExportParams
;
import
cn.afterturn.easypoi.excel.entity.enmus.ExcelType
;
import
cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity
;
import
com.yd.oss.feign.dto.ExportParam
;
import
com.yd.oss.feign.dto.ExportResult
;
import
com.yd.oss.service.dto.OssUploadFileDto
;
import
com.yd.oss.service.service.ExcelExportService
;
import
com.yd.oss.service.service.OssService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.lang.reflect.Field
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
/**
* excel导出实现类
*/
@Slf4j
@Service
public
class
ExcelExportServiceImpl
implements
ExcelExportService
{
// 注入OSS服务,用于文件上传
@Autowired
private
OssService
ossService
;
/**
* 导出Excel并上传到OSS
* @param dataList 需要导出的数据列表
* @param exportParam 导出参数配置
* @param entityClass 实体类类型
* @return 导出结果
*/
@Override
public
ExportResult
exportAndUploadToOss
(
List
<?>
dataList
,
ExportParam
exportParam
,
Class
<?>
entityClass
)
{
// 声明输出流和工作簿变量,用于后续资源关闭
ByteArrayOutputStream
outputStream
=
null
;
Workbook
workbook
=
null
;
try
{
// 根据实体类字段和导出参数构建Excel导出列配置
List
<
ExcelExportEntity
>
entityList
=
buildExportEntities
(
exportParam
.
getFieldNames
(),
entityClass
);
// 将数据列表转换为Map结构,便于EasyPOI处理
List
<
Map
<
String
,
Object
>>
dataMapList
=
buildDataMapList
(
dataList
,
exportParam
.
getFieldNames
(),
entityClass
);
// 创建字节数组输出流,用于将Excel数据写入内存
outputStream
=
new
ByteArrayOutputStream
();
// 设置导出参数:无标题、工作表名称为sheet1、使用XSSF格式(支持.xlsx)
ExportParams
params
=
new
ExportParams
(
null
,
"sheet1"
,
ExcelType
.
XSSF
);
// 使用EasyPOI导出Excel到工作簿
workbook
=
ExcelExportUtil
.
exportExcel
(
params
,
entityList
,
dataMapList
);
// 将工作簿内容写入输出流
workbook
.
write
(
outputStream
);
// 获取Excel文件的字节数组和文件大小
byte
[]
excelBytes
=
outputStream
.
toByteArray
();
long
fileSize
=
excelBytes
.
length
;
// 根据参数决定是否上传到OSS
if
(
Boolean
.
TRUE
.
equals
(
exportParam
.
getUploadToOss
()))
{
// 将字节数组转换为输入流,供OSS上传使用
ByteArrayInputStream
inputStream
=
new
ByteArrayInputStream
(
excelBytes
);
// 生成包含时间戳的文件名,避免重复
String
fileName
=
generateExcelFileName
(
exportParam
.
getFileName
());
// 调用OSS服务上传文件到云端存储
OssUploadFileDto
uploadResult
=
ossService
.
uploadFile
(
inputStream
,
// Excel文件输入流
fileName
,
// 生成的文件名
""
,
// 存储桶名称(空字符串表示使用默认存储桶)
""
,
// 上传用户标识(空字符串表示匿名或系统用户)
"excel"
// 文件分类类型,对应OSS文件夹目录
);
// 返回成功结果,包含文件URL和大小信息
return
ExportResult
.
success
(
uploadResult
.
getUrl
(),
fileSize
);
}
else
{
// 如果不需要上传到OSS,仅返回文件大小信息
return
ExportResult
.
success
(
null
,
fileSize
);
}
}
catch
(
Exception
e
)
{
// 打印异常堆栈,便于调试和问题排查
e
.
printStackTrace
();
// 返回错误结果,包含异常信息
return
ExportResult
.
error
(
"导出失败: "
+
e
.
getMessage
());
}
finally
{
// 资源清理块,确保工作簿和输出流正确关闭
try
{
// 关闭工作簿,释放内存资源
if
(
workbook
!=
null
)
{
workbook
.
close
();
}
// 关闭输出流,释放系统资源
if
(
outputStream
!=
null
)
{
outputStream
.
close
();
}
}
catch
(
Exception
e
)
{
// 打印资源关闭时的异常信息
e
.
printStackTrace
();
}
}
}
/**
* 生成Excel文件名(包含时间戳)
* @param baseName 基础文件名
* @return 生成的文件名
*/
private
String
generateExcelFileName
(
String
baseName
)
{
// 如果基础文件名为空,使用默认文件名
if
(
StringUtils
.
isBlank
(
baseName
))
{
baseName
=
"export_data"
;
}
// 去除已有文件扩展名,确保统一使用.xlsx格式
if
(
baseName
.
contains
(
"."
))
{
baseName
=
baseName
.
substring
(
0
,
baseName
.
lastIndexOf
(
'.'
));
}
// 生成时间戳,格式为年月日_时分秒
String
timestamp
=
LocalDateTime
.
now
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyyMMdd_HHmmss"
));
// 组合基础文件名、时间戳和文件扩展名
return
baseName
+
"_"
+
timestamp
+
".xlsx"
;
}
/**
* 构建导出列实体配置
* @param fieldNames 字段名称列表
* @param entityClass 实体类类型
* @return Excel导出列配置列表
*/
private
List
<
ExcelExportEntity
>
buildExportEntities
(
List
<
String
>
fieldNames
,
Class
<?>
entityClass
)
{
// 创建导出列配置列表
List
<
ExcelExportEntity
>
entityList
=
new
ArrayList
<>();
// 获取实体类字段的注解映射(字段名->Excel列名)
Map
<
String
,
String
>
fieldAnnotationMap
=
getFieldAnnotations
(
entityClass
);
// 遍历所有需要导出的字段
for
(
String
fieldName
:
fieldNames
)
{
// 检查字段是否存在于注解映射中
if
(
fieldAnnotationMap
.
containsKey
(
fieldName
))
{
// 创建Excel导出列实体:参数1为Excel列标题,参数2为实体字段名
ExcelExportEntity
entity
=
new
ExcelExportEntity
(
fieldAnnotationMap
.
get
(
fieldName
),
fieldName
);
// 将列配置添加到列表
entityList
.
add
(
entity
);
}
}
return
entityList
;
}
/**
* 获取字段注解映射(字段名->Excel列名)
* @param entityClass 实体类类型
* @return 字段注解映射表
*/
private
Map
<
String
,
String
>
getFieldAnnotations
(
Class
<?>
entityClass
)
{
// 创建字段注解映射表
Map
<
String
,
String
>
fieldAnnotationMap
=
new
HashMap
<>();
// 获取实体类声明的所有字段
Field
[]
fields
=
entityClass
.
getDeclaredFields
();
// 遍历所有字段
for
(
Field
field
:
fields
)
{
// 获取字段上的Excel注解配置
cn
.
afterturn
.
easypoi
.
excel
.
annotation
.
Excel
excelAnnotation
=
field
.
getAnnotation
(
cn
.
afterturn
.
easypoi
.
excel
.
annotation
.
Excel
.
class
);
// 如果字段有Excel注解,记录映射关系
if
(
excelAnnotation
!=
null
)
{
// key: 字段名, value: Excel列名
fieldAnnotationMap
.
put
(
field
.
getName
(),
excelAnnotation
.
name
());
}
}
return
fieldAnnotationMap
;
}
/**
* 构建数据Map列表,将对象列表转换为EasyPOI所需的Map结构
* @param dataList 数据对象列表
* @param fieldNames 需要导出的字段名称列表
* @param entityClass 实体类类型
* @return 数据Map列表
*/
private
List
<
Map
<
String
,
Object
>>
buildDataMapList
(
List
<?>
dataList
,
List
<
String
>
fieldNames
,
Class
<?>
entityClass
)
{
// 创建数据Map列表
List
<
Map
<
String
,
Object
>>
dataMapList
=
new
ArrayList
<>();
// 遍历数据列表中的每个对象
for
(
Object
data
:
dataList
)
{
// 为每个对象创建字段-值的映射
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
// 遍历所有需要导出的字段
for
(
String
fieldName
:
fieldNames
)
{
try
{
// 通过反射获取字段对象
Field
field
=
entityClass
.
getDeclaredField
(
fieldName
);
// 设置字段可访问(突破private限制)
field
.
setAccessible
(
true
);
// 将字段值放入Map,key为字段名,value为字段值
map
.
put
(
fieldName
,
field
.
get
(
data
));
}
catch
(
Exception
e
)
{
// 如果获取字段值失败,设置为空字符串
map
.
put
(
fieldName
,
""
);
}
}
// 将当前对象的字段映射添加到列表
dataMapList
.
add
(
map
);
}
return
dataMapList
;
}
}
\ No newline at end of file
yd-oss-service/src/main/java/com/yd/oss/service/utils/FileUtil.java
0 → 100644
View file @
962fbd42
package
com
.
yd
.
oss
.
service
.
utils
;
import
java.io.*
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.UUID
;
/**
* 文件工具类
*/
public
class
FileUtil
{
/**
* 获取文件类型(扩展名)
* @param fileName
* @return
*/
public
static
String
getFileType
(
String
fileName
)
{
return
fileName
.
contains
(
"."
)
?
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
)
+
1
)
:
""
;
}
/**
* 重置输入流
* @param originalStream
* @param size
* @return
* @throws IOException
*/
public
static
InputStream
resetInputStream
(
InputStream
originalStream
,
long
size
)
throws
IOException
{
if
(
originalStream
instanceof
ByteArrayInputStream
)
{
// 如果是ByteArrayInputStream,可以直接重置
((
ByteArrayInputStream
)
originalStream
).
reset
();
return
originalStream
;
}
// 对于其他类型的流,需要重新创建
// 注意:这里简化处理,实际应用中可能需要更复杂的逻辑
byte
[]
data
=
new
byte
[(
int
)
size
];
try
(
ByteArrayInputStream
bais
=
new
ByteArrayInputStream
(
data
))
{
return
bais
;
}
}
/**
* 安静关闭资源
* @param closeable
*/
public
static
void
closeQuietly
(
Closeable
closeable
)
{
if
(
closeable
!=
null
)
{
try
{
closeable
.
close
();
}
catch
(
IOException
e
)
{
// 安静关闭,忽略异常
}
}
}
/**
* 读取输入流到字节数组
* @param inputStream
* @return
* @throws IOException
*/
public
static
byte
[]
readInputStreamToBytes
(
InputStream
inputStream
)
throws
IOException
{
ByteArrayOutputStream
buffer
=
new
ByteArrayOutputStream
();
int
nRead
;
byte
[]
data
=
new
byte
[
1024
];
while
((
nRead
=
inputStream
.
read
(
data
,
0
,
data
.
length
))
!=
-
1
)
{
buffer
.
write
(
data
,
0
,
nRead
);
}
buffer
.
flush
();
return
buffer
.
toByteArray
();
}
/**
* 获取输入流大小
* @param inputStream
* @return
* @throws IOException
*/
public
static
Long
getInputStreamSize
(
InputStream
inputStream
)
throws
IOException
{
if
(
inputStream
instanceof
ByteArrayInputStream
)
{
// 如果是ByteArrayInputStream,直接获取可用字节数
return
(
long
)
inputStream
.
available
();
}
// 对于其他类型的流,需要读取并计算大小
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
byte
[]
buffer
=
new
byte
[
1024
];
int
len
;
long
size
=
0
;
while
((
len
=
inputStream
.
read
(
buffer
))
>
-
1
)
{
baos
.
write
(
buffer
,
0
,
len
);
size
+=
len
;
}
return
size
;
}
/**
* 生成文件key(唯一标识)
* @param originalFileName 原始文件名
* @param type oss文件夹分类目录类型,例:如果是.xls那就是excel/
* @return
*/
public
static
String
generateFileKey
(
String
originalFileName
,
String
type
)
{
// 提取文件扩展名
String
fileExtension
=
originalFileName
.
contains
(
"."
)
?
originalFileName
.
substring
(
originalFileName
.
lastIndexOf
(
"."
))
:
""
;
// 生成唯一文件key:日期目录 + UUID + 扩展名
return
type
+
"/"
+
LocalDateTime
.
now
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyy/MM/dd/"
))
+
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
)
+
fileExtension
;
}
/**
* 根据文件类型获取内容类型
* @param fileType 文件扩展名(不含点)
* @return MIME类型
*/
public
static
String
getContentType
(
String
fileType
)
{
if
(
fileType
==
null
||
fileType
.
trim
().
isEmpty
())
{
return
"application/octet-stream"
;
}
String
lowerFileType
=
fileType
.
toLowerCase
();
switch
(
lowerFileType
)
{
// 图像类型
case
"jpg"
:
case
"jpeg"
:
return
"image/jpeg"
;
case
"png"
:
return
"image/png"
;
case
"gif"
:
return
"image/gif"
;
case
"bmp"
:
return
"image/bmp"
;
case
"webp"
:
return
"image/webp"
;
case
"svg"
:
return
"image/svg+xml"
;
case
"ico"
:
return
"image/x-icon"
;
case
"tiff"
:
case
"tif"
:
return
"image/tiff"
;
case
"psd"
:
return
"image/vnd.adobe.photoshop"
;
// 文档类型
case
"pdf"
:
return
"application/pdf"
;
case
"doc"
:
return
"application/msword"
;
case
"docx"
:
return
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
;
case
"xls"
:
return
"application/vnd.ms-excel"
;
case
"xlsx"
:
return
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
;
case
"ppt"
:
return
"application/vnd.ms-powerpoint"
;
case
"pptx"
:
return
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
;
case
"csv"
:
return
"text/csv"
;
case
"rtf"
:
return
"application/rtf"
;
case
"odt"
:
return
"application/vnd.oasis.opendocument.text"
;
case
"ods"
:
return
"application/vnd.oasis.opendocument.spreadsheet"
;
case
"odp"
:
return
"application/vnd.oasis.opendocument.presentation"
;
// 文本类型
case
"txt"
:
return
"text/plain"
;
case
"html"
:
case
"htm"
:
return
"text/html"
;
case
"css"
:
return
"text/css"
;
case
"xml"
:
return
"application/xml"
;
case
"json"
:
return
"application/json"
;
case
"js"
:
return
"application/javascript"
;
case
"md"
:
return
"text/markdown"
;
case
"log"
:
return
"text/plain"
;
// 压缩文件类型
case
"zip"
:
return
"application/zip"
;
case
"rar"
:
return
"application/vnd.rar"
;
case
"7z"
:
return
"application/x-7z-compressed"
;
case
"tar"
:
return
"application/x-tar"
;
case
"gz"
:
return
"application/gzip"
;
// 音频类型
case
"mp3"
:
return
"audio/mpeg"
;
case
"wav"
:
return
"audio/wav"
;
case
"ogg"
:
return
"audio/ogg"
;
case
"flac"
:
return
"audio/flac"
;
case
"aac"
:
return
"audio/aac"
;
case
"m4a"
:
return
"audio/mp4"
;
case
"wma"
:
return
"audio/x-ms-wma"
;
// 视频类型
case
"mp4"
:
return
"video/mp4"
;
case
"avi"
:
return
"video/x-msvideo"
;
case
"mov"
:
return
"video/quicktime"
;
case
"wmv"
:
return
"video/x-ms-wmv"
;
case
"flv"
:
return
"video/x-flv"
;
case
"webm"
:
return
"video/webm"
;
case
"mkv"
:
return
"video/x-matroska"
;
case
"mpeg"
:
case
"mpg"
:
return
"video/mpeg"
;
case
"3gp"
:
return
"video/3gpp"
;
// 字体类型
case
"ttf"
:
return
"font/ttf"
;
case
"otf"
:
return
"font/otf"
;
case
"woff"
:
return
"font/woff"
;
case
"woff2"
:
return
"font/woff2"
;
case
"eot"
:
return
"application/vnd.ms-fontobject"
;
// 编程文件类型
case
"java"
:
return
"text/x-java-source"
;
case
"py"
:
return
"text/x-python"
;
case
"php"
:
return
"application/x-httpd-php"
;
case
"cpp"
:
case
"c++"
:
return
"text/x-c++"
;
case
"c"
:
return
"text/x-c"
;
case
"h"
:
return
"text/x-c-header"
;
case
"cs"
:
return
"text/x-csharp"
;
case
"go"
:
return
"text/x-go"
;
case
"rb"
:
return
"text/x-ruby"
;
case
"pl"
:
return
"text/x-perl"
;
case
"sh"
:
return
"application/x-sh"
;
case
"bat"
:
return
"application/x-msdownload"
;
case
"ps1"
:
return
"application/x-powershell"
;
// 数据文件类型
case
"sql"
:
return
"application/sql"
;
case
"db"
:
case
"sqlite"
:
return
"application/x-sqlite3"
;
case
"dbf"
:
return
"application/x-dbf"
;
// 电子书类型
case
"epub"
:
return
"application/epub+zip"
;
case
"mobi"
:
return
"application/x-mobipocket-ebook"
;
case
"azw"
:
return
"application/vnd.amazon.ebook"
;
// CAD文件类型
case
"dwg"
:
return
"image/vnd.dwg"
;
case
"dxf"
:
return
"image/vnd.dxf"
;
// 其他常见类型
case
"exe"
:
return
"application/x-msdownload"
;
case
"dll"
:
return
"application/x-msdownload"
;
case
"apk"
:
return
"application/vnd.android.package-archive"
;
case
"ipa"
:
return
"application/x-itunes-ipa"
;
case
"deb"
:
return
"application/x-deb"
;
case
"rpm"
:
return
"application/x-rpm"
;
case
"iso"
:
return
"application/x-iso9660-image"
;
case
"swf"
:
return
"application/x-shockwave-flash"
;
case
"ps"
:
return
"application/postscript"
;
case
"ai"
:
return
"application/postscript"
;
case
"eps"
:
return
"application/postscript"
;
default
:
return
"application/octet-stream"
;
}
}
}
yd-oss-service/yd-oss-service.iml
View file @
962fbd42
...
@@ -16,8 +16,8 @@
...
@@ -16,8 +16,8 @@
</facet>
</facet>
</component>
</component>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<output
url=
"file://$MODULE_DIR$/
../
target/classes"
/>
<output
url=
"file://$MODULE_DIR$/target/classes"
/>
<output-test
url=
"file://$MODULE_DIR$/
../
target/test-classes"
/>
<output-test
url=
"file://$MODULE_DIR$/target/test-classes"
/>
<content
url=
"file://$MODULE_DIR$"
>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
...
@@ -26,5 +26,221 @@
...
@@ -26,5 +26,221 @@
</content>
</content>
<orderEntry
type=
"jdk"
jdkName=
"1.8"
jdkType=
"JavaSDK"
/>
<orderEntry
type=
"jdk"
jdkName=
"1.8"
jdkType=
"JavaSDK"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-boot-starter:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-annotation:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mybatis:mybatis:3.5.15"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.jsqlparser:jsqlparser:4.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mybatis:mybatis-spring:2.1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-spring-boot-autoconfigure:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-autoconfigure:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-jdbc:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.zaxxer:HikariCP:4.0.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jdbc:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-tx:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-generator:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-extension:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.baomidou:mybatis-plus-core:3.5.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba:druid-spring-boot-starter:1.2.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba:druid:1.2.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.annotation:javax.annotation-api:1.3.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:slf4j-api:1.7.36"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: mysql:mysql-connector-java:8.0.28"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: p6spy:p6spy:3.9.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.freemarker:freemarker:2.3.31"
level=
"project"
/>
<orderEntry
type=
"module"
module-name=
"yd-oss-feign"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-common:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba:fastjson:1.2.83"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-validation:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.60"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.hibernate.validator:hibernate-validator:6.2.3.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.validation:jakarta.validation-api:2.0.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.logging:jboss-logging:3.4.3.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml:classmate:1.5.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-data-redis:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-redis:2.6.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-keyvalue:2.6.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-commons:2.6.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-oxm:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.lettuce:lettuce-core:6.1.8.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-annotations:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-auth-core:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.xiaoymin:knife4j-openapi3-spring-boot-starter:4.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.xiaoymin:knife4j-core:4.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.xiaoymin:knife4j-openapi3-ui:4.3.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springdoc:springdoc-openapi-ui:1.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springdoc:springdoc-openapi-webmvc-core:1.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springdoc:springdoc-openapi-common:1.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger.core.v3:swagger-core:2.2.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.activation:jakarta.activation-api:1.2.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger.core.v3:swagger-annotations:2.2.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger.core.v3:swagger-models:2.2.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.webjars:swagger-ui:4.18.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2021.0.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2021.0.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.nacos:nacos-client:1.4.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.nacos:nacos-common:1.4.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpasyncclient:4.1.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpcore-nio:4.4.15"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.nacos:nacos-api:1.4.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.prometheus:simpleclient:0.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.prometheus:simpleclient_tracer_otel:0.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.prometheus:simpleclient_tracer_common:0.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.prometheus:simpleclient_tracer_otel_agent:0.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.spring:spring-context-support:1.0.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-commons:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-context:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:2021.0.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-web:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-json:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-tomcat:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.60"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-logging:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-classic:1.2.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:jul-to-slf4j:1.7.36"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jakarta.annotation:jakarta.annotation-api:1.3.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.yaml:snakeyaml:1.29"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-security:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-aop:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-config:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-web:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-oauth2-resource-server:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-oauth2-core:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-oauth2-jose:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.nimbusds:nimbus-jose-jwt:9.14"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.stephenc.jcip:jcip-annotations:1.0-1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.jsonwebtoken:jjwt-api:0.11.5"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: io.jsonwebtoken:jjwt-impl:0.11.5"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: io.jsonwebtoken:jjwt-jackson:0.11.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-databind:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.projectreactor:reactor-core:3.4.16"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.reactivestreams:reactive-streams:1.0.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter-bootstrap:3.0.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-rsa:1.0.10.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcpkix-jdk15on:1.68"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.bouncycastle:bcprov-jdk15on:1.69"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter-loadbalancer:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-loadbalancer:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.projectreactor.addons:reactor-extra:3.4.7"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-cache:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context-support:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.stoyanr:evictor:1.0.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-user-service:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-user-feign:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-framework:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-aop:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.aspectj:aspectjweaver:1.9.7"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.projectlombok:lombok:1.18.16"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-core:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.security:spring-security-crypto:5.6.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.redisson:redisson:3.20.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-common:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-codec:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-buffer:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-transport:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-resolver:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-resolver-dns:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-codec-dns:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.netty:netty-handler:4.1.69.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.cache:cache-api:1.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.reactivex.rxjava3:rxjava:3.1.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.marshalling:jboss-marshalling:2.0.11.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jboss.marshalling:jboss-marshalling-river:2.0.11.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.esotericsoftware:kryo:5.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.esotericsoftware:reflectasm:1.11.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.objenesis:objenesis:3.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.esotericsoftware:minlog:1.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.fasterxml.jackson.core:jackson-core:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: net.bytebuddy:byte-buddy:1.11.22"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jodd:jodd-bean:5.1.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jodd:jodd-core:5.1.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.yd:yd-feign:1.0-SNAPSHOT"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-starter-openfeign:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.cloud:spring-cloud-openfeign-core:3.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign.form:feign-form-spring:3.8.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign.form:feign-form:3.8.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-fileupload:commons-fileupload:1.3.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign:feign-core:11.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.github.openfeign:feign-slf4j:11.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun.oss:aliyun-sdk-oss:3.15.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpclient:4.5.13"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpcore:4.4.15"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jdom:jdom2:2.0.6.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.codehaus.jettison:jettison:1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: stax:stax-api:1.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:aliyun-java-sdk-core:4.5.10"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.code.gson:gson:2.8.9"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-logging:commons-logging:1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.xml.bind:jaxb-api:2.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.activation:javax.activation-api:1.2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jacoco:org.jacoco.agent:runtime:0.8.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.ini4j:ini4j:0.5.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-api:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-util:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.opentracing:opentracing-noop:0.33.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:aliyun-java-sdk-ram:3.1.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.aliyun:aliyun-java-sdk-kms:2.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.60"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.tomcat:tomcat-annotations-api:9.0.60"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-local:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-api:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-transformer:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-util-conversion:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.guava:guava:30.0-jre"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.guava:failureaccess:1.0.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.code.findbugs:jsr305:3.0.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.checkerframework:checker-qual:3.5.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.errorprone:error_prone_annotations:2.3.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.google.j2objc:j2objc-annotations:1.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.zeroturnaround:zt-exec:1.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-transformer-msoffice-word:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-transformer-msoffice-base:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-transformer-api:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-util-all:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.documents4j:documents4j-util-transformer-process:1.1.12"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi:5.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-codec:commons-codec:1.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-collections4:4.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-math3:3.6.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-io:commons-io:2.11.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.zaxxer:SparseBitSet:1.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.logging.log4j:log4j-api:2.17.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi-ooxml:5.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi-ooxml-lite:5.2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-compress:1.21"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.virtuald:curvesapi:1.07"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.xmlbeans:xmlbeans:5.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: cn.afterturn:easypoi-base:4.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.poi:poi-ooxml-schemas:4.1.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.14.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ognl:ognl:3.2.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.javassist:javassist:3.20.0-GA"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: javax.validation:validation-api:2.0.1.Final"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: cn.afterturn:easypoi-web:4.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-web:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-webmvc:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-core:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jcl:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-beans:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: cn.afterturn:easypoi-annotation:4.4.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jxls:jxls:2.12.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-jexl3:3.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-beanutils:commons-beanutils:1.9.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-collections:commons-collections:3.2.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.slf4j:jcl-over-slf4j:1.7.36"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: ch.qos.logback:logback-core:1.2.11"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.jxls:jxls-poi:2.12.0"
level=
"project"
/>
</component>
</component>
</module>
</module>
\ No newline at end of file
yd-oss.iml
deleted
100644 → 0
View file @
da06d17c
<?xml version="1.0" encoding="UTF-8"?>
<module
type=
"JAVA_MODULE"
version=
"4"
>
<component
name=
"ExternalSystem"
externalSystem=
"Maven"
/>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<output
url=
"file://$MODULE_DIR$/target/classes"
/>
<output-test
url=
"file://$MODULE_DIR$/target/test-classes"
/>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/java"
isTestSource=
"true"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/target"
/>
</content>
<orderEntry
type=
"inheritedJdk"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
</component>
</module>
\ 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