Browse Source

获取第三方设备列表

master
刘力 3 years ago
parent
commit
6641954718
  1. 6
      APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java
  2. 12
      APIService/src/main/java/com/storeroom/service/ApiService.java
  3. 21
      APIService/src/main/java/com/storeroom/service/dto/DeviceAllDto.java
  4. 53
      APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java

6
APIService/src/main/java/com/storeroom/controller/TestApiServiceController.java

@ -23,4 +23,10 @@ public class TestApiServiceController {
public ApiResponse<Object> getToken() { public ApiResponse<Object> getToken() {
return ApiResponse.success(apiService.getToken()); return ApiResponse.success(apiService.getToken());
} }
@ApiOperation("获取所有设备")
@AnonymousGetMapping("list")
public ApiResponse<Object> getAllDevice() {
return ApiResponse.success(apiService.getDeviceAll());
}
} }

12
APIService/src/main/java/com/storeroom/service/ApiService.java

@ -1,5 +1,9 @@
package com.storeroom.service; package com.storeroom.service;
import com.storeroom.service.dto.DeviceAllDto;
import java.util.List;
public interface ApiService { public interface ApiService {
/** /**
@ -7,4 +11,12 @@ public interface ApiService {
* @return / * @return /
*/ */
String getToken(); String getToken();
/**
* 获取第三方所有设备
* @return /
*/
List<DeviceAllDto> getDeviceAll();
} }

21
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;
}

53
APIService/src/main/java/com/storeroom/service/impl/ApiServiceImpl.java

@ -1,16 +1,20 @@
package com.storeroom.service.impl; package com.storeroom.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.storeroom.exception.BaseException; import com.storeroom.exception.BaseException;
import com.storeroom.service.ApiService; import com.storeroom.service.ApiService;
import com.storeroom.service.dto.DeviceAllDto;
import com.storeroom.utils.FastjsonUtils; import com.storeroom.utils.FastjsonUtils;
import com.storeroom.utils.HttpUtils; import com.storeroom.utils.HttpUtils;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Service; 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 @Service
@ -22,14 +26,14 @@ public class ApiServiceImpl implements ApiService {
@Override @Override
public String getToken() { public String getToken() {
//根据code 换取access token
//获取第三方接口token
HashMap<String, String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
map.put("Content-type", "application/json"); map.put("Content-type", "application/json");
HttpResponse response = HttpUtils.doGet("http://jiton.8800.org:800", "/Api/Third/GetToken", "GET", map, null); HttpResponse response = HttpUtils.doGet("http://jiton.8800.org:800", "/Api/Third/GetToken", "GET", map, null);
if (response.getStatusLine().getStatusCode() == 200) { if (response.getStatusLine().getStatusCode() == 200) {
String s = EntityUtils.toString(response.getEntity()); String s = EntityUtils.toString(response.getEntity());
Map<String, Object> dateMap = FastjsonUtils.toJavaMap(s);
dateMap.forEach((k, v) -> {
Map<String, Object> dataMap = FastjsonUtils.toJavaMap(s);
dataMap.forEach((k, v) -> {
if (k.equals("Data")) { if (k.equals("Data")) {
Map<String, Object> Data = FastjsonUtils.toJavaMap(v.toString()); Map<String, Object> Data = FastjsonUtils.toJavaMap(v.toString());
access_token = Data.get("access_token").toString(); access_token = Data.get("access_token").toString();
@ -41,4 +45,43 @@ public class ApiServiceImpl implements ApiService {
} }
} }
@SneakyThrows
@Override
public List<DeviceAllDto> getDeviceAll() {
HashMap<String, String> map = new HashMap<>();
HashMap<String, String> 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<DeviceAllDto> deviceAllDtoList = new ArrayList<>();
String a = EntityUtils.toString(response.getEntity());
Map<String, Object> 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() + "");
}
}
} }
Loading…
Cancel
Save