From 0b0e37a3d50f05b6518acdaed2f761a81f9bfd17 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 2 May 2022 23:21:45 +0800 Subject: [PATCH] =?UTF-8?q?code=20review=20=E7=9F=AD=E4=BF=A1=E7=9A=84?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/mail/MailAccountController.java | 6 +++++- .../admin/mail/MailTemplateController.java | 3 +++ .../mail/vo/account/MailAccountPageReqVO.java | 1 + .../service/mail/MailAccountService.java | 1 - .../system/service/mail/MailLogService.java | 19 ++++++++++------- .../service/mail/MailTemplateService.java | 1 + .../mail/impl/MailAccountServiceImpl.java | 21 ++++++++++++------- .../service/mail/impl/MailLogServiceImpl.java | 3 ++- .../mail/impl/MailSendServiceImpl.java | 2 +- .../mail/impl/MailTemplateServiceImpl.java | 6 ++++++ 10 files changed, 44 insertions(+), 19 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.java index c16c7a60b..864c106d6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.java @@ -24,7 +24,6 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - @Api(tags = "管理后台 - 邮件账号") @RestController @RequestMapping("/system/mail-account") @@ -57,6 +56,9 @@ public class MailAccountController { return success(true); } + // TODO @wangjingyi:getMailAccount 和 getMailAccountPage 这两个接口,定义一个对应的 Resp 类哈,参考别的模块。主要不要返回 password 字段。 + // 一个可以的做法,是 MailAccountBaseVO 不返回 password,然后 MailAccountCreateReqVO、MailAccountUpdateReqVO 添加这个字段 + @GetMapping("/get") @ApiOperation("获得邮箱账号") @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) @@ -74,6 +76,8 @@ public class MailAccountController { return success(MailAccountConvert.INSTANCE.convertPage(pageResult)); } + // TODO @wangjingyi:getSimpleMailAccountList 单独定义一个类,只返回精简的信息,id,from 即可。像密码之类都是敏感信息,不应该返回 + @GetMapping("/list-all-simple") @ApiOperation(value = "获得邮箱账号精简列表") public CommonResult> getSimpleMailAccountList() { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java index cffd7f980..f75c8daad 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java @@ -29,6 +29,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @RequestMapping("/system/mail-template") public class MailTemplateController { + // TODO @wangjingyi:private @Autowired MailTemplateService mailTempleService; @@ -55,6 +56,8 @@ public class MailTemplateController { return success(true); } + // TODO @wangjingyi:下面几个 VO 也参考我在 account 给的建议 + @GetMapping("/get") @ApiOperation("获得邮箱模版") @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java index 520f31998..2ae2ad162 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java @@ -12,6 +12,7 @@ import lombok.ToString; @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class MailAccountPageReqVO extends PageParam { + @ApiModelProperty(value = "邮箱" , required = true , example = "yudaoyuanma@123.com") private String from; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java index c1289154f..e8937d973 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java @@ -9,7 +9,6 @@ import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; import javax.validation.Valid; import java.util.List; - /** * 邮箱账号 Service 接口 * diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.java index 0a5d25ba2..f5d417411 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.system.service.mail; - import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogExportReqVO; import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogPageReqVO; @@ -11,14 +10,16 @@ import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; import java.util.List; /** - * 邮箱日志服务类 + * 邮箱日志服务类 * * @author wangjingyi * @since 2022-03-21 */ public interface MailLogService { + /** * 邮箱日志分页 + * * @param pageVO * @return */ @@ -26,6 +27,7 @@ public interface MailLogService { /** * 邮箱日志数组信息 + * * @param exportReqVO * @return */ @@ -33,13 +35,14 @@ public interface MailLogService { /** * 创建邮箱日志 - * @param mailAccountDO 邮箱账号信息 + * + * @param mailAccountDO 邮箱账号信息 * @param mailTemplateDO 模版信息 - * @param from 邮箱 - * @param content 内容 - * @param tos 收件人 - * @param title 标题 - * @param isSend 是否发送成功 + * @param from 邮箱 + * @param content 内容 + * @param tos 收件人 + * @param title 标题 + * @param isSend 是否发送成功 */ Long createMailLog(MailAccountDO mailAccountDO, MailTemplateDO mailTemplateDO, String from, String content, List tos, String title, Boolean isSend); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java index b8101f0af..99b8fafef 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java @@ -20,6 +20,7 @@ import java.util.Map; public interface MailTemplateService { void initLocalCache(); + /** * 邮箱模版创建 * diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailAccountServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailAccountServiceImpl.java index 36ca05213..06945127c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailAccountServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailAccountServiceImpl.java @@ -21,7 +21,7 @@ import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; /** - * 邮箱账号 Service 实现类 + * 邮箱账号 Service 实现类 * * @author wangjingyi * @since 2022-03-21 @@ -39,28 +39,34 @@ public class MailAccountServiceImpl implements MailAccountService { @Override public Long create(MailAccountCreateReqVO createReqVO) { // username 要校验唯一 - this.validateMailAccountOnlyByUserName(createReqVO.getUsername()); + validateMailAccountOnlyByUserName(createReqVO.getUsername()); MailAccountDO mailAccountDO = MailAccountConvert.INSTANCE.convert(createReqVO); mailAccountMapper.insert(mailAccountDO); + + // 更新 return mailAccountDO.getId(); } @Override public void update(MailAccountUpdateReqVO updateReqVO) { - // username 要校验唯一 - this.validateMailAccountExists(updateReqVO.getId()); + // username 要校验唯一 TODO @wangjingyi:校验唯一的时候,需要排除掉自己 + validateMailAccountExists(updateReqVO.getId()); MailAccountDO mailAccountDO = MailAccountConvert.INSTANCE.convert(updateReqVO); // 校验是否存在 - this.validateMailAccountExists(mailAccountDO.getId()); + validateMailAccountExists(mailAccountDO.getId()); + + // 更新 mailAccountMapper.updateById(mailAccountDO); } @Override public void delete(Long id) { // 校验是否存在账号 - this.validateMailAccountExists(id); + validateMailAccountExists(id); // 校验是否存在关联模版 - this.validateMailTemplateByAccountId(id); + validateMailTemplateByAccountId(id); + + // 删除 mailAccountMapper.deleteById(id); } @@ -95,6 +101,7 @@ public class MailAccountServiceImpl implements MailAccountService { private void validateMailTemplateByAccountId(Long accountId){ MailTemplateDO mailTemplateDO = mailTemplateMapper.selectOneByAccountId(accountId); if (mailTemplateDO != null) { + // TODO wangjingyi:MAIL_ACCOUNT_RELATE_TEMPLATE_EXISTS throw exception(MAIL_RELATE_TEMPLATE_EXISTS); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailLogServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailLogServiceImpl.java index bdceb0d72..7c1b277da 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailLogServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailLogServiceImpl.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.system.service.mail.impl; - import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogExportReqVO; import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogPageReqVO; @@ -62,6 +61,7 @@ public class MailLogServiceImpl implements MailLogService { return mailLogDO.getId(); } + // TODO @wangjingyi:不需要返回 id 呀 @Override public Long updateSmsSendResult(Long logId, String result) { MailLogDO.MailLogDOBuilder logDOBuilder = MailLogDO.builder(); @@ -72,6 +72,7 @@ public class MailLogServiceImpl implements MailLogService { return logId; } + // TODO @wangjingyi:无用的方法,需要进行删除 public Long create(){ MailLogDO mailLogDO = new MailLogDO(); mailLogMapper.insert(mailLogDO); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailSendServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailSendServiceImpl.java index 61e428048..f2146f027 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailSendServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailSendServiceImpl.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.system.service.mail.impl; - import cn.hutool.extra.mail.MailAccount; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.module.system.convert.mail.MailAccountConvert; @@ -80,6 +79,7 @@ public class MailSendServiceImpl implements MailSendService { @Override public void doSendMail(MailSendMessage message) { + // TODO @wangjingyi:直接使用 hutool 发送,不要封装 mail client 哈,因为短信的客户端都是比较统一的 MailClient mailClient = mailClientFactory.getMailClient(); String result = mailClient.sendMail(message.getFrom() , message.getContent() , message.getTitle() , message.getTos()); mailLogService.updateSmsSendResult(message.getLogId() , result); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailTemplateServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailTemplateServiceImpl.java index e1d212186..f3d85841e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailTemplateServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailTemplateServiceImpl.java @@ -62,6 +62,7 @@ public class MailTemplateServiceImpl implements MailTemplateService { private volatile Date maxUpdateTime; + // TODO @wangjingyi:参考下别的模块的 initLocalCache 的实现 @Override @PostConstruct public void initLocalCache() { @@ -85,9 +86,11 @@ public class MailTemplateServiceImpl implements MailTemplateService { @Override public Long create(MailTemplateCreateReqVO createReqVO) { // code 要校验唯一 + // TODO @wangjingyi:参考下我在 account 给的唯一校验的说明。 this.validateMailTemplateOnlyByCode(createReqVO.getCode()); MailTemplateDO mailTemplateDO = MailTemplateConvert.INSTANCE.convert(createReqVO); mailTemplateMapper.insert(mailTemplateDO); + // TODO @wangjingyi:mq 更新 return mailTemplateDO.getId(); } @@ -97,6 +100,7 @@ public class MailTemplateServiceImpl implements MailTemplateService { this.validateMailTemplateExists(updateReqVO.getId()); MailTemplateDO mailTemplateDO = MailTemplateConvert.INSTANCE.convert(updateReqVO); mailTemplateMapper.updateById(mailTemplateDO); + // TODO @wangjingyi:mq 更新 } @Override @@ -104,6 +108,7 @@ public class MailTemplateServiceImpl implements MailTemplateService { // 校验是否存在 this.validateMailTemplateExists(id); mailTemplateMapper.deleteById(id); + // TODO @wangjingyi:mq 更新 } @Override @@ -144,6 +149,7 @@ public class MailTemplateServiceImpl implements MailTemplateService { MailUtil.send(account , mailReqVO.getTos() , mailReqVO.getTitle() , content , false); } + // TODO @@wangjingyi:单词拼写错误 @Override public String formateMailTemplateContent(String content, Map params) { return StrUtil.format(content, params);