| | |
| | | package com.dg.core.util; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.aliyuncs.CommonRequest; |
| | | import com.aliyuncs.CommonResponse; |
| | | import com.aliyuncs.DefaultAcsClient; |
| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | |
| | | // 注入redisTemplate |
| | | @Resource |
| | | RedisTemplate<String, Object> redisTemplate; |
| | | |
| | | private String LoginName="DSC1210052"; |
| | | |
| | | private String Pwd="pzhsjj@123"; |
| | | |
| | | private String FeeType="2"; |
| | | |
| | | /** |
| | | * 发送短信登录验证码 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 发送短信登录验证码(电信平台) |
| | | * |
| | | * @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 |
| | |
| | | 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("短信发送成功"); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | 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("短信发送成功"); |
| | | } |
| | | } |