From 079b7c24552b4a2b77ca61b4d91de4ce51bdffbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 9 May 2022 10:07:21 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=A2=9E=E5=8A=A0=20=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=20=E7=9F=AD=E4=BF=A1=E4=B8=8E=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=20=E8=BF=9C=E7=A8=8B=E6=8E=A5=E5=8F=A3=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/resource/api/RemoteMailService.java | 34 +++++++++++ .../ruoyi/resource/api/RemoteSmsService.java | 25 ++++++++ .../com/ruoyi/resource/api/domain/SysSms.java | 32 ++++++++++ .../resource/dubbo/RemoteMailServiceImpl.java | 51 ++++++++++++++++ .../resource/dubbo/RemoteSmsServiceImpl.java | 60 +++++++++++++++++++ 5 files changed, 202 insertions(+) create mode 100644 ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/RemoteMailService.java create mode 100644 ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/RemoteSmsService.java create mode 100644 ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/domain/SysSms.java create mode 100644 ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/dubbo/RemoteMailServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/dubbo/RemoteSmsServiceImpl.java diff --git a/ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/RemoteMailService.java b/ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/RemoteMailService.java new file mode 100644 index 00000000..4f056858 --- /dev/null +++ b/ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/RemoteMailService.java @@ -0,0 +1,34 @@ +package com.ruoyi.resource.api; + +import com.ruoyi.common.core.exception.ServiceException; + +import java.io.File; +import java.util.List; + +/** + * 邮件服务 + * + * @author Lion Li + */ +public interface RemoteMailService { + + /** + * 发送邮件 + * + * @param to 接收人 + * @param subject 标题 + * @param text 内容 + */ + void send(String to, String subject, String text) throws ServiceException; + + /** + * 发送邮件带附件 + * + * @param to 接收人 + * @param subject 标题 + * @param text 内容 + * @param fileList 附件 + */ + void sendWithAttachment(String to, String subject, String text, List fileList) throws ServiceException; + +} diff --git a/ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/RemoteSmsService.java b/ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/RemoteSmsService.java new file mode 100644 index 00000000..a01742e3 --- /dev/null +++ b/ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/RemoteSmsService.java @@ -0,0 +1,25 @@ +package com.ruoyi.resource.api; + +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.resource.api.domain.SysFile; +import com.ruoyi.resource.api.domain.SysSms; + +import java.util.Map; + +/** + * 短信服务 + * + * @author Lion Li + */ +public interface RemoteSmsService { + + /** + * 发送短信 + * + * @param phones 电话号(多个逗号分割) + * @param templateId 模板id + * @param param 模板对应参数 + */ + SysSms send(String phones, String templateId, Map param) throws ServiceException; + +} diff --git a/ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/domain/SysSms.java b/ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/domain/SysSms.java new file mode 100644 index 00000000..4cfba79a --- /dev/null +++ b/ruoyi-api/ruoyi-api-resource/src/main/java/com/ruoyi/resource/api/domain/SysSms.java @@ -0,0 +1,32 @@ +package com.ruoyi.resource.api.domain; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 文件信息 + * + * @author ruoyi + */ +@Data +public class SysSms implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 是否成功 + */ + private Boolean isSuccess; + + /** + * 响应消息 + */ + private String message; + + /** + * 实际响应体 + */ + private Object response; + +} diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/dubbo/RemoteMailServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/dubbo/RemoteMailServiceImpl.java new file mode 100644 index 00000000..c087cb4c --- /dev/null +++ b/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/dubbo/RemoteMailServiceImpl.java @@ -0,0 +1,51 @@ +package com.ruoyi.resource.dubbo; + +import cn.hutool.core.util.ArrayUtil; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.mail.config.properties.MailProperties; +import com.ruoyi.common.mail.utils.MailUtils; +import com.ruoyi.common.sms.config.properties.SmsProperties; +import com.ruoyi.resource.api.RemoteMailService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.util.List; + +/** + * 邮件服务 + * + * @author Lion Li + */ +@Slf4j +@RequiredArgsConstructor +@Service +@DubboService +public class RemoteMailServiceImpl implements RemoteMailService { + + /** + * 发送邮件 + * + * @param to 接收人 + * @param subject 标题 + * @param text 内容 + */ + public void send(String to, String subject, String text) throws ServiceException { + MailUtils.sendText(to, subject, text); + } + + /** + * 发送邮件带附件 + * + * @param to 接收人 + * @param subject 标题 + * @param text 内容 + * @param fileList 附件 + */ + public void sendWithAttachment(String to, String subject, String text, List fileList) throws ServiceException { + MailUtils.sendText(to, subject, text, ArrayUtil.toArray(fileList, File.class)); + } + +} diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/dubbo/RemoteSmsServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/dubbo/RemoteSmsServiceImpl.java new file mode 100644 index 00000000..6839b753 --- /dev/null +++ b/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/dubbo/RemoteSmsServiceImpl.java @@ -0,0 +1,60 @@ +package com.ruoyi.resource.dubbo; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.SpringUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.oss.entity.UploadResult; +import com.ruoyi.common.oss.factory.OssFactory; +import com.ruoyi.common.oss.service.IOssStrategy; +import com.ruoyi.common.sms.config.properties.SmsProperties; +import com.ruoyi.common.sms.core.SmsTemplate; +import com.ruoyi.common.sms.entity.SmsResult; +import com.ruoyi.resource.api.RemoteFileService; +import com.ruoyi.resource.api.RemoteSmsService; +import com.ruoyi.resource.api.domain.SysFile; +import com.ruoyi.resource.api.domain.SysSms; +import com.ruoyi.resource.domain.SysOss; +import com.ruoyi.resource.mapper.SysOssMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * 短信服务 + * + * @author Lion Li + */ +@Slf4j +@RequiredArgsConstructor +@Service +@DubboService +public class RemoteSmsServiceImpl implements RemoteSmsService { + + private final SmsProperties smsProperties; + + /** + * 发送短信 + * + * @param phones 电话号(多个逗号分割) + * @param templateId 模板id + * @param param 模板对应参数 + */ + public SysSms send(String phones, String templateId, Map param) throws ServiceException { + if (smsProperties.getEnabled()) { + R.fail("当前系统没有开启短信功能!"); + } + SmsTemplate smsTemplate = SpringUtils.getBean(SmsTemplate.class); + SmsResult smsResult = smsTemplate.send(phones, templateId, param); + return BeanUtil.toBean(smsResult, SysSms.class); + } + +}