//
|
// Source code recreated from a .class file by IntelliJ IDEA
|
// (powered by FernFlower decompiler)
|
//
|
|
package com.flow.controller;
|
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.flow.mapper.CardMapper;
|
import com.flow.mapper.OperationLogMapper;
|
import com.flow.pojo.Card;
|
import com.flow.pojo.OperationLog;
|
import com.flow.pojo.TbFuwuqi;
|
import com.flow.service.CardService;
|
import com.flow.service.CompanyService;
|
import com.flow.service.OperationLogService;
|
import com.flow.util.ExcelUtils;
|
import com.flow.util.result;
|
import com.flow.util.resultutil;
|
import com.github.pagehelper.PageInfo;
|
|
import java.io.BufferedReader;
|
import java.io.IOException;
|
import java.io.InputStreamReader;
|
import java.io.OutputStream;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.net.HttpURLConnection;
|
import java.net.URL;
|
import java.nio.charset.StandardCharsets;
|
import java.text.DateFormat;
|
import java.text.DecimalFormat;
|
import java.text.SimpleDateFormat;
|
import java.time.temporal.ChronoUnit;
|
import java.util.*;
|
import javax.crypto.Mac;
|
import javax.crypto.spec.SecretKeySpec;
|
import javax.servlet.ServletOutputStream;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.apache.poi.hssf.usermodel.HSSFCell;
|
import org.apache.poi.hssf.usermodel.HSSFRow;
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.servlet.ModelAndView;
|
|
@RestController
|
@RequestMapping({"/hxzk"})
|
public class IndexController {
|
@Autowired
|
CardService cardService;
|
@Autowired
|
CompanyService companyService;
|
|
@Autowired
|
CardMapper cardMapper;
|
|
@Autowired
|
OperationLogMapper operationLogMapper;
|
|
@Autowired
|
OperationLogService operationLogService;
|
|
public IndexController() {
|
}
|
|
@GetMapping({"index"})
|
public ModelAndView index() throws Exception {
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.addObject("suoshu", this.companyService.findSuoShu());
|
modelAndView.setViewName("/page/index1.jsp");
|
return modelAndView;
|
}
|
|
@PostMapping({"FindCard"})
|
public result<List<Card>> FindCard(Integer page, Integer limit, String daoqi, String entry) throws Exception {
|
|
PageInfo<Card> cz = this.cardService.FindCarda(page, limit, daoqi, entry);
|
for (int i = 0; i < cz.getSize(); ++i) {
|
if (((Card) cz.getList().get(i)).getCompany() != null) {
|
// ((Card) cz.getList().get(i)).setZflow(((Card) cz.getList().get(i)).getZflow() / 1024);
|
// ((Card) cz.getList().get(i)).setSyflow(((Card) cz.getList().get(i)).getSyflow() / 1024);
|
// ((Card) cz.getList().get(i)).setSyll(((Card) cz.getList().get(i)).getZflow() - ((Card) cz.getList().get(i)).getSyflow());
|
|
if (((Card) cz.getList().get(i)).getBindid() == null || ((Card) cz.getList().get(i)).getBindid().equals("undefined")) {
|
((Card) cz.getList().get(i)).setBindid("未知");
|
}
|
SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd");
|
Date date = new Date();
|
if (cz.getList().get(i).getEnddate() != null) {
|
// if (cz.getList().get(i).getFlow() == null) {
|
// ((Card) cz.getList().get(i)).setFlow("12G/年");
|
// this.cardService.UpdateCard((Card) cz.getList().get(i));
|
// }
|
// if (cz.getList().get(i).getUnitprice() == null) {
|
// ((Card) cz.getList().get(i)).setUnitprice(80);
|
// this.cardService.UpdateCard((Card) cz.getList().get(i));
|
// }
|
// double twoDecimalPlaces = Double.parseDouble(String.format("%.2f", ((Card) cz.getList().get(i)).getUnitprice()));
|
// System.out.println(twoDecimalPlaces);
|
|
double num = Double.parseDouble(((Card) cz.getList().get(i)).getUnitprice().toString());
|
DecimalFormat df = new DecimalFormat("#.00");
|
String result = df.format(num);
|
// System.out.println(result);
|
((Card) cz.getList().get(i)).setUnitprice(Double.parseDouble(result));
|
Date endDay = date2.parse(cz.getList().get(i).getEnddate());//结束时间
|
Long starTime = date.getTime();
|
Long endTime = endDay.getTime();
|
Long num11 = endTime - starTime;//时间戳
|
if ((num11 / 24 / 60 / 60 / 1000) < 0) {
|
|
((Card) cz.getList().get(i)).setRemainingdays("0天");
|
|
} else {
|
((Card) cz.getList().get(i)).setRemainingdays(+num11 / 24 / 60 / 60 / 1000 + "天");
|
}
|
if (!((Card) cz.getList().get(i)).getRemainingdays().equals("0天") || !((Card) cz.getList().get(i)).getRemainingdays().equals(+num11 / 24 / 60 / 60 / 1000 + "天")) {
|
this.cardService.UpdateCard((Card) cz.getList().get(i));
|
}
|
}
|
}
|
}
|
|
return resultutil.returnSuccess(cz.getTotal(), cz.getList());
|
}
|
|
@PostMapping({"chaZi"})
|
public String chaZi(String Zong) throws Exception {
|
return this.companyService.chaZi(Zong);
|
}
|
|
@PostMapping({"FindCardZi"})
|
public result<List<Card>> FindCardZi(Card card, Integer page, Integer limit, String daoqi) throws Exception {
|
PageInfo<Card> cz = this.cardService.FindCardaZi(card, page, limit, daoqi);
|
for (int i = 0; i < cz.getSize(); ++i) {
|
if (((Card) cz.getList().get(i)).getCompany() != null) {
|
// ((Card) cz.getList().get(i)).setZflow(((Card) cz.getList().get(i)).getZflow() / 1024);
|
// ((Card) cz.getList().get(i)).setSyflow(((Card) cz.getList().get(i)).getSyflow() / 1024);
|
// ((Card) cz.getList().get(i)).setSyll(((Card) cz.getList().get(i)).getZflow() - ((Card) cz.getList().get(i)).getSyflow());
|
SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd");
|
Date date = new Date();
|
if (cz.getList().get(i).getEnddate() != null) {
|
Date endDay = date2.parse(cz.getList().get(i).getEnddate());//结束时间
|
Long starTime = date.getTime();
|
Long endTime = endDay.getTime();
|
Long num11 = endTime - starTime;//时间戳
|
if ((num11 / 24 / 60 / 60 / 1000) < 0) {
|
((Card) cz.getList().get(i)).setRemainingdays("0天");
|
} else {
|
((Card) cz.getList().get(i)).setRemainingdays(+num11 / 24 / 60 / 60 / 1000 + "天");
|
}
|
if (!((Card) cz.getList().get(i)).getRemainingdays().equals("0天") || !((Card) cz.getList().get(i)).getRemainingdays().equals(+num11 / 24 / 60 / 60 / 1000 + "天")) {
|
this.cardService.UpdateCard((Card) cz.getList().get(i));
|
}
|
}
|
}
|
}
|
return resultutil.returnSuccess(cz.getTotal(), cz.getList());
|
}
|
|
@PostMapping({"DeleteCard"})
|
public int DeleteCard(String num, String caozuoname) {
|
|
return this.cardService.DeleteCard(num, caozuoname);
|
}
|
|
@PostMapping({"Update"})
|
public ModelAndView UpdateCard(Card card) {
|
this.cardService.UpdateCard(card);
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("/page/index1.jsp");
|
return modelAndView;
|
}
|
|
@PostMapping({"UpdateChong"})
|
public ModelAndView UpdateChong(Card card) {
|
card.setCardnumber(card.getCardnumber().replaceAll(" ", ""));
|
this.cardService.UpdateCardChong(card);
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("cardnumber", card.getCardnumber());
|
Card tbFuwuqi1 = cardMapper.selectOne(queryWrapper);
|
OperationLog operationLog = new OperationLog();
|
operationLog.setCaozuotype("修改");
|
operationLog.setCaozuocontent("修改卡号:" + tbFuwuqi1.getCardnumber());
|
// operationLogMapper.addOperationLog(operationLog);
|
operationLog.setCaozuoname(card.getCaozuoname());
|
Date date = new Date();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
operationLog.setCaozuodate(formatter.format(date));
|
operationLogMapper.insert(operationLog);
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("/page/index1.jsp");
|
modelAndView.addObject("operatornum", 2);
|
return modelAndView;
|
}
|
|
@PostMapping({"updateBatchById"})
|
@Transactional(rollbackFor = Exception.class)
|
public ModelAndView updateBatchById(Card card) {
|
this.cardService.updateBatchById(card);
|
OperationLog operationLog = new OperationLog();
|
operationLog.setCaozuoname(card.getCaozuoname());
|
operationLog.setCaozuotype("修改");
|
operationLog.setCaozuocontent("修改卡号:" + card.getCardnumber());
|
Date date = new Date();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
operationLog.setCaozuodate(formatter.format(date));
|
operationLogMapper.insert(operationLog);
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("/page/index1.jsp");
|
modelAndView.addObject("operatornum", 2);
|
return modelAndView;
|
}
|
|
/**
|
* 导出excel
|
*/
|
@RequestMapping("/excel")
|
// @IgnoreAuth
|
public void exportToExcel(HttpServletResponse response, Card card) throws IOException {
|
// 获取需要导出的数据
|
List<Card> dataList = this.cardService.FindCard();
|
|
// 创建Excel文件
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
HSSFSheet sheet = workbook.createSheet("卡片管理表");
|
|
// 创建表头
|
HSSFRow headerRow = sheet.createRow(0);
|
String[] headers = {"所属公司", "卡号", "状态", "流量", "剩余天数", "开始日期", "运营商", "单价", "绑定设备", "结束日期", "录入日期", "最近充值日期", "充值金额", "备注"}; // 根据你的数据调整列名
|
for (int i = 0; i < headers.length; i++) {
|
HSSFCell headerCell = headerRow.createCell(i);
|
headerCell.setCellValue(headers[i]);
|
}
|
|
// 填充数据
|
for (int i = 0; i < dataList.size(); i++) {
|
HSSFRow dataRow = sheet.createRow(i + 1);
|
Card data = dataList.get(i);
|
|
dataRow.createCell(0).setCellValue(data.getCompany()); // 假设YourData有getField1()方法
|
dataRow.createCell(1).setCellValue(data.getCardnumber()); // 假设YourData有getField2()方法
|
dataRow.createCell(2).setCellValue(data.getStatus()); // 假设YourData有getField3()方法
|
dataRow.createCell(3).setCellValue(data.getFlow()); // 假设YourData有getField3()方法
|
dataRow.createCell(4).setCellValue(data.getRemainingdays()); // 假设YourData有getField3()方法
|
dataRow.createCell(5).setCellValue(data.getCarddate()); // 假设YourData有getField3()方法
|
dataRow.createCell(6).setCellValue(data.getOperator()); // 假设YourData有getField3()方法
|
dataRow.createCell(7).setCellValue(data.getUnitprice()); // 假设YourData有getField3()方法
|
dataRow.createCell(8).setCellValue(data.getBindid()); // 假设YourData有getField3()方法
|
dataRow.createCell(9).setCellValue(data.getEnddate()); // 假设YourData有getField3()方法
|
dataRow.createCell(10).setCellValue(data.getEnterdate()); // 假设YourData有getField3()方法
|
dataRow.createCell(11).setCellValue(data.getRechargedate()); // 假设YourData有getField3()方法
|
dataRow.createCell(12).setCellValue(data.getRechargemoney()); // 假设YourData有getField3()方法
|
dataRow.createCell(13).setCellValue(data.getNotes()); // 假设YourData有getField3()方法
|
// 根据实际情况填充其他字段
|
}
|
|
// 设置响应类型和内容处置
|
response.setContentType("application/vnd.ms-excel");
|
// response.setHeader("Content-Disposition", "attachment; filename=学生评教数据导出表.xls");
|
response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode("卡片管理表.xls", "UTF-8"));
|
|
|
// 将Excel写入响应输出流
|
try (ServletOutputStream outputStream = response.getOutputStream()) {
|
workbook.write(outputStream);
|
}
|
|
// 关闭工作簿
|
// workbook.close();
|
}
|
|
@PostMapping({"addCard"})
|
public ModelAndView addCard(Card card) throws Exception {
|
String[] str = card.getCardnumber().replaceAll(" ", "").split(";");
|
String[] str1 = card.getBindid().split(";");
|
System.out.println(card.getEnddate());
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("/page/index1.jsp");
|
modelAndView.addObject("suoshu", this.companyService.findSuoShu());
|
int i;
|
Card card1;
|
if (str.length > 1 && str1.length > 1) {
|
for (i = 0; i < str.length; ++i) {
|
card1 = new Card();
|
card1.setCompany(card.getCompany());
|
card1.setCardnumber(str[i]);
|
card1.setCarddate(card.getCarddate());
|
card1.setOperator(card.getOperator());
|
card1.setFlow(card.getFlow());
|
card1.setUnitprice(card.getUnitprice());
|
card1.setBindid(str1[i]);
|
card1.setLocation(card.getLocation());
|
card1.setNotes(card.getNotes());
|
card1.setEnterdate(card.getEnddate());
|
card1.setEnddate(card.getEnddate());
|
card1.setEntryclerk(card.getEntryclerk());
|
this.cardService.addCard(card1);
|
}
|
} else if (str.length > 1 && str1[0] == "") {
|
for (i = 0; i < str.length; ++i) {
|
card1 = new Card();
|
card1.setCompany(card.getCompany());
|
card1.setCardnumber(str[i]);
|
card1.setCarddate(card.getCarddate());
|
card1.setOperator(card.getOperator());
|
card1.setFlow(card.getFlow());
|
card1.setUnitprice(card.getUnitprice());
|
card1.setBindid("");
|
card1.setLocation(card.getLocation());
|
card1.setNotes(card.getNotes());
|
card1.setEnterdate(card.getEnddate());
|
card1.setEnddate(card.getEnddate());
|
card1.setEntryclerk(card.getEntryclerk());
|
this.cardService.addCard(card1);
|
}
|
} else if (str.length > 1 && str1.length == 1) {
|
for (i = 0; i < str.length; ++i) {
|
card1 = new Card();
|
card1.setCompany(card.getCompany());
|
card1.setCardnumber(str[i]);
|
card1.setCarddate(card.getCarddate());
|
card1.setOperator(card.getOperator());
|
card1.setFlow(card.getFlow());
|
card1.setUnitprice(card.getUnitprice());
|
card1.setBindid(str1[i]);
|
card1.setLocation(card.getLocation());
|
card1.setNotes(card.getNotes());
|
card1.setEnterdate(card.getEnddate());
|
card1.setEnddate(card.getEnddate());
|
card1.setEntryclerk(card.getEntryclerk());
|
this.cardService.addCard(card1);
|
}
|
} else {
|
if (card.getCardnumber() != null && card.getCardnumber() != "") {
|
card.setCompany(card.getCompany());
|
this.cardService.addCard(card);
|
}
|
|
}
|
|
return modelAndView;
|
}
|
|
@PostMapping({"tableSearch"})
|
public result<List<Card>> tableSearch(Card card, int page, int limit) throws Exception {
|
PageInfo<Card> cz = this.cardService.tableSearch(card, page, limit);
|
|
for (int i = 0; i < cz.getSize(); ++i) {
|
if (((Card) cz.getList().get(i)).getCompany().equals("华星智控")) {
|
((Card) cz.getList().get(i)).setCompany("北京华星北斗智控技术有限公司");
|
}
|
// ((Card) cz.getList().get(i)).setZflow(((Card) cz.getList().get(i)).getZflow() / 1024);
|
// ((Card) cz.getList().get(i)).setSyflow(((Card) cz.getList().get(i)).getSyflow() / 1024);
|
// ((Card) cz.getList().get(i)).setSyll(((Card) cz.getList().get(i)).getSyll() / 1024);
|
SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd");
|
Date date = new Date();
|
System.out.println(cz.getList().get(i).getEnddate());
|
|
if (cz.getList().get(i) != null) {
|
if (cz.getList().get(i).getEnddate() != null && !Objects.equals(cz.getList().get(i).getEnddate(), "")) {
|
Date endDay = date2.parse(cz.getList().get(i).getEnddate());//结束时间
|
Long starTime = date.getTime();
|
Long endTime = endDay.getTime();
|
Long num11 = endTime - starTime;//时间戳
|
if ((num11 / 24 / 60 / 60 / 1000) < 0) {
|
((Card) cz.getList().get(i)).setRemainingdays("0天");
|
} else {
|
((Card) cz.getList().get(i)).setRemainingdays(+num11 / 24 / 60 / 60 / 1000 + "天");
|
System.out.println(num11 / 24 / 60 / 60 / 1000 + "天");
|
}
|
if (!((Card) cz.getList().get(i)).getRemainingdays().equals("0天") || !((Card) cz.getList().get(i)).getRemainingdays().equals(+num11 / 24 / 60 / 60 / 1000 + "天")) {
|
this.cardService.UpdateCard((Card) cz.getList().get(i));
|
}
|
}
|
}
|
|
|
}
|
|
return resultutil.returnSuccess(cz.getTotal(), cz.getList());
|
}
|
|
@GetMapping({"chawu"})
|
public List chaWu() {
|
return this.cardService.chaWu();
|
}
|
|
@PostMapping({"chawu1"})
|
public List chaWu1(String qb) throws Exception {
|
return this.cardService.chaWu1(qb);
|
}
|
|
@GetMapping({"proxyCardList"})
|
public void proxyCardList() throws Exception {
|
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=1";
|
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");
|
|
for (int i = 0; i < list.size(); ++i) {
|
JSONObject item = list.getJSONObject(i);
|
String msisdn = item.getStr("msisdn");
|
String iccid = item.getStr("iccid");
|
String imsi = item.getStr("imsi");
|
System.out.println("msisdn: " + msisdn + ", iccid: " + iccid + ", imsi: " + imsi);
|
}
|
|
}
|
|
@PostMapping({"proxyCardcompanyUp"})
|
public void proxyCardcompanyUp(String card, String name) throws Exception {
|
this.cardService.proxyCardcompanyUp(card, name);
|
}
|
|
@PostMapping({"proxyfindCard"})
|
public List proxyfindCard() {
|
return this.cardService.proxyfindCard();
|
}
|
|
@PostMapping({"proxyupXinXi"})
|
public int proxyupXinXi(Card card) {
|
return this.cardService.proxyupXinXi(card);
|
}
|
|
@PostMapping({"ifCard"})
|
public Card ifCard(Card card) {
|
return this.cardService.ifCard(card);
|
}
|
|
@GetMapping({"getcardinfo"})
|
public JSONObject getcardinfo(Integer id) throws Exception {
|
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("num", id);
|
Card card = cardMapper.selectOne(queryWrapper);
|
System.out.println();
|
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/detail/query?cNo=" + card.getCardnumber();
|
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");
|
if (code!=0){
|
|
}else{
|
result.set("eStatus", this.getEquipmentstatus(id));
|
result.set("oStatus", this.getcardonline(id));
|
}
|
|
return jsonObject;
|
}
|
|
public String getcardonline(Integer id) throws Exception {
|
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("num", id);
|
Card card = cardMapper.selectOne(queryWrapper);
|
System.out.println();
|
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/online/status/query?cNo=" + card.getCardnumber();
|
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");
|
|
if (code!=0){
|
return "";
|
}else{
|
return result.get("status").toString();
|
}
|
}
|
|
|
public String getEquipmentstatus(Integer id) throws Exception {
|
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("num", id);
|
Card card = cardMapper.selectOne(queryWrapper);
|
System.out.println();
|
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/device/status/query?cNo=" + card.getCardnumber();
|
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");
|
if (code!=0){
|
return "";
|
}else{
|
return result.get("status").toString();
|
}
|
|
}
|
|
@PostMapping({"rebind"})
|
public JSONObject rebind(String iccid,Integer bindType) throws Exception {
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("num", iccid);
|
Card card = cardMapper.selectOne(queryWrapper);
|
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/rebind";
|
URL url = new URL(targetUrl);
|
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
connection.setRequestMethod("POST");
|
connection.setDoOutput(true);
|
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);
|
|
// 构造请求体
|
JSONObject requestBody = new JSONObject();
|
requestBody.put("iccid",card.getCardnumber() );
|
requestBody.put("bindType", bindType);
|
|
// 将请求体写入输出流
|
OutputStream os = connection.getOutputStream();
|
os.write(requestBody.toString().getBytes("UTF-8"));
|
os.flush();
|
os.close();
|
|
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");
|
|
// for (int i = 0; i < list.size(); ++i) {
|
// JSONObject item = list.getJSONObject(i);
|
// String msisdn = item.getStr("msisdn");
|
// String iccid = item.getStr("iccid");
|
// String imsi = item.getStr("imsi");
|
// System.out.println("msisdn: " + msisdn + ", iccid: " + iccid + ", imsi: " + imsi);
|
// }
|
// if (code!=0){
|
// return message;
|
// }else{
|
return jsonObject;
|
// }
|
|
}
|
|
|
@GetMapping({"conversioncard"})
|
public JSONObject conversioncard(String id) throws Exception {
|
|
|
System.out.println();
|
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/detail/query?cNo=" + id;
|
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");
|
|
|
return jsonObject;
|
}
|
}
|