Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-email
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-email
Commits
e51854d3
Commit
e51854d3
authored
Sep 25, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
邮件文件
parent
d9812c0b
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
180 additions
and
23 deletions
+180
-23
yd-email-api/pom.xml
+7
-0
yd-email-api/src/main/java/com/yd/email/api/controller/ApiEmailFileController.java
+16
-0
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailFileService.java
+10
-0
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailVariableGroupService.java
+3
-0
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailFileServiceImpl.java
+65
-0
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailVariableGroupServiceImpl.java
+1
-0
yd-email-api/yd-email-api.iml
+23
-21
yd-email-feign/src/main/java/com/yd/email/feign/client/ApiEmailFileFeignClient.java
+13
-0
yd-email-feign/src/main/java/com/yd/email/feign/fallback/ApiEmailFileFeignFallbackFactory.java
+9
-1
yd-email-feign/src/main/java/com/yd/email/feign/request/ApiExportVariableExcelRequest.java
+17
-0
yd-email-feign/src/main/java/com/yd/email/feign/response/ApiExportVariableExcelResponse.java
+12
-0
yd-email-feign/yd-email-feign.iml
+2
-0
yd-email-service/yd-email-service.iml
+2
-1
No files found.
yd-email-api/pom.xml
View file @
e51854d3
...
...
@@ -70,6 +70,13 @@
<artifactId>
yd-email-service
</artifactId>
</dependency>
<!-- 实体类模块 -->
<dependency>
<groupId>
com.yd
</groupId>
<artifactId>
yd-oss-feign
</artifactId>
<version>
${project.version}
</version>
</dependency>
</dependencies>
<build>
...
...
yd-email-api/src/main/java/com/yd/email/api/controller/ApiEmailFileController.java
View file @
e51854d3
package
com
.
yd
.
email
.
api
.
controller
;
import
com.yd.common.result.Result
;
import
com.yd.email.api.service.ApiEmailFileService
;
import
com.yd.email.feign.client.ApiEmailFileFeignClient
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -16,5 +21,16 @@ import org.springframework.web.bind.annotation.RestController;
@Validated
public
class
ApiEmailFileController
implements
ApiEmailFileFeignClient
{
@Autowired
private
ApiEmailFileService
apiEmailFileService
;
/**
* 导出-变量excel
* @param request
* @return
*/
@Override
public
Result
<
ApiExportVariableExcelResponse
>
exportVariableExcel
(
ApiExportVariableExcelRequest
request
)
{
return
apiEmailFileService
.
exportVariableExcel
(
request
);
}
}
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailFileService.java
0 → 100644
View file @
e51854d3
package
com
.
yd
.
email
.
api
.
service
;
import
com.yd.common.result.Result
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
public
interface
ApiEmailFileService
{
Result
<
ApiExportVariableExcelResponse
>
exportVariableExcel
(
ApiExportVariableExcelRequest
request
);
}
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailVariableGroupService.java
View file @
e51854d3
...
...
@@ -7,6 +7,7 @@ import com.yd.email.feign.request.ApiEmailVariableGroupEditRequest;
import
com.yd.email.feign.request.ApiEmailVariableGroupPageRequest
;
import
com.yd.email.feign.response.ApiEmailVariableGroupDetailResponse
;
import
com.yd.email.feign.response.ApiEmailVariableGroupPageResponse
;
import
com.yd.email.service.model.EmailVariableGroup
;
public
interface
ApiEmailVariableGroupService
{
Result
<
IPage
<
ApiEmailVariableGroupPageResponse
>>
page
(
ApiEmailVariableGroupPageRequest
request
);
...
...
@@ -18,4 +19,6 @@ public interface ApiEmailVariableGroupService {
Result
<
ApiEmailVariableGroupDetailResponse
>
detail
(
String
variableGroupBizId
);
Result
del
(
String
variableGroupBizId
);
Result
<
EmailVariableGroup
>
checkEmailVariableGroupIsExist
(
String
variableGroupBizId
);
}
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailFileServiceImpl.java
0 → 100644
View file @
e51854d3
package
com
.
yd
.
email
.
api
.
service
.
impl
;
import
com.yd.common.result.Result
;
import
com.yd.email.api.service.ApiEmailFileService
;
import
com.yd.email.api.service.ApiEmailVariableGroupService
;
import
com.yd.email.feign.dto.ApiEmailVariableDto
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiEmailVariableGroupDetailResponse
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
import
com.yd.oss.feign.client.ApiExcelFeignClient
;
import
com.yd.oss.feign.dto.ExportParam
;
import
com.yd.oss.feign.dto.ExportResult
;
import
com.yd.oss.feign.request.ApiExportRequest
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
@Slf4j
@Service
public
class
ApiEmailFileServiceImpl
implements
ApiEmailFileService
{
@Autowired
private
ApiExcelFeignClient
apiExcelFeignClient
;
@Autowired
private
ApiEmailVariableGroupService
apiEmailVariableGroupService
;
/**
* 导出-变量excel
* @param request
* @return
*/
@Override
public
Result
<
ApiExportVariableExcelResponse
>
exportVariableExcel
(
ApiExportVariableExcelRequest
request
)
{
Result
<
ApiEmailVariableGroupDetailResponse
>
result
=
apiEmailVariableGroupService
.
detail
(
request
.
getVariableGroupBizId
());
ApiEmailVariableGroupDetailResponse
response
=
result
.
getData
();
//分组绑定的变量列表
List
<
ApiEmailVariableDto
>
emailVariableDtoList
=
response
.
getEmailVariableDtoList
();
List
<
String
>
FieldNameList
=
Arrays
.
asList
(
"联系人"
,
"邮箱"
,
"抄送人"
);
if
(!
CollectionUtils
.
isEmpty
(
emailVariableDtoList
))
{
FieldNameList
.
addAll
(
emailVariableDtoList
.
stream
().
map
(
ApiEmailVariableDto:
:
getVariableNameCn
).
collect
(
Collectors
.
toList
()));
}
//构建导出参数
ExportParam
exportParam
=
new
ExportParam
();
exportParam
.
setFileName
(
"变量"
);
// 基础文件名
exportParam
.
setFieldNames
(
FieldNameList
);
// 要导出的字段
exportParam
.
setUploadToOss
(
true
);
// 设置为true表示上传到OSS
ApiExportRequest
exportRequest
=
new
ApiExportRequest
();
exportRequest
.
setExportParam
(
exportParam
);
Result
<
ExportResult
>
resultResult
=
apiExcelFeignClient
.
export
(
exportRequest
);
ApiExportVariableExcelResponse
response1
=
new
ApiExportVariableExcelResponse
();
if
(!
Objects
.
isNull
(
resultResult
.
getData
()))
{
response1
.
setUrl
(
resultResult
.
getData
().
getOssUrl
());
}
return
Result
.
success
(
response1
);
}
}
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailVariableGroupServiceImpl.java
View file @
e51854d3
...
...
@@ -145,6 +145,7 @@ public class ApiEmailVariableGroupServiceImpl implements ApiEmailVariableGroupSe
* @param variableGroupBizId
* @return
*/
@Override
public
Result
<
EmailVariableGroup
>
checkEmailVariableGroupIsExist
(
String
variableGroupBizId
)
{
EmailVariableGroup
emailVariableGroup
=
iEmailVariableGroupService
.
queryOne
(
variableGroupBizId
);
if
(
Objects
.
isNull
(
emailVariableGroup
))
{
...
...
yd-email-api/yd-email-api.iml
View file @
e51854d3
...
...
@@ -117,27 +117,6 @@
<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-email-feign"
/>
<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.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.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-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: org.springframework.boot:spring-boot-starter-mail: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.sun.mail:jakarta.mail:1.6.7"
level=
"project"
/>
...
...
@@ -234,5 +213,27 @@
<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-oss-feign:1.0-SNAPSHOT"
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.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.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-oxm:5.3.18"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.lettuce:lettuce-core:6.1.8.RELEASE"
level=
"project"
/>
</component>
</module>
\ No newline at end of file
yd-email-feign/src/main/java/com/yd/email/feign/client/ApiEmailFileFeignClient.java
View file @
e51854d3
package
com
.
yd
.
email
.
feign
.
client
;
import
com.yd.common.result.Result
;
import
com.yd.email.feign.fallback.ApiEmailFileFeignFallbackFactory
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
/**
* 邮箱服务-邮件文件信息Feign客户端
...
...
@@ -9,4 +15,11 @@ import org.springframework.cloud.openfeign.FeignClient;
@FeignClient
(
name
=
"yd-email-api"
,
fallbackFactory
=
ApiEmailFileFeignFallbackFactory
.
class
)
public
interface
ApiEmailFileFeignClient
{
/**
* 导出-变量excel
* @param request
* @return
*/
@PostMapping
(
"/export/excel/variable"
)
Result
<
ApiExportVariableExcelResponse
>
exportVariableExcel
(
@Validated
@RequestBody
ApiExportVariableExcelRequest
request
);
}
yd-email-feign/src/main/java/com/yd/email/feign/fallback/ApiEmailFileFeignFallbackFactory.java
View file @
e51854d3
package
com
.
yd
.
email
.
feign
.
fallback
;
import
com.yd.common.result.Result
;
import
com.yd.email.feign.client.ApiEmailFileFeignClient
;
import
com.yd.email.feign.request.ApiExportVariableExcelRequest
;
import
com.yd.email.feign.response.ApiExportVariableExcelResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.openfeign.FallbackFactory
;
import
org.springframework.stereotype.Component
;
...
...
@@ -13,6 +16,11 @@ import org.springframework.stereotype.Component;
public
class
ApiEmailFileFeignFallbackFactory
implements
FallbackFactory
<
ApiEmailFileFeignClient
>
{
@Override
public
ApiEmailFileFeignClient
create
(
Throwable
cause
)
{
return
null
;
return
new
ApiEmailFileFeignClient
()
{
@Override
public
Result
<
ApiExportVariableExcelResponse
>
exportVariableExcel
(
ApiExportVariableExcelRequest
request
)
{
return
null
;
}
};
}
}
yd-email-feign/src/main/java/com/yd/email/feign/request/ApiExportVariableExcelRequest.java
0 → 100644
View file @
e51854d3
package
com
.
yd
.
email
.
feign
.
request
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
@Data
public
class
ApiExportVariableExcelRequest
{
/**
* 变量分组唯一业务ID
*/
@NotBlank
(
message
=
"变量分组唯一业务ID不能为空"
)
private
String
variableGroupBizId
;
}
yd-email-feign/src/main/java/com/yd/email/feign/response/ApiExportVariableExcelResponse.java
0 → 100644
View file @
e51854d3
package
com
.
yd
.
email
.
feign
.
response
;
import
lombok.Data
;
@Data
public
class
ApiExportVariableExcelResponse
{
/**
* 导出的文件访问路径
*/
private
String
url
;
}
yd-email-feign/yd-email-feign.iml
View file @
e51854d3
...
...
@@ -78,6 +78,8 @@
<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: 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.fasterxml.jackson.core:jackson-annotations:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-mail:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter:2.6.6"
level=
"project"
/>
...
...
yd-email-service/yd-email-service.iml
View file @
e51854d3
...
...
@@ -73,6 +73,8 @@
<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: 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.fasterxml.jackson.core:jackson-annotations:2.13.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.boot:spring-boot-starter-mail:2.6.6"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context-support:5.3.18"
level=
"project"
/>
...
...
@@ -158,7 +160,6 @@
<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-core: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-webmvc:5.3.18"
level=
"project"
/>
...
...
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