fei.wang
2024-05-13 19fe5a3d816184549e8ffa011c39f218734da8d5
src/main/java/com/flow/controller/DuanxinlogController.java
@@ -1,14 +1,8 @@
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.mapper.*;
import com.flow.pojo.*;
import com.flow.service.DuanxinlogService;
import com.flow.service.TbFuwuqiService;
import com.flow.util.DESUtil;
@@ -25,12 +19,13 @@
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 java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.*;
@RestController
@RequestMapping({"/hxzk"})
@@ -55,10 +50,20 @@
    @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;
    }
    /*
@@ -88,7 +93,7 @@
            queryWrapper3.eq("none", "0");
            queryWrapper3.eq("companyName", fuwuqiList.get(i).getCompany());
            Company companyList = (companyMapper).selectOne(queryWrapper3);
            SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = new Date();
            Date endDay = date2.parse(fuwuqiList.get(i).getEnddate());//结束时间
            Long starTime = date.getTime();
@@ -100,7 +105,6 @@
                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 进行获取
@@ -117,6 +121,27 @@
                    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("2100321");
//                    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);
                    }
                    req.setPhoneNumberSet(phoneNumberSet1);
                    req.setSmsSdkAppId("1400838975");
@@ -157,14 +182,14 @@
     */
//    @EnableScheduling
//    @Scheduled(cron = "*/10 * * * * ?")//测试10秒执行一次
//    @Scheduled(cron = "0 0 16 * * ?")
//    @Scheduled(cron = "0 11 16 * * ?")
    @Scheduled(cron = "0 0 */1 * * ?")//一小时执行一次
    public void sms() throws Exception {
        System.out.println("短信定时器执行============》》》》》》》》》》》》》》》》");
        //查询数据库中所有的引擎数据
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("none", "0");
//        queryWrapper.eq("num", "8");
//        queryWrapper.eq("num", "1");
        List<Card> cardList = (cardMapper).selectList(queryWrapper);
        for (int i = 0; i < cardList.size(); i++) {
            QueryWrapper queryWrapper3 = new QueryWrapper();
@@ -184,12 +209,14 @@
            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());
//                    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)) {
                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
@@ -208,6 +235,33 @@
//                        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");
@@ -219,11 +273,12 @@
                    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(phoneNumberSet1[0]);
                    duanxinlog.setNumber(string);
                    duanxinlog.setContent("尊敬的用户,您好!您有流量卡将于"+cardList.get(i).getEnddate()+"到期,为避免影响您的正常使用请及时续费,您可登录华星智控公司物联网管理平台查询详情续费,如有疑问可咨询我公司客服人员,祝您生活愉快!"
                    );
                    this.duanxinlogService.addDuanxinlog(duanxinlog);