From 15ea9064ecdfbb9c90a1e5123f2f60e0e94c5b9f Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期四, 17 四月 2025 15:50:37 +0800
Subject: [PATCH] 1.对接火山云短信

---
 src/main/java/com/mzl/flower/service/impl/sms/TosSmsServiceImpl.java  |   67 +++++++++++
 src/main/java/com/mzl/flower/web/v2/sms/TosSmsController.java         |   55 +++++++++
 src/main/java/com/mzl/flower/config/sms/TosSmsProperties.java         |   18 +++
 src/main/java/com/mzl/flower/config/oss/TosOssProperties.java         |    4 
 src/main/java/com/mzl/flower/service/sms/TosSmsService.java           |   31 +++++
 pom.xml                                                               |   26 ++-
 src/main/java/com/mzl/flower/config/oss/TosClientConfig.java          |    5 
 src/main/java/com/mzl/flower/service/oss/TosOssService.java           |   17 +-
 src/main/java/com/mzl/flower/config/ResourceServerConfig.java         |    3 
 src/main/java/com/mzl/flower/utils/SmsUtil.java                       |   34 +++++
 src/main/java/com/mzl/flower/config/sms/TosSmsServiceConfig.java      |   23 +++
 src/main/java/com/mzl/flower/web/supplier/SupplierController.java     |   11 -
 src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java |   17 +-
 src/main/java/com/mzl/flower/service/register/SmsService.java         |   26 ++-
 src/main/resources/application.yml                                    |   10 +
 15 files changed, 293 insertions(+), 54 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2aa773d..e458d3d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -241,16 +241,16 @@
             <artifactId>wx-java-mp-spring-boot-starter</artifactId>
             <version>4.1.0</version>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.aliyuncs</groupId>-->
-<!--            <artifactId>core</artifactId>-->
-<!--            <version>1</version>-->
-<!--        </dependency>-->
-<!--        <dependency>-->
-<!--            <groupId>com.aliyuncs</groupId>-->
-<!--            <artifactId>dysmsapi</artifactId>-->
-<!--            <version>1</version>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>com.aliyuncs</groupId>
+            <artifactId>core</artifactId>
+            <version>1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyuncs</groupId>
+            <artifactId>dysmsapi</artifactId>
+            <version>1</version>
+        </dependency>
 
         <dependency>
             <groupId>com.github.wechatpay-apiv3</groupId>
@@ -310,6 +310,12 @@
             <version>2.8.8</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.volcengine</groupId>
+            <artifactId>volc-sdk-java</artifactId>
+            <version>1.0.105</version>
+        </dependency>
+
 
 
 
diff --git a/src/main/java/com/mzl/flower/config/ResourceServerConfig.java b/src/main/java/com/mzl/flower/config/ResourceServerConfig.java
index 9dc9ce7..6869517 100644
--- a/src/main/java/com/mzl/flower/config/ResourceServerConfig.java
+++ b/src/main/java/com/mzl/flower/config/ResourceServerConfig.java
@@ -70,6 +70,9 @@
 //                微信支付暂时测试
                 .antMatchers("/v2/wechat/**").permitAll()
 
+//                 短信
+                .antMatchers("/v2/tos/sms/**").permitAll()
+
                 .antMatchers("/api/**").authenticated();//配置访问控制,必须认证过后才可以访问
 
     }
diff --git a/src/main/java/com/mzl/flower/config/TosClientConfig.java b/src/main/java/com/mzl/flower/config/oss/TosClientConfig.java
similarity index 78%
rename from src/main/java/com/mzl/flower/config/TosClientConfig.java
rename to src/main/java/com/mzl/flower/config/oss/TosClientConfig.java
index 557b5d5..ba00bb2 100644
--- a/src/main/java/com/mzl/flower/config/TosClientConfig.java
+++ b/src/main/java/com/mzl/flower/config/oss/TosClientConfig.java
@@ -1,8 +1,7 @@
-package com.mzl.flower.config;
+package com.mzl.flower.config.oss;
 
 import com.volcengine.tos.TOSV2;
 import com.volcengine.tos.TOSV2ClientBuilder;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -12,7 +11,7 @@
 public class TosClientConfig {
 
     @Resource
-    private TosProperties properties;
+    private TosOssProperties properties;
 
     @Bean
     public TOSV2 tosClient() {
diff --git a/src/main/java/com/mzl/flower/config/TosProperties.java b/src/main/java/com/mzl/flower/config/oss/TosOssProperties.java
similarity index 83%
rename from src/main/java/com/mzl/flower/config/TosProperties.java
rename to src/main/java/com/mzl/flower/config/oss/TosOssProperties.java
index 6d966cd..fed7f5c 100644
--- a/src/main/java/com/mzl/flower/config/TosProperties.java
+++ b/src/main/java/com/mzl/flower/config/oss/TosOssProperties.java
@@ -1,4 +1,4 @@
-package com.mzl.flower.config;
+package com.mzl.flower.config.oss;
 
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -7,7 +7,7 @@
 @Data
 @Component
 @ConfigurationProperties(prefix = "tos-oss")
-public class TosProperties {
+public class TosOssProperties {
 
     private String endpoint;
     private String region;
diff --git a/src/main/java/com/mzl/flower/config/sms/TosSmsProperties.java b/src/main/java/com/mzl/flower/config/sms/TosSmsProperties.java
new file mode 100644
index 0000000..ad7b849
--- /dev/null
+++ b/src/main/java/com/mzl/flower/config/sms/TosSmsProperties.java
@@ -0,0 +1,18 @@
+package com.mzl.flower.config.sms;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "tos-sms")
+public class TosSmsProperties {
+
+    private String keyid;
+    private String keysecret;
+    private String smsAccount;
+    private String templateId;
+    private String sign;
+
+}
diff --git a/src/main/java/com/mzl/flower/config/sms/TosSmsServiceConfig.java b/src/main/java/com/mzl/flower/config/sms/TosSmsServiceConfig.java
new file mode 100644
index 0000000..d750e90
--- /dev/null
+++ b/src/main/java/com/mzl/flower/config/sms/TosSmsServiceConfig.java
@@ -0,0 +1,23 @@
+package com.mzl.flower.config.sms;
+
+import com.mzl.flower.service.sms.TosSmsService;
+import com.volcengine.service.sms.SmsService;
+import com.volcengine.service.sms.SmsServiceInfoConfig;
+import com.volcengine.service.sms.impl.SmsServiceImpl;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.Resource;
+
+@Configuration
+public class TosSmsServiceConfig {
+
+    @Resource
+    private TosSmsProperties tosSmsProperties;
+
+    @Bean(name = "volcSmsService")
+    public SmsService smsService() {
+        return SmsServiceImpl.getInstance(new SmsServiceInfoConfig(tosSmsProperties.getKeyid(), tosSmsProperties.getKeysecret()));
+    }
+
+}
diff --git a/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java
index 48ff656..1c05dcd 100644
--- a/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java
@@ -5,6 +5,7 @@
 import com.aliyun.oss.OSSClientBuilder;
 import com.aliyun.oss.OSSException;
 import com.aliyun.oss.model.GetObjectRequest;
+import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -420,14 +421,14 @@
         String templateCode = smsTemplateDO.getCode();
         for (SmsTaskDetailDO detail : smsTaskDetailDOList) {
             try {
-//                SendSmsResponse sendSmsResponse = SmsUtil.sendSms(detail.getPhone(), templateCode, null);
-//                if("OK".equals(sendSmsResponse.getCode())){
-//                    detail.setResult(Constants.SMS_SEND_RESULT.success.name());
-//                }else{
-//                    detail.setFailReason(sendSmsResponse.getMessage());
-//                    detail.setResult(Constants.SMS_SEND_RESULT.failure.name());
-//                }
-//                detail.setResponseResult(sendSmsResponse.toString());
+                SendSmsResponse sendSmsResponse = SmsUtil.sendSms(detail.getPhone(), templateCode, null);
+                if("OK".equals(sendSmsResponse.getCode())){
+                    detail.setResult(Constants.SMS_SEND_RESULT.success.name());
+                }else{
+                    detail.setFailReason(sendSmsResponse.getMessage());
+                    detail.setResult(Constants.SMS_SEND_RESULT.failure.name());
+                }
+                detail.setResponseResult(sendSmsResponse.toString());
             } catch (Exception e) {
                 detail.setResult(Constants.SMS_SEND_RESULT.failure.name());
                 System.err.println("Failed to send SMS to " + detail.getPhone() + ": " + e.getMessage());
diff --git a/src/main/java/com/mzl/flower/service/impl/sms/TosSmsServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/sms/TosSmsServiceImpl.java
new file mode 100644
index 0000000..3704216
--- /dev/null
+++ b/src/main/java/com/mzl/flower/service/impl/sms/TosSmsServiceImpl.java
@@ -0,0 +1,67 @@
+package com.mzl.flower.service.impl.sms;
+
+import com.mzl.flower.config.sms.TosSmsProperties;
+import com.mzl.flower.service.sms.TosSmsService;
+import com.volcengine.model.request.SmsSendRequest;
+import com.volcengine.model.response.SmsSendResponse;
+import com.volcengine.service.sms.SmsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+public class TosSmsServiceImpl implements TosSmsService {
+
+    @Autowired
+    private TosSmsProperties tosSmsProperties;
+
+    @Autowired
+    @Qualifier("volcSmsService")
+    private SmsService smsService;
+
+    @Override
+    public SmsSendResponse sendSms(SmsSendRequest request) {
+        SmsSendResponse response = null;
+        try {
+            response = smsService.sendV2(request);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return response;
+    }
+
+    @Override
+    public SmsSendResponse sendSms(String phonenum, Map<String, String> params) {
+        SmsSendRequest req = new SmsSendRequest();
+        req.setPhoneNumbers(phonenum);
+        req.setSmsAccount(tosSmsProperties.getSmsAccount());
+        req.setTemplateId(tosSmsProperties.getTemplateId());
+        req.setSign(tosSmsProperties.getSign());
+        req.setTemplateParamByMap(params);
+        try {
+            SmsSendResponse smsSendResponse = smsService.sendV2(req);
+            return smsSendResponse;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public SmsSendResponse sendSms(String phonenum, Map<String, String> params, String smsAccount, String templateId, String sign) {
+        SmsSendRequest req = new SmsSendRequest();
+        req.setPhoneNumbers(phonenum);
+        req.setSmsAccount(smsAccount);
+        req.setTemplateId(templateId);
+        req.setSign(sign);
+        req.setTemplateParamByMap(params);
+        try {
+            SmsSendResponse smsSendResponse = smsService.sendV2(req);
+            return smsSendResponse;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
diff --git a/src/main/java/com/mzl/flower/service/TosService.java b/src/main/java/com/mzl/flower/service/oss/TosOssService.java
similarity index 80%
rename from src/main/java/com/mzl/flower/service/TosService.java
rename to src/main/java/com/mzl/flower/service/oss/TosOssService.java
index ad096ce..3e90ce7 100644
--- a/src/main/java/com/mzl/flower/service/TosService.java
+++ b/src/main/java/com/mzl/flower/service/oss/TosOssService.java
@@ -1,7 +1,7 @@
-package com.mzl.flower.service;
+package com.mzl.flower.service.oss;
 
 
-import com.mzl.flower.config.TosProperties;
+import com.mzl.flower.config.oss.TosOssProperties;
 import com.mzl.flower.config.exception.ValidationException;
 import com.mzl.flower.utils.UUIDGenerator;
 import com.volcengine.tos.TOSV2;
@@ -13,26 +13,25 @@
 import com.volcengine.tos.model.object.PutObjectInput;
 import com.volcengine.tos.model.object.PutObjectOutput;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
 import java.io.InputStream;
 
 @Service
-public class TosService {
+public class TosOssService {
 
     @Autowired
     private TOSV2 tosClient;
 
     @Autowired
-    private TosProperties tosProperties;
+    private TosOssProperties tosOssProperties;
 
     private String upladPre="https://";
 
 
 
-    public TosService(TOSV2 tosClient) {
+    public TosOssService(TOSV2 tosClient) {
         this.tosClient = tosClient;
     }
 
@@ -40,7 +39,7 @@
     public String uploadFile(String objectKey, String filePath) throws IOException {
         try {
             PutObjectFromFileInput input = new PutObjectFromFileInput()
-                    .setBucket(tosProperties.getBucketname()).setKey(objectKey).setFilePath(filePath);
+                    .setBucket(tosOssProperties.getBucketname()).setKey(objectKey).setFilePath(filePath);
 
             PutObjectFromFileOutput output = tosClient.putObjectFromFile(input);
             return "Upload success! ETag: " + output.getEtag();
@@ -58,12 +57,12 @@
             filename = uuid + filename;
             String dir = uuid.substring(0, 2);
             filename = dir + "/" + filename;
-            PutObjectInput putObjectInput = new PutObjectInput().setBucket(tosProperties.getBucketname()).setKey(filename).setContent(inputStream);
+            PutObjectInput putObjectInput = new PutObjectInput().setBucket(tosOssProperties.getBucketname()).setKey(filename).setContent(inputStream);
             PutObjectOutput output = tosClient.putObject(putObjectInput);
 //            System.out.println("putObject succeed, object's etag is " + output.getEtag());
 //            System.out.println("putObject succeed, object's crc64 is " + output.getHashCrc64ecma());
             // https://edu-mys.oss-cn-chengdu.aliyuncs.com/yy.JPG
-            String url = upladPre+tosProperties.getBucketname() + "." + tosProperties.getEndpoint() + "/" + filename;
+            String url = upladPre+ tosOssProperties.getBucketname() + "." + tosOssProperties.getEndpoint() + "/" + filename;
             return url;
         } catch (TosClientException | TosServerException e) {
             throw new ValidationException("上传到云服务器发生异常");
diff --git a/src/main/java/com/mzl/flower/service/register/SmsService.java b/src/main/java/com/mzl/flower/service/register/SmsService.java
index 61e3e75..3ac2b11 100644
--- a/src/main/java/com/mzl/flower/service/register/SmsService.java
+++ b/src/main/java/com/mzl/flower/service/register/SmsService.java
@@ -5,8 +5,10 @@
 import com.mzl.flower.config.exception.ValidationException;
 import com.mzl.flower.constant.Constants;
 import com.mzl.flower.dto.request.SmsSendDTO;
+import com.mzl.flower.service.sms.TosSmsService;
 import com.mzl.flower.utils.SmsUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -25,6 +27,10 @@
     private final SmsProperties smsProperties;
 
     private final StringCacheClient stringCacheClient;
+
+    @Autowired
+    private TosSmsService tosSmsService;
+
 
     public SmsService(SmsProperties smsProperties, StringCacheClient stringCacheClient) {
         this.smsProperties = smsProperties;
@@ -50,8 +56,8 @@
         if(existsCode(dto.getTel())){
             throw new ValidationException("短信验证码已发送,请勿频繁发送");
         }
-//        String smsCode = generateSmsCode();
-        String smsCode ="888888";
+        String smsCode = generateSmsCode();
+//        String smsCode ="888888";
         String key;
         if(Constants.USER_TYPE.admin.name().equals(dto.getUserType())){
             key = SMS_CODE_KEY + SEPARATOR + Constants.USER_TYPE.admin.name() + SEPARATOR + dto.getTel();
@@ -67,15 +73,15 @@
 
         Map<String, String> paramMap = new HashMap<>();
         paramMap.put("code", smsCode);
-//        try {
-//            //暂时不实际发送验证码
+        try {
+            //暂时不实际发送验证码
 //            SmsUtil.sendSms(dto.getTel(),smsProperties.getVerificationCode(),paramMap);
-        stringCacheClient.set(SMS_CODE_KEY + SEPARATOR + SEPARATOR + dto.getTel(),smsCode,60);
-        stringCacheClient.set(key,smsCode,600);
-//        } catch (ClientException e) {
-//            throw new RuntimeException("短信发送失败");
-//        }
-        //todo 发送短信
+            tosSmsService.sendSms(dto.getTel(),paramMap);
+            stringCacheClient.set(SMS_CODE_KEY + SEPARATOR + SEPARATOR + dto.getTel(),smsCode,60);
+            stringCacheClient.set(key,smsCode,600);
+        } catch (Exception e) {
+            throw new RuntimeException("短信发送失败");
+        }
     }
 
     private boolean existsCode(String tel) {
diff --git a/src/main/java/com/mzl/flower/service/sms/TosSmsService.java b/src/main/java/com/mzl/flower/service/sms/TosSmsService.java
new file mode 100644
index 0000000..8a6ed4e
--- /dev/null
+++ b/src/main/java/com/mzl/flower/service/sms/TosSmsService.java
@@ -0,0 +1,31 @@
+package com.mzl.flower.service.sms;
+
+import com.volcengine.model.request.SmsSendRequest;
+import com.volcengine.model.response.SmsSendResponse;
+
+import java.util.Map;
+
+public interface TosSmsService {
+
+    /**
+     * 根据封装的request来发送请求
+     * @param request
+     * @return
+     */
+    public SmsSendResponse sendSms(SmsSendRequest request);
+
+    /**
+     * 使用默认配置的账户,模板id,签名
+     * @param phonenum
+     * @param params
+     * @return
+     */
+
+    public SmsSendResponse sendSms(String phonenum, Map<String,String> params);
+
+
+
+    public SmsSendResponse sendSms(String phonenum, Map<String,String> params,String smsAccount,String templateId,String sign);
+
+
+}
diff --git a/src/main/java/com/mzl/flower/utils/SmsUtil.java b/src/main/java/com/mzl/flower/utils/SmsUtil.java
index 4c6eebc..84923af 100644
--- a/src/main/java/com/mzl/flower/utils/SmsUtil.java
+++ b/src/main/java/com/mzl/flower/utils/SmsUtil.java
@@ -3,6 +3,8 @@
 import com.alibaba.fastjson.JSON;
 import com.aliyuncs.DefaultAcsClient;
 import com.aliyuncs.IAcsClient;
+import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
+import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
 import com.aliyuncs.exceptions.ClientException;
 import com.aliyuncs.profile.DefaultProfile;
 import com.aliyuncs.profile.IClientProfile;
@@ -18,9 +20,35 @@
 
     static final String connectTime = "30000";
     static final String readTime = "30000";
-    static final String keyId = "LTAI5tFGHa9bwhuEDKH6YPnc";
+    static final String keyId = "LTAI5tRr7uLjPPxzGMJPH6fz";
+    static final String keySecret = "GiOamDfkVP4TWiNnuSptyGQLuMRBMG";
 
-    static final String keySecret = "BrY0BM4pvDXhVKOMLsXzgzlhVe1keQ";
-    static final String signName = "云南花满芫花卉";
+    static final String signName = "苏州云游四方信息科技";
+
+    public static SendSmsResponse sendSms(final String tel, final String templateCode, Object paramMap) throws ClientException {
+        return sendSms(tel, templateCode, JSON.toJSONString(paramMap));
+    }
+
+    public static SendSmsResponse sendSms(final String tel, final String templateCode, final String templateParam) throws ClientException {
+        return sendSms(tel, templateCode, templateParam, null);
+    }
+
+    public static SendSmsResponse sendSms(final String tel, final String templateCode, final String templateParam, final String outId) throws ClientException {
+        log.info("Send SMS [mobile no:" + tel + " templateCode:" + templateCode + " templateParam:" + templateParam + "]");
+        System.setProperty("sun.net.client.defaultConnectTimeout", connectTime);
+        System.setProperty("sun.net.client.defaultReadTimeout", readTime);
+        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", keyId, keySecret);
+        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
+        IAcsClient acsClient = new DefaultAcsClient(profile);
+        SendSmsRequest request = new SendSmsRequest();
+        request.setPhoneNumbers(tel);
+        request.setSignName(signName);
+        request.setTemplateCode(templateCode);
+        request.setTemplateParam(templateParam);
+        request.setOutId(outId);
+        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
+        log.info("Send SMS [mobile no:" + tel + " templateCode:" + templateCode + " templateParam:" + templateParam + "] result: " + sendSmsResponse.getCode() + " " + sendSmsResponse.getMessage());
+        return sendSmsResponse;
+    }
 
 }
diff --git a/src/main/java/com/mzl/flower/web/supplier/SupplierController.java b/src/main/java/com/mzl/flower/web/supplier/SupplierController.java
index a0fdd16..f411b57 100644
--- a/src/main/java/com/mzl/flower/web/supplier/SupplierController.java
+++ b/src/main/java/com/mzl/flower/web/supplier/SupplierController.java
@@ -6,17 +6,15 @@
 import com.mzl.flower.base.ReturnDataDTO;
 import com.mzl.flower.config.exception.ValidationException;
 import com.mzl.flower.config.security.SecurityUtils;
-import com.mzl.flower.constant.Constants;
 import com.mzl.flower.dto.request.supplier.*;
 import com.mzl.flower.dto.response.supplier.SupplierDTO;
 import com.mzl.flower.entity.customer.Customer;
-import com.mzl.flower.service.TosService;
+import com.mzl.flower.service.oss.TosOssService;
 import com.mzl.flower.service.customer.CustomerService;
 import com.mzl.flower.service.supplier.SupplierService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.validation.annotation.Validated;
@@ -25,9 +23,6 @@
 
 import javax.validation.constraints.NotNull;
 
-import java.util.UUID;
-
-import static com.google.common.io.Files.getFileExtension;
 import static sun.font.CreatedFontTracker.MAX_FILE_SIZE;
 
 @RestController
@@ -44,7 +39,7 @@
     private CustomerService customerService;
 
     @Autowired
-    private TosService tosService;
+    private TosOssService tosOssService;
 
     public SupplierController(SupplierService supplierService) {
         this.supplierService = supplierService;
@@ -96,7 +91,7 @@
                 String newFileName = originalFilename + (extension != null ? extension : "");
 
                 // 4. 上传到 OSS
-                avatarUrl = tosService.uploadFile( avatar.getInputStream(),newFileName);
+                avatarUrl = tosOssService.uploadFile( avatar.getInputStream(),newFileName);
             }
 
             // 5. 更新用户信息
diff --git a/src/main/java/com/mzl/flower/web/v2/sms/TosSmsController.java b/src/main/java/com/mzl/flower/web/v2/sms/TosSmsController.java
new file mode 100644
index 0000000..2369f52
--- /dev/null
+++ b/src/main/java/com/mzl/flower/web/v2/sms/TosSmsController.java
@@ -0,0 +1,55 @@
+package com.mzl.flower.web.v2.sms;
+
+import com.mzl.flower.base.BaseController;
+import com.mzl.flower.base.R;
+import com.mzl.flower.base.ReturnDataDTO;
+import com.mzl.flower.config.sms.TosSmsProperties;
+import com.mzl.flower.dto.request.sms.SmsTaskDTO;
+import com.mzl.flower.service.sms.TosSmsService;
+import com.volcengine.model.request.SmsSendRequest;
+import com.volcengine.model.response.SmsSendResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+@Api(value = "火山短信", tags = "火山短信")
+@RestController
+@RequestMapping("/v2/tos/sms")
+public class TosSmsController extends BaseController {
+
+    @Autowired
+    private TosSmsService tosSmsService;
+
+    @Autowired
+    private TosSmsProperties tosSmsProperties;
+
+    private String template="";
+
+    @PostMapping(value = "/send")
+    @ApiOperation(value = "发送短信任务", httpMethod = "POST")
+    public ResponseEntity<ReturnDataDTO> send() throws IOException {
+        SmsSendRequest req = new SmsSendRequest();
+        req.setPhoneNumbers("17768997336");
+        req.setSmsAccount(tosSmsProperties.getSmsAccount());
+        req.setTemplateId(tosSmsProperties.getTemplateId());
+        req.setSign(tosSmsProperties.getSign());
+
+        Map<String,String> param = new HashMap<>();
+        param.put("code","123456");
+        req.setTemplateParamByMap(param);
+        SmsSendResponse smsSendResponse = tosSmsService.sendSms(req);
+        return returnData(R.SUCCESS.getCode(), smsSendResponse);
+    }
+
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index ba93892..b7a9bb2 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -74,6 +74,14 @@
   bucketname: smart-manager-new
 #  bucketname: zhixinguanjia
 
+tos-sms:
+  keyid: AKLTNTFmOTFkMDg3ZDRmNGZkMmFkOTBmMTcyZmM4N2MyMmY
+  keysecret: TW1FelpUY3lOalkxWWpjMk5HWTNOV0ZtWVdWa1lURTNNRE13WVdJMVkySQ==
+  smsAccount: 834e37c1
+  templateId: ST_83652388
+  sign: 智信管家
+
+
 wx:
   miniapp:
     appid: wx1441324401626290    #小程序appId 花店端
@@ -97,7 +105,7 @@
 
 
 sms:
-  verificationCode: SMS_301300012   #验证码通用模版
+  verificationCode: SMS_317055406   #验证码通用模版
 
 map:
   tengxun:

--
Gitblit v1.9.3