Commit b77b6322e1f46e44a633f24c948ce788e64c39db
1 parent
4225db21
🔧 简化 mail 模块的 VO
Showing
24 changed files
with
169 additions
and
291 deletions
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java
| ... | ... | @@ -62,7 +62,7 @@ public class DictDataController { |
| 62 | 62 | return success(true); |
| 63 | 63 | } |
| 64 | 64 | |
| 65 | - @GetMapping("/list-all-simple") | |
| 65 | + @GetMapping(value = {"/list-all-simple", "simple-list"}) | |
| 66 | 66 | @Operation(summary = "获得全部字典数据列表", description = "一般用于管理后台缓存字典数据在本地") |
| 67 | 67 | // 无需添加权限认证,因为前端全局都需要 |
| 68 | 68 | public CommonResult<List<DictDataSimpleRespVO>> getSimpleDictDataList() { | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.java
| ... | ... | @@ -3,8 +3,11 @@ package cn.iocoder.yudao.module.system.controller.admin.mail; |
| 3 | 3 | |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.*; | |
| 7 | -import cn.iocoder.yudao.module.system.convert.mail.MailAccountConvert; | |
| 6 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 7 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; | |
| 8 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountRespVO; | |
| 9 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; | |
| 10 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountSimpleRespVO; | |
| 8 | 11 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; |
| 9 | 12 | import cn.iocoder.yudao.module.system.service.mail.MailAccountService; |
| 10 | 13 | import io.swagger.v3.oas.annotations.Operation; |
| ... | ... | @@ -30,14 +33,14 @@ public class MailAccountController { |
| 30 | 33 | @PostMapping("/create") |
| 31 | 34 | @Operation(summary = "创建邮箱账号") |
| 32 | 35 | @PreAuthorize("@ss.hasPermission('system:mail-account:create')") |
| 33 | - public CommonResult<Long> createMailAccount(@Valid @RequestBody MailAccountCreateReqVO createReqVO) { | |
| 36 | + public CommonResult<Long> createMailAccount(@Valid @RequestBody MailAccountSaveReqVO createReqVO) { | |
| 34 | 37 | return success(mailAccountService.createMailAccount(createReqVO)); |
| 35 | 38 | } |
| 36 | 39 | |
| 37 | 40 | @PutMapping("/update") |
| 38 | 41 | @Operation(summary = "修改邮箱账号") |
| 39 | 42 | @PreAuthorize("@ss.hasPermission('system:mail-account:update')") |
| 40 | - public CommonResult<Boolean> updateMailAccount(@Valid @RequestBody MailAccountUpdateReqVO updateReqVO) { | |
| 43 | + public CommonResult<Boolean> updateMailAccount(@Valid @RequestBody MailAccountSaveReqVO updateReqVO) { | |
| 41 | 44 | mailAccountService.updateMailAccount(updateReqVO); |
| 42 | 45 | return success(true); |
| 43 | 46 | } |
| ... | ... | @@ -56,23 +59,23 @@ public class MailAccountController { |
| 56 | 59 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 57 | 60 | @PreAuthorize("@ss.hasPermission('system:mail-account:get')") |
| 58 | 61 | public CommonResult<MailAccountRespVO> getMailAccount(@RequestParam("id") Long id) { |
| 59 | - MailAccountDO mailAccountDO = mailAccountService.getMailAccount(id); | |
| 60 | - return success(MailAccountConvert.INSTANCE.convert(mailAccountDO)); | |
| 62 | + MailAccountDO account = mailAccountService.getMailAccount(id); | |
| 63 | + return success(BeanUtils.toBean(account, MailAccountRespVO.class)); | |
| 61 | 64 | } |
| 62 | 65 | |
| 63 | 66 | @GetMapping("/page") |
| 64 | 67 | @Operation(summary = "获得邮箱账号分页") |
| 65 | 68 | @PreAuthorize("@ss.hasPermission('system:mail-account:query')") |
| 66 | - public CommonResult<PageResult<MailAccountBaseVO>> getMailAccountPage(@Valid MailAccountPageReqVO pageReqVO) { | |
| 69 | + public CommonResult<PageResult<MailAccountRespVO>> getMailAccountPage(@Valid MailAccountPageReqVO pageReqVO) { | |
| 67 | 70 | PageResult<MailAccountDO> pageResult = mailAccountService.getMailAccountPage(pageReqVO); |
| 68 | - return success(MailAccountConvert.INSTANCE.convertPage(pageResult)); | |
| 71 | + return success(BeanUtils.toBean(pageResult, MailAccountRespVO.class)); | |
| 69 | 72 | } |
| 70 | 73 | |
| 71 | - @GetMapping("/list-all-simple") | |
| 74 | + @GetMapping({"/list-all-simple", "simple-list"}) | |
| 72 | 75 | @Operation(summary = "获得邮箱账号精简列表") |
| 73 | 76 | public CommonResult<List<MailAccountSimpleRespVO>> getSimpleMailAccountList() { |
| 74 | 77 | List<MailAccountDO> list = mailAccountService.getMailAccountList(); |
| 75 | - return success(MailAccountConvert.INSTANCE.convertList02(list)); | |
| 78 | + return success(BeanUtils.toBean(list, MailAccountSimpleRespVO.class)); | |
| 76 | 79 | } |
| 77 | 80 | |
| 78 | 81 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailLogController.java
| ... | ... | @@ -2,9 +2,9 @@ package cn.iocoder.yudao.module.system.controller.admin.mail; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 5 | 6 | import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogPageReqVO; |
| 6 | 7 | import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogRespVO; |
| 7 | -import cn.iocoder.yudao.module.system.convert.mail.MailLogConvert; | |
| 8 | 8 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailLogDO; |
| 9 | 9 | import cn.iocoder.yudao.module.system.service.mail.MailLogService; |
| 10 | 10 | import io.swagger.v3.oas.annotations.Operation; |
| ... | ... | @@ -34,7 +34,7 @@ public class MailLogController { |
| 34 | 34 | @PreAuthorize("@ss.hasPermission('system:mail-log:query')") |
| 35 | 35 | public CommonResult<PageResult<MailLogRespVO>> getMailLogPage(@Valid MailLogPageReqVO pageVO) { |
| 36 | 36 | PageResult<MailLogDO> pageResult = mailLogService.getMailLogPage(pageVO); |
| 37 | - return success(MailLogConvert.INSTANCE.convertPage(pageResult)); | |
| 37 | + return success(BeanUtils.toBean(pageResult, MailLogRespVO.class)); | |
| 38 | 38 | } |
| 39 | 39 | |
| 40 | 40 | @GetMapping("/get") |
| ... | ... | @@ -42,8 +42,8 @@ public class MailLogController { |
| 42 | 42 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 43 | 43 | @PreAuthorize("@ss.hasPermission('system:mail-log:query')") |
| 44 | 44 | public CommonResult<MailLogRespVO> getMailTemplate(@RequestParam("id") Long id) { |
| 45 | - MailLogDO mailLogDO = mailLogService.getMailLog(id); | |
| 46 | - return success(MailLogConvert.INSTANCE.convert(mailLogDO)); | |
| 45 | + MailLogDO log = mailLogService.getMailLog(id); | |
| 46 | + return success(BeanUtils.toBean(log, MailLogRespVO.class)); | |
| 47 | 47 | } |
| 48 | 48 | |
| 49 | 49 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java
| ... | ... | @@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.system.controller.admin.mail; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 5 | 6 | import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.*; |
| 6 | -import cn.iocoder.yudao.module.system.convert.mail.MailTemplateConvert; | |
| 7 | 7 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; |
| 8 | 8 | import cn.iocoder.yudao.module.system.service.mail.MailSendService; |
| 9 | 9 | import cn.iocoder.yudao.module.system.service.mail.MailTemplateService; |
| ... | ... | @@ -33,14 +33,14 @@ public class MailTemplateController { |
| 33 | 33 | @PostMapping("/create") |
| 34 | 34 | @Operation(summary = "创建邮件模版") |
| 35 | 35 | @PreAuthorize("@ss.hasPermission('system:mail-template:create')") |
| 36 | - public CommonResult<Long> createMailTemplate(@Valid @RequestBody MailTemplateCreateReqVO createReqVO){ | |
| 36 | + public CommonResult<Long> createMailTemplate(@Valid @RequestBody MailTemplateSaveReqVO createReqVO){ | |
| 37 | 37 | return success(mailTempleService.createMailTemplate(createReqVO)); |
| 38 | 38 | } |
| 39 | 39 | |
| 40 | 40 | @PutMapping("/update") |
| 41 | 41 | @Operation(summary = "修改邮件模版") |
| 42 | 42 | @PreAuthorize("@ss.hasPermission('system:mail-template:update')") |
| 43 | - public CommonResult<Boolean> updateMailTemplate(@Valid @RequestBody MailTemplateUpdateReqVO updateReqVO){ | |
| 43 | + public CommonResult<Boolean> updateMailTemplate(@Valid @RequestBody MailTemplateSaveReqVO updateReqVO){ | |
| 44 | 44 | mailTempleService.updateMailTemplate(updateReqVO); |
| 45 | 45 | return success(true); |
| 46 | 46 | } |
| ... | ... | @@ -59,8 +59,8 @@ public class MailTemplateController { |
| 59 | 59 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 60 | 60 | @PreAuthorize("@ss.hasPermission('system:mail-template:get')") |
| 61 | 61 | public CommonResult<MailTemplateRespVO> getMailTemplate(@RequestParam("id") Long id) { |
| 62 | - MailTemplateDO mailTemplateDO = mailTempleService.getMailTemplate(id); | |
| 63 | - return success(MailTemplateConvert.INSTANCE.convert(mailTemplateDO)); | |
| 62 | + MailTemplateDO template = mailTempleService.getMailTemplate(id); | |
| 63 | + return success(BeanUtils.toBean(template, MailTemplateRespVO.class)); | |
| 64 | 64 | } |
| 65 | 65 | |
| 66 | 66 | @GetMapping("/page") |
| ... | ... | @@ -68,14 +68,14 @@ public class MailTemplateController { |
| 68 | 68 | @PreAuthorize("@ss.hasPermission('system:mail-template:query')") |
| 69 | 69 | public CommonResult<PageResult<MailTemplateRespVO>> getMailTemplatePage(@Valid MailTemplatePageReqVO pageReqVO) { |
| 70 | 70 | PageResult<MailTemplateDO> pageResult = mailTempleService.getMailTemplatePage(pageReqVO); |
| 71 | - return success(MailTemplateConvert.INSTANCE.convertPage(pageResult)); | |
| 71 | + return success(BeanUtils.toBean(pageResult, MailTemplateRespVO.class)); | |
| 72 | 72 | } |
| 73 | 73 | |
| 74 | - @GetMapping("/list-all-simple") | |
| 74 | + @GetMapping({"/list-all-simple", "simple-list"}) | |
| 75 | 75 | @Operation(summary = "获得邮件模版精简列表") |
| 76 | 76 | public CommonResult<List<MailTemplateSimpleRespVO>> getSimpleTemplateList() { |
| 77 | 77 | List<MailTemplateDO> list = mailTempleService.getMailTemplateList(); |
| 78 | - return success(MailTemplateConvert.INSTANCE.convertList02(list)); | |
| 78 | + return success(BeanUtils.toBean(list, MailTemplateSimpleRespVO.class)); | |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | 81 | @PostMapping("/send-mail") | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.system.controller.admin.mail.vo.account; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -@Schema(description = "管理后台 - 邮箱账号创建 Request VO") | |
| 9 | -@Data | |
| 10 | -@EqualsAndHashCode(callSuper = true) | |
| 11 | -@ToString(callSuper = true) | |
| 12 | -public class MailAccountCreateReqVO extends MailAccountBaseVO { | |
| 13 | - | |
| 14 | -} |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java
| ... | ... | @@ -2,22 +2,34 @@ package cn.iocoder.yudao.module.system.controller.admin.mail.vo.account; |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import lombok.Data; |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | 5 | |
| 8 | -import javax.validation.constraints.NotNull; | |
| 9 | 6 | import java.time.LocalDateTime; |
| 10 | 7 | |
| 11 | 8 | @Schema(description = "管理后台 - 邮箱账号 Response VO") |
| 12 | 9 | @Data |
| 13 | -@EqualsAndHashCode(callSuper = true) | |
| 14 | -@ToString(callSuper = true) | |
| 15 | -public class MailAccountRespVO extends MailAccountBaseVO { | |
| 10 | +public class MailAccountRespVO { | |
| 16 | 11 | |
| 17 | 12 | @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 18 | - @NotNull(message = "编号不能为空") | |
| 19 | 13 | private Long id; |
| 20 | 14 | |
| 15 | + @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma@123.com") | |
| 16 | + private String mail; | |
| 17 | + | |
| 18 | + @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") | |
| 19 | + private String username; | |
| 20 | + | |
| 21 | + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") | |
| 22 | + private String password; | |
| 23 | + | |
| 24 | + @Schema(description = "SMTP 服务器域名", requiredMode = Schema.RequiredMode.REQUIRED, example = "www.iocoder.cn") | |
| 25 | + private String host; | |
| 26 | + | |
| 27 | + @Schema(description = "SMTP 服务器端口", requiredMode = Schema.RequiredMode.REQUIRED, example = "80") | |
| 28 | + private Integer port; | |
| 29 | + | |
| 30 | + @Schema(description = "是否开启 ssl", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") | |
| 31 | + private Boolean sslEnable; | |
| 32 | + | |
| 21 | 33 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 22 | 34 | private LocalDateTime createTime; |
| 23 | 35 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountBaseVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.java
| ... | ... | @@ -6,12 +6,12 @@ import lombok.Data; |
| 6 | 6 | import javax.validation.constraints.Email; |
| 7 | 7 | import javax.validation.constraints.NotNull; |
| 8 | 8 | |
| 9 | -/** | |
| 10 | - * 邮箱账号 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 11 | - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 12 | - */ | |
| 9 | +@Schema(description = "管理后台 - 邮箱账号创建/修改 Request VO") | |
| 13 | 10 | @Data |
| 14 | -public class MailAccountBaseVO { | |
| 11 | +public class MailAccountSaveReqVO { | |
| 12 | + | |
| 13 | + @Schema(description = "编号", example = "1024") | |
| 14 | + private Long id; | |
| 15 | 15 | |
| 16 | 16 | @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma@123.com") |
| 17 | 17 | @NotNull(message = "邮箱不能为空") | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.system.controller.admin.mail.vo.account; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import javax.validation.constraints.NotNull; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 邮箱账号修改 Request VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class MailAccountUpdateReqVO extends MailAccountBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 17 | - @NotNull(message = "编号不能为空") | |
| 18 | - private Long id; | |
| 19 | - | |
| 20 | -} |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogBaseVO.java deleted
| 1 | -package cn.iocoder.yudao.module.system.controller.admin.mail.vo.log; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import org.springframework.format.annotation.DateTimeFormat; | |
| 6 | - | |
| 7 | -import javax.validation.constraints.NotNull; | |
| 8 | -import java.time.LocalDateTime; | |
| 9 | -import java.util.Map; | |
| 10 | - | |
| 11 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 12 | - | |
| 13 | -/** | |
| 14 | - * 邮件日志 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 15 | - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 16 | - */ | |
| 17 | -@Data | |
| 18 | -public class MailLogBaseVO { | |
| 19 | - | |
| 20 | - @Schema(description = "用户编号", example = "30883") | |
| 21 | - private Long userId; | |
| 22 | - | |
| 23 | - @Schema(description = "用户类型,参见 UserTypeEnum 枚举", example = "2") | |
| 24 | - private Byte userType; | |
| 25 | - | |
| 26 | - @Schema(description = "接收邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "76854@qq.com") | |
| 27 | - @NotNull(message = "接收邮箱地址不能为空") | |
| 28 | - private String toMail; | |
| 29 | - | |
| 30 | - @Schema(description = "邮箱账号编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18107") | |
| 31 | - @NotNull(message = "邮箱账号编号不能为空") | |
| 32 | - private Long accountId; | |
| 33 | - | |
| 34 | - @Schema(description = "发送邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "85757@qq.com") | |
| 35 | - @NotNull(message = "发送邮箱地址不能为空") | |
| 36 | - private String fromMail; | |
| 37 | - | |
| 38 | - @Schema(description = "模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5678") | |
| 39 | - @NotNull(message = "模板编号不能为空") | |
| 40 | - private Long templateId; | |
| 41 | - | |
| 42 | - @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") | |
| 43 | - @NotNull(message = "模板编码不能为空") | |
| 44 | - private String templateCode; | |
| 45 | - | |
| 46 | - @Schema(description = "模版发送人名称", example = "李四") | |
| 47 | - private String templateNickname; | |
| 48 | - | |
| 49 | - @Schema(description = "邮件标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试标题") | |
| 50 | - @NotNull(message = "邮件标题不能为空") | |
| 51 | - private String templateTitle; | |
| 52 | - | |
| 53 | - @Schema(description = "邮件内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试内容") | |
| 54 | - @NotNull(message = "邮件内容不能为空") | |
| 55 | - private String templateContent; | |
| 56 | - | |
| 57 | - @Schema(description = "邮件参数", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 58 | - @NotNull(message = "邮件参数不能为空") | |
| 59 | - private Map<String, Object> templateParams; | |
| 60 | - | |
| 61 | - @Schema(description = "发送状态,参见 MailSendStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 62 | - @NotNull(message = "发送状态不能为空") | |
| 63 | - private Byte sendStatus; | |
| 64 | - | |
| 65 | - @Schema(description = "发送时间") | |
| 66 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 67 | - private LocalDateTime sendTime; | |
| 68 | - | |
| 69 | - @Schema(description = "发送返回的消息 ID", example = "28568") | |
| 70 | - private String sendMessageId; | |
| 71 | - | |
| 72 | - @Schema(description = "发送异常") | |
| 73 | - private String sendException; | |
| 74 | - | |
| 75 | -} |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.system.controller.admin.mail.vo.log; |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.*; | |
| 4 | +import lombok.Data; | |
| 5 | +import org.springframework.format.annotation.DateTimeFormat; | |
| 6 | + | |
| 5 | 7 | import java.time.LocalDateTime; |
| 8 | +import java.util.Map; | |
| 9 | + | |
| 10 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 6 | 11 | |
| 7 | 12 | @Schema(description = "管理后台 - 邮件日志 Response VO") |
| 8 | 13 | @Data |
| 9 | -@EqualsAndHashCode(callSuper = true) | |
| 10 | -@ToString(callSuper = true) | |
| 11 | -public class MailLogRespVO extends MailLogBaseVO { | |
| 14 | +public class MailLogRespVO { | |
| 12 | 15 | |
| 13 | 16 | @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31020") |
| 14 | 17 | private Long id; |
| 15 | 18 | |
| 19 | + @Schema(description = "用户编号", example = "30883") | |
| 20 | + private Long userId; | |
| 21 | + | |
| 22 | + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", example = "2") | |
| 23 | + private Byte userType; | |
| 24 | + | |
| 25 | + @Schema(description = "接收邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "76854@qq.com") | |
| 26 | + private String toMail; | |
| 27 | + | |
| 28 | + @Schema(description = "邮箱账号编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18107") | |
| 29 | + private Long accountId; | |
| 30 | + | |
| 31 | + @Schema(description = "发送邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "85757@qq.com") | |
| 32 | + private String fromMail; | |
| 33 | + | |
| 34 | + @Schema(description = "模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5678") | |
| 35 | + private Long templateId; | |
| 36 | + | |
| 37 | + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") | |
| 38 | + private String templateCode; | |
| 39 | + | |
| 40 | + @Schema(description = "模版发送人名称", example = "李四") | |
| 41 | + private String templateNickname; | |
| 42 | + | |
| 43 | + @Schema(description = "邮件标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试标题") | |
| 44 | + private String templateTitle; | |
| 45 | + | |
| 46 | + @Schema(description = "邮件内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试内容") | |
| 47 | + private String templateContent; | |
| 48 | + | |
| 49 | + @Schema(description = "邮件参数", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 50 | + private Map<String, Object> templateParams; | |
| 51 | + | |
| 52 | + @Schema(description = "发送状态,参见 MailSendStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 53 | + private Byte sendStatus; | |
| 54 | + | |
| 55 | + @Schema(description = "发送时间") | |
| 56 | + private LocalDateTime sendTime; | |
| 57 | + | |
| 58 | + @Schema(description = "发送返回的消息 ID", example = "28568") | |
| 59 | + private String sendMessageId; | |
| 60 | + | |
| 61 | + @Schema(description = "发送异常") | |
| 62 | + private String sendException; | |
| 63 | + | |
| 16 | 64 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 17 | 65 | private LocalDateTime createTime; |
| 18 | 66 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.system.controller.admin.mail.vo.template; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -@Schema(description = "管理后台 - 邮件模版创建 Request VO") | |
| 9 | -@Data | |
| 10 | -@EqualsAndHashCode(callSuper = true) | |
| 11 | -@ToString(callSuper = true) | |
| 12 | -public class MailTemplateCreateReqVO extends MailTemplateBaseVO { | |
| 13 | - | |
| 14 | -} |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java
| ... | ... | @@ -2,24 +2,46 @@ package cn.iocoder.yudao.module.system.controller.admin.mail.vo.template; |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import lombok.Data; |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | 5 | |
| 6 | +import javax.validation.constraints.NotEmpty; | |
| 7 | +import javax.validation.constraints.NotNull; | |
| 8 | 8 | import java.time.LocalDateTime; |
| 9 | 9 | import java.util.List; |
| 10 | 10 | |
| 11 | 11 | @Schema(description = "管理后台 - 邮件末班 Response VO") |
| 12 | 12 | @Data |
| 13 | -@EqualsAndHashCode(callSuper = true) | |
| 14 | -@ToString(callSuper = true) | |
| 15 | -public class MailTemplateRespVO extends MailTemplateBaseVO { | |
| 13 | +public class MailTemplateRespVO { | |
| 16 | 14 | |
| 17 | 15 | @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 18 | 16 | private Long id; |
| 19 | 17 | |
| 18 | + @Schema(description = "模版名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试名字") | |
| 19 | + private String name; | |
| 20 | + | |
| 21 | + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "test") | |
| 22 | + private String code; | |
| 23 | + | |
| 24 | + @Schema(description = "发送的邮箱账号编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 25 | + private Long accountId; | |
| 26 | + | |
| 27 | + @Schema(description = "发送人名称", example = "芋头") | |
| 28 | + private String nickname; | |
| 29 | + | |
| 30 | + @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "注册成功") | |
| 31 | + private String title; | |
| 32 | + | |
| 33 | + @Schema(description = "内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,注册成功啦") | |
| 34 | + private String content; | |
| 35 | + | |
| 20 | 36 | @Schema(description = "参数数组", example = "name,code") |
| 21 | 37 | private List<String> params; |
| 22 | 38 | |
| 39 | + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 40 | + private Integer status; | |
| 41 | + | |
| 42 | + @Schema(description = "备注", example = "奥特曼") | |
| 43 | + private String remark; | |
| 44 | + | |
| 23 | 45 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 24 | 46 | private LocalDateTime createTime; |
| 25 | 47 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateBaseVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.java
| ... | ... | @@ -6,12 +6,12 @@ import lombok.Data; |
| 6 | 6 | import javax.validation.constraints.NotEmpty; |
| 7 | 7 | import javax.validation.constraints.NotNull; |
| 8 | 8 | |
| 9 | -/** | |
| 10 | - * 邮件模版 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 11 | - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 12 | - */ | |
| 9 | +@Schema(description = "管理后台 - 邮件模版创建/修改 Request VO") | |
| 13 | 10 | @Data |
| 14 | -public class MailTemplateBaseVO { | |
| 11 | +public class MailTemplateSaveReqVO { | |
| 12 | + | |
| 13 | + @Schema(description = "编号", example = "1024") | |
| 14 | + private Long id; | |
| 15 | 15 | |
| 16 | 16 | @Schema(description = "模版名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试名字") |
| 17 | 17 | @NotNull(message = "名称不能为空") | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.system.controller.admin.mail.vo.template; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | -import lombok.EqualsAndHashCode; | |
| 6 | -import lombok.ToString; | |
| 7 | - | |
| 8 | -import javax.validation.constraints.NotNull; | |
| 9 | - | |
| 10 | -@Schema(description = "管理后台 - 邮件模版修改 Request VO") | |
| 11 | -@Data | |
| 12 | -@EqualsAndHashCode(callSuper = true) | |
| 13 | -@ToString(callSuper = true) | |
| 14 | -public class MailTemplateUpdateReqVO extends MailTemplateBaseVO { | |
| 15 | - | |
| 16 | - @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 17 | - @NotNull(message = "编号不能为空") | |
| 18 | - private Long id; | |
| 19 | - | |
| 20 | -} |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailAccountConvert.java
| ... | ... | @@ -2,29 +2,15 @@ package cn.iocoder.yudao.module.system.convert.mail; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.util.StrUtil; |
| 4 | 4 | import cn.hutool.extra.mail.MailAccount; |
| 5 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 6 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.*; | |
| 7 | 5 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; |
| 8 | 6 | import org.mapstruct.Mapper; |
| 9 | 7 | import org.mapstruct.factory.Mappers; |
| 10 | 8 | |
| 11 | -import java.util.List; | |
| 12 | - | |
| 13 | 9 | @Mapper |
| 14 | 10 | public interface MailAccountConvert { |
| 15 | 11 | |
| 16 | 12 | MailAccountConvert INSTANCE = Mappers.getMapper(MailAccountConvert.class); |
| 17 | 13 | |
| 18 | - MailAccountDO convert(MailAccountCreateReqVO bean); | |
| 19 | - | |
| 20 | - MailAccountDO convert(MailAccountUpdateReqVO bean); | |
| 21 | - | |
| 22 | - MailAccountRespVO convert(MailAccountDO bean); | |
| 23 | - | |
| 24 | - PageResult<MailAccountBaseVO> convertPage(PageResult<MailAccountDO> pageResult); | |
| 25 | - | |
| 26 | - List<MailAccountSimpleRespVO> convertList02(List<MailAccountDO> list); | |
| 27 | - | |
| 28 | 14 | default MailAccount convert(MailAccountDO account, String nickname) { |
| 29 | 15 | String from = StrUtil.isNotEmpty(nickname) ? nickname + " <" + account.getMail() + ">" : account.getMail(); |
| 30 | 16 | return new MailAccount().setFrom(from).setAuth(true) | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailLogConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.system.convert.mail; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogRespVO; | |
| 5 | -import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailLogDO; | |
| 6 | -import org.mapstruct.Mapper; | |
| 7 | -import org.mapstruct.factory.Mappers; | |
| 8 | - | |
| 9 | -@Mapper | |
| 10 | -public interface MailLogConvert { | |
| 11 | - | |
| 12 | - MailLogConvert INSTANCE = Mappers.getMapper(MailLogConvert.class); | |
| 13 | - | |
| 14 | - PageResult<MailLogRespVO> convertPage(PageResult<MailLogDO> pageResult); | |
| 15 | - | |
| 16 | - MailLogRespVO convert(MailLogDO bean); | |
| 17 | - | |
| 18 | -} |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailTemplateConvert.java deleted
| 1 | -package cn.iocoder.yudao.module.system.convert.mail; | |
| 2 | - | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.*; | |
| 5 | -import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; | |
| 6 | -import org.mapstruct.Mapper; | |
| 7 | -import org.mapstruct.factory.Mappers; | |
| 8 | - | |
| 9 | -import java.util.List; | |
| 10 | - | |
| 11 | -@Mapper | |
| 12 | -public interface MailTemplateConvert { | |
| 13 | - | |
| 14 | - MailTemplateConvert INSTANCE = Mappers.getMapper(MailTemplateConvert.class); | |
| 15 | - | |
| 16 | - MailTemplateDO convert(MailTemplateUpdateReqVO bean); | |
| 17 | - | |
| 18 | - MailTemplateDO convert(MailTemplateCreateReqVO bean); | |
| 19 | - | |
| 20 | - MailTemplateRespVO convert(MailTemplateDO bean); | |
| 21 | - | |
| 22 | - PageResult<MailTemplateRespVO> convertPage(PageResult<MailTemplateDO> pageResult); | |
| 23 | - | |
| 24 | - List<MailTemplateSimpleRespVO> convertList02(List<MailTemplateDO> list); | |
| 25 | - | |
| 26 | -} |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java
| 1 | 1 | package cn.iocoder.yudao.module.system.service.mail; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountCreateReqVO; | |
| 5 | 4 | import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; |
| 6 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountUpdateReqVO; | |
| 5 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; | |
| 7 | 6 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; |
| 8 | 7 | |
| 9 | 8 | import javax.validation.Valid; |
| ... | ... | @@ -23,14 +22,14 @@ public interface MailAccountService { |
| 23 | 22 | * @param createReqVO 邮箱账号信息 |
| 24 | 23 | * @return 编号 |
| 25 | 24 | */ |
| 26 | - Long createMailAccount(@Valid MailAccountCreateReqVO createReqVO); | |
| 25 | + Long createMailAccount(@Valid MailAccountSaveReqVO createReqVO); | |
| 27 | 26 | |
| 28 | 27 | /** |
| 29 | 28 | * 修改邮箱账号 |
| 30 | 29 | * |
| 31 | 30 | * @param updateReqVO 邮箱账号信息 |
| 32 | 31 | */ |
| 33 | - void updateMailAccount(@Valid MailAccountUpdateReqVO updateReqVO); | |
| 32 | + void updateMailAccount(@Valid MailAccountSaveReqVO updateReqVO); | |
| 34 | 33 | |
| 35 | 34 | /** |
| 36 | 35 | * 删除邮箱账号 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountServiceImpl.java
| 1 | 1 | package cn.iocoder.yudao.module.system.service.mail; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountCreateReqVO; | |
| 4 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 5 | 5 | import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; |
| 6 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountUpdateReqVO; | |
| 7 | -import cn.iocoder.yudao.module.system.convert.mail.MailAccountConvert; | |
| 6 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; | |
| 8 | 7 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; |
| 9 | 8 | import cn.iocoder.yudao.module.system.dal.mysql.mail.MailAccountMapper; |
| 10 | 9 | import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; |
| ... | ... | @@ -39,21 +38,20 @@ public class MailAccountServiceImpl implements MailAccountService { |
| 39 | 38 | private MailTemplateService mailTemplateService; |
| 40 | 39 | |
| 41 | 40 | @Override |
| 42 | - public Long createMailAccount(MailAccountCreateReqVO createReqVO) { | |
| 43 | - // 插入 | |
| 44 | - MailAccountDO account = MailAccountConvert.INSTANCE.convert(createReqVO); | |
| 41 | + public Long createMailAccount(MailAccountSaveReqVO createReqVO) { | |
| 42 | + MailAccountDO account = BeanUtils.toBean(createReqVO, MailAccountDO.class); | |
| 45 | 43 | mailAccountMapper.insert(account); |
| 46 | 44 | return account.getId(); |
| 47 | 45 | } |
| 48 | 46 | |
| 49 | 47 | @Override |
| 50 | 48 | @CacheEvict(value = RedisKeyConstants.MAIL_ACCOUNT, key = "#updateReqVO.id") |
| 51 | - public void updateMailAccount(MailAccountUpdateReqVO updateReqVO) { | |
| 49 | + public void updateMailAccount(MailAccountSaveReqVO updateReqVO) { | |
| 52 | 50 | // 校验是否存在 |
| 53 | 51 | validateMailAccountExists(updateReqVO.getId()); |
| 54 | 52 | |
| 55 | 53 | // 更新 |
| 56 | - MailAccountDO updateObj = MailAccountConvert.INSTANCE.convert(updateReqVO); | |
| 54 | + MailAccountDO updateObj = BeanUtils.toBean(updateReqVO, MailAccountDO.class); | |
| 57 | 55 | mailAccountMapper.updateById(updateObj); |
| 58 | 56 | } |
| 59 | 57 | |
| ... | ... | @@ -63,7 +61,7 @@ public class MailAccountServiceImpl implements MailAccountService { |
| 63 | 61 | // 校验是否存在账号 |
| 64 | 62 | validateMailAccountExists(id); |
| 65 | 63 | // 校验是否存在关联模版 |
| 66 | - if (mailTemplateService.countByAccountId(id) > 0) { | |
| 64 | + if (mailTemplateService.getMailTemplateCountByAccountId(id) > 0) { | |
| 67 | 65 | throw exception(MAIL_ACCOUNT_RELATE_TEMPLATE_EXISTS); |
| 68 | 66 | } |
| 69 | 67 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.java
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java
| 1 | 1 | package cn.iocoder.yudao.module.system.service.mail; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateCreateReqVO; | |
| 5 | 4 | import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO; |
| 6 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateUpdateReqVO; | |
| 5 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateSaveReqVO; | |
| 7 | 6 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; |
| 8 | 7 | |
| 9 | 8 | import javax.validation.Valid; |
| ... | ... | @@ -24,14 +23,14 @@ public interface MailTemplateService { |
| 24 | 23 | * @param createReqVO 邮件信息 |
| 25 | 24 | * @return 编号 |
| 26 | 25 | */ |
| 27 | - Long createMailTemplate(@Valid MailTemplateCreateReqVO createReqVO); | |
| 26 | + Long createMailTemplate(@Valid MailTemplateSaveReqVO createReqVO); | |
| 28 | 27 | |
| 29 | 28 | /** |
| 30 | 29 | * 邮件模版修改 |
| 31 | 30 | * |
| 32 | 31 | * @param updateReqVO 邮件信息 |
| 33 | 32 | */ |
| 34 | - void updateMailTemplate(@Valid MailTemplateUpdateReqVO updateReqVO); | |
| 33 | + void updateMailTemplate(@Valid MailTemplateSaveReqVO updateReqVO); | |
| 35 | 34 | |
| 36 | 35 | /** |
| 37 | 36 | * 邮件模版删除 |
| ... | ... | @@ -86,6 +85,6 @@ public interface MailTemplateService { |
| 86 | 85 | * @param accountId 账号编号 |
| 87 | 86 | * @return 数量 |
| 88 | 87 | */ |
| 89 | - long countByAccountId(Long accountId); | |
| 88 | + long getMailTemplateCountByAccountId(Long accountId); | |
| 90 | 89 | |
| 91 | 90 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.java
| ... | ... | @@ -4,10 +4,9 @@ import cn.hutool.core.util.ObjUtil; |
| 4 | 4 | import cn.hutool.core.util.ReUtil; |
| 5 | 5 | import cn.hutool.core.util.StrUtil; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateCreateReqVO; | |
| 7 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 8 | 8 | import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO; |
| 9 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateUpdateReqVO; | |
| 10 | -import cn.iocoder.yudao.module.system.convert.mail.MailTemplateConvert; | |
| 9 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateSaveReqVO; | |
| 11 | 10 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; |
| 12 | 11 | import cn.iocoder.yudao.module.system.dal.mysql.mail.MailTemplateMapper; |
| 13 | 12 | import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; |
| ... | ... | @@ -48,12 +47,12 @@ public class MailTemplateServiceImpl implements MailTemplateService { |
| 48 | 47 | private MailTemplateMapper mailTemplateMapper; |
| 49 | 48 | |
| 50 | 49 | @Override |
| 51 | - public Long createMailTemplate(MailTemplateCreateReqVO createReqVO) { | |
| 50 | + public Long createMailTemplate(MailTemplateSaveReqVO createReqVO) { | |
| 52 | 51 | // 校验 code 是否唯一 |
| 53 | 52 | validateCodeUnique(null, createReqVO.getCode()); |
| 54 | 53 | |
| 55 | 54 | // 插入 |
| 56 | - MailTemplateDO template = MailTemplateConvert.INSTANCE.convert(createReqVO) | |
| 55 | + MailTemplateDO template = BeanUtils.toBean(createReqVO, MailTemplateDO.class) | |
| 57 | 56 | .setParams(parseTemplateContentParams(createReqVO.getContent())); |
| 58 | 57 | mailTemplateMapper.insert(template); |
| 59 | 58 | return template.getId(); |
| ... | ... | @@ -62,14 +61,14 @@ public class MailTemplateServiceImpl implements MailTemplateService { |
| 62 | 61 | @Override |
| 63 | 62 | @CacheEvict(cacheNames = RedisKeyConstants.NOTIFY_TEMPLATE, |
| 64 | 63 | allEntries = true) // allEntries 清空所有缓存,因为可能修改到 code 字段,不好清理 |
| 65 | - public void updateMailTemplate(@Valid MailTemplateUpdateReqVO updateReqVO) { | |
| 64 | + public void updateMailTemplate(@Valid MailTemplateSaveReqVO updateReqVO) { | |
| 66 | 65 | // 校验是否存在 |
| 67 | 66 | validateMailTemplateExists(updateReqVO.getId()); |
| 68 | 67 | // 校验 code 是否唯一 |
| 69 | 68 | validateCodeUnique(updateReqVO.getId(),updateReqVO.getCode()); |
| 70 | 69 | |
| 71 | 70 | // 更新 |
| 72 | - MailTemplateDO updateObj = MailTemplateConvert.INSTANCE.convert(updateReqVO) | |
| 71 | + MailTemplateDO updateObj = BeanUtils.toBean(updateReqVO, MailTemplateDO.class) | |
| 73 | 72 | .setParams(parseTemplateContentParams(updateReqVO.getContent())); |
| 74 | 73 | mailTemplateMapper.updateById(updateObj); |
| 75 | 74 | } |
| ... | ... | @@ -132,7 +131,7 @@ public class MailTemplateServiceImpl implements MailTemplateService { |
| 132 | 131 | } |
| 133 | 132 | |
| 134 | 133 | @Override |
| 135 | - public long countByAccountId(Long accountId) { | |
| 134 | + public long getMailTemplateCountByAccountId(Long accountId) { | |
| 136 | 135 | return mailTemplateMapper.selectCountByAccountId(accountId); |
| 137 | 136 | } |
| 138 | 137 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailAccountServiceImplTest.java
| ... | ... | @@ -2,9 +2,8 @@ package cn.iocoder.yudao.module.system.service.mail; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; |
| 5 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountCreateReqVO; | |
| 6 | 5 | import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; |
| 7 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountUpdateReqVO; | |
| 6 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; | |
| 8 | 7 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; |
| 9 | 8 | import cn.iocoder.yudao.module.system.dal.mysql.mail.MailAccountMapper; |
| 10 | 9 | import org.junit.jupiter.api.Test; |
| ... | ... | @@ -43,7 +42,8 @@ public class MailAccountServiceImplTest extends BaseDbUnitTest { |
| 43 | 42 | @Test |
| 44 | 43 | public void testCreateMailAccount_success() { |
| 45 | 44 | // 准备参数 |
| 46 | - MailAccountCreateReqVO reqVO = randomPojo(MailAccountCreateReqVO.class, o -> o.setMail(randomEmail())); | |
| 45 | + MailAccountSaveReqVO reqVO = randomPojo(MailAccountSaveReqVO.class, o -> o.setMail(randomEmail())) | |
| 46 | + .setId(null); // 防止 id 被赋值 | |
| 47 | 47 | |
| 48 | 48 | // 调用 |
| 49 | 49 | Long mailAccountId = mailAccountService.createMailAccount(reqVO); |
| ... | ... | @@ -51,7 +51,7 @@ public class MailAccountServiceImplTest extends BaseDbUnitTest { |
| 51 | 51 | assertNotNull(mailAccountId); |
| 52 | 52 | // 校验记录的属性是否正确 |
| 53 | 53 | MailAccountDO mailAccount = mailAccountMapper.selectById(mailAccountId); |
| 54 | - assertPojoEquals(reqVO, mailAccount); | |
| 54 | + assertPojoEquals(reqVO, mailAccount, "id"); | |
| 55 | 55 | } |
| 56 | 56 | |
| 57 | 57 | @Test |
| ... | ... | @@ -60,7 +60,7 @@ public class MailAccountServiceImplTest extends BaseDbUnitTest { |
| 60 | 60 | MailAccountDO dbMailAccount = randomPojo(MailAccountDO.class); |
| 61 | 61 | mailAccountMapper.insert(dbMailAccount);// @Sql: 先插入出一条存在的数据 |
| 62 | 62 | // 准备参数 |
| 63 | - MailAccountUpdateReqVO reqVO = randomPojo(MailAccountUpdateReqVO.class, o -> { | |
| 63 | + MailAccountSaveReqVO reqVO = randomPojo(MailAccountSaveReqVO.class, o -> { | |
| 64 | 64 | o.setId(dbMailAccount.getId()); // 设置更新的 ID |
| 65 | 65 | o.setMail(randomEmail()); |
| 66 | 66 | }); |
| ... | ... | @@ -75,7 +75,7 @@ public class MailAccountServiceImplTest extends BaseDbUnitTest { |
| 75 | 75 | @Test |
| 76 | 76 | public void testUpdateMailAccount_notExists() { |
| 77 | 77 | // 准备参数 |
| 78 | - MailAccountUpdateReqVO reqVO = randomPojo(MailAccountUpdateReqVO.class); | |
| 78 | + MailAccountSaveReqVO reqVO = randomPojo(MailAccountSaveReqVO.class); | |
| 79 | 79 | |
| 80 | 80 | // 调用, 并断言异常 |
| 81 | 81 | assertServiceException(() -> mailAccountService.updateMailAccount(reqVO), MAIL_ACCOUNT_NOT_EXISTS); |
| ... | ... | @@ -89,7 +89,7 @@ public class MailAccountServiceImplTest extends BaseDbUnitTest { |
| 89 | 89 | // 准备参数 |
| 90 | 90 | Long id = dbMailAccount.getId(); |
| 91 | 91 | // mock 方法(无关联模版) |
| 92 | - when(mailTemplateService.countByAccountId(eq(id))).thenReturn(0L); | |
| 92 | + when(mailTemplateService.getMailTemplateCountByAccountId(eq(id))).thenReturn(0L); | |
| 93 | 93 | |
| 94 | 94 | // 调用 |
| 95 | 95 | mailAccountService.deleteMailAccount(id); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImplTest.java
| ... | ... | @@ -3,9 +3,8 @@ package cn.iocoder.yudao.module.system.service.mail; |
| 3 | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; |
| 6 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateCreateReqVO; | |
| 6 | +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateSaveReqVO; | |
| 7 | 7 | import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO; |
| 8 | -import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateUpdateReqVO; | |
| 9 | 8 | import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; |
| 10 | 9 | import cn.iocoder.yudao.module.system.dal.mysql.mail.MailTemplateMapper; |
| 11 | 10 | import org.junit.jupiter.api.Test; |
| ... | ... | @@ -43,7 +42,8 @@ public class MailTemplateServiceImplTest extends BaseDbUnitTest { |
| 43 | 42 | @Test |
| 44 | 43 | public void testCreateMailTemplate_success() { |
| 45 | 44 | // 准备参数 |
| 46 | - MailTemplateCreateReqVO reqVO = randomPojo(MailTemplateCreateReqVO.class); | |
| 45 | + MailTemplateSaveReqVO reqVO = randomPojo(MailTemplateSaveReqVO.class) | |
| 46 | + .setId(null); // 防止 id 被赋值 | |
| 47 | 47 | |
| 48 | 48 | // 调用 |
| 49 | 49 | Long mailTemplateId = mailTemplateService.createMailTemplate(reqVO); |
| ... | ... | @@ -51,7 +51,7 @@ public class MailTemplateServiceImplTest extends BaseDbUnitTest { |
| 51 | 51 | assertNotNull(mailTemplateId); |
| 52 | 52 | // 校验记录的属性是否正确 |
| 53 | 53 | MailTemplateDO mailTemplate = mailTemplateMapper.selectById(mailTemplateId); |
| 54 | - assertPojoEquals(reqVO, mailTemplate); | |
| 54 | + assertPojoEquals(reqVO, mailTemplate, "id"); | |
| 55 | 55 | } |
| 56 | 56 | |
| 57 | 57 | @Test |
| ... | ... | @@ -60,7 +60,7 @@ public class MailTemplateServiceImplTest extends BaseDbUnitTest { |
| 60 | 60 | MailTemplateDO dbMailTemplate = randomPojo(MailTemplateDO.class); |
| 61 | 61 | mailTemplateMapper.insert(dbMailTemplate);// @Sql: 先插入出一条存在的数据 |
| 62 | 62 | // 准备参数 |
| 63 | - MailTemplateUpdateReqVO reqVO = randomPojo(MailTemplateUpdateReqVO.class, o -> { | |
| 63 | + MailTemplateSaveReqVO reqVO = randomPojo(MailTemplateSaveReqVO.class, o -> { | |
| 64 | 64 | o.setId(dbMailTemplate.getId()); // 设置更新的 ID |
| 65 | 65 | }); |
| 66 | 66 | |
| ... | ... | @@ -74,7 +74,7 @@ public class MailTemplateServiceImplTest extends BaseDbUnitTest { |
| 74 | 74 | @Test |
| 75 | 75 | public void testUpdateMailTemplate_notExists() { |
| 76 | 76 | // 准备参数 |
| 77 | - MailTemplateUpdateReqVO reqVO = randomPojo(MailTemplateUpdateReqVO.class); | |
| 77 | + MailTemplateSaveReqVO reqVO = randomPojo(MailTemplateSaveReqVO.class); | |
| 78 | 78 | |
| 79 | 79 | // 调用, 并断言异常 |
| 80 | 80 | assertServiceException(() -> mailTemplateService.updateMailTemplate(reqVO), MAIL_TEMPLATE_NOT_EXISTS); |
| ... | ... | @@ -207,7 +207,7 @@ public class MailTemplateServiceImplTest extends BaseDbUnitTest { |
| 207 | 207 | Long accountId = dbMailTemplate.getAccountId(); |
| 208 | 208 | |
| 209 | 209 | // 调用 |
| 210 | - long count = mailTemplateService.countByAccountId(accountId); | |
| 210 | + long count = mailTemplateService.getMailTemplateCountByAccountId(accountId); | |
| 211 | 211 | // 断言 |
| 212 | 212 | assertEquals(1, count); |
| 213 | 213 | } | ... | ... |