From b9b58b9ef261cb290d93465f88a2cbd814b576f0 Mon Sep 17 00:00:00 2001
From: fei.wang <wf18701153496@163.com>
Date: 星期一, 13 五月 2024 17:51:44 +0800
Subject: [PATCH] 更改

---
 src/main/java/com/flow/controller/DuanxinlogController.java |  291 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 291 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/flow/controller/DuanxinlogController.java b/src/main/java/com/flow/controller/DuanxinlogController.java
new file mode 100644
index 0000000..8f3cf37
--- /dev/null
+++ b/src/main/java/com/flow/controller/DuanxinlogController.java
@@ -0,0 +1,291 @@
+package com.flow.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.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 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 46 17 * * ?")
+    @Scheduled(cron = "0 0 */1 * * ?")//涓�灏忔椂鎵ц涓�娆�
+    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 HH:mm:ss");
+            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());
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+                String dtext = formatter.format(date);
+                if (dispatchDate == null || !dtext.equals(dispatchDate)) {
+                    // 瀹炰緥鍖栦竴涓璇佸璞★紝鍏ュ弬闇�瑕佷紶鍏ヨ吘璁簯璐︽埛 SecretId 鍜� SecretKey锛屾澶勮繕闇�娉ㄦ剰瀵嗛挜瀵圭殑淇濆瘑
+                    // 浠g爜娉勯湶鍙兘浼氬鑷� SecretId 鍜� SecretKey 娉勯湶锛屽苟濞佽儊璐﹀彿涓嬫墍鏈夎祫婧愮殑瀹夊叏鎬с�備互涓嬩唬鐮佺ず渚嬩粎渚涘弬鑰冿紝寤鸿閲囩敤鏇村畨鍏ㄧ殑鏂瑰紡鏉ヤ娇鐢ㄥ瘑閽ワ紝璇峰弬瑙侊細https://cloud.tencent.com/document/product/1278/85305
+                    // 瀵嗛挜鍙墠寰�瀹樼綉鎺у埗鍙� https://console.cloud.tencent.com/cam/capi 杩涜鑾峰彇
+                    Credential cred = new Credential(SecretId, SecretKey);
+                    // 瀹炰緥鍖栦竴涓猦ttp閫夐」锛屽彲閫夌殑锛屾病鏈夌壒娈婇渶姹傚彲浠ヨ烦杩�
+                    HttpProfile httpProfile = new HttpProfile();
+                    httpProfile.setEndpoint("sms.tencentcloudapi.com");
+                    // 瀹炰緥鍖栦竴涓猚lient閫夐」锛屽彲閫夌殑锛屾病鏈夌壒娈婇渶姹傚彲浠ヨ烦杩�
+                    ClientProfile clientProfile = new ClientProfile();
+                    clientProfile.setHttpProfile(httpProfile);
+                    // 瀹炰緥鍖栬璇锋眰浜у搧鐨刢lient瀵硅薄,clientProfile鏄彲閫夌殑
+                    SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile);
+                    // 瀹炰緥鍖栦竴涓姹傚璞�,姣忎釜鎺ュ彛閮戒細瀵瑰簲涓�涓猺equest瀵硅薄
+                    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);
+                        // 杩斿洖鐨剅esp鏄竴涓猄endSmsResponse鐨勫疄渚嬶紝涓庤姹傚璞″搴�
+                        SendSmsResponse resp = client.SendSms(req);
+                    }
+                    req.setPhoneNumberSet(phoneNumberSet1);
+
+                    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);
+                    // 杩斿洖鐨剅esp鏄竴涓猄endSmsResponse鐨勫疄渚嬶紝涓庤姹傚璞″搴�
+                    SendSmsResponse resp = client.SendSms(req);
+                    // 杈撳嚭json鏍煎紡鐨勫瓧绗︿覆鍥炲寘
+                    Duanxinlog duanxinlog = new Duanxinlog();
+                    duanxinlog.setIdentification(fuwuqiList.get(i).getServername());
+                    duanxinlog.setReceiver(fuwuqiList.get(i).getCompany());
+                    duanxinlog.setNumber(DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key));
+                    duanxinlog.setNumber(DESUtil.decrypt(companyList.getLoginphone(), DESUtil.key));
+                    duanxinlog.setContent("灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛佹偍鏈夋湇鍔″櫒灏嗕簬"+fuwuqiList.get(i).getEnddate()+"鍒版湡锛屼负閬垮厤褰卞搷鎮ㄧ殑姝e父浣跨敤璇峰強鏃剁画璐癸紝鎮ㄥ彲鐧诲綍鍗庢槦鏅烘帶鍏徃鐗╄仈缃戠鐞嗗钩鍙版煡璇㈣鎯呯画璐癸紝濡傛湁鐤戦棶鍙挩璇㈡垜鍏徃瀹㈡湇浜哄憳锛岀鎮ㄧ敓娲绘剦蹇紒");
+                    this.duanxinlogService.addDuanxinlog(duanxinlog);
+                }
+            }
+
+        }
+    }
+
+
+    /*
+     * 鍑芥暟鍚�     : sms
+     * 璇存槑      : 鏌ヨ鎵�鏈夊崱鍙锋暟鎹�
+                    浣跨敤褰撳墠鏃堕棿鍑忓幓缁撴潫鏃堕棿
+                    浣跨敤鍙风爜鏌ヨ鐭俊琛ㄥ彇鍑哄彂閫佹棩鏈燂紝濡傛灉褰撳墠鏃ユ湡澶т簬鍙戦�佹棩鏈�
+                        鍙戦�佺煭淇�
+                        鍙戦�佺煭淇�
+
+     * 杩斿洖鍊�            : 鏃�
+     * 浣滆��            : 鐜嬮
+//     * 鏃ユ湡    : 2024骞�2鏈�28鏃�
+     */
+//    @EnableScheduling
+//    @Scheduled(cron = "*/10 * * * * ?")//娴嬭瘯10绉掓墽琛屼竴娆�
+//    @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", "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);
+            }
+            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());
+//                    String dispatchDate = this.duanxinlogService.userdate(cardList.get(i).getCardnumber());
+                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锛屾澶勮繕闇�娉ㄦ剰瀵嗛挜瀵圭殑淇濆瘑
+                    // 浠g爜娉勯湶鍙兘浼氬鑷� SecretId 鍜� SecretKey 娉勯湶锛屽苟濞佽儊璐﹀彿涓嬫墍鏈夎祫婧愮殑瀹夊叏鎬с�備互涓嬩唬鐮佺ず渚嬩粎渚涘弬鑰冿紝寤鸿閲囩敤鏇村畨鍏ㄧ殑鏂瑰紡鏉ヤ娇鐢ㄥ瘑閽ワ紝璇峰弬瑙侊細https://cloud.tencent.com/document/product/1278/85305
+                    // 瀵嗛挜鍙墠寰�瀹樼綉鎺у埗鍙� https://console.cloud.tencent.com/cam/capi 杩涜鑾峰彇
+                    Credential cred = new Credential(SecretId, SecretKey);
+                    // 瀹炰緥鍖栦竴涓猦ttp閫夐」锛屽彲閫夌殑锛屾病鏈夌壒娈婇渶姹傚彲浠ヨ烦杩�
+                    HttpProfile httpProfile = new HttpProfile();
+                    httpProfile.setEndpoint("sms.tencentcloudapi.com");
+                    // 瀹炰緥鍖栦竴涓猚lient閫夐」锛屽彲閫夌殑锛屾病鏈夌壒娈婇渶姹傚彲浠ヨ烦杩�
+                    ClientProfile clientProfile = new ClientProfile();
+                    clientProfile.setHttpProfile(httpProfile);
+                    // 瀹炰緥鍖栬璇锋眰浜у搧鐨刢lient瀵硅薄,clientProfile鏄彲閫夌殑
+                    SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile);
+                    // 瀹炰緥鍖栦竴涓姹傚璞�,姣忎釜鎺ュ彛閮戒細瀵瑰簲涓�涓猺equest瀵硅薄
+                    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);
+                        // 杩斿洖鐨剅esp鏄竴涓猄endSmsResponse鐨勫疄渚嬶紝涓庤姹傚璞″搴�
+                        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);
+                    // 杩斿洖鐨剅esp鏄竴涓猄endSmsResponse鐨勫疄渚嬶紝涓庤姹傚璞″搴�
+                    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()+"鍒版湡锛屼负閬垮厤褰卞搷鎮ㄧ殑姝e父浣跨敤璇峰強鏃剁画璐癸紝鎮ㄥ彲鐧诲綍鍗庢槦鏅烘帶鍏徃鐗╄仈缃戠鐞嗗钩鍙版煡璇㈣鎯呯画璐癸紝濡傛湁鐤戦棶鍙挩璇㈡垜鍏徃瀹㈡湇浜哄憳锛岀鎮ㄧ敓娲绘剦蹇紒"
+                    );
+                    this.duanxinlogService.addDuanxinlog(duanxinlog);
+                }
+            }
+
+        }
+    }
+
+}

--
Gitblit v1.9.3