diff --git a/APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java b/APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java index c301e7c..a8baae3 100644 --- a/APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java +++ b/APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java @@ -23,4 +23,10 @@ public class TestApiServiceController { public ApiResponse getToken() { return ApiResponse.success(apiService.getToken()); } + + @ApiOperation("获取所有设备") + @AnonymousGetMapping("list") + public ApiResponse getAllDevice() { + return ApiResponse.success(apiService.getDeviceAll()); + } } diff --git a/APIService/src/main/java/com/storeroom/service/ApiService.java b/APIService/src/main/java/com/storeroom/service/ApiService.java index 862b35d..49f1e28 100644 --- a/APIService/src/main/java/com/storeroom/service/ApiService.java +++ b/APIService/src/main/java/com/storeroom/service/ApiService.java @@ -1,5 +1,9 @@ package com.storeroom.service; +import com.storeroom.service.dto.DeviceAllDto; + +import java.util.List; + public interface ApiService { /** @@ -7,4 +11,12 @@ public interface ApiService { * @return / */ String getToken(); + + + /** + * 获取第三方所有设备 + * @return / + */ + List getDeviceAll(); + } diff --git a/APIService/src/main/java/com/storeroom/service/dto/DeviceAllDto.java b/APIService/src/main/java/com/storeroom/service/dto/DeviceAllDto.java new file mode 100644 index 0000000..c62e233 --- /dev/null +++ b/APIService/src/main/java/com/storeroom/service/dto/DeviceAllDto.java @@ -0,0 +1,21 @@ +package com.storeroom.service.dto; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + + +@Getter +@Setter +public class DeviceAllDto implements Serializable { + + private String DeviceId; + + private String DeviceName; + + private String CategoryName; + + private String AreaName; + +} diff --git a/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java b/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java index 17c1147..d625e1f 100644 --- a/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java +++ b/APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java @@ -1,16 +1,20 @@ package com.storeroom.service.impl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.storeroom.exception.BaseException; import com.storeroom.service.ApiService; +import com.storeroom.service.dto.DeviceAllDto; import com.storeroom.utils.FastjsonUtils; import com.storeroom.utils.HttpUtils; import lombok.SneakyThrows; import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; -import java.util.HashMap; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; @Service @@ -22,14 +26,14 @@ public class ApiServiceImpl implements ApiService { @Override public String getToken() { - //根据code 换取access token + //获取第三方接口token HashMap map = new HashMap<>(); map.put("Content-type", "application/json"); HttpResponse response = HttpUtils.doGet("http://jiton.8800.org:800", "/Api/Third/GetToken", "GET", map, null); if (response.getStatusLine().getStatusCode() == 200) { String s = EntityUtils.toString(response.getEntity()); - Map dateMap = FastjsonUtils.toJavaMap(s); - dateMap.forEach((k, v) -> { + Map dataMap = FastjsonUtils.toJavaMap(s); + dataMap.forEach((k, v) -> { if (k.equals("Data")) { Map Data = FastjsonUtils.toJavaMap(v.toString()); access_token = Data.get("access_token").toString(); @@ -41,4 +45,43 @@ public class ApiServiceImpl implements ApiService { } } + + @SneakyThrows + @Override + public List getDeviceAll() { + HashMap map = new HashMap<>(); + HashMap body = new HashMap<>(); + String token = getToken(); + map.put("Content-type", "application/json"); + map.put("Authorization", "Bearer" + token + ""); + body.put("keys", ""); + String s = FastjsonUtils.toJSONString(body); + HttpResponse response = HttpUtils.doPost("http://jiton.8800.org:800", "/Api/Third/GetDeviceList", "POST", map, null, s); + if (response.getStatusLine().getStatusCode() == 200) { + List deviceAllDtoList = new ArrayList<>(); + String a = EntityUtils.toString(response.getEntity()); + Map dataMap = FastjsonUtils.toJavaMap(a); + dataMap.forEach((k, v) -> { + if (k.equals("Data")) { + if (!ObjectUtils.isEmpty(v)) { + JSONArray jsonArray = (JSONArray) v; + for (int i = 0; i < jsonArray.size(); i++) { + DeviceAllDto deviceAllDto = new DeviceAllDto(); + JSONObject jsonObject = jsonArray.getJSONObject(i); + deviceAllDto.setDeviceId(jsonObject.get("device_id").toString()); + deviceAllDto.setDeviceName(jsonObject.get("device_name").toString()); + deviceAllDto.setCategoryName(jsonObject.get("category_name").toString()); + deviceAllDto.setAreaName(jsonObject.get("area_name").toString()); + deviceAllDtoList.add(deviceAllDto); + } + } else { + throw new BaseException("没有数据"); + } + } + }); + return deviceAllDtoList; + } else { + throw new BaseException("访问失败" + response.getStatusLine().getStatusCode() + ""); + } + } }