Bläddra i källkod

fix 发送短信

Administrator 4 år sedan
förälder
incheckning
064bf26a78

+ 13 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -1,6 +1,7 @@
 package com.ruoyi.web.controller.system;
 
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -204,4 +205,16 @@ public class SysUserController extends BaseController
         user.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(userService.updateUserStatus(user));
     }
+
+
+    /**
+     * 给选择的用户发短信
+     * @param map
+     * @return
+     */
+    @PostMapping("/sendSms")
+    public AjaxResult sendSms(@RequestBody Map<String,Object> map)
+    {
+        return userService.sendSms(map);
+    }
 }

+ 1 - 1
ruoyi-admin/src/main/resources/application.yml

@@ -44,7 +44,7 @@ spring:
     # 国际化资源文件路径
     basename: i18n/messages
   profiles:
-    active: prod
+    active: druid
   # 文件上传
   servlet:
      multipart:

+ 7 - 6
ruoyi-common/src/main/java/com/ruoyi/common/utils/SendSmsUtils.java

@@ -30,8 +30,8 @@ public class SendSmsUtils {
     /**
      * TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
      */
-    static final String ACCESS_KEY_ID = "";
-    static final String ACCESS_KEY_SECRET = "";
+    static final String ACCESS_KEY_ID = "LTAI5tNA2fcBJH6EWRH6Pxr6";
+    static final String ACCESS_KEY_SECRET = "5WdaPEOvC3u9LC7pwy2DQ9pgmJvgUr";
 
     /**
      * 发送短信接口
@@ -39,7 +39,7 @@ public class SendSmsUtils {
      * @return
      * @throws ClientException
      */
-    public static SendSmsResponse sendSms(String phone) throws ClientException {
+    public static SendSmsResponse sendSms(String phone,String remark ) throws ClientException {
         //可自助调整超时时间
         System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
         System.setProperty("sun.net.client.defaultReadTimeout", "10000");
@@ -54,11 +54,11 @@ public class SendSmsUtils {
         //必填:待发送手机号 多个手机号用逗号分割
         request.setPhoneNumbers(phone);
         //必填:短信签名-可在短信控制台中找到
-        request.setSignName("");
+        request.setSignName("安徽博曼网络科技有限公司");
         //必填:短信模板-可在短信控制台中找到
-        request.setTemplateCode("");
+        request.setTemplateCode("SMS_219525380");
         //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
-        request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");
+        request.setTemplateParam("{\"remark\":\"" + remark + "\"}");
         //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
         request.setOutId("zhaoShang");
 
@@ -66,6 +66,7 @@ public class SendSmsUtils {
         SendSmsResponse sendSmsResponse = null;
         try {
             sendSmsResponse = acsClient.getAcsResponse(request);
+            System.out.println(sendSmsResponse.getMessage());
         } catch (ClientException e) {
             e.printStackTrace();
         }

+ 9 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -1,7 +1,9 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+import java.util.Map;
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 
 /**
@@ -165,4 +167,11 @@ public interface ISysUserService {
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    /**
+     * 给用户发短信
+     * @param map
+     * @return
+     */
+    public AjaxResult sendSms(Map<String,Object> map);
 }

+ 38 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -2,6 +2,11 @@ package com.ruoyi.system.service.impl;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+
+import com.aliyuncs.exceptions.ClientException;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.SendSmsUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +30,8 @@ import com.ruoyi.system.mapper.SysUserRoleMapper;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserService;
 
+import javax.validation.constraints.Size;
+
 /**
  * 用户 业务层处理
  * 
@@ -461,4 +468,35 @@ public class SysUserServiceImpl implements ISysUserService
         }
         return successMsg.toString();
     }
+
+    /**
+     * 给用户发短信
+     * @param map
+     * @return
+     */
+    @Override
+    public AjaxResult sendSms(Map<String,Object> map) {
+        StringBuilder nikeName = new StringBuilder("发送失败的人:");
+        ArrayList<SysUser> userList = (ArrayList<SysUser>)map.get("userList");
+        String content = String.valueOf(map.get("content"));
+        if (userList.size() > 0){
+            StringBuilder sb = new StringBuilder();
+            for (SysUser sysUser : userList) {
+                String phone = sysUser.getPhonenumber();
+                if (StringUtils.isNotBlank(phone)){
+                    sb.append(phone).append(",");
+                }else {
+                    nikeName.append(sysUser.getNickName()).append(",");
+                }
+            }
+            sb.replace(sb.length() - 1, sb.length(), "");
+            nikeName.replace(nikeName.length() - 1, nikeName.length(), "");
+            try {
+                SendSmsUtils.sendSms(sb.toString(),content);
+            } catch (ClientException e) {
+                e.printStackTrace();
+            }
+        }
+        return AjaxResult.success(nikeName);
+    }
 }