|
@@ -0,0 +1,74 @@
|
|
|
+package vip.xiaonuo.coldchain.modular.qp.util;
|
|
|
+
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import vip.xiaonuo.coldchain.modular.qp.config.QPConfigure;
|
|
|
+import vip.xiaonuo.coldchain.modular.qp.entity.Root;
|
|
|
+import vip.xiaonuo.coldchain.modular.qp.param.DataParam;
|
|
|
+
|
|
|
+import java.util.Base64;
|
|
|
+
|
|
|
+public class QPUtil {
|
|
|
+
|
|
|
+ private static final String appKey = QPConfigure.getAppKey();
|
|
|
+
|
|
|
+ private static final String appSecret = QPConfigure.getAppSecret();
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取accessToken
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String getAccessToken() {
|
|
|
+ String authorization = appKey + ":" + appSecret;
|
|
|
+ String authorizationBase64 = Base64.getEncoder().encodeToString(authorization.getBytes());
|
|
|
+ String body = HttpUtil
|
|
|
+ .createPost("https://oauth.cleargrass.com/oauth2/token")
|
|
|
+ .header("Content-Type", "application/x-www-form-urlencoded")
|
|
|
+ .header("Authorization", "Basic " + authorizationBase64)
|
|
|
+ .form("grant_type", "client_credentials")
|
|
|
+ .form("scope", "device_full_access")
|
|
|
+ .execute().body();
|
|
|
+ JSONObject jsonObject = JSON.parseObject(body);
|
|
|
+ return jsonObject.get("access_token").toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取设备列表
|
|
|
+ */
|
|
|
+ public static Root getDeviceList() {
|
|
|
+ String accessToken = getAccessToken();
|
|
|
+ String body = HttpUtil.createGet("https://apis.cleargrass.com/v1/apis/devices")
|
|
|
+ .header("Authorization", "Bearer " + accessToken)
|
|
|
+ .execute().body();
|
|
|
+ ObjectMapper objectMapper = new ObjectMapper();
|
|
|
+ Root root = null;
|
|
|
+ try {
|
|
|
+ root = objectMapper.readValue(body, Root.class);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return root;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取设备历史数据
|
|
|
+ */
|
|
|
+ public static Root getHistoryData(DataParam dataParam) {
|
|
|
+ String accessToken = getAccessToken();
|
|
|
+ String body = HttpUtil.createGet("https://apis.cleargrass.com/v1/apis/devices/data?timestamp="
|
|
|
+ + dataParam.getTimestamp() + "&mac=" + dataParam.getMac() + "&end_time="
|
|
|
+ + dataParam.getEnd_time() +"&start_time=" + dataParam.getStart_time())
|
|
|
+ .header("Authorization", "Bearer " + accessToken).execute().body();
|
|
|
+ ObjectMapper objectMapper = new ObjectMapper();
|
|
|
+ Root root = null;
|
|
|
+ try {
|
|
|
+ root = objectMapper.readValue(body, Root.class);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return root;
|
|
|
+ }
|
|
|
+}
|