diff --git a/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java b/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java index ba9d5d2..cf50470 100644 --- a/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java +++ b/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java @@ -3,11 +3,11 @@ package cn.bunny.common.generator.generator; import cn.bunny.common.generator.entity.BaseField; import cn.bunny.common.generator.entity.BaseResultMap; import cn.bunny.common.generator.utils.GeneratorCodeUtils; -import cn.bunny.dao.dto.system.files.FilesAddDto; -import cn.bunny.dao.dto.system.files.FilesDto; -import cn.bunny.dao.dto.system.files.FilesUpdateDto; -import cn.bunny.dao.entity.system.Files; -import cn.bunny.dao.vo.system.files.FilesVo; +import cn.bunny.dao.dto.system.email.EmailTemplateAddDto; +import cn.bunny.dao.dto.system.email.EmailTemplateDto; +import cn.bunny.dao.dto.system.email.EmailTemplateUpdateDto; +import cn.bunny.dao.entity.system.EmailTemplate; +import cn.bunny.dao.vo.system.email.EmailTemplateVo; import com.baomidou.mybatisplus.annotation.TableName; import com.google.common.base.CaseFormat; import io.swagger.v3.oas.annotations.media.Schema; @@ -51,11 +51,11 @@ public class WebGeneratorCode { public static String resourceMapperPath = "D:\\MyFolder\\auth-admin\\auth-server-java\\service\\src\\main\\resources\\mapper\\"; public static void main(String[] args) throws Exception { - Class originalClass = Files.class; - Class dtoClass = FilesDto.class; - Class addDtoClass = FilesAddDto.class; - Class updateDtoClass = FilesUpdateDto.class; - Class voClass = FilesVo.class; + Class originalClass = EmailTemplate.class; + Class dtoClass = EmailTemplateDto.class; + Class addDtoClass = EmailTemplateAddDto.class; + Class updateDtoClass = EmailTemplateUpdateDto.class; + Class voClass = EmailTemplateVo.class; // 设置velocity资源加载器 Properties prop = new Properties(); diff --git a/common/common-generator/src/main/resources/vms/server/resourceMapper.vm b/common/common-generator/src/main/resources/vms/server/resourceMapper.vm index 9780055..6c77bce 100644 --- a/common/common-generator/src/main/resources/vms/server/resourceMapper.vm +++ b/common/common-generator/src/main/resources/vms/server/resourceMapper.vm @@ -4,9 +4,9 @@ - #foreach($field in $baseResultMaps) - - #end + #foreach($field in $baseResultMaps) + + #end @@ -16,16 +16,17 @@ diff --git a/common/common-generator/src/main/resources/vms/web/columns.vm b/common/common-generator/src/main/resources/vms/web/columns.vm index 5656dba..7b34297 100644 --- a/common/common-generator/src/main/resources/vms/web/columns.vm +++ b/common/common-generator/src/main/resources/vms/web/columns.vm @@ -4,7 +4,7 @@ import { $t } from '@/plugins/i18n'; // 表格列 export const columns: TableColumnList = [ { type: 'selection', align: 'left' }, -{ type: 'index', index: (index: number) => index + 1 }, +{ type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 }, { label: $t('id'), prop: 'id' }, #foreach($field in $baseFieldList) // $field.annotation diff --git a/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nAddDto.java index 25f776c..0dba62c 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nAddDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nAddDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.i18n; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -16,14 +17,17 @@ public class I18nAddDto { @Schema(name = "keyName", title = "多语言key") @NotBlank(message = "多语言key不能为空") + @NotNull(message = "多语言key不能为空") private String keyName; @Schema(name = "translation", title = "多语言翻译名称") @NotBlank(message = "多语言翻译名称不能为空") + @NotNull(message = "多语言翻译名称不能为空") private String translation; @Schema(name = "typeName", title = "多语言类型名称") @NotBlank(message = "多语言类型名称不能为空") + @NotNull(message = "多语言类型名称不能为空") private String typeName; } diff --git a/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nTypeAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nTypeAddDto.java index 5005d64..86e020a 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nTypeAddDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nTypeAddDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.i18n; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -16,10 +17,11 @@ public class I18nTypeAddDto { @Schema(name = "typeName", title = "多语言类型(比如zh,en)") @NotBlank(message = "多语言类型不能为空") + @NotNull(message = "多语言类型不能为空") private String typeName; @Schema(name = "summary", title = "名称解释(比如中文,英文)") - @NotBlank(message = "名称解释不能为空") + @NotNull(message = "名称解释不能为空") private String summary; @Schema(name = "isDefault", title = "是否为默认") diff --git a/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nTypeUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nTypeUpdateDto.java index f3dc022..7e53a24 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nTypeUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nTypeUpdateDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.i18n; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -15,15 +16,17 @@ import lombok.NoArgsConstructor; public class I18nTypeUpdateDto { @Schema(name = "id", title = "主键") - @NotBlank(message = "id不能为空") + @NotNull(message = "id不能为空") private Long id; - + @Schema(name = "typeName", title = "多语言类型(比如zh,en)") @NotBlank(message = "多语言类型不能为空") + @NotNull(message = "多语言类型不能为空") private String typeName; @Schema(name = "summary", title = "名称解释(比如中文,英文)") @NotBlank(message = "名称解释不能为空") + @NotNull(message = "名称解释不能为空") private String summary; @Schema(name = "isDefault", title = "是否为默认") diff --git a/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nUpdateDto.java index 0d8b875..096fe2a 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/i18n/I18nUpdateDto.java @@ -21,10 +21,12 @@ public class I18nUpdateDto { @Schema(name = "keyName", title = "多语言key") @NotBlank(message = "多语言key不能为空") + @NotNull(message = "多语言key不能为空") private String keyName; @Schema(name = "translation", title = "多语言翻译名称") @NotBlank(message = "多语言翻译名称不能为空") + @NotNull(message = "多语言翻译名称不能为空") private String translation; diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/dept/DeptAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/dept/DeptAddDto.java index 16c95cf..fc38671 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/dept/DeptAddDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/dept/DeptAddDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.system.dept; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; @@ -22,10 +23,12 @@ public class DeptAddDto { @Schema(name = "managerId", title = "管理者") @NotNull(message = "管理者不能为空") + @NotEmpty(message = "管理者不能为空") private List manager; @Schema(name = "deptName", title = "部门名称") @NotBlank(message = "部门名称不能为空") + @NotNull(message = "部门名称不能为空") private String deptName; @Schema(name = "summary", title = "部门简介") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/dept/DeptUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/dept/DeptUpdateDto.java index d037103..ad3de2e 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/dept/DeptUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/dept/DeptUpdateDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.system.dept; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; @@ -26,10 +27,12 @@ public class DeptUpdateDto { @Schema(name = "managerId", title = "管理者") @NotNull(message = "管理者不能为空") + @NotEmpty(message = "管理者不能为空") private List manager; @Schema(name = "deptName", title = "部门名称") @NotBlank(message = "部门名称不能为空") + @NotNull(message = "部门名称不能为空") private String deptName; @Schema(name = "summary", title = "部门简介") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateAddDto.java new file mode 100644 index 0000000..fd0ef25 --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateAddDto.java @@ -0,0 +1,35 @@ +package cn.bunny.dao.dto.system.email; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "EmailTemplateAddDto对象", title = "邮箱模板请求内容", description = "邮箱模板请求内容") +public class EmailTemplateAddDto { + + @Schema(name = "templateName", title = "模板名称") + @NotBlank(message = "模板名称不能为空") + @NotNull(message = "模板名称不能为空") + private String templateName; + + @Schema(name = "subject", title = "主题") + @NotBlank(message = "主题不能为空") + @NotNull(message = "主题不能为空") + private String subject; + + @Schema(name = "body", title = "邮件内容") + @NotBlank(message = "邮件内容不能为空") + @NotNull(message = "邮件内容不能为空") + private String body; + + @Schema(name = "type", title = "邮件类型") + private String type; +} diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateDto.java index ac2f353..bc93a62 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateDto.java @@ -1,7 +1,6 @@ package cn.bunny.dao.dto.system.email; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotBlank; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -15,17 +14,15 @@ import lombok.NoArgsConstructor; public class EmailTemplateDto { @Schema(name = "templateName", title = "模板名称") - @NotBlank(message = "模板名称不能为空") private String templateName; @Schema(name = "subject", title = "主题") - @NotBlank(message = "主题不能为空") private String subject; @Schema(name = "body", title = "邮件内容") - @NotBlank(message = "邮件内容不能为空") private String body; @Schema(name = "type", title = "邮件类型") private String type; } + diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateUpdateDto.java new file mode 100644 index 0000000..404939d --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailTemplateUpdateDto.java @@ -0,0 +1,39 @@ +package cn.bunny.dao.dto.system.email; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "EmailTemplateUpdateDto对象", title = "邮箱模板请求内容", description = "邮箱模板请求内容") +public class EmailTemplateUpdateDto { + + @Schema(name = "id", title = "主键") + @NotNull(message = "id不能为空") + private Long id; + + @Schema(name = "templateName", title = "模板名称") + @NotBlank(message = "模板名称不能为空") + @NotNull(message = "模板名称不能为空") + private String templateName; + + @Schema(name = "subject", title = "主题") + @NotBlank(message = "主题不能为空") + @NotNull(message = "主题不能为空") + private String subject; + + @Schema(name = "body", title = "邮件内容") + @NotBlank(message = "邮件内容不能为空") + @NotNull(message = "邮件内容不能为空") + private String body; + + @Schema(name = "type", title = "邮件类型") + private String type; +} \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersAddDto.java new file mode 100644 index 0000000..8e2113a --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersAddDto.java @@ -0,0 +1,46 @@ +package cn.bunny.dao.dto.system.email; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "EmailUsersAddDto对象", title = "邮箱用户发送配置", description = "邮箱用户发送配置管理") +public class EmailUsersAddDto { + + @Schema(name = "email", title = "邮箱") + @NotBlank(message = "邮箱不能为空") + @NotNull(message = "邮箱不能为空") + private String email; + + @Schema(name = "emailTemplate", title = "邮件模板") + private Long emailTemplate; + + @Schema(name = "password", title = "密码") + @NotBlank(message = "密码不能为空") + @NotNull(message = "密码不能为空") + private String password; + + @Schema(name = "host", title = "Host地址") + @NotBlank(message = "Host地址不能为空") + @NotNull(message = "Host地址不能为空") + private String host; + + @Schema(name = "port", title = "端口号") + @NotNull(message = "端口号不能为空") + private Integer port; + + @Schema(name = "smtpAgreement", title = "邮箱协议") + private String smtpAgreement; + + @Schema(name = "isDefault", title = "是否为默认邮件") + private Boolean isDefault = false; + +} diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersDto.java index d0122b5..d941550 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersDto.java @@ -1,45 +1,33 @@ package cn.bunny.dao.dto.system.email; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -/** - * 添加邮箱用户 - */ @Data @AllArgsConstructor @NoArgsConstructor @Builder -@Schema(name = "EmailUsersDto", title = "邮箱用户发送基础内容", description = "邮箱用户发送基础内容") +@Schema(name = "EmailUsersDto对象", title = "邮箱用户发送配置", description = "邮箱用户发送配置管理") public class EmailUsersDto { - @Schema(name = "id", title = "主键") - @NotBlank(message = "id不能为空") - private Long id; - @Schema(name = "email", title = "邮箱") - @NotBlank(message = "邮箱不能为空") private String email; - @Schema(name = "password", title = "密码") - @NotBlank(message = "密码不能为空") - private String password; + @Schema(name = "emailTemplate", title = "使用邮件模板") + private Long emailTemplate; - @Schema(name = "host", title = "SMTP服务器") + @Schema(name = "host", title = "Host地址") private String host; @Schema(name = "port", title = "端口号") - @NotNull(message = "端口号不能为空") private Integer port; @Schema(name = "smtpAgreement", title = "邮箱协议") - private Integer smtpAgreement; + private String smtpAgreement; - @Schema(name = "isDefault", title = "是否为默认邮件") - private Boolean isDefault; } + + diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersUpdateDto.java new file mode 100644 index 0000000..92aaa96 --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/system/email/EmailUsersUpdateDto.java @@ -0,0 +1,50 @@ +package cn.bunny.dao.dto.system.email; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "EmailUsersUpdateDto对象", title = "邮箱用户发送配置", description = "邮箱用户发送配置管理") +public class EmailUsersUpdateDto { + + @Schema(name = "id", title = "主键") + @NotNull(message = "id不能为空") + private Long id; + + @Schema(name = "email", title = "邮箱") + @NotBlank(message = "邮箱不能为空") + @NotNull(message = "邮箱不能为空") + private String email; + + @Schema(name = "emailTemplate", title = "邮件模板") + private Long emailTemplate; + + @Schema(name = "password", title = "密码") + @NotBlank(message = "密码不能为空") + @NotNull(message = "密码不能为空") + private String password; + + @Schema(name = "host", title = "Host地址") + @NotBlank(message = "Host地址不能为空") + @NotNull(message = "Host地址不能为空") + private String host; + + @Schema(name = "port", title = "端口号") + @NotNull(message = "端口号不能为空") + private Integer port; + + @Schema(name = "smtpAgreement", title = "邮箱协议") + private String smtpAgreement; + + @Schema(name = "isDefault", title = "是否为默认邮件") + private Boolean isDefault; + +} \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/files/FileUploadDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/files/FileUploadDto.java index a184995..254655e 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/files/FileUploadDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/files/FileUploadDto.java @@ -18,10 +18,11 @@ public class FileUploadDto { @Schema(name = "file", title = "文件") @NotNull(message = "文件不能为空") - MultipartFile file; + private MultipartFile file; @Schema(name = "type", title = "文件类型") @NotBlank(message = "文件类型不能为空") - String type; + @NotNull(message = "文件类型不能为空") + private String type; } \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/files/FilesAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/files/FilesAddDto.java index 4970a9b..00ae1a3 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/files/FilesAddDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/files/FilesAddDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.system.files; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -16,14 +17,17 @@ public class FilesAddDto { @Schema(name = "filename", title = "文件的名称") @NotBlank(message = "文件的名称不能为空") + @NotNull(message = "文件的名称不能为空") private String filename; @Schema(name = "filepath", title = "文件在服务器上的存储路径") @NotBlank(message = "存储路径不能为空") + @NotNull(message = "存储路径不能为空") private String filepath; @Schema(name = "fileType", title = "文件的MIME类型") @NotBlank(message = "文件类型不能为空") + @NotNull(message = "文件类型不能为空") private String fileType; @Schema(name = "downloadCount", title = "下载数量") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/files/FilesUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/files/FilesUpdateDto.java index 476ad1b..cd9ba80 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/files/FilesUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/files/FilesUpdateDto.java @@ -21,14 +21,17 @@ public class FilesUpdateDto { @Schema(name = "filename", title = "文件的名称") @NotBlank(message = "文件的名称不能为空") + @NotNull(message = "文件的名称不能为空") private String filename; @Schema(name = "filepath", title = "文件在服务器上的存储路径") @NotBlank(message = "存储路径不能为空") + @NotNull(message = "存储路径不能为空") private String filepath; @Schema(name = "fileType", title = "文件的MIME类型") @NotBlank(message = "文件类型不能为空") + @NotNull(message = "文件类型不能为空") private String fileType; @Schema(name = "downloadCount", title = "下载数量") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/menuIcon/MenuIconAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/menuIcon/MenuIconAddDto.java index 07e55fd..5522de9 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/menuIcon/MenuIconAddDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/menuIcon/MenuIconAddDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.system.menuIcon; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -16,10 +17,12 @@ public class MenuIconAddDto { @Schema(name = "iconCode", title = "icon类名") @NotBlank(message = "iconCode不能为空") + @NotNull(message = "iconCode不能为空") private String iconCode; @Schema(name = "iconName", title = "icon 名称") @NotBlank(message = "icon 名称不能为空") + @NotNull(message = "icon 名称不能为空") private String iconName; } diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/menuIcon/MenuIconUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/menuIcon/MenuIconUpdateDto.java index 90f73c3..6839266 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/menuIcon/MenuIconUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/menuIcon/MenuIconUpdateDto.java @@ -21,10 +21,12 @@ public class MenuIconUpdateDto { @Schema(name = "iconCode", title = "icon类名") @NotBlank(message = "iconCode不能为空") + @NotNull(message = "iconCode不能为空") private String iconCode; @Schema(name = "iconName", title = "icon 名称") @NotBlank(message = "icon 名称不能为空") + @NotNull(message = "icon 名称不能为空") private String iconName; } \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/AssignPowersToRoleDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/AssignPowersToRoleDto.java index fb71b81..bb5f75f 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/AssignPowersToRoleDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/AssignPowersToRoleDto.java @@ -1,6 +1,7 @@ package cn.bunny.dao.dto.system.rolePower; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; @@ -22,6 +23,7 @@ public class AssignPowersToRoleDto { @Schema(name = "powerIds", title = "权限id列表") @NotNull(message = "权限id列表不能为空") + @NotEmpty(message = "权限id列表不能为空") private List powerIds; } diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerAddDto.java index b689e7f..630dfa7 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerAddDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerAddDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.system.rolePower; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -19,10 +20,12 @@ public class PowerAddDto { @Schema(name = "parentId", title = "权限编码") @NotBlank(message = "权限编码 不能为空") + @NotNull(message = "权限编码 不能为空") private String powerCode; @Schema(name = "powerName", title = "权限名称") @NotBlank(message = "权限名称 不能为空") + @NotNull(message = "权限名称 不能为空") private String powerName; @Schema(name = "requestUrl", title = "请求路径") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerUpdateBatchByParentIdDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerUpdateBatchByParentIdDto.java index cfd6179..ffe1092 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerUpdateBatchByParentIdDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerUpdateBatchByParentIdDto.java @@ -1,6 +1,7 @@ package cn.bunny.dao.dto.system.rolePower; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; @@ -18,6 +19,7 @@ public class PowerUpdateBatchByParentIdDto { @Schema(name = "id", title = "主键") @NotNull(message = "id不能为空") + @NotEmpty(message = "id不能为空") private List ids; @Schema(name = "parentId", title = "父级id") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerUpdateDto.java index 75e1dbd..a3a8723 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/PowerUpdateDto.java @@ -24,10 +24,12 @@ public class PowerUpdateDto { @Schema(name = "parentId", title = "权限编码") @NotBlank(message = "权限编码 不能为空") + @NotNull(message = "权限编码 不能为空") private String powerCode; @Schema(name = "powerName", title = "权限名称") @NotBlank(message = "权限名称 不能为空") + @NotNull(message = "权限名称 不能为空") private String powerName; @Schema(name = "requestUrl", title = "请求路径") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/RoleAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/RoleAddDto.java index 7424be7..e128deb 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/RoleAddDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/RoleAddDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.system.rolePower; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -16,10 +17,12 @@ public class RoleAddDto { @Schema(name = "roleCode", title = "角色代码") @NotBlank(message = "roleCode 不能为空") + @NotNull(message = "roleCode 不能为空") private String roleCode; @Schema(name = "description", title = "描述") @NotBlank(message = "description 不能为空") + @NotNull(message = "description 不能为空") private String description; } diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/RoleUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/RoleUpdateDto.java index 8c7408d..47772f3 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/RoleUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/rolePower/RoleUpdateDto.java @@ -21,10 +21,12 @@ public class RoleUpdateDto { @Schema(name = "roleCode", title = "角色代码") @NotBlank(message = "roleCode 不能为空") + @NotNull(message = "roleCode 不能为空") private String roleCode; @Schema(name = "description", title = "描述") @NotBlank(message = "description 不能为空") + @NotNull(message = "description 不能为空") private String description; } \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/router/AssignRolesToRoutersDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/router/AssignRolesToRoutersDto.java index 10cbd3b..1ecbba1 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/router/AssignRolesToRoutersDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/router/AssignRolesToRoutersDto.java @@ -1,6 +1,7 @@ package cn.bunny.dao.dto.system.router; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; @@ -22,6 +23,7 @@ public class AssignRolesToRoutersDto { @Schema(name = "roleIds", title = "角色id列表") @NotNull(message = "角色id列表不能为空") + @NotEmpty(message = "角色id列表不能为空") private List roleIds; } \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/router/RouterAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/router/RouterAddDto.java index b221973..ec1d256 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/router/RouterAddDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/router/RouterAddDto.java @@ -1,7 +1,6 @@ package cn.bunny.dao.dto.system.router; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModelProperty; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -17,59 +16,44 @@ import lombok.NoArgsConstructor; @Schema(name = "RouterManageDto对象", title = "路由添加表单", description = "路由添加表单") public class RouterAddDto { - @ApiModelProperty("菜单类型") + @Schema(name = "menuType", title = "菜单类型") @NotNull(message = "菜单类型不能为空") private Integer menuType; - @ApiModelProperty("父级id") + @Schema(name = "parentId", title = "父级id") private Long parentId; - @ApiModelProperty("菜单名称") + @Schema(name = "title", title = "路由title") + @NotNull(message = "菜单名称不能为空") @NotBlank(message = "菜单名称不能为空") private String title; - @ApiModelProperty("路由名称") - @NotBlank(message = "路由名称不能为空") + @Schema(name = "routeName", title = "路由名称") @JsonProperty("name") + @NotBlank(message = "路由名称不能为空") + @NotNull(message = "路由名称不能为空") private String routeName; - @ApiModelProperty("在项目中路径") + @Schema(name = "path", title = "在项目中路径") @NotBlank(message = "路由路径不能为空") + @NotNull(message = "路由路径不能为空") private String path; - @ApiModelProperty("组件位置") + @Schema(name = "component", title = "组件位置") private String component; - @ApiModelProperty("等级") + @Schema(name = "routerRank", title = "等级") @JsonProperty("rank") private Integer routerRank = 99; - @ApiModelProperty("重定向") - private String redirect; - - @ApiModelProperty("图标") + @Schema(name = "icon", title = "图标") private String icon; - @ApiModelProperty("进入动画") - private String enterTransition; - - @ApiModelProperty("退出动画") - private String leaveTransition; - - @ApiModelProperty("frame路径") + @Schema(name = "frameSrc", title = "frame路径") private String frameSrc; - @ApiModelProperty("是否隐藏标签") - private Boolean hiddenTag = false; - - @ApiModelProperty("是否固定标签") - private Boolean fixedTag = false; - - @ApiModelProperty("是否显示") + @Schema(name = "visible", title = "是否显示") private Boolean visible = false; - @ApiModelProperty("是否显示父级") - private Boolean showParent = false; - } diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/router/RouterUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/router/RouterUpdateDto.java index a81b59b..7b00142 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/router/RouterUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/router/RouterUpdateDto.java @@ -1,7 +1,6 @@ package cn.bunny.dao.dto.system.router; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModelProperty; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -17,43 +16,46 @@ import lombok.NoArgsConstructor; @Schema(name = "RouterManageDto对象", title = "路由更新表单", description = "路由更新表单") public class RouterUpdateDto { - @ApiModelProperty("唯一标识") + @Schema(name = "id", title = "唯一标识") @NotNull(message = "id不能为空") private Long id; - @ApiModelProperty("菜单类型") + @Schema(name = "menuType", title = "菜单类型") @NotNull(message = "菜单类型不能为空") private Integer menuType; - @ApiModelProperty("父级id") + @Schema(name = "parentId", title = "父级id") private Long parentId; - @ApiModelProperty("菜单名称") + @Schema(name = "title", title = "路由title") @NotBlank(message = "菜单名称不能为空") + @NotNull(message = "菜单名称不能为空") private String title; - @ApiModelProperty("路由名称") - @NotBlank(message = "路由名称不能为空") + @Schema(name = "routeName", title = "路由名称") @JsonProperty("name") + @NotBlank(message = "路由名称不能为空") + @NotNull(message = "路由名称不能为空") private String routeName; - @ApiModelProperty("在项目中路径") + @Schema(name = "path", title = "在项目中路径") @NotBlank(message = "路由路径不能为空") + @NotNull(message = "路由路径不能为空") private String path; - @ApiModelProperty("组件位置") + @Schema(name = "component", title = "组件位置") private String component; - @ApiModelProperty("等级") + @Schema(name = "routerRank", title = "等级") @JsonProperty("rank") private Integer routerRank; - @ApiModelProperty("图标") + @Schema(name = "icon", title = "图标") private String icon; - @ApiModelProperty("frame路径") + @Schema(name = "frameSrc", title = "frame路径") private String frameSrc; - @ApiModelProperty("是否显示") + @Schema(name = "visible", title = "是否显示") private Boolean visible; } diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserAddDto.java index 79ab9cd..ae774f1 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserAddDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserAddDto.java @@ -17,14 +17,17 @@ public class AdminUserAddDto { @Schema(name = "username", title = "用户名") @NotBlank(message = "用户名不能为空") + @NotNull(message = "用户名不能为空") private String username; @Schema(name = "nickName", title = "昵称") @NotBlank(message = "昵称不能为空") + @NotNull(message = "昵称不能为空") private String nickName; @Schema(name = "email", title = "邮箱") @NotBlank(message = "邮箱不能为空") + @NotNull(message = "邮箱不能为空") private String email; @Schema(name = "phone", title = "手机号") @@ -32,6 +35,7 @@ public class AdminUserAddDto { @Schema(name = "password", title = "密码") @NotBlank(message = "密码不能为空") + @NotNull(message = "密码不能为空") private String password = "123456"; @Schema(name = "avatar", title = "头像") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserUpdateDto.java index ce2040b..68013bf 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserUpdateDto.java @@ -21,14 +21,17 @@ public class AdminUserUpdateDto { @Schema(name = "username", title = "用户名") @NotBlank(message = "用户名不能为空") + @NotNull(message = "用户名不能为空") private String username; @Schema(name = "nickName", title = "昵称") @NotBlank(message = "昵称不能为空") + @NotNull(message = "昵称不能为空") private String nickName; @Schema(name = "email", title = "邮箱") @NotBlank(message = "邮箱不能为空") + @NotNull(message = "邮箱不能为空") private String email; @Schema(name = "phone", title = "手机号") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserUpdateWithPasswordDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserUpdateWithPasswordDto.java index 63113aa..8c9792a 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserUpdateWithPasswordDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/user/AdminUserUpdateWithPasswordDto.java @@ -2,7 +2,6 @@ package cn.bunny.dao.dto.system.user; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; @@ -22,7 +21,7 @@ public class AdminUserUpdateWithPasswordDto { @Schema(name = "password", title = "用户密码") @NotBlank(message = "密码不能为空") - @NotEmpty + @NotNull(message = "密码不能为空") private String password; } diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/user/LoginDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/user/LoginDto.java index bd9d1ee..580c1b9 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/user/LoginDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/user/LoginDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.system.user; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -16,15 +17,18 @@ public class LoginDto { @Schema(name = "username", title = "用户名") @NotBlank(message = "用户名不能为空") + @NotNull(message = "用户名不能为空") private String username; @Schema(name = "password", title = "密码") @NotBlank(message = "密码不能为空") + @NotNull(message = "密码不能为空") private String password; @Schema(name = "emailCode", title = "邮箱验证码") @NotBlank(message = "邮箱验证码不能为空") + @NotNull(message = "邮箱验证码不能为空") private String emailCode; @Schema(name = "readMeDay", title = "记住我的天数") diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/user/RefreshTokenDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/user/RefreshTokenDto.java index 2ca1ee8..b558940 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/system/user/RefreshTokenDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/system/user/RefreshTokenDto.java @@ -2,6 +2,7 @@ package cn.bunny.dao.dto.system.user; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -15,6 +16,7 @@ import lombok.NoArgsConstructor; public class RefreshTokenDto { @Schema(name = "refreshToken", title = "请求刷新token") @NotBlank(message = "请求刷新token不能为空") + @NotNull(message = "请求刷新token不能为空") private String refreshToken; @Schema(name = "readMeDay", title = "记住我天数") diff --git a/dao/src/main/java/cn/bunny/dao/entity/system/EmailUsers.java b/dao/src/main/java/cn/bunny/dao/entity/system/EmailUsers.java index f3329a7..dec84a3 100644 --- a/dao/src/main/java/cn/bunny/dao/entity/system/EmailUsers.java +++ b/dao/src/main/java/cn/bunny/dao/entity/system/EmailUsers.java @@ -15,13 +15,13 @@ import lombok.experimental.Accessors; * @author Bunny * @since 2024-05-17 */ - @EqualsAndHashCode(callSuper = true) @Data @Accessors(chain = true) @TableName("sys_email_users") -@Schema(name = "EmailUsers对象", title = "邮箱发送表", description = "邮箱发送表") +@Schema(name = "EmailUsers对象", title = "邮箱用户发送配置", description = "邮箱用户发送配置管理") public class EmailUsers extends BaseEntity { + @Schema(name = "email", title = "邮箱") private String email; @@ -41,5 +41,8 @@ public class EmailUsers extends BaseEntity { private String smtpAgreement; @Schema(name = "isDefault", title = "是否为默认邮件") - private Byte isDefault; -} \ No newline at end of file + private Boolean isDefault; + +} + + diff --git a/dao/src/main/java/cn/bunny/dao/entity/system/Router.java b/dao/src/main/java/cn/bunny/dao/entity/system/Router.java index 3d43240..7105d55 100644 --- a/dao/src/main/java/cn/bunny/dao/entity/system/Router.java +++ b/dao/src/main/java/cn/bunny/dao/entity/system/Router.java @@ -2,7 +2,6 @@ package cn.bunny.dao.entity.system; import cn.bunny.dao.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; @@ -23,7 +22,6 @@ import lombok.experimental.Accessors; @Schema(name = "Router对象", title = "系统菜单表", description = "系统菜单表") public class Router extends BaseEntity { - @ApiModelProperty("父级id") @Schema(name = "parentId", title = "父级id") private Long parentId; diff --git a/dao/src/main/java/cn/bunny/dao/vo/system/EmailTemplateVo.java b/dao/src/main/java/cn/bunny/dao/vo/system/email/EmailTemplateVo.java similarity index 58% rename from dao/src/main/java/cn/bunny/dao/vo/system/EmailTemplateVo.java rename to dao/src/main/java/cn/bunny/dao/vo/system/email/EmailTemplateVo.java index 585ea80..d9e9a50 100644 --- a/dao/src/main/java/cn/bunny/dao/vo/system/EmailTemplateVo.java +++ b/dao/src/main/java/cn/bunny/dao/vo/system/email/EmailTemplateVo.java @@ -1,17 +1,17 @@ -package cn.bunny.dao.vo.system; +package cn.bunny.dao.vo.system.email; +import cn.bunny.dao.vo.BaseVo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; +@EqualsAndHashCode(callSuper = true) @Data @AllArgsConstructor @NoArgsConstructor @Builder @Schema(name = "EmailTemplateVo对象", title = "邮箱模板返回内容", description = "邮箱模板返回内容") -public class EmailTemplateVo { +public class EmailTemplateVo extends BaseVo { + @Schema(name = "templateName", title = "模板名称") private String templateName; @@ -20,4 +20,11 @@ public class EmailTemplateVo { @Schema(name = "body", title = "邮件内容") private String body; + + @Schema(name = "type", title = "邮件类型") + private String type; + + @Schema(name = "isDefault", title = "是否默认") + private Boolean isDefault; + } \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/vo/system/email/EmailUsersVo.java b/dao/src/main/java/cn/bunny/dao/vo/system/email/EmailUsersVo.java new file mode 100644 index 0000000..a0d2e00 --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/vo/system/email/EmailUsersVo.java @@ -0,0 +1,36 @@ +package cn.bunny.dao.vo.system.email; + +import cn.bunny.dao.vo.BaseVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@EqualsAndHashCode(callSuper = true) +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "EmailUsersVo对象", title = "邮箱用户发送配置", description = "邮箱用户发送配置管理") +public class EmailUsersVo extends BaseVo { + + @Schema(name = "email", title = "邮箱") + private String email; + + @Schema(name = "emailTemplate", title = "使用邮件模板") + private Long emailTemplate; + + @Schema(name = "password", title = "密码") + private String password; + + @Schema(name = "host", title = "Host地址") + private String host; + + @Schema(name = "port", title = "端口号") + private Integer port; + + @Schema(name = "smtpAgreement", title = "邮箱协议") + private String smtpAgreement; + + @Schema(name = "isDefault", title = "是否为默认邮件") + private Boolean isDefault; + +} \ No newline at end of file diff --git a/service/pom.xml b/service/pom.xml index 3214574..ec262d1 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -40,6 +40,12 @@ org.springframework.boot spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + 3.2.3 + junit @@ -74,10 +80,6 @@ - - org.springframework.boot - spring-boot-maven-plugin - org.apache.maven.plugins maven-surefire-plugin diff --git a/service/src/main/java/cn/bunny/services/controller/EmailTemplateController.java b/service/src/main/java/cn/bunny/services/controller/EmailTemplateController.java index 9a2a179..843dd68 100644 --- a/service/src/main/java/cn/bunny/services/controller/EmailTemplateController.java +++ b/service/src/main/java/cn/bunny/services/controller/EmailTemplateController.java @@ -1,18 +1,72 @@ package cn.bunny.services.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.bunny.dao.dto.system.email.EmailTemplateAddDto; +import cn.bunny.dao.dto.system.email.EmailTemplateDto; +import cn.bunny.dao.dto.system.email.EmailTemplateUpdateDto; +import cn.bunny.dao.entity.system.EmailTemplate; +import cn.bunny.dao.pojo.result.PageResult; +import cn.bunny.dao.pojo.result.Result; +import cn.bunny.dao.pojo.result.ResultCodeEnum; +import cn.bunny.dao.vo.system.email.EmailTemplateVo; +import cn.bunny.services.service.EmailTemplateService; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Mono; + +import java.util.List; /** *

- * 前端控制器 + * 邮件模板表表 前端控制器 *

* * @author Bunny - * @since 2024-09-26 + * @since 2024-10-10 16:28:29 */ +@Tag(name = "邮件模板表", description = "邮件模板表相关接口") @RestController -@RequestMapping("/emailTemplate") +@RequestMapping("admin/emailTemplate") public class EmailTemplateController { + @Autowired + private EmailTemplateService emailTemplateService; + + @Operation(summary = "分页查询邮件模板表", description = "分页查询邮件模板表") + @GetMapping("getEmailTemplateList/{page}/{limit}") + public Mono>> getEmailTemplateList( + @Parameter(name = "page", description = "当前页", required = true) + @PathVariable("page") Integer page, + @Parameter(name = "limit", description = "每页记录数", required = true) + @PathVariable("limit") Integer limit, + EmailTemplateDto dto) { + Page pageParams = new Page<>(page, limit); + PageResult pageResult = emailTemplateService.getEmailTemplateList(pageParams, dto); + return Mono.just(Result.success(pageResult)); + } + + @Operation(summary = "添加邮件模板表", description = "添加邮件模板表") + @PostMapping("addEmailTemplate") + public Mono> addEmailTemplate(@Valid @RequestBody EmailTemplateAddDto dto) { + emailTemplateService.addEmailTemplate(dto); + return Mono.just(Result.success(ResultCodeEnum.ADD_SUCCESS)); + } + + @Operation(summary = "更新邮件模板表", description = "更新邮件模板表") + @PutMapping("updateEmailTemplate") + public Mono> updateEmailTemplate(@Valid @RequestBody EmailTemplateUpdateDto dto) { + emailTemplateService.updateEmailTemplate(dto); + return Mono.just(Result.success(ResultCodeEnum.UPDATE_SUCCESS)); + } + + @Operation(summary = "删除邮件模板表", description = "删除邮件模板表") + @DeleteMapping("deleteEmailTemplate") + public Mono> deleteEmailTemplate(@RequestBody List ids) { + emailTemplateService.deleteEmailTemplate(ids); + return Mono.just(Result.success(ResultCodeEnum.DELETE_SUCCESS)); + } } diff --git a/service/src/main/java/cn/bunny/services/controller/EmailUsersController.java b/service/src/main/java/cn/bunny/services/controller/EmailUsersController.java index 7e92d34..a5ad6f6 100644 --- a/service/src/main/java/cn/bunny/services/controller/EmailUsersController.java +++ b/service/src/main/java/cn/bunny/services/controller/EmailUsersController.java @@ -1,18 +1,72 @@ package cn.bunny.services.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.bunny.dao.dto.system.email.EmailUsersAddDto; +import cn.bunny.dao.dto.system.email.EmailUsersDto; +import cn.bunny.dao.dto.system.email.EmailUsersUpdateDto; +import cn.bunny.dao.entity.system.EmailUsers; +import cn.bunny.dao.pojo.result.PageResult; +import cn.bunny.dao.pojo.result.Result; +import cn.bunny.dao.pojo.result.ResultCodeEnum; +import cn.bunny.dao.vo.system.email.EmailUsersVo; +import cn.bunny.services.service.EmailUsersService; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Mono; + +import java.util.List; /** *

- * 邮箱发送表 前端控制器 + * 邮箱用户发送配置表 前端控制器 *

* * @author Bunny - * @since 2024-09-26 + * @since 2024-10-10 15:19:22 */ +@Tag(name = "邮箱用户发送配置", description = "邮箱用户发送配置相关接口") @RestController -@RequestMapping("/emailUsers") +@RequestMapping("admin/emailUsers") public class EmailUsersController { + @Autowired + private EmailUsersService emailUsersService; + + @Operation(summary = "分页查询邮箱用户发送配置", description = "分页查询邮箱用户发送配置") + @GetMapping("getEmailUsersList/{page}/{limit}") + public Mono>> getEmailUsersList( + @Parameter(name = "page", description = "当前页", required = true) + @PathVariable("page") Integer page, + @Parameter(name = "limit", description = "每页记录数", required = true) + @PathVariable("limit") Integer limit, + EmailUsersDto dto) { + Page pageParams = new Page<>(page, limit); + PageResult pageResult = emailUsersService.getEmailUsersList(pageParams, dto); + return Mono.just(Result.success(pageResult)); + } + + @Operation(summary = "添加邮箱用户发送配置", description = "添加邮箱用户发送配置") + @PostMapping("addEmailUsers") + public Mono> addEmailUsers(@Valid @RequestBody EmailUsersAddDto dto) { + emailUsersService.addEmailUsers(dto); + return Mono.just(Result.success(ResultCodeEnum.ADD_SUCCESS)); + } + + @Operation(summary = "更新邮箱用户发送配置", description = "更新邮箱用户发送配置") + @PutMapping("updateEmailUsers") + public Mono> updateEmailUsers(@Valid @RequestBody EmailUsersUpdateDto dto) { + emailUsersService.updateEmailUsers(dto); + return Mono.just(Result.success(ResultCodeEnum.UPDATE_SUCCESS)); + } + + @Operation(summary = "删除邮箱用户发送配置", description = "删除邮箱用户发送配置") + @DeleteMapping("deleteEmailUsers") + public Mono> deleteEmailUsers(@RequestBody List ids) { + emailUsersService.deleteEmailUsers(ids); + return Mono.just(Result.success(ResultCodeEnum.DELETE_SUCCESS)); + } } diff --git a/service/src/main/java/cn/bunny/services/mapper/EmailTemplateMapper.java b/service/src/main/java/cn/bunny/services/mapper/EmailTemplateMapper.java index be6a70a..bb6f7a2 100644 --- a/service/src/main/java/cn/bunny/services/mapper/EmailTemplateMapper.java +++ b/service/src/main/java/cn/bunny/services/mapper/EmailTemplateMapper.java @@ -1,18 +1,39 @@ package cn.bunny.services.mapper; +import cn.bunny.dao.dto.system.email.EmailTemplateDto; import cn.bunny.dao.entity.system.EmailTemplate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * Mapper 接口 + * 邮件模板表 Mapper 接口 *

* * @author Bunny - * @since 2024-09-26 + * @since 2024-10-10 16:28:29 */ @Mapper public interface EmailTemplateMapper extends BaseMapper { + /** + * * 分页查询邮件模板表内容 + * + * @param pageParams 邮件模板表分页参数 + * @param dto 邮件模板表查询表单 + * @return 邮件模板表分页结果 + */ + IPage selectListByPage(@Param("page") Page pageParams, @Param("dto") EmailTemplateDto dto); + + /** + * 物理删除邮件模板表 + * + * @param ids 删除 id 列表 + */ + void deleteBatchIdsWithPhysics(List ids); } diff --git a/service/src/main/java/cn/bunny/services/mapper/EmailUsersMapper.java b/service/src/main/java/cn/bunny/services/mapper/EmailUsersMapper.java index 849c062..3a182eb 100644 --- a/service/src/main/java/cn/bunny/services/mapper/EmailUsersMapper.java +++ b/service/src/main/java/cn/bunny/services/mapper/EmailUsersMapper.java @@ -1,18 +1,39 @@ package cn.bunny.services.mapper; +import cn.bunny.dao.dto.system.email.EmailUsersDto; import cn.bunny.dao.entity.system.EmailUsers; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

- * 邮箱发送表 Mapper 接口 + * 邮箱用户发送配置 Mapper 接口 *

* * @author Bunny - * @since 2024-09-26 + * @since 2024-10-10 15:19:22 */ @Mapper public interface EmailUsersMapper extends BaseMapper { + /** + * * 分页查询邮箱用户发送配置内容 + * + * @param pageParams 邮箱用户发送配置分页参数 + * @param dto 邮箱用户发送配置查询表单 + * @return 邮箱用户发送配置分页结果 + */ + IPage selectListByPage(@Param("page") Page pageParams, @Param("dto") EmailUsersDto dto); + + /** + * 物理删除邮箱用户发送配置 + * + * @param ids 删除 id 列表 + */ + void deleteBatchIdsWithPhysics(List ids); } diff --git a/service/src/main/java/cn/bunny/services/security/config/WebSecurityConfig.java b/service/src/main/java/cn/bunny/services/security/config/WebSecurityConfig.java index 5cb7cf4..65f573f 100644 --- a/service/src/main/java/cn/bunny/services/security/config/WebSecurityConfig.java +++ b/service/src/main/java/cn/bunny/services/security/config/WebSecurityConfig.java @@ -30,15 +30,16 @@ import org.springframework.security.web.util.matcher.RegexRequestMatcher; public class WebSecurityConfig { @Autowired private RedisTemplate redisTemplate; - // 自定义用户接口 + @Autowired private CustomUserDetailsService customUserDetailsService; - // 自定义密码加密器 + @Autowired private CustomPasswordEncoder customPasswordEncoder; - // 自定义验证码 + @Autowired private CustomAuthorizationManagerServiceImpl customAuthorizationManagerService; + @Autowired private AuthenticationConfiguration authenticationConfiguration; @@ -48,7 +49,7 @@ public class WebSecurityConfig { // 前端段分离不需要---禁用明文验证 .httpBasic(AbstractHttpConfigurer::disable) // 前端段分离不需要---禁用默认登录页 - .formLogin(AbstractHttpConfigurer::disable) + // .formLogin(AbstractHttpConfigurer::disable) // 前端段分离不需要---禁用退出页 .logout(AbstractHttpConfigurer::disable) // 前端段分离不需要---csrf攻击 @@ -60,9 +61,6 @@ public class WebSecurityConfig { // 前后端分离不需要---记住我,e -> e.rememberMeParameter("rememberBunny").rememberMeCookieName("rememberBunny").key("BunnyKey") .rememberMe(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorize -> { - // 有样式文件,不需要访问权限 - // authorize.requestMatchers(RegexRequestMatcher.regexMatcher("^\\S*[css|js]$")).permitAll(); - authorize.requestMatchers(RegexRequestMatcher.regexMatcher("^.*\\.(css|js)$")).permitAll(); // 上面都不是需要鉴权访问 authorize.anyRequest().access(customAuthorizationManagerService); }) @@ -94,10 +92,10 @@ public class WebSecurityConfig { String[] annotations = { "/", "/ws/**", "/*/*/noAuth/**", "/*/noAuth/**", "/noAuth/**", - "/media.ico", "/favicon.ico", "*.html", "/webjars/**", - "/swagger-resources/**", "/v3/**", "/swagger-ui/**", - "/*/i18n/getI18n" + "/media.ico", "/favicon.ico", "*.html", "/webjars/**", "/error", "/*/api-docs/*", + "/*/i18n/getI18n", }; - return web -> web.ignoring().requestMatchers(annotations); + return web -> web.ignoring().requestMatchers(annotations) + .requestMatchers(RegexRequestMatcher.regexMatcher(".*\\.(css|js)$")); } } diff --git a/service/src/main/java/cn/bunny/services/security/filter/NoTokenAuthenticationFilter.java b/service/src/main/java/cn/bunny/services/security/filter/NoTokenAuthenticationFilter.java index c290663..8a6543e 100644 --- a/service/src/main/java/cn/bunny/services/security/filter/NoTokenAuthenticationFilter.java +++ b/service/src/main/java/cn/bunny/services/security/filter/NoTokenAuthenticationFilter.java @@ -27,7 +27,7 @@ public class NoTokenAuthenticationFilter extends OncePerRequestFilter { } @Override - protected void doFilterInternal(HttpServletRequest request, @NotNull HttpServletResponse response, @NotNull FilterChain filterChain) throws ServletException, IOException { + protected void doFilterInternal(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, @NotNull FilterChain filterChain) throws ServletException, IOException { // 判断是否有 token String token = request.getHeader("token"); if (token == null) { diff --git a/service/src/main/java/cn/bunny/services/security/service/iml/CustomAuthorizationManagerServiceImpl.java b/service/src/main/java/cn/bunny/services/security/service/iml/CustomAuthorizationManagerServiceImpl.java index 741c94a..d690b9f 100644 --- a/service/src/main/java/cn/bunny/services/security/service/iml/CustomAuthorizationManagerServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/security/service/iml/CustomAuthorizationManagerServiceImpl.java @@ -4,6 +4,7 @@ import cn.bunny.common.service.context.BaseContext; import cn.bunny.dao.entity.system.Power; import cn.bunny.services.mapper.PowerMapper; import jakarta.servlet.http.HttpServletRequest; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -12,6 +13,7 @@ import org.springframework.security.authorization.AuthorizationManager; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.web.access.intercept.RequestAuthorizationContext; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import org.springframework.stereotype.Component; import java.util.List; @@ -31,30 +33,25 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag private PowerMapper powerMapper; + @SneakyThrows @Override public AuthorizationDecision check(Supplier authentication, RequestAuthorizationContext context) { // 用户的token和用户id、请求Url HttpServletRequest request = context.getRequest(); - // 请求地址 - String requestURI = request.getRequestURI(); - - // 请求方式 - String method = request.getMethod(); - // 角色代码列表 List roleCodeList = authentication.get().getAuthorities().stream().map(GrantedAuthority::getAuthority).toList(); // 校验权限 - return new AuthorizationDecision(hasAuth(requestURI)); + return new AuthorizationDecision(hasAuth(request)); } /** * 查询用户所属的角色信息 * - * @param requestURI 请求url地址 + * @param request 请求url地址 */ - private Boolean hasAuth(String requestURI) { + private Boolean hasAuth(HttpServletRequest request) { // 角色代码列表 List roleCodeList = BaseContext.getLoginVo().getRoles(); @@ -69,6 +66,7 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag List powerList = powerMapper.selectListByPowerCodes(powerCodes); // 判断是否与请求路径匹配 - return powerList.stream().anyMatch(power -> requestURI.matches(power.getRequestUrl())); + return powerList.stream().anyMatch(power -> AntPathRequestMatcher.antMatcher(power.getRequestUrl()).matches(request) || + request.getRequestURI().matches(power.getRequestUrl())); } } diff --git a/service/src/main/java/cn/bunny/services/service/EmailTemplateService.java b/service/src/main/java/cn/bunny/services/service/EmailTemplateService.java index c22adfc..1f200f0 100644 --- a/service/src/main/java/cn/bunny/services/service/EmailTemplateService.java +++ b/service/src/main/java/cn/bunny/services/service/EmailTemplateService.java @@ -1,16 +1,52 @@ package cn.bunny.services.service; +import cn.bunny.dao.dto.system.email.EmailTemplateAddDto; +import cn.bunny.dao.dto.system.email.EmailTemplateDto; +import cn.bunny.dao.dto.system.email.EmailTemplateUpdateDto; import cn.bunny.dao.entity.system.EmailTemplate; +import cn.bunny.dao.pojo.result.PageResult; +import cn.bunny.dao.vo.system.email.EmailTemplateVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import jakarta.validation.Valid; + +import java.util.List; /** *

- * 服务类 + * 邮件模板表 服务类 *

* * @author Bunny - * @since 2024-09-26 + * @since 2024-10-10 16:28:29 */ public interface EmailTemplateService extends IService { + /** + * * 获取邮件模板表列表 + * + * @return 邮件模板表返回列表 + */ + PageResult getEmailTemplateList(Page pageParams, EmailTemplateDto dto); + + /** + * * 添加邮件模板表 + * + * @param dto 添加表单 + */ + void addEmailTemplate(@Valid EmailTemplateAddDto dto); + + /** + * * 更新邮件模板表 + * + * @param dto 更新表单 + */ + void updateEmailTemplate(@Valid EmailTemplateUpdateDto dto); + + /** + * * 删除|批量删除邮件模板表类型 + * + * @param ids 删除id列表 + */ + void deleteEmailTemplate(List ids); } diff --git a/service/src/main/java/cn/bunny/services/service/EmailUsersService.java b/service/src/main/java/cn/bunny/services/service/EmailUsersService.java index c3577d3..c5c8e78 100644 --- a/service/src/main/java/cn/bunny/services/service/EmailUsersService.java +++ b/service/src/main/java/cn/bunny/services/service/EmailUsersService.java @@ -1,16 +1,52 @@ package cn.bunny.services.service; +import cn.bunny.dao.dto.system.email.EmailUsersAddDto; +import cn.bunny.dao.dto.system.email.EmailUsersDto; +import cn.bunny.dao.dto.system.email.EmailUsersUpdateDto; import cn.bunny.dao.entity.system.EmailUsers; +import cn.bunny.dao.pojo.result.PageResult; +import cn.bunny.dao.vo.system.email.EmailUsersVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import jakarta.validation.Valid; + +import java.util.List; /** *

- * 邮箱发送表 服务类 + * 邮箱用户发送配置 服务类 *

* * @author Bunny - * @since 2024-09-26 + * @since 2024-10-10 15:19:22 */ public interface EmailUsersService extends IService { + /** + * * 获取邮箱用户发送配置列表 + * + * @return 邮箱用户发送配置返回列表 + */ + PageResult getEmailUsersList(Page pageParams, EmailUsersDto dto); + + /** + * * 添加邮箱用户发送配置 + * + * @param dto 添加表单 + */ + void addEmailUsers(@Valid EmailUsersAddDto dto); + + /** + * * 更新邮箱用户发送配置 + * + * @param dto 更新表单 + */ + void updateEmailUsers(@Valid EmailUsersUpdateDto dto); + + /** + * * 删除|批量删除邮箱用户发送配置类型 + * + * @param ids 删除id列表 + */ + void deleteEmailUsers(List ids); } diff --git a/service/src/main/java/cn/bunny/services/service/impl/EmailTemplateServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/EmailTemplateServiceImpl.java index c8d7948..f09115b 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/EmailTemplateServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/EmailTemplateServiceImpl.java @@ -1,20 +1,92 @@ package cn.bunny.services.service.impl; +import cn.bunny.dao.dto.system.email.EmailTemplateAddDto; +import cn.bunny.dao.dto.system.email.EmailTemplateDto; +import cn.bunny.dao.dto.system.email.EmailTemplateUpdateDto; import cn.bunny.dao.entity.system.EmailTemplate; +import cn.bunny.dao.pojo.result.PageResult; +import cn.bunny.dao.vo.system.email.EmailTemplateVo; import cn.bunny.services.mapper.EmailTemplateMapper; import cn.bunny.services.service.EmailTemplateService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.validation.Valid; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.List; + /** *

- * 服务实现类 + * 邮件模板表 服务实现类 *

* * @author Bunny - * @since 2024-09-26 + * @since 2024-10-10 16:28:29 */ @Service public class EmailTemplateServiceImpl extends ServiceImpl implements EmailTemplateService { + /** + * * 邮件模板表 服务实现类 + * + * @param pageParams 邮件模板表分页查询page对象 + * @param dto 邮件模板表分页查询对象 + * @return 查询分页邮件模板表返回对象 + */ + @Override + public PageResult getEmailTemplateList(Page pageParams, EmailTemplateDto dto) { + // 分页查询菜单图标 + IPage page = baseMapper.selectListByPage(pageParams, dto); + + List voList = page.getRecords().stream().map(emailTemplate -> { + EmailTemplateVo emailTemplateVo = new EmailTemplateVo(); + BeanUtils.copyProperties(emailTemplate, emailTemplateVo); + return emailTemplateVo; + }).toList(); + + return PageResult.builder() + .list(voList) + .pageNo(page.getCurrent()) + .pageSize(page.getSize()) + .total(page.getTotal()) + .build(); + } + + /** + * 添加邮件模板表 + * + * @param dto 邮件模板表添加 + */ + @Override + public void addEmailTemplate(@Valid EmailTemplateAddDto dto) { + // 保存数据 + EmailTemplate emailTemplate = new EmailTemplate(); + BeanUtils.copyProperties(dto, emailTemplate); + save(emailTemplate); + } + + /** + * 更新邮件模板表 + * + * @param dto 邮件模板表更新 + */ + @Override + public void updateEmailTemplate(@Valid EmailTemplateUpdateDto dto) { + // 更新内容 + EmailTemplate emailTemplate = new EmailTemplate(); + BeanUtils.copyProperties(dto, emailTemplate); + updateById(emailTemplate); + } + + /** + * 删除|批量删除邮件模板表 + * + * @param ids 删除id列表 + */ + @Override + public void deleteEmailTemplate(List ids) { + baseMapper.deleteBatchIdsWithPhysics(ids); + } } diff --git a/service/src/main/java/cn/bunny/services/service/impl/EmailUsersServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/EmailUsersServiceImpl.java index f57654e..bf0c85b 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/EmailUsersServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/EmailUsersServiceImpl.java @@ -1,19 +1,92 @@ package cn.bunny.services.service.impl; - +import cn.bunny.dao.dto.system.email.EmailUsersAddDto; +import cn.bunny.dao.dto.system.email.EmailUsersDto; +import cn.bunny.dao.dto.system.email.EmailUsersUpdateDto; import cn.bunny.dao.entity.system.EmailUsers; +import cn.bunny.dao.pojo.result.PageResult; +import cn.bunny.dao.vo.system.email.EmailUsersVo; import cn.bunny.services.mapper.EmailUsersMapper; import cn.bunny.services.service.EmailUsersService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.validation.Valid; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.List; + /** - * 邮箱发送表 服务实现类 + *

+ * 邮箱用户发送配置 服务实现类 + *

* * @author Bunny - * @since 2024-09-26 + * @since 2024-10-10 15:19:22 */ @Service public class EmailUsersServiceImpl extends ServiceImpl implements EmailUsersService { -} \ No newline at end of file + /** + * * 邮箱用户发送配置 服务实现类 + * + * @param pageParams 邮箱用户发送配置分页查询page对象 + * @param dto 邮箱用户发送配置分页查询对象 + * @return 查询分页邮箱用户发送配置返回对象 + */ + @Override + public PageResult getEmailUsersList(Page pageParams, EmailUsersDto dto) { + // 分页查询菜单图标 + IPage page = baseMapper.selectListByPage(pageParams, dto); + + List voList = page.getRecords().stream().map(emailUsers -> { + EmailUsersVo emailUsersVo = new EmailUsersVo(); + BeanUtils.copyProperties(emailUsers, emailUsersVo); + return emailUsersVo; + }).toList(); + + return PageResult.builder() + .list(voList) + .pageNo(page.getCurrent()) + .pageSize(page.getSize()) + .total(page.getTotal()) + .build(); + } + + /** + * 添加邮箱用户发送配置 + * + * @param dto 邮箱用户发送配置添加 + */ + @Override + public void addEmailUsers(@Valid EmailUsersAddDto dto) { + // 保存数据 + EmailUsers emailUsers = new EmailUsers(); + BeanUtils.copyProperties(dto, emailUsers); + save(emailUsers); + } + + /** + * 更新邮箱用户发送配置 + * + * @param dto 邮箱用户发送配置更新 + */ + @Override + public void updateEmailUsers(@Valid EmailUsersUpdateDto dto) { + // 更新内容 + EmailUsers emailUsers = new EmailUsers(); + BeanUtils.copyProperties(dto, emailUsers); + updateById(emailUsers); + } + + /** + * 删除|批量删除邮箱用户发送配置 + * + * @param ids 删除id列表 + */ + @Override + public void deleteEmailUsers(List ids) { + baseMapper.deleteBatchIdsWithPhysics(ids); + } +} diff --git a/service/src/main/resources/application.yml b/service/src/main/resources/application.yml index 1fa718c..33a3b3e 100644 --- a/service/src/main/resources/application.yml +++ b/service/src/main/resources/application.yml @@ -1,6 +1,22 @@ server: port: 7070 +management: + endpoints: + web: + exposure: + include: "*" + base-path: /bunny + info: + env: + enabled: true + java: + enabled: true + os: + enabled: true + endpoint: + health: + show-details: always spring: profiles: active: @profiles.active@ diff --git a/service/src/main/resources/mapper/EmailTemplateMapper.xml b/service/src/main/resources/mapper/EmailTemplateMapper.xml index b8f8d50..ebdb6c5 100644 --- a/service/src/main/resources/mapper/EmailTemplateMapper.xml +++ b/service/src/main/resources/mapper/EmailTemplateMapper.xml @@ -2,24 +2,23 @@ - - - - - - - - - - - - - - - - - id, template_name, subject, body, type, is_default, create_time, update_time, create_user, update_user, is_deleted - + + + + + + delete + from $tableName + where id in + + #{id} + + diff --git a/service/src/main/resources/mapper/EmailUsersMapper.xml b/service/src/main/resources/mapper/EmailUsersMapper.xml index 4a960f3..f84430c 100644 --- a/service/src/main/resources/mapper/EmailUsersMapper.xml +++ b/service/src/main/resources/mapper/EmailUsersMapper.xml @@ -5,23 +5,58 @@ - - - - - - - - - - - - + + + + + + + + + + + + - id, email, email_template, password, host, port, smtp_agreement, is_default, create_time, update_time, create_user, update_user, is_deleted + id, create_time, update_time, create_user, update_user, is_deleted, email, email_template, password, host, port, smtp_agreement, is_default + + + + + + delete + from sys_email_users + where id in + + #{id} + + + diff --git a/service/src/main/resources/mapper/PowerMapper.xml b/service/src/main/resources/mapper/PowerMapper.xml index 7e53d5b..c992c51 100644 --- a/service/src/main/resources/mapper/PowerMapper.xml +++ b/service/src/main/resources/mapper/PowerMapper.xml @@ -37,7 +37,7 @@ request_url like CONCAT('%',#{dto.requestUrl},'%') - order by update_time + order by update_time desc diff --git a/service/src/main/resources/static/error/500.html b/service/src/main/resources/static/error/500.html new file mode 100644 index 0000000..6071bf4 --- /dev/null +++ b/service/src/main/resources/static/error/500.html @@ -0,0 +1,64 @@ + + + + + 500 - 服务器错误 + + + + +
+

:'(

+

服务器开小差啦!管理员正在修理中...

+

还请阁下静候站点恢复~

+
+ + \ No newline at end of file