¶Ô±ÈÐÂÎļþ |
| | |
| | | // |
| | | // Source code recreated from a .class file by IntelliJ IDEA |
| | | // (powered by FernFlower decompiler) |
| | | // |
| | | |
| | | package com.flow.quartz; |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.flow.pojo.Card; |
| | | import com.flow.service.CardService; |
| | | |
| | | import java.io.BufferedReader; |
| | | import java.io.IOException; |
| | | import java.io.InputStreamReader; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.security.InvalidKeyException; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.text.DateFormat; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Base64; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Random; |
| | | import java.util.concurrent.TimeUnit; |
| | | import javax.crypto.Mac; |
| | | import javax.crypto.spec.SecretKeySpec; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | |
| | | public class MyJob { |
| | | @Autowired |
| | | CardService cardService; |
| | | |
| | | public MyJob() { |
| | | } |
| | | |
| | | public void execute() throws NoSuchAlgorithmException, InvalidKeyException, IOException, ParseException { |
| | | 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/sim/list/query?pageIndex=1&pageSize=10"; |
| | | 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"); |
| | | int total1 = result.getInt("total"); |
| | | JSONArray list = result.getJSONArray("list"); |
| | | System.out.println("宿¶å¨æ§è¡æåï¼æ´æ°æ°æ®"); |
| | | int num = total1; //ç¬¬ä¸æ¹ææå¡å· |
| | | int t = 0; |
| | | int total = 90; |
| | | int num1 = 0; |
| | | int numm = 0; |
| | | |
| | | int index; |
| | | String nonce1; |
| | | String Timestamp1; |
| | | String stringSignTemp1; |
| | | String line1; |
| | | String stt1; |
| | | while (numm < num) { |
| | | ++num1; |
| | | System.out.println("第" + num1 + "次è°ç¨æ¥å£ä»" + t + "å°" + total + "ç»æ:æ»æ¡æ°" + num); |
| | | List<Card> card = this.cardService.proxyfindCard(); |
| | | String stt = ""; //仿°æ®åºæ¥è¯¢çå¡å· |
| | | |
| | | for (int i = t; i < total; ++i) { |
| | | ++numm; |
| | | if (numm == 90) { |
| | | stt = stt + ((Card) card.get(i)).getCardnumber(); |
| | | } else { |
| | | if (card.size() <= i) { |
| | | break; |
| | | } else { |
| | | stt = stt + ((Card) card.get(i)).getCardnumber() + ","; |
| | | } |
| | | |
| | | } |
| | | } |
| | | stt1 = ""; |
| | | |
| | | for (int i = length; i > 0; --i) { |
| | | index = random.nextInt(str.length()); |
| | | stt1 = stt1 + str.charAt(index); |
| | | } |
| | | |
| | | Date now1 = new Date(); |
| | | SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | nonce1 = dateFormat1.format(now1); |
| | | stringSignTemp1 = accessKey + stt1 + nonce1; |
| | | |
| | | byte[] hmacBytes1 = sha256Hmac.doFinal(stringSignTemp1.getBytes(StandardCharsets.UTF_8)); |
| | | Timestamp1 = Base64.getEncoder().encodeToString(hmacBytes1); |
| | | stringSignTemp1 = "https://api.spruceiot.cn/api/v1/sim/detail/batch/query"; |
| | | stringSignTemp1 = stringSignTemp1 + "?cNo=" + stt.replaceAll("\\s+", ""); |
| | | URL url1 = new URL(stringSignTemp1); |
| | | HttpURLConnection connection1 = (HttpURLConnection) url1.openConnection(); |
| | | connection1.setRequestProperty("Accept-Charset", "UTF-8"); |
| | | connection1.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); |
| | | connection1.setRequestProperty("Access-Control-Allow-Origin", "http://localhost:8080"); |
| | | connection1.setRequestProperty("AccessKey", accessKey); |
| | | connection1.setRequestProperty("Nonce", stt1); |
| | | connection1.setRequestProperty("Timestamp", nonce1); |
| | | connection1.setRequestProperty("Sign", Timestamp1); |
| | | connection1.connect(); |
| | | BufferedReader reader1 = new BufferedReader(new InputStreamReader(connection1.getInputStream(), "UTF-8")); |
| | | StringBuilder response11 = new StringBuilder(); |
| | | |
| | | |
| | | while ((line1 = reader1.readLine()) != null) { |
| | | response11.append(line1); |
| | | } |
| | | |
| | | reader1.close(); |
| | | connection1.disconnect(); |
| | | JSONObject jsonObject1 = new JSONObject(response11); |
| | | int code1 = jsonObject1.getInt("code"); |
| | | line1 = jsonObject1.getStr("message"); |
| | | JSONArray resultArray = jsonObject1.getJSONArray("result"); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | SimpleDateFormat date1 = new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss"); |
| | | if (resultArray!=null) { |
| | | for (int i = 0; i < resultArray.size(); ++i) { |
| | | Card cardl = new Card(); |
| | | JSONObject item1 = resultArray.getJSONObject(i); |
| | | cardl.setCardnumber(item1.getStr("iccid")); |
| | | cardl.setOperator(item1.getStr("operators")); |
| | | cardl.setCarddate(item1.getStr("serviceStartDate")); |
| | | cardl.setEnddate(item1.getStr("serviceEndDate")); |
| | | cardl.setEnterdate(item1.getStr("serviceStartDate")); |
| | | cardl.setZflow(item1.getInt("dataLimit")); |
| | | cardl.setSyflow(item1.getInt("dataUsage")); |
| | | cardl.setSyll(item1.getInt("dataLimit") - item1.getInt("dataUsage")); |
| | | cardl.setStatus(item1.getStr("status")); |
| | | cardl.setIccid(item1.getStr("msisdn")); |
| | | this.cardService.proxyupXinXi(cardl); |
| | | } |
| | | t += 90; |
| | | total += 90; |
| | | try { |
| | | TimeUnit.SECONDS.sleep(12L); |
| | | } catch (InterruptedException var59) { |
| | | var59.printStackTrace(); |
| | | } |
| | | }else{ |
| | | break; |
| | | } |
| | | |
| | | } |
| | | // |
| | | // int sheng = num % 90; |
| | | // List<Card> card = this.cardService.proxyfindCard(); |
| | | // stt1 = ""; |
| | | // int i = 0; |
| | | // index = sheng - 1; |
| | | // |
| | | // for (int j = num - sheng; j < num - 1; ++j) { |
| | | // ++i; |
| | | // if (i == index) { |
| | | // stt1 = stt1 + ((Card) card.get(j)).getCardnumber(); |
| | | // } else { |
| | | // stt1 = stt1 + ((Card) card.get(j)).getCardnumber() + ","; |
| | | // } |
| | | // } |
| | | // |
| | | // nonce1 = ""; |
| | | // |
| | | // for (i = length; i > 0; --i) { |
| | | // index = random.nextInt(str.length()); |
| | | // nonce1 = nonce1 + str.charAt(index); |
| | | // } |
| | | // |
| | | // Date now1 = new Date(); |
| | | // SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | // Timestamp1 = dateFormat1.format(now1); |
| | | // stringSignTemp1 = accessKey + nonce1 + Timestamp1; |
| | | // byte[] hmacBytes1 = sha256Hmac.doFinal(stringSignTemp1.getBytes(StandardCharsets.UTF_8)); |
| | | // String sign1 = Base64.getEncoder().encodeToString(hmacBytes1); |
| | | // String targetUrl1 = "https://api.spruceiot.cn/api/v1/sim/detail/batch/query"; |
| | | // targetUrl1 = targetUrl1 + "?cNo=" + stt1.replaceAll("\\s+", ""); |
| | | // URL url1 = new URL(targetUrl1); |
| | | // HttpURLConnection connection1 = (HttpURLConnection) url1.openConnection(); |
| | | // connection1.setRequestProperty("Accept-Charset", "UTF-8"); |
| | | // connection1.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); |
| | | // connection1.setRequestProperty("Access-Control-Allow-Origin", "http://localhost:8080"); |
| | | // connection1.setRequestProperty("AccessKey", accessKey); |
| | | // connection1.setRequestProperty("Nonce", nonce1); |
| | | // connection1.setRequestProperty("Timestamp", Timestamp1); |
| | | // connection1.setRequestProperty("Sign", sign1); |
| | | // connection1.connect(); |
| | | // BufferedReader reader1 = new BufferedReader(new InputStreamReader(connection1.getInputStream(), "UTF-8")); |
| | | // StringBuilder response11 = new StringBuilder(); |
| | | // |
| | | // while ((line1 = reader1.readLine()) != null) { |
| | | // response11.append(line1); |
| | | // } |
| | | // |
| | | // reader1.close(); |
| | | // connection1.disconnect(); |
| | | // JSONObject jsonObject1 = new JSONObject(response11); |
| | | // int code1 = jsonObject1.getInt("code"); |
| | | // String message1 = jsonObject1.getStr("message"); |
| | | // JSONArray resultArray = jsonObject1.getJSONArray("result"); |
| | | // Calendar calendar = Calendar.getInstance(); |
| | | // SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss"); |
| | | // |
| | | // for (i = 0; i < resultArray.size(); ++i) { |
| | | // Card cardl = new Card(); |
| | | // JSONObject item1 = resultArray.getJSONObject(i); |
| | | // cardl.setCardnumber(item1.getStr("iccid")); |
| | | // cardl.setOperator(item1.getStr("operators")); |
| | | // cardl.setCarddate(item1.getStr("serviceStartDate")); |
| | | // cardl.setEnddate(item1.getStr("serviceEndDate")); |
| | | // cardl.setEnterdate(item1.getStr("serviceStartDate")); |
| | | // cardl.setZflow(item1.getInt("dataLimit")); |
| | | // cardl.setSyflow(item1.getInt("dataUsage")); |
| | | // cardl.setStatus(item1.getStr("status")); |
| | | // cardl.setIccid(item1.getStr("msisdn")); |
| | | // cardl.setSyll(item1.getInt("dataLimit") - item1.getInt("dataUsage")); |
| | | // |
| | | //// Date date = new Date(); |
| | | //// Date endDay=date2.parse(cardl.getEnddate());//ç»ææ¶é´ |
| | | //// Long starTime = date.getTime(); |
| | | //// Long endTime=endDay.getTime(); |
| | | //// Long num11=endTime-starTime;//æ¶é´æ³ç¸å·®çæ¯«ç§æ° |
| | | //// cardl.setRemainingdays(+num11/24/60/60/1000+"天"); |
| | | //// cardl.setUptime(date2.format(calendar.getTime())); |
| | | // this.cardService.proxyupXinXi(cardl); |
| | | // } |
| | | |
| | | System.out.println("循ç¯ç»æ,çå¾
宿¶å¨è§¦å忬¡è°ç¨"); |
| | | } |
| | | } |