Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package org.jetlinks.sdk.model.device.info;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import org.hswebframework.web.api.crud.entity.GenericTreeSortSupportEntity;
import org.hswebframework.web.api.crud.entity.RecordCreationEntity;

import java.util.List;

@Getter
@Setter
public class DeviceCategory extends GenericTreeSortSupportEntity<String> implements RecordCreationEntity {


@Schema(description = "id")
private String id;

@Schema(description = "标识")
private String key;

@Schema(description = "名称")
private String name;

@Schema(description = "说明")
private String description;

@Schema(description = "子节点")
private List<DeviceCategory> children;

@Schema(description = "物模型")
private String metadata;

@Schema(
description = "创建者ID(只读)"
, accessMode = Schema.AccessMode.READ_ONLY
)
private String creatorId;


@Schema(
description = "创建时间(只读)"
, accessMode = Schema.AccessMode.READ_ONLY
)
private Long createTime;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
package org.jetlinks.sdk.model.device.request;


import org.hswebframework.web.api.crud.entity.QueryParamEntity;
import org.jetlinks.sdk.model.PagerResult;
import org.jetlinks.sdk.model.SimpleApiRequest;
import org.jetlinks.sdk.model.device.info.DeviceCategory;
import org.springframework.core.ResolvableType;
import org.springframework.http.HttpMethod;
import org.springframework.web.util.UriComponentsBuilder;

import java.net.URI;
import java.util.List;

/**
* 设备产品分类相关请求构造
* @author wyj
* @since 2.1
*/

public class DeviceCategoryRequest {
/**
* 新增产品分类
* @param deviceCategory 产品分类
* @return
*/
public static SimpleApiRequest<DeviceCategory> addDeviceCategory(DeviceCategory deviceCategory){
return SimpleApiRequest
.<DeviceCategory>builder()
.post()
.uri("/device/category")
.body(deviceCategory)
.responseType(ResolvableType
.forClass(
DeviceCategory.class
))
.build();
}
/**
* 根据id删除产品分类
* @param categoryId 产品分类id
* @return
*/

public static SimpleApiRequest<DeviceCategory> deleteDeviceCategory(String categoryId){
URI uri = UriComponentsBuilder
.fromUriString("/device/category/{id}")
.build(categoryId);
return SimpleApiRequest
.<DeviceCategory>builder()
.method(HttpMethod.DELETE)
.uri(uri.toString())
.responseType(ResolvableType
.forClass(
DeviceCategory.class
))
.build();
}

/**
*
* @param categoryId 产品分类id
* @param deviceCategory 修改后的产品分类
* @return
*/

public static SimpleApiRequest<DeviceCategory> updateDeviceCategory(String categoryId, DeviceCategory deviceCategory){
URI uri = UriComponentsBuilder
.fromUriString("/device/category/{id}")
.build(categoryId);

return SimpleApiRequest
.<DeviceCategory>builder()
.method(HttpMethod.PUT)
.uri(uri.toString())
.body(deviceCategory)
.responseType(ResolvableType
.forClass(
Boolean.class
))
.build();
}
/**
*
* @param query 查询条件
* @return
*/
public static SimpleApiRequest<DeviceCategory> queryDeviceCategory(QueryParamEntity query){
return SimpleApiRequest
.<DeviceCategory>builder()
.post()
.uri("/device/category/_query")
.body(query)
.responseType(ResolvableType
.forClassWithGenerics(
PagerResult.class,
DeviceCategory.class
))
.build();
}

/**
* 获取全部分类
* @return
*/

public static SimpleApiRequest<DeviceCategory> getAllCategory(){
return SimpleApiRequest
.<DeviceCategory>builder()
.get()
.uri("/device/category")
.responseType(ResolvableType
.forClass(
List.class
))
.build();
}

/**
* 获取全部分类树结构
* @return
*/

public static SimpleApiRequest<DeviceCategory> getAllCategoryOfTree(QueryParamEntity queryParamEntity){
return SimpleApiRequest
.<DeviceCategory>builder()
.post()
.uri("/device/category/_tree")
.body(queryParamEntity)
.responseType(ResolvableType
.forClass(
List.class
))
.build();
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package org.jetlinks.sdk.model.device.request;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.hswebframework.web.api.crud.entity.QueryParamEntity;
import org.jetlinks.sdk.client.ApiClient;
import org.jetlinks.sdk.client.ClientConfig;
import org.jetlinks.sdk.client.WebApiClient;
import org.jetlinks.sdk.model.ApiResponse;
import org.jetlinks.sdk.model.device.info.DeviceCategory;
import org.junit.jupiter.api.Test;

public class DeviceCategoryRequestTest {
ClientConfig clientConfig = new ClientConfig(
"http://192.168.33.46:8844",
"w23y8dADCwPkRGnB",
"dH7eNKTNmca33YstE88HdYRz8x7RZiFt"
);
ApiClient client = new WebApiClient(clientConfig);

@Test
public void addDeviceCategoryTest(){
DeviceCategory deviceCategory = new DeviceCategory();
deviceCategory.setId("demo_id");
deviceCategory.setName("demo_name");
deviceCategory.setKey("demo_key");
deviceCategory.setSortIndex(1L);
ApiResponse<DeviceCategory> response = client
.request(DeviceCategoryRequest.addDeviceCategory(deviceCategory));
System.out.println(JSON.toJSONString(response, SerializerFeature.PrettyFormat));
}

@Test
public void deleteDeviceInstanceTest(){
String categoryId = "demo_id";
ApiResponse<DeviceCategory> request = client.
request(DeviceCategoryRequest.deleteDeviceCategory(categoryId));
System.out.println(JSON.toJSONString(request, SerializerFeature.PrettyFormat));
}


@Test
public void updateDeviceCategoryTest(){
DeviceCategory deviceCategory = new DeviceCategory();
String categoryId = "demo_id";
deviceCategory.setSortIndex(2L);
deviceCategory.setName("demo_name");
deviceCategory.setKey("demo_key");

ApiResponse<DeviceCategory> request = client
.request(DeviceCategoryRequest.updateDeviceCategory(categoryId, deviceCategory));
System.out.println(JSON.toJSONString(request, SerializerFeature.PrettyFormat));
}

@Test
public void queryDeviceCategoryTest(){
QueryParamEntity queryParamEntity = new QueryParamEntity();
queryParamEntity
.toQuery()
.where("sortIndex", "1")
.doPaging(0,100);
ApiResponse<DeviceCategory> request = client
.request(DeviceCategoryRequest.queryDeviceCategory(queryParamEntity));
System.out.println(JSON.toJSONString(request, SerializerFeature.PrettyFormat));
}

@Test
public void getAllCategoryTest(){
ApiResponse<DeviceCategory> request = client
.request(DeviceCategoryRequest.getAllCategory());
System.out.println(JSON.toJSONString(request, SerializerFeature.PrettyFormat));
}

@Test
public void getAllCategoryOfTreeTest(){
QueryParamEntity queryParamEntity = new QueryParamEntity();
queryParamEntity
.toQuery()
.where("sortIndex", 1)
.doPaging(0,100);
ApiResponse<DeviceCategory> request = client
.request(DeviceCategoryRequest.getAllCategoryOfTree(queryParamEntity));
System.out.println(JSON.toJSONString(request, SerializerFeature.PrettyFormat));
}


}