From 872977d4c27cba8fbf0b98b21cf8e53ac6695c7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=B2=B8=E8=90=BD?= <15826189779@163.com>
Date: Fri, 11 Oct 2024 14:11:18 +0800
Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E6=A8=A1=E5=9D=97=E5=86=99?=
=?UTF-8?q?=E6=88=90starter=20=E5=8F=91=E9=80=81=E7=9F=AD=E4=BF=A1?=
=?UTF-8?q?=E9=9C=80=E8=A6=81=E7=8E=AF=E5=A2=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-common/pom.xml | 1 +
ruoyi-common/ruoyi-common-sms/pom.xml | 59 +++++++
.../sms/XunDaYunXinAutoConfiguration.java | 24 +++
.../common/sms/component/SmsComponent.java | 145 ++++++++++++++++++
.../ruoyi/common/sms/entity/package-info.java | 1 +
.../sms/entity/request/package-info.java | 1 +
.../common/sms/entity/response/SmsEntity.java | 32 ++++
.../sms/entity/response/SmsResponse.java | 12 ++
.../sms/properties/XunDaYunXinProperties.java | 40 +++++
...ot.autoconfigure.AutoConfiguration.imports | 2 +
ruoyi-modules/ruoyi-system/pom.xml | 11 ++
.../system/controller/CommonController.java | 9 +-
.../system/controller/CustomerController.java | 6 +
.../system/controller/MerchantController.java | 6 +
.../ruoyi/system/process/ProcessHandler.java | 12 ++
.../process/enums/ProcessHandlerEnum.java | 36 +++++
.../system/process/handler/H5Handler.java | 14 ++
.../system/process/handler/HalfHandler.java | 13 ++
.../ruoyi/system/process/package-info.java | 1 +
.../ruoyi/system/service/ICommonService.java | 2 +-
.../system/service/ICustomerService.java | 2 +
.../system/service/IMerchantService.java | 2 +
.../service/impl/CommonServiceImpl.java | 83 ++++++++--
.../service/impl/CustomerServiceImpl.java | 24 +++
.../service/impl/MerchantServiceImpl.java | 22 +++
.../system/RuoYiSystemApplicationTest.java | 48 ++++++
26 files changed, 590 insertions(+), 18 deletions(-)
create mode 100644 ruoyi-common/ruoyi-common-sms/pom.xml
create mode 100644 ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/XunDaYunXinAutoConfiguration.java
create mode 100644 ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/component/SmsComponent.java
create mode 100644 ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/entity/package-info.java
create mode 100644 ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/entity/request/package-info.java
create mode 100644 ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/entity/response/SmsEntity.java
create mode 100644 ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/entity/response/SmsResponse.java
create mode 100644 ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/properties/XunDaYunXinProperties.java
create mode 100644 ruoyi-common/ruoyi-common-sms/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/process/ProcessHandler.java
create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/process/enums/ProcessHandlerEnum.java
create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/process/handler/H5Handler.java
create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/process/handler/HalfHandler.java
create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/process/package-info.java
create mode 100644 ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/RuoYiSystemApplicationTest.java
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 3129e2d6..513918dc 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -18,6 +18,7 @@
ruoyi-common-sensitive
ruoyi-common-datascope
ruoyi-common-datasource
+ ruoyi-common-sms
ruoyi-common
diff --git a/ruoyi-common/ruoyi-common-sms/pom.xml b/ruoyi-common/ruoyi-common-sms/pom.xml
new file mode 100644
index 00000000..eb3915b2
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-sms/pom.xml
@@ -0,0 +1,59 @@
+
+
+
+ com.ruoyi
+ ruoyi-common
+ 3.6.4
+
+ 4.0.0
+
+ ruoyi-common-sms
+
+
+ ruoyi-common-sms 短信模块
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ 5.7.0
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ 5.7.0
+ test
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/XunDaYunXinAutoConfiguration.java b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/XunDaYunXinAutoConfiguration.java
new file mode 100644
index 00000000..14ada60c
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/XunDaYunXinAutoConfiguration.java
@@ -0,0 +1,24 @@
+package com.ruoyi.common.sms;
+
+import com.ruoyi.common.sms.component.SmsComponent;
+import com.ruoyi.common.sms.properties.XunDaYunXinProperties;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+@Configuration
+@EnableConfigurationProperties(XunDaYunXinProperties.class)
+public class XunDaYunXinAutoConfiguration {
+
+ @Bean
+ public SmsComponent smsComponent() {
+ return new SmsComponent();
+ }
+
+ @Bean
+ public RestTemplate restTemplate() {
+ return new RestTemplate();
+ }
+}
diff --git a/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/component/SmsComponent.java b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/component/SmsComponent.java
new file mode 100644
index 00000000..43e83526
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/component/SmsComponent.java
@@ -0,0 +1,145 @@
+package com.ruoyi.common.sms.component;
+
+import com.ruoyi.common.sms.entity.response.SmsEntity;
+import com.ruoyi.common.sms.entity.response.SmsResponse;
+import com.ruoyi.common.sms.properties.XunDaYunXinProperties;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.ParameterizedTypeReference;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.*;
+
+@Slf4j
+public class SmsComponent {
+ @Autowired
+ private XunDaYunXinProperties properties;
+
+ @Autowired
+ private RestTemplate restTemplate;
+
+ /**
+ * 点对点
+ *
+ * @param mobileContentKvp 号码内容键值对 示例 {"15100000000":"【测试】test1","15100000001":"【测试】test2"}
+ * @return SmsResponse
+ */
+ public SmsResponse sendP2PMsg(Map mobileContentKvp) {
+ Map extraParams = new HashMap<>();
+
+ for (Map.Entry entry : mobileContentKvp.entrySet()) {
+ String oldValue = entry.getValue();
+ String newValue = replaceCode(properties.getTemplate(), oldValue);
+ entry.setValue(newValue);
+ }
+ extraParams.put("mobileContentKvp", mobileContentKvp);
+ return sendSmsRequest("p2p", extraParams, new ParameterizedTypeReference() {
+ });
+ }
+
+
+ /**
+ * 发送群发信息
+ *
+ * @param mobile 电话号码按照,分割 示例 "15100000000,15100000001"
+ * @param content 内容 一般为验证码
+ * @return SmsResponse
+ */
+ public SmsResponse sendGroupMsg(String mobile, String content) {
+ Map extraParams = new HashMap<>();
+ extraParams.put("mobile", removeDuplicates(mobile));
+ extraParams.put("content", replaceCode(properties.getTemplate(), content));
+ return sendSmsRequest("send", extraParams, new ParameterizedTypeReference>() {
+ });
+ }
+
+
+ public SmsResponse> checkBalance() {
+ String url = properties.getBaseUrl() + "/smsv2";
+ Map params = new HashMap<>();
+ params.put("action", "balance");
+ params.put("account", properties.getAccount());
+ params.put("password", properties.getPassword());
+ HttpEntity