package com.hxzkmonitor.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hxzkmonitor.mapper.TbDuanxinMapper; import com.hxzkmonitor.pojo.TbDuanxin; import com.hxzkmonitor.pojo.TbDuanxinlog; import com.hxzkmonitor.pojo.TbEquipment; import com.hxzkmonitor.pojo.TbSystem; import com.hxzkmonitor.service.TbDuanxinlogService; import com.hxzkmonitor.service.TbSystemService; import com.hxzkmonitor.util.R; import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.exception.TencentCloudSDKException; 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 io.swagger.annotations.ApiOperation; 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 java.text.SimpleDateFormat; import java.time.Duration; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; /** *

* 前端控制器 *

* * @author wangfei * @since 2024-08-05 */ @RestController @RequestMapping("/") @Component public class TbSystemController { @Autowired com.hxzkmonitor.service.TbSystemService TbSystemService; @Autowired TbDuanxinMapper tbDuanxinMapper; private String SecretId = "AKIDrjZOI4e6KLZu9FAsSRN8eOwSt52lbMBz"; private String SecretKey = "xnRtHUL3YqdMyOLVSBjKkz1pQoxujS4d"; @Autowired TbDuanxinlogService tbDuanxinlogService; Integer st = -1; @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/api/getSystemPage") public R getSystem(Page page) { IPage ipage = TbSystemService.getSystemPage(page); return R.ok(ipage); } @PostMapping("/api/addorupSystem") public R addorupSystem(TbSystem tbSystem) { return R.ok(TbSystemService.addorupSystem(tbSystem)); } @GetMapping("/api/getSystemOne") public R getSystemOne() { List list1 = TbSystemService.findsystem(); return R.ok(list1); } public static boolean isDifferenceGreaterThan60Seconds(String timeStr) { // 定义日期时间格式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 将字符串时间解析为 LocalDateTime 对象 LocalDateTime givenTime = LocalDateTime.parse(timeStr, formatter); // 获取当前时间 LocalDateTime currentTime = LocalDateTime.now(); // 计算两个时间之间的差值 Duration duration = Duration.between(givenTime, currentTime); // 判断差值是否大于 60 秒 return duration.getSeconds() > 60; } // @Scheduled(cron = "0 24 15 * * ?") @Scheduled(cron = "*/10 * * * * ?")//测试10一次 // @Scheduled(cron = "0 0/10 8-22 * * ?")//8点到10点每10分钟执行一次 public void sms() throws Exception { System.out.println("短信定时器执行============》》》》》》》》》》》》》》》》"); //查询数据库中所有的公司数据 List list1 = TbSystemService.list(); System.out.println(list1.get(0).getAlerttime());//当前时间-获取时间大于60 boolean result = isDifferenceGreaterThan60Seconds(list1.get(0).getAlerttime()); System.out.println("时间差是否大于 60 秒: " + result); //获取当前年月日时间 if (result) { if (st == 1){ try { 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[]{GsPhone.split("[,,]")[p]}; QueryWrapper sms = new QueryWrapper(); sms.eq("type", "引擎离线报警"); List managerList = tbDuanxinMapper.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("2082020"); // String[] templateParamSet1 = {String.valueOf(+num11 / 24 / 60 / 60 / 1000)}; String[] templateParamSet1 = new String[]{managerList.get(s).getDuanxin()}; req.setTemplateParamSet(templateParamSet1); // 返回的resp是一个SendSmsResponse的实例,与请求对象对应 SendSmsResponse resp = client.SendSms(req); TbDuanxinlog duanxinlog = new TbDuanxinlog(); duanxinlog.setName(managerList.get(s).getManager()); duanxinlog.setPhone(managerList.get(s).getPhone()); duanxinlog.setMsg("告警提示:" + managerList.get(s).getDuanxin() + ",请尽快处理,如已处理请忽略该提示信息,如需退订短信可联系管理员删除"); tbDuanxinlogService.addorupDuanxinlog(duanxinlog); } // req.setPhoneNumberSet(phoneNumberSet1); // req.setSmsSdkAppId("1400838975"); // req.setSignName("北京华星北斗智控"); // req.setTemplateId("1908206"); // String[] templateParamSet1 = new String[]{cardNum, "150MB"}; // req.setTemplateParamSet(templateParamSet1); // SendSmsResponse resp = client.SendSms(req); // System.out.println(SendSmsResponse.toJsonString(resp)); } catch (TencentCloudSDKException var15) { System.out.println(var15.toString()); } st = 0; } }else{ st=1; } } }