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 | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 251 insertions(+), 0 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 0d08e33..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; @@ -37,6 +45,12 @@ // 注入redisTemplate @Resource RedisTemplate<String, Object> redisTemplate; + + private String LoginName="DSC1210052"; + + private String Pwd="pzhsjj@123"; + + private String FeeType="2"; /** * 发送短信登录验证码 @@ -89,6 +103,44 @@ } /** + * 发送短信登录验证码(电信平台) + * + * @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 @@ -136,6 +188,43 @@ return ResultData.error("短信发送失败"); } 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("短信发送成功"); } /** @@ -187,4 +276,166 @@ } 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