diff --git a/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/HttpHelper.java b/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/HttpHelper.java new file mode 100644 index 00000000..5a4fdc73 --- /dev/null +++ b/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/HttpHelper.java @@ -0,0 +1,140 @@ +package com.bonus.sgzb.common.core.utils; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.bonus.sgzb.common.core.constant.HttpStatus; +import com.bonus.sgzb.common.core.constant.UserConstants; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; + +import java.io.*; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +public class HttpHelper { + + public static String sendHttpPost(String url, String JSONBody) throws Exception { + + System.out.println("JSONBody-=========:" + JSONBody); + CloseableHttpClient httpClient = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(url); + httpPost.addHeader("Content-Type", "application/json"); + httpPost.setEntity(new StringEntity(JSONBody)); + CloseableHttpResponse response = httpClient.execute(httpPost); + HttpEntity entity = response.getEntity(); + String responseContent = EntityUtils.toString(entity, "UTF-8"); + response.close(); + httpClient.close(); + return responseContent; + } + + public static String doPost(String urlString,String param) { + HttpURLConnection connection = null; + InputStream is = null; + OutputStream os = null; + BufferedReader br = null; + String result = null; + try { + URL url = new URL(urlString); + // 通过远程url连接对象打开连接 + connection = (HttpURLConnection) url.openConnection(); + // 设置连接请求方式 + connection.setRequestMethod("POST"); + // 设置连接主机服务器超时时间:15000毫秒 + connection.setConnectTimeout(15000); + // 设置读取主机服务器返回数据超时时间:60000毫秒 + connection.setReadTimeout(60000); + + // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true + connection.setDoOutput(true); + // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无 + connection.setDoInput(true); + // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。 + connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0 + connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0"); + // 通过连接对象获取一个输出流 + os = connection.getOutputStream(); + // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的 + os.write(param.getBytes()); + // 通过连接对象获取一个输入流,向远程读取 + if (connection.getResponseCode() == 200) { + + is = connection.getInputStream(); + // 对输入流对象进行包装:charset根据工作项目组的要求来设置 + br = new BufferedReader(new InputStreamReader(is, "UTF-8")); + + StringBuffer sbf = new StringBuffer(); + String temp = null; + // 循环遍历一行一行读取数据 + while ((temp = br.readLine()) != null) { + sbf.append(temp); + sbf.append("\r\n"); + } + result = sbf.toString(); + } + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + // 关闭资源 + if (null != br) { + try { + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != os) { + try { + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != is) { + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + // 断开与远程地址url的连接 + connection.disconnect(); + } + return result; + } + + public static String getIotToken() { + Map map=new HashMap<>(); + String redisCode = null; + map.put("type", UserConstants.IOT_TYPE); + map.put("from",UserConstants.IOT_FROM); + map.put("username",UserConstants.IOT_USERNAME); + //采用md5加密 + map.put("password",UserConstants.IOT_PASSWORD); + String param = JSON.toJSONString(map); + String resultUser = HttpHelper.doPost(HttpStatus.LOGIN_URL,param); + if (resultUser == null){ + throw new RuntimeException("返回数据为空!!"); + } + JSONObject object = JSONObject.parseObject(resultUser); + if ("0".equals(object.getString("status"))){ + redisCode = object.getString("token"); + }else { + throw new RuntimeException("返回数据为空!!"); + } + return redisCode; + } + + +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/base/domain/vo/IotRecordVo.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/base/domain/vo/IotRecordVo.java new file mode 100644 index 00000000..a904d66b --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/base/domain/vo/IotRecordVo.java @@ -0,0 +1,50 @@ +package com.bonus.sgzb.base.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * @Author ma_sh + * @create 2024/7/11 15:55 + * @Description iot绑定记录返回vo + */ +@Data +public class IotRecordVo { + + /** iot设备ID */ + @ApiModelProperty(value = "iot设备ID") + private Long id; + + @ApiModelProperty(value = "iot设备id") + private Long iotId; + + @ApiModelProperty(value = "绑定类型id") + private Long typeId; + + @ApiModelProperty(value = "绑定类型名称") + private String typeName; + + @ApiModelProperty(value = "设备编码") + private String maCode; + + @ApiModelProperty(value = "绑定时间") + private String bindTime; + + /** 解绑时间 */ + @ApiModelProperty(value = "解绑时间") + private String unBindTime; + + /** iot设备类型 */ + @ApiModelProperty(value = "iot设备类型") + private String iotType; + + /** iot设备类型名称 */ + @ApiModelProperty(value = "iot设备类型名称") + private String iotTypeName; + + /** iot设备编码 */ + @ApiModelProperty(value = "iot设备编码") + private String iotCode; + +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/base/mapper/IotMachineMapper.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/base/mapper/IotMachineMapper.java new file mode 100644 index 00000000..0c46e466 --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/base/mapper/IotMachineMapper.java @@ -0,0 +1,24 @@ +package com.bonus.sgzb.base.mapper; + +import com.bonus.sgzb.base.domain.vo.IotRecordVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Author ma_sh + * @create 2024/7/4 16:28 + * iot设备管理mapper层 + */ +@Mapper +public interface IotMachineMapper { + + /** + * 查询设备类型 + * @return + */ + List selectList(@Param("maCode") String maCode); + + +} diff --git a/sgzb-modules/sgzb-base/src/main/resources/mapper/base/IotMachineMapper.xml b/sgzb-modules/sgzb-base/src/main/resources/mapper/base/IotMachineMapper.xml new file mode 100644 index 00000000..f47124b4 --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/resources/mapper/base/IotMachineMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/domain/IotLocationVo.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/domain/IotLocationVo.java new file mode 100644 index 00000000..84afef08 --- /dev/null +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/domain/IotLocationVo.java @@ -0,0 +1,43 @@ +package com.bonus.sgzb.material.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class IotLocationVo { + + /** iot设备ID */ + @ApiModelProperty(value = "iot设备ID") + private Long iotId; + + /** 经度 */ + @ApiModelProperty(value = "经度") + private BigDecimal callon; + + /** 经度 */ + @ApiModelProperty(value = "纬度") + private BigDecimal callat; + + /** 开始时间 */ + @ApiModelProperty(value = "开始时间") + private String beginTime; + + /** 结束时间 */ + @ApiModelProperty(value = "结束时间") + private String endTime; + + /** 详细地址 */ + @ApiModelProperty(value = "详细地址") + private String address; + + + /** 报警时间 */ + @ApiModelProperty(value = "报警时间") + private String startAlarmTime; + + /** 报警内容 */ + @ApiModelProperty(value = "报警内容") + private String startAlarm; +}