diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImpl.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImpl.java
index 92153b022..731a29ccc 100755
--- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImpl.java
+++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImpl.java
@@ -79,7 +79,7 @@ public class TestDemoServiceImpl implements TestDemoService {
 
     @Override
     public PageResult<TestDemoDO> getTestDemoPage(TestDemoPageReqVO pageReqVO) {
-//        testDemoMapper.selectList2();
+        testDemoMapper.selectList2();
         return testDemoMapper.selectPage(pageReqVO);
     }
 
diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
index 32ba7181e..cb6db27e1 100644
--- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
+++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
@@ -128,7 +128,7 @@ public interface ErrorCodeConstants {
     ErrorCode MAIL_ACCOUNT_EXISTS = new ErrorCode(1002020001, "邮箱账号存在");
 
     // ========== 邮箱模版 1002021000 ==========
-    ErrorCode MAIL_TEMPLATE_NOT_EXISTS = new ErrorCode(1002021000 , "邮箱模版不存在");
+    ErrorCode MAIL_TEMPLATE_NOT_EXISTS = new ErrorCode(1002021000, "邮箱模版不存在");
     ErrorCode MAIL_TEMPLATE_EXISTS = new ErrorCode(1002021001, "邮箱模版存在");
     ErrorCode MAIL_ACCOUNT_RELATE_TEMPLATE_EXISTS = new ErrorCode(1002021002, "存在关联邮箱模版");
 
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java
index 9928a7746..67f91735b 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java
@@ -17,6 +17,9 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
 public class MailLogPageReqVO extends PageParam {
+
+    // TODO @wangjingyi:required 为 false 时,它是默认值,所以不用谢
+
     @ApiModelProperty(value = "邮箱" , required = false , 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/controller/admin/mail/vo/send/MailReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/send/MailReqVO.java
index 65142ee3f..560c3bf42 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/send/MailReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/send/MailReqVO.java
@@ -34,5 +34,4 @@ public class MailReqVO { // TODO @wangjingqi:1), 不用空格;2)应该
     @ApiModelProperty(value = "附件",example = "附件编码")
     private List<String> fileIds;
 
-
 }
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailTemplateConvert.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailTemplateConvert.java
index 87fd8efe7..46a25b9e2 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailTemplateConvert.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailTemplateConvert.java
@@ -11,6 +11,7 @@ import java.util.List;
 
 @Mapper
 public interface MailTemplateConvert {
+
     MailTemplateConvert INSTANCE = Mappers.getMapper(MailTemplateConvert.class);
 
     MailTemplateDO convert(MailTemplateBaseVO baseVO);
@@ -20,4 +21,5 @@ public interface MailTemplateConvert {
     PageResult<MailTemplateRespVO> convertPage(PageResult<MailTemplateDO> pageResult);
 
     List<MailTemplateRespVO> convertList02(List<MailTemplateDO> list);
+
 }
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java
index 97cc51f4c..2472cd95f 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java
@@ -80,7 +80,6 @@ public class MailLogDO extends BaseDO implements Serializable {
 
     /**
      * 发送结果
-     *
      */
     private String sendResult;
 
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 da35012e2..98a445c8a 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
@@ -20,37 +20,38 @@ public interface MailLogService {
     /**
      * 邮箱日志分页
      *
-     * @param pageVO
-     * @return
+     * @param pageVO 分页参数
+     * @return 分页结果
      */
     PageResult<MailLogDO> getMailLogPage(MailLogPageReqVO pageVO);
 
     /**
      * 邮箱日志数组信息
      *
-     * @param exportReqVO
-     * @return
+     * @param exportReqVO 导出筛选请求
+     * @return 导出的日志数据
      */
     List<MailLogDO> getMailLogList(MailLogExportReqVO exportReqVO);
 
     /**
      * 创建邮箱日志
      *
-     * @param mailAccountDO  邮箱账号信息
-     * @param mailTemplateDO 模版信息
-     * @param from           邮箱
-     * @param content        内容
-     * @param tos            收件人
-     * @param title          标题
-     * @param isSend         是否发送成功
+     * @param mailAccountDO 邮箱账号信息
+     * @param template      模版信息
+     * @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);
+    Long createMailLog(MailAccountDO mailAccountDO, MailTemplateDO template, String from, String content, List<String> tos, String title, Boolean isSend);
 
     /**
      * 更新邮件发送结果
      *
-     * @param logId          发送日志Id
-     * @param result         发送结果 默认返回messageId
+     * @param logId  发送日志Id
+     * @param result 发送结果 默认返回messageId
      */
     void updateMailSendResult(Long logId, String result);
+
 }
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 873d337f4..16d65b4f9 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
@@ -1,7 +1,6 @@
 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.send.MailReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateCreateReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateUpdateReqVO;
@@ -68,8 +67,9 @@ public interface MailTemplateService {
      * @return 模版数组
      */
     List<MailTemplateDO> getMailTemplateList();
+
     /**
-     *从缓存中获取邮箱模版
+     * 从缓存中获取邮箱模版
      *
      * @param code 模板编码
      * @return 邮箱模板
@@ -78,9 +78,11 @@ public interface MailTemplateService {
 
     /**
      * 邮件模版内容合成
+     *
      * @param content 邮箱模版
      * @param params 合成参数
-     * @return
+     * @return 格式化后的内容
      */
     String formatMailTemplateContent(String content, Map<String, String> params);
+
 }
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 e251cc82e..afc7dcb93 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
@@ -27,6 +27,7 @@ import java.util.Objects;
 @Validated
 public class MailLogServiceImpl implements MailLogService {
 
+    // TODO @wangjingyi:private,然后使用 @Resource
     @Autowired
     MailLogMapper mailLogMapper;
 
@@ -41,25 +42,34 @@ public class MailLogServiceImpl implements MailLogService {
     }
 
     @Override
-    public Long createMailLog(MailAccountDO mailAccountDO , MailTemplateDO mailTemplateDO , String from, String content, List<String> tos, String title, Boolean isSend) {
+    public Long createMailLog(MailAccountDO mailAccountDO, MailTemplateDO template, String from, String content, List<String> tos, String title, Boolean isSend) {
         MailLogDO.MailLogDOBuilder logDOBuilder = MailLogDO.builder();
-        logDOBuilder.fromAddress(mailAccountDO.getFromAddress());
-        logDOBuilder.accountId(mailAccountDO.getId());
-        logDOBuilder.content(content);
-        logDOBuilder.title(title);
-        logDOBuilder.templateCode(mailTemplateDO.getCode());
-        logDOBuilder.templateId(mailTemplateDO.getId());
-        logDOBuilder.to(tos.toString());
-        logDOBuilder.sendTime(new Date());
+        // TODO @wangjingyi:使用 builder 的时候,不用每个 set 是一行。
+        // 根据是否要发送,设置状态
         logDOBuilder.sendStatus(Objects.equals(isSend, true) ? MailSendStatusEnum.INIT.getStatus()
                 : MailSendStatusEnum.IGNORE.getStatus());
+        // 设置邮箱相关字段
+        // TODO @wangjingyi:userId、userType
+        logDOBuilder.fromAddress(mailAccountDO.getFromAddress());
+        logDOBuilder.accountId(mailAccountDO.getId());
+        // TODO @wangjingyi:每个接收人一条日志。发送多个人,就调用多次,业务方。因为某个邮箱有问题,会导致所有都发送失败。
+        logDOBuilder.to(tos.toString());
+        // 设置模板相关字段
+        // TODO @wangjingyi:可以参考下 sms 短信的逻辑,templateContent、templateParams
+        logDOBuilder.templateId(template.getId());
+        logDOBuilder.templateCode(template.getCode());
+        logDOBuilder.title(title);
+        logDOBuilder.content(content);
+        // TODO @wangjingyi:有结果的时候,才是 sendTime 哈
+        logDOBuilder.sendTime(new Date());
 
-        MailLogDO mailLogDO = logDOBuilder.build();
-        mailLogMapper.insert(mailLogDO);
-        return mailLogDO.getId();
+        // 插入数据库
+        MailLogDO logDO = logDOBuilder.build();
+        mailLogMapper.insert(logDO);
+        return logDO.getId();
     }
 
-    // TODO @wangjingyi:不需要返回 id 呀 DONE
+    // TODO @wangjingyi:还是加几个字段哈,日志上。sendStatus,成功、失败;messageId 消息标号。sendException 记录发送的异常。这样界面才好筛选邮件的发送结果。
     @Override
     public void updateMailSendResult(Long logId, String result) {
         MailLogDO.MailLogDOBuilder logDOBuilder = MailLogDO.builder();
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 89a0b43ea..9f8315458 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
@@ -3,20 +3,13 @@ package cn.iocoder.yudao.module.system.service.mail.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.hutool.extra.mail.MailAccount;
-import cn.hutool.extra.mail.MailUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
-import cn.iocoder.yudao.module.system.controller.admin.mail.vo.send.MailReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateCreateReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateUpdateReqVO;
-import cn.iocoder.yudao.module.system.convert.mail.MailAccountConvert;
 import cn.iocoder.yudao.module.system.convert.mail.MailTemplateConvert;
-import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO;
-import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO;
-import cn.iocoder.yudao.module.system.dal.mysql.mail.MailAccountMapper;
 import cn.iocoder.yudao.module.system.dal.mysql.mail.MailTemplateMapper;
 import cn.iocoder.yudao.module.system.mq.producer.mail.MailProducer;
 import cn.iocoder.yudao.module.system.service.mail.MailTemplateService;
@@ -36,7 +29,7 @@ import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.MAIL_TEMPL
 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.MAIL_TEMPLATE_NOT_EXISTS;
 
 /**
- * 邮箱模版 服务实现类
+ * 邮箱模版 Service 实现类
  *
  * @author wangjingyi
  * @since 2022-03-21
@@ -48,6 +41,7 @@ public class MailTemplateServiceImpl implements MailTemplateService {
 
     @Resource
     private MailTemplateMapper mailTemplateMapper;
+
     @Resource
     private MailProducer mailProducer;
 
@@ -61,7 +55,6 @@ public class MailTemplateServiceImpl implements MailTemplateService {
 
     private volatile Date maxUpdateTime;
 
-    // TODO @wangjingyi:参考下别的模块的 initLocalCache 的实现 DONE
     @Override
     @PostConstruct
     public void initLocalCache() {
@@ -78,8 +71,8 @@ public class MailTemplateServiceImpl implements MailTemplateService {
 
     @Override
     public Long create(MailTemplateCreateReqVO createReqVO) {
-        //要校验存在
-        this.validateMailTemplateExists(createReqVO.getId());
+        // 要校验存在
+        validateMailTemplateExists(createReqVO.getId());
         MailTemplateDO mailTemplateDO = MailTemplateConvert.INSTANCE.convert(createReqVO);
         mailTemplateMapper.insert(mailTemplateDO);
         // TODO @wangjingyi:mq 更新 DONE
@@ -123,7 +116,6 @@ public class MailTemplateServiceImpl implements MailTemplateService {
         return mailTemplateCache.get(code);
     }
 
-    // TODO @@wangjingyi:单词拼写错误 DONE
     @Override
     public String formatMailTemplateContent(String content, Map<String, String> params) {
         return StrUtil.format(content, params);