ソースを参照

code review 邮件模块 second

YunaiV 3 年 前
コミット
d1812761db
12 ファイル変更36 行追加69 行削除
  1. 1 1
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountBaseVO.java
  2. 1 1
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/send/MailReqVO.java
  3. 1 1
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateBaseVO.java
  4. 9 16
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.java
  5. 7 10
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java
  6. 6 21
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.java
  7. 2 3
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailAccountMapper.java
  8. 1 0
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.java
  9. 1 4
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java
  10. 3 0
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java
  11. 2 8
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailAccountServiceImpl.java
  12. 2 4
      yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailTemplateServiceImpl.java

+ 1 - 1
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountBaseVO.java

@@ -8,7 +8,7 @@ import javax.validation.constraints.NotNull;
 
 @ApiModel("管理后台 - 邮箱账号基类 Base VO")
 @Data
-public class MailAccountBaseVO {
+public class MailAccountBaseVO { // TODO @wangjingqi:1), 不用空格;2)from、username、password、host、sslEnable 都要参数校验,非空;3)username 要 Email 格式;port Integer;
 
     @ApiModelProperty(value = "邮箱" , required = true , example = "yudaoyuanma@123.com")
     private String from;

+ 1 - 1
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/send/MailReqVO.java

@@ -9,7 +9,7 @@ import java.util.List;
 
 @ApiModel("管理后台 - 邮件发送 Req VO")
 @Data
-public class MailReqVO {
+public class MailReqVO { // TODO @wangjingqi:1), 不用空格;2)应该只要传递 templateCode、参数就好,title、from、content、附件应该都是参数里的
 
     @ApiModelProperty(value = "邮箱" , required = true , example = "yudaoyuanma@123.com")
     @NotNull(message = "邮箱账号不能为空")

+ 1 - 1
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateBaseVO.java

@@ -8,7 +8,7 @@ import javax.validation.constraints.NotNull;
 
 @ApiModel("管理后台 - 邮箱模版基类 Base VO")
 @Data
-public class MailTemplateBaseVO {
+public class MailTemplateBaseVO {  // TODO @wangjingqi:1)swagger 注解不完善;2)id、name、code、username、title、content、status 是不是要参数校验呀
     @ApiModelProperty("主键")
     private Long id;
 

+ 9 - 16
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.java

@@ -1,56 +1,49 @@
 package cn.iocoder.yudao.module.system.dal.dataobject.mail;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
 
+/**
+ * 邮箱账号
+ * 配置发送邮箱的账号
+ *
+ * @author wangjingyi
+ * @since 2022-03-21
+ */
 @TableName(value = "system_mail_account", autoResultMap = true)
 @Data
 @EqualsAndHashCode(callSuper = true)
-@Accessors(chain = true)
-public class MailAccountDO extends BaseDO implements Serializable {
+public class MailAccountDO extends BaseDO {
 
     /**
      * 主键
      */
     private Long id;
-
     /**
      * 邮箱
      */
     private String from;
-
     /**
      * 用户名
      */
     private String username;
-
     /**
      * 密码
      */
     private String password;
-
     /**
      * 主机
      */
     private String host;
-
     /**
      * 端口
      */
     private Integer port;
-
     /**
-     * 是否开启ssl
+     * 是否开启 SSL
      */
     private Boolean sslEnable;
 
-
 }

+ 7 - 10
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java

@@ -1,21 +1,16 @@
 package cn.iocoder.yudao.module.system.dal.dataobject.mail;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import java.sql.Timestamp;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
 
 /**
- * <p>
  * 邮箱日志
- * </p>
+ * 记录每一次邮件的发送
  *
  * @author wangjingyi
  * @since 2022-03-21
@@ -23,7 +18,6 @@ import lombok.experimental.Accessors;
 @TableName(value = "system_mail_log", autoResultMap = true)
 @Data
 @EqualsAndHashCode(callSuper = true)
-@Accessors(chain = true)
 public class MailLogDO extends BaseDO implements Serializable {
 
     /**
@@ -31,11 +25,13 @@ public class MailLogDO extends BaseDO implements Serializable {
      */
     private Long id;
 
+    // TODO @wangjingyi:accountId
     /**
      * 邮箱账号编号
      */
     private String accountCode;
 
+    // TODO @wangjingyi:如果是冗余字段,记得 @ 下;
     /**
      * 邮箱账号
      */
@@ -74,6 +70,7 @@ public class MailLogDO extends BaseDO implements Serializable {
     /**
      * 发送状态
      */
+    // TODO @wangjingyi:四个状态,参考短信模块
     private Boolean sendStatus;
 
     /**

+ 6 - 21
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.java

@@ -1,22 +1,13 @@
 package cn.iocoder.yudao.module.system.dal.dataobject.mail;
 
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
 
 /**
- * <p>
  * 邮箱模版
- * </p>
  *
  * @author wangjingyi
  * @since 2022-03-21
@@ -24,48 +15,42 @@ import lombok.experimental.Accessors;
 @TableName(value = "system_mail_template", autoResultMap = true)
 @Data
 @EqualsAndHashCode(callSuper = true)
-@Accessors(chain = true)
-public class MailTemplateDO extends BaseDO implements Serializable {
+public class MailTemplateDO extends BaseDO {
 
     /**
      * 主键
      */
     private Long id;
-
     /**
      * 模版名称
      */
     private String name;
-
     /**
      * 模版编号
      */
     private String code;
-
+    // TODO @wangjingyi:应该使用 accountId 呀
     /**
      * 用户名
      */
     private String username;
-
     /**
      * 标题
      */
     private String title;
-
     /**
      * 内容
      */
     private String content;
-
     /**
      * 状态
+     *
+     * 枚举 {@link CommonStatusEnum}
      */
-    private String status;
-
+    private String status; // TODO @wangjingyi:Integer
     /**
      * 备注
      */
     private String remark;
 
-
 }

+ 2 - 3
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailAccountMapper.java

@@ -7,8 +7,6 @@ import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccou
 import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO;
 import org.apache.ibatis.annotations.Mapper;
 
-import java.util.Map;
-
 @Mapper
 public interface MailAccountMapper extends BaseMapperX<MailAccountDO> {
 
@@ -23,7 +21,8 @@ public interface MailAccountMapper extends BaseMapperX<MailAccountDO> {
     }
 
     default MailAccountDO selectByUserName(String userName){
-        QueryWrapperX queryWrapperX = new QueryWrapperX<MailAccountDO>();
+        // TODO @wangjingyi:selectOne 有封装的方法;然后,编码一定要学会使用泛型呀。例如说 QueryWrapperX<MailAccountDO> queryWrapperX = new QueryWrapperX<>();
+        QueryWrapperX<MailAccountDO> queryWrapperX = new QueryWrapperX<>();
         queryWrapperX.eqIfPresent("username", userName);
         return this.selectOne(queryWrapperX);
     };

+ 1 - 0
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.java

@@ -23,6 +23,7 @@ public interface MailTemplateMapper extends BaseMapperX<MailTemplateDO> {
     }
 
     default MailTemplateDO selectOneByCode(String code){
+        // TODO @wangjingyi:优先使用 lambada 查询
         return selectOne("code" , code);
     };
 }

+ 1 - 4
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java

@@ -4,7 +4,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountCreateReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountUpdateReqVO;
-import cn.iocoder.yudao.module.system.controller.admin.mail.vo.send.MailReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO;
 
 import javax.validation.Valid;
@@ -19,10 +18,8 @@ import java.util.List;
  */
 public interface MailAccountService {
 
-    // TODO @wangjingyi:注释,完整;参数校验还是要做的;
-
     /**
-     * 创建邮箱账号 // TODO @wangjingyi:方法描述,和参数要空行
+     * 创建邮箱账号
      *
      * @param createReqVO 邮箱账号信息
      * @return 编号

+ 3 - 0
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java

@@ -20,6 +20,7 @@ public interface MailTemplateService {
 
     /**
      * 邮箱模版创建
+     *
      * @param createReqVO 邮箱信息
      * @return 编号
      */
@@ -27,12 +28,14 @@ public interface MailTemplateService {
 
     /**
      * 邮箱模版修改
+     *
      * @param updateReqVO 邮箱信息
      */
     void update(@Valid MailTemplateUpdateReqVO updateReqVO);
 
     /**
      * 邮箱模版删除
+     *
      * @param id 编号
      */
     void delete(Long id);

+ 2 - 8
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailAccountServiceImpl.java

@@ -1,16 +1,11 @@
 package cn.iocoder.yudao.module.system.service.mail.impl;
 
-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.module.system.controller.admin.mail.vo.account.MailAccountCreateReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountUpdateReqVO;
-import cn.iocoder.yudao.module.system.controller.admin.mail.vo.send.MailReqVO;
 import cn.iocoder.yudao.module.system.convert.mail.MailAccountConvert;
 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.mysql.mail.MailAccountMapper;
 import cn.iocoder.yudao.module.system.dal.mysql.mail.MailTemplateMapper;
 import cn.iocoder.yudao.module.system.service.mail.MailAccountService;
@@ -18,9 +13,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.MAIL_ACCOUNT_EXISTS;
@@ -54,7 +47,7 @@ public class MailAccountServiceImpl implements MailAccountService {
 
     @Override
     public void update(MailAccountUpdateReqVO updateReqVO) {
-        // username 要校验唯一
+        // username 要校验唯一 // TODO @wangjingyi:更新的就是自己,username 这样写,会重复呀。
         this.validateMailAccountOnlyByUserName(updateReqVO.getUsername());
         MailAccountDO mailAccountDO = MailAccountConvert.INSTANCE.convert(updateReqVO);
         // 校验是否存在
@@ -64,6 +57,7 @@ public class MailAccountServiceImpl implements MailAccountService {
 
     @Override
     public void delete(Long id) {
+        // TODO @wangjingyi:删除时,要判断是否有使用的模板
         // 校验是否存在
         this.validateMailAccountExists(id);
         mailAccountMapper.deleteById(id);

+ 2 - 4
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/mail/impl/MailTemplateServiceImpl.java

@@ -15,15 +15,12 @@ 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.mysql.mail.MailAccountMapper;
 import cn.iocoder.yudao.module.system.dal.mysql.mail.MailTemplateMapper;
-import cn.iocoder.yudao.module.system.service.mail.MailAccountService;
 import cn.iocoder.yudao.module.system.service.mail.MailTemplateService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -58,7 +55,7 @@ public class MailTemplateServiceImpl implements MailTemplateService {
     @Override
     public void update(@Valid MailTemplateUpdateReqVO updateReqVO) {
         // code 要校验唯一
-        this.validateMailTemplateOnlyByCode(updateReqVO.getCode());
+        this.validateMailTemplateOnlyByCode(updateReqVO.getCode()); // TODO @wangjingyi:code 这样写,修改自己会有问题
         MailTemplateDO mailTemplateDO = MailTemplateConvert.INSTANCE.convert(updateReqVO);
         // 校验是否存在
         this.validateMailTemplateExists(mailTemplateDO.getId());
@@ -85,6 +82,7 @@ public class MailTemplateServiceImpl implements MailTemplateService {
 
     @Override
     public void sendMail(MailReqVO mailReqVO) {
+        // TODO @@wangjingyi:发送的时候,参考下短信;
         MailTemplateDO mailTemplateDO =  mailTemplateMapper.selectById(mailReqVO.getTemplateId());
         //查询账号信息
         MailAccountDO mailAccountDO = mailAccountMapper.selectOne(