From f14d5004a50e7113a722f4813b95244662f2cf55 Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Fri, 15 Apr 2022 00:31:54 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=82=AE=E4=BB=B6=E5=8A=9F=E8=83=BD=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=EF=BC=88html=E4=BB=A3=E7=A0=81=E5=90=8E=E7=AB=AF=E6=9C=89xss?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E5=99=A8=EF=BC=8C=E9=9C=80=E8=A6=81=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xjs/business/warning/RemoteMailFeign.java | 4 +- .../warning/factory/RemoteMailFactory.java | 2 +- .../java/com/ruoyi/auth/aop/LoginAspect.java | 7 +- ruoyi-ui/src/api/business/tools/sendmail.js | 10 ++ .../src/views/business/tools/mail/send.vue | 139 ++++++++++++++++++ ruoyi-ui/src/views/mall/member/level.vue | 1 + .../com/xjs/controller/MailController.java | 22 ++- .../main/java/com/xjs/domain/mall/MailVo.java | 59 ++++++++ .../main/java/com/xjs/server/MailServer.java | 2 +- 9 files changed, 237 insertions(+), 9 deletions(-) create mode 100644 ruoyi-ui/src/api/business/tools/sendmail.js create mode 100644 ruoyi-ui/src/views/business/tools/mail/send.vue create mode 100644 xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailVo.java diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/RemoteMailFeign.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/RemoteMailFeign.java index aa5d73af..50720664 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/RemoteMailFeign.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/RemoteMailFeign.java @@ -22,6 +22,6 @@ public interface RemoteMailFeign { @GetMapping("mail/send-weather-mail") void sendWeatherMailForRPC(); - @PostMapping("mail/sendMail") - R sendMail(@RequestBody MailBean mailBean); + @PostMapping("mail/sendMailForRPC") + R sendMailForRPC(@RequestBody MailBean mailBean); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/factory/RemoteMailFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/factory/RemoteMailFactory.java index ff929a54..ba6e6d66 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/factory/RemoteMailFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/factory/RemoteMailFactory.java @@ -23,7 +23,7 @@ public class RemoteMailFactory implements FallbackFactory { } @Override - public R sendMail(MailBean mailBean) { + public R sendMailForRPC(MailBean mailBean) { log.error("远程发送邮件调用异常:"+cause.getMessage()); return R.fail("远程发送邮件调用异常:"+cause.getMessage()); } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/aop/LoginAspect.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/aop/LoginAspect.java index b569eb85..10041081 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/aop/LoginAspect.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/aop/LoginAspect.java @@ -8,9 +8,10 @@ import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; + /** * 登录切面类 * @@ -22,7 +23,7 @@ import org.springframework.stereotype.Component; @Aspect public class LoginAspect { - @Autowired + @Resource private RemoteMailFeign remoteMailFeign; /** @@ -50,7 +51,7 @@ public class LoginAspect { "\"头像\"" + "

当前IP地址:" + loginUser.getSysUser().getLoginIp() + "

"); - remoteMailFeign.sendMail(mailBean); + remoteMailFeign.sendMailForRPC(mailBean); } } diff --git a/ruoyi-ui/src/api/business/tools/sendmail.js b/ruoyi-ui/src/api/business/tools/sendmail.js new file mode 100644 index 00000000..a64c409a --- /dev/null +++ b/ruoyi-ui/src/api/business/tools/sendmail.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +//发送邮件 +export function sendMail(data) { + return request({ + url: '/warning/mail/send-mail', + method: 'post', + data: data + }) +} diff --git a/ruoyi-ui/src/views/business/tools/mail/send.vue b/ruoyi-ui/src/views/business/tools/mail/send.vue new file mode 100644 index 00000000..33505630 --- /dev/null +++ b/ruoyi-ui/src/views/business/tools/mail/send.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/ruoyi-ui/src/views/mall/member/level.vue b/ruoyi-ui/src/views/mall/member/level.vue index 3f280344..09665bb4 100644 --- a/ruoyi-ui/src/views/mall/member/level.vue +++ b/ruoyi-ui/src/views/mall/member/level.vue @@ -107,6 +107,7 @@ import AddOrUpdate from "./memberlevel-add-or-update"; import {delMemberLevel, getMemberLevelList} from "@/api/mall/member/level"; export default { + name:"Member-Level", data() { return { dataForm: { diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/MailController.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/MailController.java index 96cf8d2f..feacaf93 100644 --- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/MailController.java +++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/MailController.java @@ -1,15 +1,21 @@ package com.xjs.controller; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; import com.xjs.domain.mall.MailBean; +import com.xjs.domain.mall.MailVo; import com.xjs.service.MailService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * 邮件服务控制器 + * * @author xiejs * @since 2022-04-13 */ @@ -22,6 +28,17 @@ public class MailController { private MailService mailService; + @PostMapping("send-mail") + @ApiOperation("发送邮件") + @Log(title = "发送邮件", businessType = BusinessType.INSERT) + public AjaxResult sendMail(@RequestBody MailVo mailVo) { + MailBean mailBean = new MailBean(); + BeanUtils.copyProperties(mailVo, mailBean); + mailBean.setMailType(MailBean.MailType.HTML); + mailService.sendMail(mailBean); + return AjaxResult.success(); + } + //-----------------------------------远程调用------------------------------------ @GetMapping("/send-weather-mail") @ApiOperation("发送天气邮件ForRPC") @@ -30,11 +47,12 @@ public class MailController { } - @PostMapping("/sendMail") + @PostMapping("/sendMailForRPC") @ApiOperation("发送邮件ForRPC") - public R sendMail(@RequestBody MailBean mailBean) { + public R sendMailForRPC(@RequestBody MailBean mailBean) { mailService.sendMail(mailBean); return R.ok(); } + } diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailVo.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailVo.java new file mode 100644 index 00000000..a6ca329a --- /dev/null +++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/mall/MailVo.java @@ -0,0 +1,59 @@ +package com.xjs.domain.mall; + +import java.io.Serializable; + +/** + * 邮件数据传输对象 + * @author xiejs + * @since 2022-04-14 + */ + +public class MailVo implements Serializable { + private static final long serialVersionUID = -1L; + + /** + * 邮件接收人 + */ + private String recipient; + /** + * 邮件主题 + */ + private String subject; + /** + * 邮件内容 + */ + private String content; + + @Override + public String toString() { + return "MailVo{" + + "recipient='" + recipient + '\'' + + ", subject='" + subject + '\'' + + ", content='" + content + '\'' + + '}'; + } + + public String getRecipient() { + return recipient; + } + + public void setRecipient(String recipient) { + this.recipient = recipient; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } +} diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java index 212b307a..f8170ca9 100644 --- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java +++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/server/MailServer.java @@ -54,7 +54,7 @@ public class MailServer { @MailLog public Boolean sendMail(MailBean mailBean) { - if (redisService.hasKey(MAIL_SENDER)) { + if (redisService.hasKey(MAIL_STATUS)) { throw new RuntimeException("邮件发送频繁!请稍后重试!"); }