瀏覽代碼

code review 短信的实现

YunaiV 3 年之前
父節點
當前提交
0b0e37a3d5
共有 10 個文件被更改,包括 44 次插入19 次删除
  1. 5 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.java
  2. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java
  3. 1 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java
  4. 0 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java
  5. 11 8
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.java
  6. 1 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java
  7. 14 7
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailAccountServiceImpl.java
  8. 2 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailLogServiceImpl.java
  9. 1 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailSendServiceImpl.java
  10. 6 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailTemplateServiceImpl.java

+ 5 - 1
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<List<MailAccountBaseVO>> getSimpleMailAccountList() {

+ 3 - 0
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)

+ 1 - 0
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;
 

+ 0 - 1
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 接口
  *

+ 11 - 8
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<String> tos, String title, Boolean isSend);
 

+ 1 - 0
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();
+
     /**
      * 邮箱模版创建
      *

+ 14 - 7
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);
         }
     }

+ 2 - 1
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);

+ 1 - 1
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);

+ 6 - 0
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<String, String> params) {
         return StrUtil.format(content, params);