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,17 @@
package org.jetlinks.sdk.model.user.enums;

import org.springframework.util.StringUtils;

/**
* 用户类型定义.
*
* @author zhangji 2022/12/7
*/
public interface UserEntityType {

String getId();

String getName();


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.jetlinks.sdk.model.user.info;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
public class OrganizationInfo {

@Schema(description = "机构(部门ID)")
private String id;

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

@Schema(description = "编码")
private String code;

@Schema(description = "上级ID")
private String parentId;

@Schema(description = "序号")
private long sortIndex;

}
12 changes: 12 additions & 0 deletions src/main/java/org/jetlinks/sdk/model/user/info/RoleInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.jetlinks.sdk.model.user.info;

import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
public class RoleInfo {
private String id;
private String name;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.jetlinks.sdk.model.user.info;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import org.hswebframework.web.validator.CreateGroup;
import org.hswebframework.web.validator.UpdateGroup;
import org.hswebframework.web.validator.ValidatorUtils;
import org.springframework.util.StringUtils;

import javax.validation.constraints.NotNull;
import java.util.Set;

/**
* 创建用户请求,用于新建用户操作
*
* @author zhouhao
* @since 2.0
*/
@Getter
@Setter
public class SaveUserRequest {

@Schema(description = "用户基本信息")
@NotNull
private UserDetail user;

@Schema(description = "角色ID列表")
private Set<String> roleIdList;

@Schema(description = "机构ID列表")
private Set<String> orgIdList;

}
57 changes: 57 additions & 0 deletions src/main/java/org/jetlinks/sdk/model/user/info/UserDetail.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package org.jetlinks.sdk.model.user.info;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.jetlinks.sdk.model.EnumInfo;

import java.util.List;

@Getter
@Setter
@NoArgsConstructor
public class UserDetail {

@Schema(description = "用户ID")
private String id;

@Schema(description = "用户名")
private String username;

@Schema(hidden = true)
private String password;

@Schema(hidden = true)
private EnumInfo<String> type;

@Schema(description = "用户状态。1启用,0禁用")
private Byte status;

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

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

@Schema(description = "联系电话")
private String telephone;

@Schema(description = "头像图片地址")
private String avatar;

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

@Schema(description = "创建时间")
private long createTime;

@Schema(description = "角色信息")
private List<RoleInfo> roleList;

@Schema(description = "所在机构(部门)信息")
private List<OrganizationInfo> orgList;

private boolean tenantDisabled;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package org.jetlinks.sdk.model.user.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.user.info.SaveUserRequest;
import org.jetlinks.sdk.model.user.info.UserDetail;
import org.springframework.core.ResolvableType;
import org.springframework.http.HttpMethod;
import org.springframework.web.util.UriComponentsBuilder;

import java.net.URI;


/**
* 用户管理相关请求构造
* @author wyj
* @since 2.1
*/
public class UserManagementRequset {
/**
* 新增用户
* @param saveUserRequest 用户详情
* @return
*/
public static SimpleApiRequest<UserDetail> addUser(SaveUserRequest saveUserRequest){
return SimpleApiRequest
.<UserDetail>builder()
.post()
.uri("/user/detail/_create")
.body(saveUserRequest)
.responseType(ResolvableType
.forClass(
String.class
))
.build();
}

/**
* 分页获取用户详情
* @param queryParamEntity 查询体
* @return
*/
public static SimpleApiRequest<UserDetail> getUser(QueryParamEntity queryParamEntity){
return SimpleApiRequest
.<UserDetail>builder()
.post()
.uri("/user/detail/_query")
.body(queryParamEntity)
.responseType(ResolvableType
.forClassWithGenerics(
PagerResult.class,
UserDetail.class
))
.build();
}

/**
* 修改用户信息
* @param userId 用户id
* @param saveUserRequest 修改后的用户详情
* @return
*/

public static SimpleApiRequest<UserDetail> updateUser(String userId, SaveUserRequest saveUserRequest){
URI uri = UriComponentsBuilder
.fromUriString("/user/detail/{id}/_update")
.build(userId);

return SimpleApiRequest
.<UserDetail>builder()
.method(HttpMethod.PUT)
.uri(uri.toString())
.body(saveUserRequest)
.responseType(ResolvableType
.forClass(
String.class
))
.build();
}



}
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package org.jetlinks.sdk.model.user.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.user.info.RoleInfo;
import org.jetlinks.sdk.model.user.info.SaveUserRequest;
import org.jetlinks.sdk.model.user.info.UserDetail;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.List;


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


@Test
public void addUserTest(){
UserDetail userDetail = new UserDetail();
List<RoleInfo> roleInfoList = new ArrayList<>();
RoleInfo roleInfo = new RoleInfo();
roleInfo.setId("demo_id");
roleInfo.setName("demo_name");
roleInfoList.add(roleInfo);
userDetail.setRoleList(roleInfoList);
userDetail.setName("demo_name");
userDetail.setUsername("demo_username");
userDetail.setPassword("demo_passWord");
SaveUserRequest saveUserRequest = new SaveUserRequest();
saveUserRequest.setUser(userDetail);
ApiResponse<UserDetail> response = client
.request(UserManagementRequset.addUser(saveUserRequest));
System.out.println(JSON.toJSONString(response, SerializerFeature.PrettyFormat));
}

@Test
public void queryUserTest(){
QueryParamEntity queryParamEntity = new QueryParamEntity();
queryParamEntity
.toQuery()
.where("username", "demo_name")
.doPaging(0,100);
ApiResponse<UserDetail> response = client
.request(UserManagementRequset.getUser(queryParamEntity));
System.out.println(JSON.toJSONString(response, SerializerFeature.PrettyFormat));
}

@Test
public void updateUserTest(){
UserDetail userDetail = new UserDetail();
String userId = "demo_id";
List<RoleInfo> roleInfoList = new ArrayList<>();
RoleInfo roleInfo = new RoleInfo();
roleInfo.setId("demo_roleId");
roleInfo.setName("demo_roleName");
roleInfoList.add(roleInfo);
userDetail.setRoleList(roleInfoList);
userDetail.setName("demo_name");
userDetail.setUsername("demo_userName");
userDetail.setPassword("demo_passWord");
SaveUserRequest saveUserRequest = new SaveUserRequest();
saveUserRequest.setUser(userDetail);
ApiResponse<UserDetail> response = client
.request(UserManagementRequset.updateUser(userId,saveUserRequest));
System.out.println(JSON.toJSONString(response, SerializerFeature.PrettyFormat));
}
}