package com.flow.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.flow.mapper.CardMapper;
|
import com.flow.mapper.CompanyMapper;
|
import com.flow.mapper.DuanxinlogMapper;
|
import com.flow.mapper.TbFuwuqiMapper;
|
import com.flow.pojo.Card;
|
import com.flow.pojo.Company;
|
import com.flow.pojo.Duanxinlog;
|
import com.flow.pojo.TbFuwuqi;
|
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.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.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
|
@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;
|
|
@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());
|
}
|
|
/*
|
* 函数名 : smsfuwuqi
|
* 说明 :
|
服务器
|
查询所有服务器数据
|
根据公司名称查询电话
|
使用当前时间减去结束时间
|
使用号码查询短信表取出发送日期,如果当前日期大于发送日期
|
发送短信
|
* 返回值 : 无
|
* 作者 : 王飞
|
// * 日期 : 2024年2月28日
|
*/
|
// @EnableScheduling
|
// @Scheduled(cron = "*/10 * * * * ?")//测试10一次
|
@Scheduled(cron = "0 0 */1 * * ?")//一小时执行一次
|
public void smsfuwuqi() throws Exception {
|
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(DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key));
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
String dtext = formatter.format(date);
|
if (dispatchDate == null || !dtext.equals(dispatchDate)) {
|
|
// 实例化一个认证对象,入参需要传入腾讯云账户 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)};
|
req.setPhoneNumberSet(phoneNumberSet1);
|
|
req.setSmsSdkAppId("1400838975");
|
req.setSignName("北京华星北斗智控");
|
req.setTemplateId("2081600");
|
|
// String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)};
|
String[] templateParamSet1 = {String.valueOf("云服务器还有"+(num11 / 24 / 60 / 60 / 1000+1))};
|
req.setTemplateParamSet(templateParamSet1);
|
// 返回的resp是一个SendSmsResponse的实例,与请求对象对应
|
SendSmsResponse resp = client.SendSms(req);
|
// 输出json格式的字符串回包
|
Duanxinlog duanxinlog = new Duanxinlog();
|
duanxinlog.setReceiver(fuwuqiList.get(i).getCompany());
|
duanxinlog.setNumber(DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key));
|
duanxinlog.setNumber(DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key));
|
duanxinlog.setContent("您有服务器还有" + (num11 / 24 / 60 / 60 / 1000+1) + "天到期,请登录ioptposition.com续费,如已续费忽略该提示信息");
|
this.duanxinlogService.addDuanxinlog(duanxinlog);
|
}
|
}
|
|
}
|
}
|
|
|
/*
|
* 函数名 : sms
|
* 说明 : 查询所有卡号数据
|
使用当前时间减去结束时间
|
使用号码查询短信表取出发送日期,如果当前日期大于发送日期
|
发送短信
|
发送短信
|
|
* 返回值 : 无
|
* 作者 : 王飞
|
// * 日期 : 2024年2月28日
|
*/
|
// @EnableScheduling
|
// @Scheduled(cron = "*/10 * * * * ?")//测试10秒执行一次
|
@Scheduled(cron = "0 0 */1 * * ?")//一小时执行一次
|
public void sms() throws Exception {
|
//查询数据库中所有的引擎数据
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("none", "0");
|
List<Card> cardList = (cardMapper).selectList(queryWrapper);
|
for (int i = 0; i < cardList.size(); i++) {
|
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;//时间戳
|
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(cardList.get(i).getCardnumber());
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
String dtext = formatter.format(date);
|
if (dispatchDate == null || !dtext.equals(dispatchDate)) {
|
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 = {"18701153496"};
|
req.setPhoneNumberSet(phoneNumberSet1);
|
|
req.setSmsSdkAppId("1400838975");
|
req.setSignName("北京华星北斗智控");
|
req.setTemplateId("1878633");
|
|
// String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)};
|
String[] templateParamSet1 = {String.valueOf("流量卡")};
|
req.setTemplateParamSet(templateParamSet1);
|
// 返回的resp是一个SendSmsResponse的实例,与请求对象对应
|
SendSmsResponse resp = client.SendSms(req);
|
// 输出json格式的字符串回包
|
Duanxinlog duanxinlog = new Duanxinlog();
|
duanxinlog.setReceiver(cardList.get(i).getCompany());
|
duanxinlog.setNumber(cardList.get(i).getCardnumber());
|
duanxinlog.setContent("您有流量卡还有" + (num11 / 24 / 60 / 60 / 1000+1) + "天到期,请登录ioptposition.com续费,如已续费忽略该提示信息");
|
this.duanxinlogService.addDuanxinlog(duanxinlog);
|
}
|
}
|
}
|
}
|
|
}
|