From 08f1b1f1804a8bd833d42f257908d80e88387b55 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 14 三月 2025 11:27:47 +0800
Subject: [PATCH] 3.5增加登录验证、修改密码、人员列表调整

---
 flower_city/src/main/java/com/dg/core/util/SmsUtil.java |  316 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 315 insertions(+), 1 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/util/SmsUtil.java b/flower_city/src/main/java/com/dg/core/util/SmsUtil.java
index 52e41cd..f8b5199 100644
--- a/flower_city/src/main/java/com/dg/core/util/SmsUtil.java
+++ b/flower_city/src/main/java/com/dg/core/util/SmsUtil.java
@@ -1,5 +1,6 @@
 package com.dg.core.util;
 
+import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.CommonRequest;
 import com.aliyuncs.CommonResponse;
 import com.aliyuncs.DefaultAcsClient;
@@ -11,6 +12,9 @@
 import com.dg.core.ResultData;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.squareup.okhttp.OkHttpClient;
+import com.squareup.okhttp.Request;
+import com.squareup.okhttp.Response;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,7 +22,11 @@
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
+import java.util.Map;
 import java.util.Random;
 import java.util.concurrent.TimeUnit;
 
@@ -38,7 +46,18 @@
     @Resource
     RedisTemplate<String, Object> redisTemplate;
 
-    // 发送短信
+    private  String LoginName="DSC1210052";
+
+    private  String Pwd="pzhsjj@123";
+
+    private  String FeeType="2";
+
+    /**
+     * 发送短信登录验证码
+     *
+     * @param tel
+     *            电话
+     */
     public ResultData<Object> sendSms(String tel) {
         //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值
         DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect());
@@ -83,6 +102,52 @@
         return ResultData.error("短信发送失败");
     }
 
+    /**
+     * 发送短信登录验证码(电信平台)
+     *
+     * @param tel
+     *            电话
+     */
+
+    public ResultData sendSmsNew(String tel) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        int code = rd.nextInt(900000) + 100000;
+        String content="您的验证码为:"+code+",用于手机验证,15分钟内有效,请勿泄露于他人!";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            redisTemplate.opsForValue().set(tel, code + "", 5, TimeUnit.MINUTES);
+//            rsa = response.body().string().split("|")[0];
+              rsa   = response.message();
+              if (!rsa.equals("OK")){
+                  return ResultData.success("短信发送失败");
+              }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
+
+    /**
+     * 发送工单超时短信
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
     public ResultData<Object> sendSmsOvertime(String tel,String name) {
         //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值
         DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect());
@@ -124,4 +189,253 @@
         }
         return ResultData.error("短信发送失败");
     }
+
+
+    /**
+     * 发送工单超时短信(电信)
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsOvertimeNew(String tel,String name) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        String content=name+"的导办工单超时未处理,请及时通知!";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa   = response.message();
+            if (!rsa.equals("OK")){
+                return ResultData.success("短信发送失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
+
+    /**
+     * 发送工单完成短信
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsComplete(String tel,String name) {
+        //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值
+        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect());
+        /*阿里云提供的短信发送api的近期的相关代码,代码以最新的阿里api提供为准*/
+        IAcsClient client = new DefaultAcsClient(profile);
+        CommonRequest request = new CommonRequest();
+        request.setSysMethod(MethodType.POST);
+        request.setSysDomain("dysmsapi.aliyuncs.com");
+        request.setSysVersion("2017-05-25");
+        request.setSysAction("SendSms");
+        request.putQueryParameter("RegionId", "cn-hangzhou");
+        //  接收人电话
+        request.putQueryParameter("PhoneNumbers", tel);
+        //  短信签名
+        request.putQueryParameter("SignName", "集慧科技");
+        //  短信模板
+        request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCodeComplete());
+        Random rd = new Random();
+        //  短信内容
+        request.putQueryParameter("TemplateParam", "{name:'" + name + "'}");
+        //  获取短信发送的响应结果
+        try {
+            CommonResponse rs = client.getCommonResponse(request);
+            LOGGER.debug(rs.getData().toString());
+            // 把json格式的字符串装换成java的map的数据类型
+            ObjectMapper mapper = new ObjectMapper();
+            try {
+                HashMap<String, Object> m = mapper.readValue(rs.getData().toString(), HashMap.class);
+                if (m.get("Message").equals("OK")) {
+                    return  ResultData.success("短信发送成功!");
+                }
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+                return ResultData.error("短信发送失败");
+            }
+        } catch (ClientException e) {
+            e.printStackTrace();
+            return ResultData.error("短信发送失败");
+        }
+        return ResultData.error("短信发送失败");
+    }
+
+
+    /**
+     * 发送工单完成短信
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsCompleteNew(String tel,String name) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        String content="您的"+name+"导办工单已由工作人员处理完成,请通过个人中心-我的申请导办查询。";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa   = response.message();
+            if (!rsa.equals("OK")){
+                return ResultData.success("短信发送失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
+
+
+    /**
+     * 发送工单提交短信
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsSubmit(String tel,String name) {
+        //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值
+        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect());
+        /*阿里云提供的短信发送api的近期的相关代码,代码以最新的阿里api提供为准*/
+        IAcsClient client = new DefaultAcsClient(profile);
+        CommonRequest request = new CommonRequest();
+        request.setSysMethod(MethodType.POST);
+        request.setSysDomain("dysmsapi.aliyuncs.com");
+        request.setSysVersion("2017-05-25");
+        request.setSysAction("SendSms");
+        request.putQueryParameter("RegionId", "cn-hangzhou");
+        //  接收人电话
+        request.putQueryParameter("PhoneNumbers", tel);
+        //  短信签名
+        request.putQueryParameter("SignName", "集慧科技");
+        //  短信模板
+        request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCodeSubmit());
+        Random rd = new Random();
+        //  短信内容
+        request.putQueryParameter("TemplateParam", "{name:'" + name + "'}");
+        //  获取短信发送的响应结果
+        try {
+            CommonResponse rs = client.getCommonResponse(request);
+            LOGGER.debug(rs.getData().toString());
+            // 把json格式的字符串装换成java的map的数据类型
+            ObjectMapper mapper = new ObjectMapper();
+            try {
+                HashMap<String, Object> m = mapper.readValue(rs.getData().toString(), HashMap.class);
+                if (m.get("Message").equals("OK")) {
+                    return  ResultData.success("短信发送成功!");
+                }
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+                return ResultData.error("短信发送失败");
+            }
+        } catch (ClientException e) {
+            e.printStackTrace();
+            return ResultData.error("短信发送失败");
+        }
+        return ResultData.error("短信发送失败");
+    }
+
+
+    /**
+     * 发送工单提交短信(电信平台)
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsSubmitNew(String tel,String name) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        String content="您在"+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) +"收到新的导办工单,请"+name+"尽快处理。";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa   = response.message();
+            if (!rsa.equals("OK")){
+                return ResultData.success("短信发送失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
+
+
+    /**
+     * 发送工单提交短信(电信平台)
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsOvertimeRemind(String tel,String name) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        String content="您的待处理导办工单已超时,请 "+name+"尽快处理。";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa   = response.message();
+            if (!rsa.equals("OK")){
+                return ResultData.success("短信发送失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
 }
\ No newline at end of file

--
Gitblit v1.7.1