¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.flow.controller; |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.alipay.api.kms.aliyun.http.HttpRequest; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.flow.mapper.*; |
| | | import com.flow.pojo.*; |
| | | import com.flow.service.DuanxinlogService; |
| | | import com.flow.service.TbFuwuqiService; |
| | | import com.flow.util.DESUtil; |
| | | import com.flow.util.result; |
| | | import com.flow.util.resultutil; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.tencentcloudapi.common.Credential; |
| | | import com.tencentcloudapi.common.profile.ClientProfile; |
| | | import com.tencentcloudapi.common.profile.HttpProfile; |
| | | import com.tencentcloudapi.sms.v20210111.SmsClient; |
| | | import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest; |
| | | import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse; |
| | | import org.apache.http.HttpEntity; |
| | | import org.apache.http.HttpResponse; |
| | | import org.apache.http.client.methods.HttpPost; |
| | | import org.apache.http.entity.StringEntity; |
| | | import org.apache.http.impl.client.CloseableHttpClient; |
| | | import org.apache.http.impl.client.HttpClients; |
| | | import org.apache.http.util.EntityUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | import sun.net.www.http.HttpClient; |
| | | |
| | | import javax.crypto.Mac; |
| | | import javax.crypto.spec.SecretKeySpec; |
| | | import java.io.BufferedReader; |
| | | import java.io.InputStreamReader; |
| | | import java.io.OutputStream; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.Objects; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | @RestController |
| | | @RequestMapping({"/hxzk"}) |
| | | @Component |
| | | public class DuanxinlogController { |
| | | |
| | | private String SecretId = "AKIDrjZOI4e6KLZu9FAsSRN8eOwSt52lbMBz"; |
| | | private String SecretKey = "xnRtHUL3YqdMyOLVSBjKkz1pQoxujS4d"; |
| | | @Autowired |
| | | DuanxinlogService duanxinlogService; |
| | | |
| | | @Autowired |
| | | CardMapper cardMapper; |
| | | @Autowired |
| | | TbFuwuqiMapper tbFuwuqiMapper; |
| | | @Autowired |
| | | DuanxinlogMapper duanxinlogMapper; |
| | | |
| | | @Autowired |
| | | TbFuwuqiService tbFuwuqiService; |
| | | |
| | | @Autowired |
| | | CompanyMapper companyMapper; |
| | | |
| | | @Autowired |
| | | ManagerMapper managerMapper; |
| | | |
| | | @GetMapping({"findDuanxinlog"}) |
| | | result<List<Duanxinlog>> findDuanxinlog(Integer page, Integer limit) { |
| | | PageInfo<Duanxinlog> cz = this.duanxinlogService.FindDuanxinlog(page, limit); |
| | | return resultutil.returnSuccess(cz.getTotal(), cz.getList()); |
| | | } |
| | | |
| | | @PostMapping({"DeleteDuanxinlog"}) |
| | | public ModelAndView DeleteManager(String num) { |
| | | this.duanxinlogService.DeleteDuanxinlog(num); |
| | | ModelAndView modelAndView = new ModelAndView(); |
| | | modelAndView.setViewName("/page/Duanxinlog.jsp"); |
| | | return modelAndView; |
| | | |
| | | } |
| | | |
| | | /* |
| | | * 彿°å : smsfuwuqi |
| | | * 说æ : |
| | | æå¡å¨ |
| | | æ¥è¯¢æææå¡å¨æ°æ® |
| | | æ ¹æ®å
¬å¸åç§°æ¥è¯¢çµè¯ |
| | | 使ç¨å½åæ¶é´åå»ç»ææ¶é´ |
| | | 使ç¨å·ç æ¥è¯¢ç信表ååºå鿥æï¼å¦æå½åæ¥æå¤§äºå鿥æ |
| | | åéçä¿¡ |
| | | * è¿åå¼ : æ |
| | | * ä½è
: çé£ |
| | | // * æ¥æ : 2024å¹´2æ28æ¥ |
| | | */ |
| | | // @EnableScheduling |
| | | // @Scheduled(cron = "*/10 * * * * ?")//æµè¯10䏿¬¡ |
| | | @Scheduled(cron = "0 51 15 * * ?") |
| | | // @Scheduled(cron = "0 0 */1 * * ?")//ä¸å°æ¶æ§è¡ä¸æ¬¡ |
| | | @Scheduled(cron = "0 0/60 8-22 * * ?")//8ç¹å°10ç¹æ¯10åéæ§è¡ä¸æ¬¡ |
| | | public void smsfuwuqi() throws Exception { |
| | | System.out.println("æå¡å¨å®æ¶å¨æ§è¡============ãããããããããããããããã"); |
| | | QueryWrapper queryWrapper1 = new QueryWrapper(); |
| | | queryWrapper1.eq("none", "0"); |
| | | List<TbFuwuqi> fuwuqiList = (tbFuwuqiMapper).selectList(queryWrapper1); |
| | | for (int i = 0; i < fuwuqiList.size(); i++) { |
| | | QueryWrapper queryWrapper3 = new QueryWrapper(); |
| | | queryWrapper3.eq("none", "0"); |
| | | queryWrapper3.eq("companyName", fuwuqiList.get(i).getCompany()); |
| | | Company companyList = (companyMapper).selectOne(queryWrapper3); |
| | | SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd"); |
| | | Date date = new Date(); |
| | | |
| | | Date endDay = date2.parse(fuwuqiList.get(i).getEnddate());//ç»ææ¶é´ |
| | | Long starTime = date.getTime(); |
| | | Long endTime = endDay.getTime(); |
| | | Long num11 = endTime - starTime;//æ¶é´æ³ |
| | | //ä¸è¶³ä¸å¤©çç®ä½ä¸å¤©ï¼å æ¤å¨å°æå¤©æ°ä¸å 1 |
| | | if (+num11 / 24 / 60 / 60 / 1000 == 19 | +num11 / 24 / 60 / 60 / 1000 == 9 | +num11 / 24 / 60 / 60 / 1000 == 4 | +num11 / 24 / 60 / 60 / 1000 == 0) { |
| | | String dispatchDate = this.duanxinlogService.userdate(fuwuqiList.get(i).getServername()); |
| | | if (dispatchDate == null) { |
| | | // SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | // Date dtext = formatter.parse(dispatchDate);//ç»ææ¶é´ |
| | | // Long endTime1 = dtext.getTime(); |
| | | // if ((endTime1-starTime) / 24 / 60 / 60 / 1000 != 0) { |
| | | // å®ä¾åä¸ä¸ªè®¤è¯å¯¹è±¡ï¼å
¥åéè¦ä¼ å
¥è
¾è®¯äºè´¦æ· SecretId å SecretKeyï¼æ¤å¤è¿é注æå¯é¥å¯¹çä¿å¯ |
| | | // ä»£ç æ³é²å¯è½ä¼å¯¼è´ SecretId å SecretKey æ³é²ï¼å¹¶å¨èè´¦å·ä¸ææèµæºçå®å
¨æ§ã以ä¸ä»£ç 示ä¾ä»
ä¾åèï¼å»ºè®®éç¨æ´å®å
¨çæ¹å¼æ¥ä½¿ç¨å¯é¥ï¼è¯·åè§ï¼https://cloud.tencent.com/document/product/1278/85305 |
| | | // å¯é¥å¯åå¾å®ç½æ§å¶å° https://console.cloud.tencent.com/cam/capi è¿è¡è·å |
| | | Credential cred = new Credential(SecretId, SecretKey); |
| | | // å®ä¾åä¸ä¸ªhttpé项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | HttpProfile httpProfile = new HttpProfile(); |
| | | httpProfile.setEndpoint("sms.tencentcloudapi.com"); |
| | | // å®ä¾åä¸ä¸ªclienté项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | ClientProfile clientProfile = new ClientProfile(); |
| | | clientProfile.setHttpProfile(httpProfile); |
| | | // å®ä¾åè¦è¯·æ±äº§åçclient对象,clientProfileæ¯å¯éç |
| | | SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile); |
| | | // å®ä¾åä¸ä¸ªè¯·æ±å¯¹è±¡,æ¯ä¸ªæ¥å£é½ä¼å¯¹åºä¸ä¸ªrequest对象 |
| | | SendSmsRequest req = new SendSmsRequest(); |
| | | // String[] phoneNumberSet1 = {"18701153496"}; |
| | | |
| | | // if (phone.split("[,ï¼]").length>1){ |
| | | // |
| | | // } |
| | | |
| | | QueryWrapper sms = new QueryWrapper(); |
| | | sms.eq("none", "0"); |
| | | sms.eq("smsreception", "1"); |
| | | List<Manager> managerList = (managerMapper).selectList(sms); |
| | | for (int s = 0; s < managerList.size(); s++) { |
| | | // System.out.println(managerList.get(s).getPhone()); |
| | | // phoneNumberSet1[s] = managerList.get(s).getPhone(); |
| | | String[] phoneNumberSet12 = {managerList.get(s).getPhone()}; |
| | | System.out.println(phoneNumberSet12); |
| | | req.setPhoneNumberSet(phoneNumberSet12); |
| | | |
| | | req.setSmsSdkAppId("1400838975"); |
| | | req.setSignName("å京åæåææºæ§"); |
| | | req.setTemplateId("2318088"); |
| | | |
| | | // String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)}; |
| | | // String[] templateParamSet1 = {String.valueOf("æ¨ææµéå¡å°äºï¼" + fuwuqiList.get(i).getEnddate() + "å°æï¼")}; |
| | | // req.setTemplateParamSet(templateParamSet1); |
| | | // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | SendSmsResponse resp = client.SendSms(req); |
| | | } |
| | | String phone = DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key); |
| | | for (int j = 0; j < phone.split("[,ï¼]").length; j++) { |
| | | String[] phoneNumberSet1 = {phone.split("[,ï¼]")[j]}; |
| | | req.setPhoneNumberSet(phoneNumberSet1); |
| | | |
| | | req.setSmsSdkAppId("1400838975"); |
| | | req.setSignName("å京åæåææºæ§"); |
| | | req.setTemplateId("2318088"); |
| | | |
| | | // String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)}; |
| | | String[] templateParamSet1 = {String.valueOf("æ¨ææå¡å¨å°äºï¼" + fuwuqiList.get(i).getEnddate() + "å°æï¼")}; |
| | | req.setTemplateParamSet(templateParamSet1); |
| | | // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | SendSmsResponse resp = client.SendSms(req); |
| | | // è¾åºjsonæ ¼å¼çå符串åå
|
| | | Duanxinlog duanxinlog = new Duanxinlog(); |
| | | duanxinlog.setIdentification(fuwuqiList.get(i).getServername()); |
| | | duanxinlog.setReceiver(fuwuqiList.get(i).getCompany()); |
| | | duanxinlog.setNumber(phone.split("[,ï¼]")[j]); |
| | | // duanxinlog.setNumber(DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key)); |
| | | duanxinlog.setContent("å°æ¬çç¨æ·ï¼æ¨å¥½ï¼æ¨ææå¡å¨å°äº" + fuwuqiList.get(i).getEnddate() + "å°æï¼ä¸ºé¿å
å½±åæ¨çæ£å¸¸ä½¿ç¨è¯·åæ¶ç»è´¹ï¼æ¨å¯ç»å½åææºæ§å
¬å¸ç©èç½ç®¡ç平尿¥è¯¢è¯¦æ
ç»è´¹ï¼å¦æçé®å¯å¨è¯¢æå
¬å¸å®¢æäººåï¼ç¥æ¨çæ´»æå¿«ï¼"); |
| | | this.duanxinlogService.addDuanxinlog(duanxinlog); |
| | | } |
| | | |
| | | // } |
| | | } else { |
| | | SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Date dtext = formatter.parse(dispatchDate);//ç»ææ¶é´ |
| | | Long endTime1 = dtext.getTime(); |
| | | if ((endTime1 - starTime) / 24 / 60 / 60 / 1000 != 0) { |
| | | // å®ä¾åä¸ä¸ªè®¤è¯å¯¹è±¡ï¼å
¥åéè¦ä¼ å
¥è
¾è®¯äºè´¦æ· SecretId å SecretKeyï¼æ¤å¤è¿é注æå¯é¥å¯¹çä¿å¯ |
| | | // ä»£ç æ³é²å¯è½ä¼å¯¼è´ SecretId å SecretKey æ³é²ï¼å¹¶å¨èè´¦å·ä¸ææèµæºçå®å
¨æ§ã以ä¸ä»£ç 示ä¾ä»
ä¾åèï¼å»ºè®®éç¨æ´å®å
¨çæ¹å¼æ¥ä½¿ç¨å¯é¥ï¼è¯·åè§ï¼https://cloud.tencent.com/document/product/1278/85305 |
| | | // å¯é¥å¯åå¾å®ç½æ§å¶å° https://console.cloud.tencent.com/cam/capi è¿è¡è·å |
| | | Credential cred = new Credential(SecretId, SecretKey); |
| | | // å®ä¾åä¸ä¸ªhttpé项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | HttpProfile httpProfile = new HttpProfile(); |
| | | httpProfile.setEndpoint("sms.tencentcloudapi.com"); |
| | | // å®ä¾åä¸ä¸ªclienté项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | ClientProfile clientProfile = new ClientProfile(); |
| | | clientProfile.setHttpProfile(httpProfile); |
| | | // å®ä¾åè¦è¯·æ±äº§åçclient对象,clientProfileæ¯å¯éç |
| | | SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile); |
| | | // å®ä¾åä¸ä¸ªè¯·æ±å¯¹è±¡,æ¯ä¸ªæ¥å£é½ä¼å¯¹åºä¸ä¸ªrequest对象 |
| | | SendSmsRequest req = new SendSmsRequest(); |
| | | // String[] phoneNumberSet1 = {"18701153496"}; |
| | | // String[] phoneNumberSet1 = {DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key)}; |
| | | QueryWrapper sms = new QueryWrapper(); |
| | | sms.eq("none", "0"); |
| | | sms.eq("smsreception", "1"); |
| | | List<Manager> managerList = (managerMapper).selectList(sms); |
| | | for (int s = 0; s < managerList.size(); s++) { |
| | | // System.out.println(managerList.get(s).getPhone()); |
| | | // phoneNumberSet1[s] = managerList.get(s).getPhone(); |
| | | String[] phoneNumberSet12 = {managerList.get(s).getPhone()}; |
| | | System.out.println(phoneNumberSet12); |
| | | req.setPhoneNumberSet(phoneNumberSet12); |
| | | |
| | | req.setSmsSdkAppId("1400838975"); |
| | | req.setSignName("å京åæåææºæ§"); |
| | | req.setTemplateId("2318088"); |
| | | |
| | | // String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)}; |
| | | // String[] templateParamSet1 = {String.valueOf("æ¨ææµéå¡å°äºï¼" + fuwuqiList.get(i).getEnddate() + "å°æï¼")}; |
| | | // req.setTemplateParamSet(templateParamSet1); |
| | | // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | SendSmsResponse resp = client.SendSms(req); |
| | | } |
| | | String phone = DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key); |
| | | for (int j = 0; j < phone.split("[,ï¼]").length; j++) { |
| | | String[] phoneNumberSet1 = {phone.split("[,ï¼]")[j]}; |
| | | req.setPhoneNumberSet(phoneNumberSet1); |
| | | |
| | | req.setSmsSdkAppId("1400838975"); |
| | | req.setSignName("å京åæåææºæ§"); |
| | | req.setTemplateId("2318088"); |
| | | |
| | | // String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)}; |
| | | // String[] templateParamSet1 = {String.valueOf("æ¨ææå¡å¨å°äºï¼" + fuwuqiList.get(i).getEnddate() + "å°æï¼")}; |
| | | // req.setTemplateParamSet(templateParamSet1); |
| | | // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | SendSmsResponse resp = client.SendSms(req); |
| | | // è¾åºjsonæ ¼å¼çå符串åå
|
| | | Duanxinlog duanxinlog = new Duanxinlog(); |
| | | duanxinlog.setIdentification(fuwuqiList.get(i).getServername()); |
| | | duanxinlog.setReceiver(fuwuqiList.get(i).getCompany()); |
| | | duanxinlog.setNumber(phone.split("[,ï¼]")[j]); |
| | | // duanxinlog.setNumber(DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key)); |
| | | duanxinlog.setContent("å°æ¬çç¨æ·ï¼æ¨å¥½ï¼æ¨ææå¡å¨å°äº" + fuwuqiList.get(i).getEnddate() + "å°æï¼ä¸ºé¿å
å½±åæ¨çæ£å¸¸ä½¿ç¨è¯·åæ¶ç»è´¹ï¼æ¨å¯ç»å½åææºæ§å
¬å¸ç©èç½ç®¡ç平尿¥è¯¢è¯¦æ
ç»è´¹ï¼å¦æçé®å¯å¨è¯¢æå
¬å¸å®¢æäººåï¼ç¥æ¨çæ´»æå¿«ï¼"); |
| | | this.duanxinlogService.addDuanxinlog(duanxinlog); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | // |
| | | // /* |
| | | // * 彿°å : sms |
| | | // * 说æ : æ¥è¯¢ææå¡å·æ°æ® |
| | | // 使ç¨å½åæ¶é´åå»ç»ææ¶é´ |
| | | // 使ç¨å·ç æ¥è¯¢ç信表ååºå鿥æï¼å¦æå½åæ¥æå¤§äºå鿥æ |
| | | // åéçä¿¡ |
| | | // åéçä¿¡ |
| | | // |
| | | // * è¿åå¼ : æ |
| | | // * ä½è
: çé£ |
| | | //// * æ¥æ : 2024å¹´2æ28æ¥ |
| | | // */ |
| | | //// @EnableScheduling |
| | | //// @Scheduled(cron = "*/10 * * * * ?")//æµè¯10ç§æ§è¡ä¸æ¬¡ |
| | | //// @Scheduled(cron = "0 48 10 * * ?") |
| | | // @Scheduled(cron = "0 0 */1 * * ?")//ä¸å°æ¶æ§è¡ä¸æ¬¡ |
| | | // public void sms() throws Exception { |
| | | // System.out.println("çä¿¡å®æ¶å¨æ§è¡============ãããããããããããããããã"); |
| | | // //æ¥è¯¢æ°æ®åºä¸ææçå¼ææ°æ® |
| | | // QueryWrapper queryWrapper = new QueryWrapper(); |
| | | // queryWrapper.eq("none", "0"); |
| | | //// queryWrapper.eq("num", "1"); |
| | | // List<Card> cardList = (cardMapper).selectList(queryWrapper); |
| | | // for (int i = 0; i < cardList.size(); i++) { |
| | | // QueryWrapper queryWrapper3 = new QueryWrapper(); |
| | | // queryWrapper3.eq("none", "0"); |
| | | // queryWrapper3.eq("companyName", cardList.get(i).getCompany()); |
| | | // Company companyList = new Company(); |
| | | // companyList = (companyMapper).selectOne(queryWrapper3); |
| | | // if (companyList == null) { |
| | | // QueryWrapper queryWrapper4 = new QueryWrapper(); |
| | | // queryWrapper4.eq("none", "0"); |
| | | // queryWrapper4.eq("companyabbname", cardList.get(i).getCompany()); |
| | | // companyList = (companyMapper).selectOne(queryWrapper4); |
| | | // } |
| | | //// System.out.println("333333"); |
| | | // SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd"); |
| | | // Date date = new Date(); |
| | | // Date endDay = date2.parse(cardList.get(i).getEnddate());//ç»ææ¶é´ |
| | | // Long starTime = date.getTime(); |
| | | // Long endTime = endDay.getTime(); |
| | | // Long num11 = endTime - starTime;//æ¶é´æ³ |
| | | //// System.out.println("22222222"); |
| | | //// System.out.println(+num11 / 24 / 60 / 60 / 1000); |
| | | // if (+num11 / 24 / 60 / 60 / 1000 == 19 | +num11 / 24 / 60 / 60 / 1000 == 9 | +num11 / 24 / 60 / 60 / 1000 == 4 | +num11 / 24 / 60 / 60 / 1000 == 0) { |
| | | // System.out.println("1111111111111111111"); |
| | | // String dispatchDate = this.duanxinlogService.userdate(cardList.get(i).getCardnumber()); |
| | | // if (dispatchDate==null){ |
| | | //// SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | //// Date dtext = formatter.parse(dispatchDate);//ç»ææ¶é´ |
| | | //// Long endTime1 = dtext.getTime(); |
| | | //// if ((endTime1-starTime) / 24 / 60 / 60 / 1000 != 0) { |
| | | // String randomNumber = new String(); |
| | | // // å®ä¾åä¸ä¸ªè®¤è¯å¯¹è±¡ï¼å
¥åéè¦ä¼ å
¥è
¾è®¯äºè´¦æ· SecretId å SecretKeyï¼æ¤å¤è¿é注æå¯é¥å¯¹çä¿å¯ |
| | | // // ä»£ç æ³é²å¯è½ä¼å¯¼è´ SecretId å SecretKey æ³é²ï¼å¹¶å¨èè´¦å·ä¸ææèµæºçå®å
¨æ§ã以ä¸ä»£ç 示ä¾ä»
ä¾åèï¼å»ºè®®éç¨æ´å®å
¨çæ¹å¼æ¥ä½¿ç¨å¯é¥ï¼è¯·åè§ï¼https://cloud.tencent.com/document/product/1278/85305 |
| | | // // å¯é¥å¯åå¾å®ç½æ§å¶å° https://console.cloud.tencent.com/cam/capi è¿è¡è·å |
| | | // Credential cred = new Credential(SecretId, SecretKey); |
| | | // // å®ä¾åä¸ä¸ªhttpé项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | // HttpProfile httpProfile = new HttpProfile(); |
| | | // httpProfile.setEndpoint("sms.tencentcloudapi.com"); |
| | | // // å®ä¾åä¸ä¸ªclienté项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | // ClientProfile clientProfile = new ClientProfile(); |
| | | // clientProfile.setHttpProfile(httpProfile); |
| | | // // å®ä¾åè¦è¯·æ±äº§åçclient对象,clientProfileæ¯å¯éç |
| | | // SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile); |
| | | // // å®ä¾åä¸ä¸ªè¯·æ±å¯¹è±¡,æ¯ä¸ªæ¥å£é½ä¼å¯¹åºä¸ä¸ªrequest对象 |
| | | // SendSmsRequest req = new SendSmsRequest(); |
| | | //// String[] phoneNumberSet1 = {cardList.get(i).getCardnumber()}; |
| | | // String[] phoneNumberSet1 = {DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key)}; |
| | | //// String[] phoneNumberSet1 = {"18701153496"}; |
| | | // QueryWrapper sms = new QueryWrapper(); |
| | | // sms.eq("none", "0"); |
| | | // sms.eq("smsreception", "1"); |
| | | // List<Manager> managerList = (managerMapper).selectList(sms); |
| | | // String string = new String(); |
| | | // for (int s=0;s<managerList.size();s++){ |
| | | // |
| | | // if (s!=0){ |
| | | // string+=","; |
| | | // } |
| | | // string += managerList.get(s).getPhone(); |
| | | // String[] phoneNumberSet12 = {managerList.get(s).getPhone()}; |
| | | // System.out.println(phoneNumberSet12); |
| | | // req.setPhoneNumberSet(phoneNumberSet12); |
| | | // |
| | | // req.setSmsSdkAppId("1400838975"); |
| | | // req.setSignName("å京åæåææºæ§"); |
| | | // req.setTemplateId("2100321"); |
| | | // |
| | | //// String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)}; |
| | | // String[] templateParamSet1 = {String.valueOf("æ¨ææµéå¡å°äºï¼" + cardList.get(i).getEnddate()+"å°æï¼")}; |
| | | // req.setTemplateParamSet(templateParamSet1); |
| | | // // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | // SendSmsResponse resp = client.SendSms(req); |
| | | // } |
| | | //// phoneNumberSet1[managerList.size()] = DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key); |
| | | //// System.out.println(phoneNumberSet1); |
| | | // req.setPhoneNumberSet(phoneNumberSet1); |
| | | // |
| | | // req.setSmsSdkAppId("1400838975"); |
| | | // req.setSignName("å京åæåææºæ§"); |
| | | // req.setTemplateId("2100321"); |
| | | // |
| | | //// String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)}; |
| | | // String[] templateParamSet1 = {String.valueOf("æ¨ææµéå¡å°äºï¼" + cardList.get(i).getEnddate()+"å°æï¼")}; |
| | | // req.setTemplateParamSet(templateParamSet1); |
| | | // // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | // SendSmsResponse resp = client.SendSms(req); |
| | | // System.out.println(SendSmsResponse.toJsonString(resp)); |
| | | // // è¾åºjsonæ ¼å¼çå符串åå
|
| | | // Duanxinlog duanxinlog = new Duanxinlog(); |
| | | // duanxinlog.setIdentification(cardList.get(i).getCardnumber()); |
| | | // duanxinlog.setReceiver(cardList.get(i).getCompany()); |
| | | // duanxinlog.setNumber(string); |
| | | // duanxinlog.setContent("å°æ¬çç¨æ·ï¼æ¨å¥½ï¼æ¨ææµéå¡å°äº"+cardList.get(i).getEnddate()+"å°æï¼ä¸ºé¿å
å½±åæ¨çæ£å¸¸ä½¿ç¨è¯·åæ¶ç»è´¹ï¼æ¨å¯ç»å½åææºæ§å
¬å¸ç©èç½ç®¡ç平尿¥è¯¢è¯¦æ
ç»è´¹ï¼å¦æçé®å¯å¨è¯¢æå
¬å¸å®¢æäººåï¼ç¥æ¨çæ´»æå¿«ï¼" |
| | | // ); |
| | | // this.duanxinlogService.addDuanxinlog(duanxinlog); |
| | | //// } |
| | | // }else{ |
| | | // SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); |
| | | // Date dtext = formatter.parse(dispatchDate);//ç»ææ¶é´ |
| | | // Long endTime1 = dtext.getTime(); |
| | | //// System.out.println(dtext); |
| | | //// System.out.println(dispatchDate); |
| | | //// System.out.println(starTime); |
| | | //// System.out.println(endTime1); |
| | | //// System.out.println((starTime-endTime1) / 24); |
| | | //// System.out.println((starTime-endTime1) / 24 / 60 / 60 / 1000); |
| | | //// System.out.println((starTime-endTime1) / 24 / 60 / 60 / 1000 > 0); |
| | | // if ((starTime-endTime1) / 24 / 60 / 60 / 1000 != 0) { |
| | | // String randomNumber = new String(); |
| | | // // å®ä¾åä¸ä¸ªè®¤è¯å¯¹è±¡ï¼å
¥åéè¦ä¼ å
¥è
¾è®¯äºè´¦æ· SecretId å SecretKeyï¼æ¤å¤è¿é注æå¯é¥å¯¹çä¿å¯ |
| | | // // ä»£ç æ³é²å¯è½ä¼å¯¼è´ SecretId å SecretKey æ³é²ï¼å¹¶å¨èè´¦å·ä¸ææèµæºçå®å
¨æ§ã以ä¸ä»£ç 示ä¾ä»
ä¾åèï¼å»ºè®®éç¨æ´å®å
¨çæ¹å¼æ¥ä½¿ç¨å¯é¥ï¼è¯·åè§ï¼https://cloud.tencent.com/document/product/1278/85305 |
| | | // // å¯é¥å¯åå¾å®ç½æ§å¶å° https://console.cloud.tencent.com/cam/capi è¿è¡è·å |
| | | // Credential cred = new Credential(SecretId, SecretKey); |
| | | // // å®ä¾åä¸ä¸ªhttpé项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | // HttpProfile httpProfile = new HttpProfile(); |
| | | // httpProfile.setEndpoint("sms.tencentcloudapi.com"); |
| | | // // å®ä¾åä¸ä¸ªclienté项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | // ClientProfile clientProfile = new ClientProfile(); |
| | | // clientProfile.setHttpProfile(httpProfile); |
| | | // // å®ä¾åè¦è¯·æ±äº§åçclient对象,clientProfileæ¯å¯éç |
| | | // SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile); |
| | | // // å®ä¾åä¸ä¸ªè¯·æ±å¯¹è±¡,æ¯ä¸ªæ¥å£é½ä¼å¯¹åºä¸ä¸ªrequest对象 |
| | | // SendSmsRequest req = new SendSmsRequest(); |
| | | //// String[] phoneNumberSet1 = {cardList.get(i).getCardnumber()}; |
| | | // String[] phoneNumberSet1 = {DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key)}; |
| | | //// String[] phoneNumberSet1 = {"18701153496"}; |
| | | // QueryWrapper sms = new QueryWrapper(); |
| | | // sms.eq("none", "0"); |
| | | // sms.eq("smsreception", "1"); |
| | | // List<Manager> managerList = (managerMapper).selectList(sms); |
| | | // String string = new String(); |
| | | // for (int s=0;s<managerList.size();s++){ |
| | | // |
| | | // if (s!=0){ |
| | | // string+=","; |
| | | // } |
| | | // string += managerList.get(s).getPhone(); |
| | | // String[] phoneNumberSet12 = {managerList.get(s).getPhone()}; |
| | | // System.out.println(phoneNumberSet12); |
| | | // req.setPhoneNumberSet(phoneNumberSet12); |
| | | // |
| | | // req.setSmsSdkAppId("1400838975"); |
| | | // req.setSignName("å京åæåææºæ§"); |
| | | // req.setTemplateId("2100321"); |
| | | // |
| | | //// String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)}; |
| | | // String[] templateParamSet1 = {String.valueOf("æ¨ææµéå¡å°äºï¼" + cardList.get(i).getEnddate()+"å°æï¼")}; |
| | | // req.setTemplateParamSet(templateParamSet1); |
| | | // // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | // SendSmsResponse resp = client.SendSms(req); |
| | | // } |
| | | //// phoneNumberSet1[managerList.size()] = DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key); |
| | | //// System.out.println(phoneNumberSet1); |
| | | // req.setPhoneNumberSet(phoneNumberSet1); |
| | | // |
| | | // req.setSmsSdkAppId("1400838975"); |
| | | // req.setSignName("å京åæåææºæ§"); |
| | | // req.setTemplateId("2100321"); |
| | | // |
| | | //// String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)}; |
| | | // String[] templateParamSet1 = {String.valueOf("æ¨ææµéå¡å°äºï¼" + cardList.get(i).getEnddate()+"å°æï¼")}; |
| | | // req.setTemplateParamSet(templateParamSet1); |
| | | // // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | // SendSmsResponse resp = client.SendSms(req); |
| | | // System.out.println(SendSmsResponse.toJsonString(resp)); |
| | | // // è¾åºjsonæ ¼å¼çå符串åå
|
| | | // Duanxinlog duanxinlog = new Duanxinlog(); |
| | | // duanxinlog.setIdentification(cardList.get(i).getCardnumber()); |
| | | // duanxinlog.setReceiver(cardList.get(i).getCompany()); |
| | | // duanxinlog.setNumber(string); |
| | | // duanxinlog.setContent("å°æ¬çç¨æ·ï¼æ¨å¥½ï¼æ¨ææµéå¡å°äº"+cardList.get(i).getEnddate()+"å°æï¼ä¸ºé¿å
å½±åæ¨çæ£å¸¸ä½¿ç¨è¯·åæ¶ç»è´¹ï¼æ¨å¯ç»å½åææºæ§å
¬å¸ç©èç½ç®¡ç平尿¥è¯¢è¯¦æ
ç»è´¹ï¼å¦æçé®å¯å¨è¯¢æå
¬å¸å®¢æäººåï¼ç¥æ¨çæ´»æå¿«ï¼" |
| | | // ); |
| | | // this.duanxinlogService.addDuanxinlog(duanxinlog); |
| | | // } |
| | | // } |
| | | //// String dispatchDate = this.duanxinlogService.userdate(cardList.get(i).getCardnumber()); |
| | | // |
| | | // } |
| | | // |
| | | // } |
| | | // } |
| | | |
| | | /* |
| | | * 彿°å : sms |
| | | * 说æ : æ¥è¯¢ææå¡å·æ°æ® |
| | | 使ç¨å½åæ¶é´åå»ç»ææ¶é´ |
| | | 使ç¨å·ç æ¥è¯¢ç信表ååºå鿥æï¼å¦æå½åæ¥æå¤§äºå鿥æ |
| | | åéçä¿¡ |
| | | åéçä¿¡ |
| | | |
| | | * è¿åå¼ : æ |
| | | * ä½è
: çé£ |
| | | // * æ¥æ : 2024å¹´2æ28æ¥ |
| | | */ |
| | | // @EnableScheduling |
| | | // @Scheduled(cron = "*/10 * * * * ?")//æµè¯10ç§æ§è¡ä¸æ¬¡ |
| | | // @Scheduled(cron = "0 54 15 * * ?") |
| | | @Scheduled(cron = "0 0/10 8-22 * * ?")//8ç¹å°10ç¹æ¯10åéæ§è¡ä¸æ¬¡ |
| | | public void sms() throws Exception { |
| | | System.out.println("çä¿¡å®æ¶å¨æ§è¡============ãããããããããããããããã"); |
| | | //æ¥è¯¢æ°æ®åºä¸ææçå
¬å¸æ°æ® |
| | | QueryWrapper queryWrapper = new QueryWrapper(); |
| | | // queryWrapper.eq("num", "1"); |
| | | queryWrapper.eq("none", "0"); |
| | | List<Company> companyList = (companyMapper).selectList(queryWrapper); |
| | | //è·åå½åå¹´ææ¥æ¶é´ |
| | | SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd"); |
| | | Date date = new Date(); |
| | | String s = date2.format(date); |
| | | for (int i = 0; i < companyList.size(); i++) { |
| | | //夿æ¡ä»¶æ¯å¦åéçä¿¡ååéçä¿¡æ¥æ |
| | | if (!Objects.equals(companyList.get(i).getSenddate(), s)) { |
| | | //æ ¹æ®å
¬å¸åç§°æ¥è¯¢å¡å· |
| | | List<Card> cardList = this.cardMapper.findAllcompanycard(companyList.get(i).getCompanyname(), companyList.get(i).getCompanyabbname()); |
| | | for (int j = 0; j < cardList.size(); j++) { |
| | | if (cardList.get(j).getEnddate()!=null){ |
| | | Date endDay = date2.parse(cardList.get(j).getEnddate());//ç»ææ¶é´ |
| | | Long starTime = date.getTime(); |
| | | Long endTime = endDay.getTime(); |
| | | Long num11 = endTime - starTime;//æ¶é´æ³ |
| | | |
| | | if ((+num11 / 24 / 60 / 60 / 1000 == 19) || (+num11 / 24 / 60 / 60 / 1000 == 14) || (+num11 / 24 / 60 / 60 / 1000 == 9) || (+num11 / 24 / 60 / 60 / 1000 == 4) || (+num11 / 24 / 60 / 60 / 1000 == 0)) { |
| | | |
| | | //åéçä¿¡ |
| | | // å®ä¾åä¸ä¸ªè®¤è¯å¯¹è±¡ï¼å
¥åéè¦ä¼ å
¥è
¾è®¯äºè´¦æ· SecretId å SecretKeyï¼æ¤å¤è¿é注æå¯é¥å¯¹çä¿å¯ |
| | | // ä»£ç æ³é²å¯è½ä¼å¯¼è´ SecretId å SecretKey æ³é²ï¼å¹¶å¨èè´¦å·ä¸ææèµæºçå®å
¨æ§ã以ä¸ä»£ç 示ä¾ä»
ä¾åèï¼å»ºè®®éç¨æ´å®å
¨çæ¹å¼æ¥ä½¿ç¨å¯é¥ï¼è¯·åè§ï¼https://cloud.tencent.com/document/product/1278/85305 |
| | | // å¯é¥å¯åå¾å®ç½æ§å¶å° https://console.cloud.tencent.com/cam/capi è¿è¡è·å |
| | | Credential cred = new Credential(SecretId, SecretKey); |
| | | // å®ä¾åä¸ä¸ªhttpé项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | HttpProfile httpProfile = new HttpProfile(); |
| | | httpProfile.setEndpoint("sms.tencentcloudapi.com"); |
| | | // å®ä¾åä¸ä¸ªclienté项ï¼å¯éçï¼æ²¡æç¹æ®éæ±å¯ä»¥è·³è¿ |
| | | ClientProfile clientProfile = new ClientProfile(); |
| | | clientProfile.setHttpProfile(httpProfile); |
| | | // å®ä¾åè¦è¯·æ±äº§åçclient对象,clientProfileæ¯å¯éç |
| | | SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile); |
| | | // å®ä¾åä¸ä¸ªè¯·æ±å¯¹è±¡,æ¯ä¸ªæ¥å£é½ä¼å¯¹åºä¸ä¸ªrequest对象 |
| | | SendSmsRequest req = new SendSmsRequest(); |
| | | // String[] phoneNumberSet1 = {cardList.get(i).getCardnumber()}; |
| | | // String[] phoneNumberSet1 = {DESUtil.decrypt(companyList.get(i).getLoginphone(), DESUtil.key)}; |
| | | // String[] phoneNumberSet1 = {"18582279726"}; |
| | | //æ¥è¯¢ææ¥æ¶çä¿¡æéç管çåç»ä»ä»¬åéçä¿¡éç¥ |
| | | QueryWrapper sms = new QueryWrapper(); |
| | | sms.eq("none", "0"); |
| | | sms.eq("smsreception", "1"); |
| | | List<Manager> managerList = (managerMapper).selectList(sms); |
| | | String string = new String(); |
| | | System.out.println(cardList.get(j)); |
| | | for (int s1 = 0; s1 < managerList.size(); s1++) { |
| | | |
| | | if (s1 != 0) { |
| | | string += ","; |
| | | } |
| | | string += managerList.get(s1).getPhone(); |
| | | String[] phoneNumberSet12 = {managerList.get(s1).getPhone()}; |
| | | System.out.println(phoneNumberSet12); |
| | | req.setPhoneNumberSet(phoneNumberSet12); |
| | | req.setSmsSdkAppId("1400838975"); |
| | | req.setSignName("å京åæåææºæ§"); |
| | | req.setTemplateId("2089627"); |
| | | String[] templateParamSet1 = {String.valueOf("æä½¿ç¨çç©èç½å¡è¿æ"+(+num11 / 24 / 60 / 60 / 1000+1)),String.valueOf(cardList.get(j).getEnddate())}; |
| | | req.setTemplateParamSet(templateParamSet1); |
| | | // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | SendSmsResponse resp = client.SendSms(req); |
| | | } |
| | | String phone = DESUtil.decrypt(companyList.get(i).getLoginphone(), DESUtil.key); |
| | | for (int p = 0; p < phone.split("[,ï¼]").length; p++) { |
| | | String[] phoneNumberSet1 = {phone.split("[,ï¼]")[p]}; |
| | | System.out.println(phoneNumberSet1); |
| | | req.setPhoneNumberSet(phoneNumberSet1); |
| | | |
| | | req.setSmsSdkAppId("1400838975"); |
| | | req.setSignName("å京åæåææºæ§"); |
| | | req.setTemplateId("2089627"); |
| | | String[] templateParamSet1 = {String.valueOf("æä½¿ç¨çç©èç½å¡è¿æ" + (+num11 / 24 / 60 / 60 / 1000 + 1)), String.valueOf(cardList.get(j).getEnddate())}; |
| | | req.setTemplateParamSet(templateParamSet1); |
| | | // String[] templateParamSet1 = {String.valueOf("æ¨ææµéå¡å°äºï¼" + cardList.get(i).getEnddate() + "å°æï¼")}; |
| | | // req.setTemplateParamSet(templateParamSet1); |
| | | // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | SendSmsResponse resp = client.SendSms(req); |
| | | System.out.println(SendSmsResponse.toJsonString(resp)); |
| | | companyList.get(i).setSenddate(s); |
| | | //åéçä¿¡åä¿®æ¹å
¬å¸åéçä¿¡åæ®µåæ¥æåæ®µ |
| | | QueryWrapper queryWrapper2 = new QueryWrapper(); |
| | | queryWrapper2.eq("companyId", companyList.get(i).getCompanyid()); |
| | | companyMapper.update(companyList.get(i), queryWrapper2); |
| | | // è¾åºjsonæ ¼å¼çå符串åå
|
| | | Duanxinlog duanxinlog = new Duanxinlog(); |
| | | duanxinlog.setIdentification(cardList.get(j).getCardnumber()); |
| | | duanxinlog.setReceiver(cardList.get(j).getCompany()); |
| | | duanxinlog.setNumber(phone.split("[,ï¼]")[p]); |
| | | duanxinlog.setContent("æ¨æä½¿ç¨çç©èç½å¡è¿æ" + (+num11 / 24 / 60 / 60 / 1000 + 1) + "天å³å°å°æï¼è¯·å¨" + cardList.get(j).getEnddate() + "ä¹åç»è´¹ï¼å¦å·²ç»è´¹å¿½ç¥è¯¥æç¤ºä¿¡æ¯ï¼ææ¶è¯·åå¤R" |
| | | ); |
| | | this.duanxinlogService.addDuanxinlog(duanxinlog); |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | // } |
| | | //å¤æç»ææ¥æè·å½åæ¥æè¿æå¤ä¹
|
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | // @PostMapping({"sendudp"}) |
| | | // public Boolean sendudp(String message,String phone) { |
| | | //// String phone = ""; |
| | | // // å设ç©èç½å¡å¹³å°ççä¿¡æ¥å£å°å |
| | | // String apiUrl = "https://api.spruceiot.cn/api/v1/sms/send"; |
| | | // // å设平å°çAPIå¯é¥ |
| | | // String apiKey = "your_api_key_here"; |
| | | // // å设平å°çç信模æ¿IDï¼å¦æéè¦ï¼ |
| | | // String templateId = "your_template_id_here"; |
| | | // String accessKey = "448c2cedcdce41428a290d144e81ab6e"; |
| | | // String str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
| | | // String accessSecret = "RgoIWycMYGmQfrLwLuT2VWawAhwMO8w7P9zh2dZp"; |
| | | // // æé 请æ±åæ° |
| | | // Map<String, String> params = new HashMap<>(); |
| | | // params.put("apiKey", apiKey); |
| | | // params.put("to", phone); |
| | | // params.put("message", message); |
| | | // params.put("templateId", templateId); |
| | | // |
| | | // try (CloseableHttpClient httpClient = HttpClients.createDefault()) { |
| | | // HttpPost httpPost = new HttpPost(apiUrl); |
| | | // httpPost.setHeader("Content-Type", "application/json"); |
| | | // httpPost.setEntity(new StringEntity(new ObjectMapper().writeValueAsString(params))); |
| | | // |
| | | // HttpResponse response = httpClient.execute(httpPost); |
| | | // HttpEntity responseEntity = response.getEntity(); |
| | | // |
| | | // if (response.getStatusLine().getStatusCode() == 200) { |
| | | // // åéæå |
| | | // return true; |
| | | // } else { |
| | | // // åé失败 |
| | | // System.out.println("Failed to send SMS: " + EntityUtils.toString(responseEntity)); |
| | | // return false; |
| | | // } |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // return false; |
| | | // } |
| | | // } |
| | | |
| | | @PostMapping({"sendudp"}) |
| | | public JSONObject sendudp(String conext,String phone) throws Exception { |
| | | String accessKey = "448c2cedcdce41428a290d144e81ab6e"; |
| | | String str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
| | | String accessSecret = "RgoIWycMYGmQfrLwLuT2VWawAhwMO8w7P9zh2dZp"; |
| | | String nonce = ""; |
| | | Date now = new Date(); |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String Timestamp = dateFormat.format(now); |
| | | int length = 30; |
| | | Random random = new Random(); |
| | | |
| | | for (int i = length; i > 0; --i) { |
| | | int index = random.nextInt(str.length()); |
| | | nonce = nonce + str.charAt(index); |
| | | } |
| | | |
| | | String stringSignTemp = accessKey + nonce + Timestamp; |
| | | Mac sha256Hmac = Mac.getInstance("HmacSHA256"); |
| | | SecretKeySpec secretKeySpec = new SecretKeySpec(accessSecret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"); |
| | | sha256Hmac.init(secretKeySpec); |
| | | byte[] hmacBytes = sha256Hmac.doFinal(stringSignTemp.getBytes(StandardCharsets.UTF_8)); |
| | | String sign = Base64.getEncoder().encodeToString(hmacBytes); |
| | | String targetUrl = "https://api.spruceiot.cn/api/v1/sms/send"; |
| | | URL url = new URL(targetUrl); |
| | | HttpURLConnection connection = (HttpURLConnection) url.openConnection(); |
| | | connection.setRequestMethod("POST"); |
| | | connection.setDoOutput(true); |
| | | connection.setRequestProperty("Accept-Charset", "UTF-8"); |
| | | connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); |
| | | connection.setRequestProperty("Access-Control-Allow-Origin", "http://localhost:8080"); |
| | | connection.setRequestProperty("AccessKey", accessKey); |
| | | connection.setRequestProperty("Nonce", nonce); |
| | | connection.setRequestProperty("Timestamp", Timestamp); |
| | | connection.setRequestProperty("Sign", sign); |
| | | |
| | | // æé 请æ±ä½ |
| | | JSONObject requestBody = new JSONObject(); |
| | | requestBody.put("msisdn",phone ); |
| | | requestBody.put("content", conext); |
| | | |
| | | // å°è¯·æ±ä½åå
¥è¾åºæµ |
| | | OutputStream os = connection.getOutputStream(); |
| | | os.write(requestBody.toString().getBytes("UTF-8")); |
| | | os.flush(); |
| | | os.close(); |
| | | |
| | | BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); |
| | | StringBuilder response1 = new StringBuilder(); |
| | | |
| | | String line; |
| | | while ((line = reader.readLine()) != null) { |
| | | response1.append(line); |
| | | } |
| | | |
| | | reader.close(); |
| | | connection.disconnect(); |
| | | JSONObject jsonObject = new JSONObject(response1); |
| | | int code = jsonObject.getInt("code"); |
| | | String message = jsonObject.getStr("message"); |
| | | JSONObject result = jsonObject.getJSONObject("result"); |
| | | // int total1 = result.getInt("total"); |
| | | // JSONArray list = result.getJSONArray("list"); |
| | | |
| | | // for (int i = 0; i < list.size(); ++i) { |
| | | // JSONObject item = list.getJSONObject(i); |
| | | // String msisdn = item.getStr("msisdn"); |
| | | // String iccid = item.getStr("iccid"); |
| | | // String imsi = item.getStr("imsi"); |
| | | // System.out.println("msisdn: " + msisdn + ", iccid: " + iccid + ", imsi: " + imsi); |
| | | // } |
| | | // if (code!=0){ |
| | | // return message; |
| | | // }else{ |
| | | if (code!=0){ |
| | | |
| | | }else{ |
| | | result.set("eStatus", this.getendlog()); |
| | | } |
| | | return jsonObject; |
| | | // } |
| | | |
| | | } |
| | | |
| | | public String getendlog( ) throws Exception { |
| | | |
| | | |
| | | String accessKey = "448c2cedcdce41428a290d144e81ab6e"; |
| | | String str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
| | | String accessSecret = "RgoIWycMYGmQfrLwLuT2VWawAhwMO8w7P9zh2dZp"; |
| | | String nonce = ""; |
| | | Date now = new Date(); |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | String Timestamp = dateFormat.format(now); |
| | | int length = 30; |
| | | Random random = new Random(); |
| | | |
| | | for (int i = length; i > 0; --i) { |
| | | int index = random.nextInt(str.length()); |
| | | nonce = nonce + str.charAt(index); |
| | | } |
| | | |
| | | String stringSignTemp = accessKey + nonce + Timestamp; |
| | | Mac sha256Hmac = Mac.getInstance("HmacSHA256"); |
| | | SecretKeySpec secretKeySpec = new SecretKeySpec(accessSecret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"); |
| | | sha256Hmac.init(secretKeySpec); |
| | | byte[] hmacBytes = sha256Hmac.doFinal(stringSignTemp.getBytes(StandardCharsets.UTF_8)); |
| | | String sign = Base64.getEncoder().encodeToString(hmacBytes); |
| | | String targetUrl = "https://api.spruceiot.cn/api/v1/sms/log/query?pageIndex=1&pageSize=1"; |
| | | URL url = new URL(targetUrl); |
| | | HttpURLConnection connection = (HttpURLConnection) url.openConnection(); |
| | | connection.setRequestProperty("Accept-Charset", "UTF-8"); |
| | | connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); |
| | | connection.setRequestProperty("Access-Control-Allow-Origin", "http://localhost:8080"); |
| | | connection.setRequestProperty("AccessKey", accessKey); |
| | | connection.setRequestProperty("Nonce", nonce); |
| | | connection.setRequestProperty("Timestamp", Timestamp); |
| | | connection.setRequestProperty("Sign", sign); |
| | | connection.connect(); |
| | | BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); |
| | | StringBuilder response1 = new StringBuilder(); |
| | | |
| | | String line; |
| | | while ((line = reader.readLine()) != null) { |
| | | response1.append(line); |
| | | } |
| | | |
| | | reader.close(); |
| | | connection.disconnect(); |
| | | JSONObject jsonObject = new JSONObject(response1); |
| | | int code = jsonObject.getInt("code"); |
| | | String message = jsonObject.getStr("message"); |
| | | JSONObject result = jsonObject.getJSONObject("result"); |
| | | JSONArray list = result.getJSONArray("list"); |
| | | // if (code!=0){ |
| | | // return ""; |
| | | // }else{ |
| | | // return result.get("status").toString(); |
| | | // } |
| | | // for (int i = 0; i < list.size(); ++i) { |
| | | JSONObject item = list.getJSONObject(0); |
| | | // String msisdn = item.getStr("msisdn"); |
| | | // String iccid = item.getStr("iccid"); |
| | | // String imsi = item.getStr("imsi"); |
| | | // System.out.println("msisdn: " + msisdn + ", iccid: " + iccid + ", imsi: " + imsi); |
| | | // } |
| | | if (item.get("status")=="3"){ |
| | | return item.get("message").toString(); |
| | | }else{ |
| | | return item.get("status").toString(); |
| | | } |
| | | |
| | | } |
| | | |
| | | @PostMapping({"send"}) |
| | | public ModelAndView send(String phone,Integer id,String vname,String enddate) throws Exception { |
| | | |
| | | SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd"); |
| | | Date date = new Date(); |
| | | String s = date2.format(date); |
| | | QueryWrapper queryWrapper = new QueryWrapper(); |
| | | queryWrapper.eq("none", "0"); |
| | | queryWrapper.eq("num", id); |
| | | Card cardList = (cardMapper).selectOne(queryWrapper); |
| | | |
| | | Date endDay = date2.parse(enddate);//ç»ææ¶é´ |
| | | Long starTime = date.getTime(); |
| | | Long endTime = endDay.getTime(); |
| | | Long num11 = endTime - starTime;//æ¶é´æ³ |
| | | //å¤æç»ææ¥æè·å½åæ¥æè¿æå¤ä¹
|
| | | |
| | | Credential cred = new Credential(this.SecretId, this.SecretKey); |
| | | HttpProfile httpProfile = new HttpProfile(); |
| | | httpProfile.setEndpoint("sms.tencentcloudapi.com"); |
| | | ClientProfile clientProfile = new ClientProfile(); |
| | | clientProfile.setHttpProfile(httpProfile); |
| | | SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile); |
| | | SendSmsRequest req = new SendSmsRequest(); |
| | | String[] phoneNumberSet1 = new String[]{phone}; |
| | | req.setPhoneNumberSet(phoneNumberSet1); |
| | | |
| | | req.setSmsSdkAppId("1400838975"); |
| | | req.setSignName("å京åæåææºæ§"); |
| | | req.setTemplateId("2089627"); |
| | | |
| | | String[] templateParamSet1 = {String.valueOf("æä½¿ç¨çç©èç½å¡è¿æ"+num11 / 24 / 60 / 60 / 1000),String.valueOf(enddate)}; |
| | | req.setTemplateParamSet(templateParamSet1); |
| | | // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | SendSmsResponse resp = client.SendSms(req); |
| | | System.out.println(SendSmsResponse.toJsonString(resp)); |
| | | Company companyList = this.companyMapper.findAllcompanycompany(cardList.getCompany()); |
| | | companyList.setSenddate(s); |
| | | //åéçä¿¡åä¿®æ¹å
¬å¸åéçä¿¡åæ®µåæ¥æåæ®µ |
| | | QueryWrapper queryWrapper2 = new QueryWrapper(); |
| | | queryWrapper2.eq("companyId", companyList.getCompanyid()); |
| | | companyMapper.update(companyList, queryWrapper2); |
| | | // è¾åºjsonæ ¼å¼çå符串åå
|
| | | Duanxinlog duanxinlog = new Duanxinlog(); |
| | | duanxinlog.setIdentification(cardList.getCardnumber()); |
| | | duanxinlog.setReceiver(cardList.getCompany()); |
| | | duanxinlog.setNumber(phone); |
| | | duanxinlog.setContent("æ¨æä½¿ç¨çç©èç½å¡è¿æ"+num11 / 24 / 60 / 60 / 1000+"天å³å°å°æï¼è¯·å¨" + cardList.getEnddate() + "ä¹åç»è´¹ï¼å¦å·²ç»è´¹å¿½ç¥è¯¥æç¤ºä¿¡æ¯ï¼ææ¶è¯·åå¤R" |
| | | ); |
| | | this.duanxinlogService.addDuanxinlog(duanxinlog); |
| | | ModelAndView modelAndView = new ModelAndView(); |
| | | if (Objects.equals(vname, "index")){ |
| | | modelAndView.setViewName("/page/index1.jsp"); |
| | | }else{ |
| | | modelAndView.setViewName("/page/XinXi.jsp"); |
| | | } |
| | | |
| | | return modelAndView; |
| | | } |
| | | |
| | | |
| | | |
| | | @PostMapping({"sendfuwu"}) |
| | | public ModelAndView sendfuwu(String phone,Integer id,String vname) throws Exception { |
| | | SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd"); |
| | | Date date = new Date(); |
| | | String s = date2.format(date); |
| | | QueryWrapper queryWrapper = new QueryWrapper(); |
| | | queryWrapper.eq("none", "0"); |
| | | queryWrapper.eq("id", id); |
| | | TbFuwuqi fuwuqiList = (tbFuwuqiMapper).selectOne(queryWrapper); |
| | | |
| | | Credential cred = new Credential(this.SecretId, this.SecretKey); |
| | | HttpProfile httpProfile = new HttpProfile(); |
| | | httpProfile.setEndpoint("sms.tencentcloudapi.com"); |
| | | ClientProfile clientProfile = new ClientProfile(); |
| | | clientProfile.setHttpProfile(httpProfile); |
| | | SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile); |
| | | SendSmsRequest req = new SendSmsRequest(); |
| | | String[] phoneNumberSet1 = new String[]{phone}; |
| | | req.setPhoneNumberSet(phoneNumberSet1); |
| | | |
| | | req.setSmsSdkAppId("1400838975"); |
| | | req.setSignName("å京åæåææºæ§"); |
| | | req.setTemplateId("2100321"); |
| | | String[] templateParamSet1 = {String.valueOf("æ¨ææå¡å¨å°äºï¼" + fuwuqiList.getEnddate() + "å°æï¼")}; |
| | | req.setTemplateParamSet(templateParamSet1); |
| | | // è¿åçrespæ¯ä¸ä¸ªSendSmsResponseçå®ä¾ï¼ä¸è¯·æ±å¯¹è±¡å¯¹åº |
| | | SendSmsResponse resp = client.SendSms(req); |
| | | System.out.println(SendSmsResponse.toJsonString(resp)); |
| | | Company companyList = this.companyMapper.findAllcompanycompany(fuwuqiList.getCompany()); |
| | | companyList.setSenddate(s); |
| | | //åéçä¿¡åä¿®æ¹å
¬å¸åéçä¿¡åæ®µåæ¥æåæ®µ |
| | | QueryWrapper queryWrapper2 = new QueryWrapper(); |
| | | queryWrapper2.eq("companyId", companyList.getCompanyid()); |
| | | companyMapper.update(companyList, queryWrapper2); |
| | | // è¾åºjsonæ ¼å¼çå符串åå
|
| | | Duanxinlog duanxinlog = new Duanxinlog(); |
| | | duanxinlog.setIdentification(fuwuqiList.getServername()); |
| | | duanxinlog.setReceiver(fuwuqiList.getCompany()); |
| | | duanxinlog.setNumber(phone); |
| | | duanxinlog.setContent("å°æ¬çç¨æ·ï¼æ¨å¥½ï¼æ¨ææå¡å¨å°äº" + fuwuqiList.getEnddate() + "å°æï¼ä¸ºé¿å
å½±åæ¨çæ£å¸¸ä½¿ç¨è¯·åæ¶ç»è´¹ï¼æ¨å¯ç»å½åææºæ§å
¬å¸ç©èç½ç®¡ç平尿¥è¯¢è¯¦æ
ç»è´¹ï¼å¦æçé®å¯å¨è¯¢æå
¬å¸å®¢æäººåï¼ç¥æ¨çæ´»æå¿«ï¼" |
| | | ); |
| | | this.duanxinlogService.addDuanxinlog(duanxinlog); |
| | | ModelAndView modelAndView = new ModelAndView(); |
| | | if (Objects.equals(vname, "index")){ |
| | | modelAndView.setViewName("/page/Fuwuqi.jsp"); |
| | | }else{ |
| | | modelAndView.setViewName("/page/XinXi.jsp"); |
| | | } |
| | | |
| | | return modelAndView; |
| | | } |
| | | } |