Add Team Interface

This commit is contained in:
JiaJu Zhuang
2023-07-30 17:44:22 +08:00
parent 0b6f43ea20
commit 2ce10c89cf
50 changed files with 1468 additions and 166 deletions

View File

@ -22,6 +22,10 @@
<groupId>ai.chat2db</groupId>
<artifactId>chat2db-server-domain-api</artifactId>
</dependency>
<dependency>
<groupId>ai.chat2db</groupId>
<artifactId>chat2db-server-common-api</artifactId>
</dependency>
<dependency>
<groupId>ai.chat2db</groupId>
<artifactId>chat2db-server-domain-core</artifactId>

View File

@ -0,0 +1,41 @@
package ai.chat2db.server.admin.api.controller.common;
import ai.chat2db.server.admin.api.controller.common.request.TeamUserPageQueryRequest;
import ai.chat2db.server.admin.api.controller.common.vo.TeamUserListVO;
import ai.chat2db.server.admin.api.controller.datasource.converter.DataSourceAdminConverter;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Some general data queries
*
* @author Jiaju Zhuang
*/
@RequestMapping("/api/admin/common")
@RestController
public class CommonController {
@Resource
private DataSourceService dataSourceService;
@Resource
private DataSourceAdminConverter dataSourceAdminConverter;
/**
* Fuzzy query of users or teams
*
* @param request
* @return
* @version 2.1.0
*/
@GetMapping("/team-user/list")
public WebPageResult<TeamUserListVO> teamUserList(@Valid TeamUserPageQueryRequest request) {
return null;
}
}

View File

@ -1,16 +1,16 @@
package ai.chat2db.server.admin.api.controller.datasource.request;
package ai.chat2db.server.admin.api.controller.common.request;
import ai.chat2db.server.tools.base.wrapper.request.PageQueryRequest;
import lombok.Data;
/**
* Pagination query
* Common pagination query
*
* @author Jiaju Zhuang
*/
@Data
public class DataSourcePageQueryRequest extends PageQueryRequest {
public class CommonPageQueryRequest extends PageQueryRequest {
/**
* searchKey

View File

@ -0,0 +1,27 @@
package ai.chat2db.server.admin.api.controller.common.request;
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
import ai.chat2db.server.tools.base.wrapper.request.PageQueryRequest;
import lombok.Data;
/**
* Common pagination query
*
* @author Jiaju Zhuang
*/
@Data
public class TeamUserPageQueryRequest extends PageQueryRequest {
/**
* 授权类型
*
* @see AccessObjectTypeEnum
*/
private String type;
/**
* searchKey
*/
private String searchKey;
}

View File

@ -0,0 +1,50 @@
package ai.chat2db.server.admin.api.controller.common.vo;
import java.io.Serial;
import java.io.Serializable;
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
import ai.chat2db.server.tools.base.constant.EasyToolsConstant;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* DataSource Access Object
* It could be a user or a team
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class TeamUserListVO implements Serializable {
@Serial
private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID;
/**
* 授权id,根据类型区分是用户还是团队
*/
private Long id;
/**
* 授权类型
*
* @see AccessObjectTypeEnum
*/
private String type;
/**
* The name of the code that belongs to the authorization type, such as user account, team code
*/
private String code;
/**
* Code that belongs to the authorization type, such as user name, team name
*/
private String name;
}

View File

@ -2,16 +2,11 @@
package ai.chat2db.server.admin.api.controller.datasource;
import ai.chat2db.server.admin.api.controller.datasource.converter.DataSourceAdminConverter;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCloneRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCreateRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourcePageQueryRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceUpdateRequest;
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourcePageQueryVO;
import ai.chat2db.server.domain.api.param.DataSourceCreateParam;
import ai.chat2db.server.domain.api.param.DataSourceUpdateParam;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceAccessBatchCreateRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceAccessPageQueryRequest;
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourceAccessPageQueryVO;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
@ -45,46 +40,20 @@ public class DataSourceAccessController {
* @version 2.1.0
*/
@GetMapping("/page")
public WebPageResult<DataSourcePageQueryVO> page(@Valid DataSourcePageQueryRequest request) {
return dataSourceService.queryPage(dataSourceAdminConverter.request2param(request), null)
.mapToWeb(dataSourceAdminConverter::dto2vo);
public WebPageResult<DataSourceAccessPageQueryVO> page(@Valid DataSourceAccessPageQueryRequest request) {
return null;
}
/**
* create
* batch
*
* @param request
* @return
* @version 2.1.0
*/
@PostMapping("/create")
public DataResult<Long> create(@RequestBody DataSourceCreateRequest request) {
DataSourceCreateParam param = dataSourceAdminConverter.createReq2param(request);
return dataSourceService.create(param);
}
/**
* update
*
* @param request
* @return
* @version 2.1.0
*/
@PostMapping("/update")
public ActionResult update(@RequestBody DataSourceUpdateRequest request) {
DataSourceUpdateParam param = dataSourceAdminConverter.updateReq2param(request);
return dataSourceService.update(param);
}
/**
* clone
*
* @param request
* @return
*/
@PostMapping("/clone")
public DataResult<Long> clone(@RequestBody DataSourceCloneRequest request) {
return dataSourceService.copyById(request.getId());
@PostMapping("/batch-create")
public ActionResult batchCreate(@RequestBody DataSourceAccessBatchCreateRequest request) {
return null;
}
/**
@ -95,7 +64,7 @@ public class DataSourceAccessController {
*/
@DeleteMapping("/{id}")
public ActionResult delete(@PathVariable Long id) {
return dataSourceService.delete(id);
return null;
}
}

View File

@ -1,10 +1,10 @@
package ai.chat2db.server.admin.api.controller.datasource;
import ai.chat2db.server.admin.api.controller.common.request.CommonPageQueryRequest;
import ai.chat2db.server.admin.api.controller.datasource.converter.DataSourceAdminConverter;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCloneRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCreateRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourcePageQueryRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceUpdateRequest;
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourcePageQueryVO;
import ai.chat2db.server.domain.api.param.DataSourceCreateParam;
@ -45,7 +45,7 @@ public class DataSourceController {
* @version 2.1.0
*/
@GetMapping("/page")
public WebPageResult<DataSourcePageQueryVO> page(@Valid DataSourcePageQueryRequest request) {
public WebPageResult<DataSourcePageQueryVO> page(@Valid CommonPageQueryRequest request) {
return dataSourceService.queryPage(dataSourceAdminConverter.request2param(request), null)
.mapToWeb(dataSourceAdminConverter::dto2vo);
}

View File

@ -1,7 +1,7 @@
package ai.chat2db.server.admin.api.controller.datasource.converter;
import ai.chat2db.server.admin.api.controller.common.request.CommonPageQueryRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCreateRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourcePageQueryRequest;
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceUpdateRequest;
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourcePageQueryVO;
import ai.chat2db.server.domain.api.model.DataSource;
@ -26,7 +26,15 @@ public abstract class DataSourceAdminConverter {
* @param request
* @return
*/
public abstract DataSourcePageQueryParam request2param(DataSourcePageQueryRequest request);
public abstract DataSourcePageQueryParam request2param(CommonPageQueryRequest request);
/**
* conversion
*
* @param request
* @return
*/
public abstract DataSourcePageQueryParam request2paramAccess(CommonPageQueryRequest request);
/**
* conversion

View File

@ -0,0 +1,35 @@
package ai.chat2db.server.admin.api.controller.datasource.request;
import java.util.List;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* create
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DataSourceAccessBatchCreateRequest {
/**
* 数据源id
*/
@NotNull
private Long dataSourceId;
/**
* DataSource Access Object
*/
@NotNull
@NotEmpty
private List<DataSourceAccessObjectRequest> accessObjectList;
}

View File

@ -0,0 +1,41 @@
package ai.chat2db.server.admin.api.controller.datasource.request;
import java.io.Serial;
import java.io.Serializable;
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
import ai.chat2db.server.tools.base.constant.EasyToolsConstant;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* DataSource Access Object
* It could be a user or a team
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DataSourceAccessObjectRequest implements Serializable {
@Serial
private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID;
/**
* 授权id,根据类型区分是用户还是团队
*/
private Long id;
/**
* 授权类型
*
* @see AccessObjectTypeEnum
*/
private String type;
}

View File

@ -0,0 +1,26 @@
package ai.chat2db.server.admin.api.controller.datasource.request;
import ai.chat2db.server.tools.base.wrapper.request.PageQueryRequest;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* Common pagination query
*
* @author Jiaju Zhuang
*/
@Data
public class DataSourceAccessPageQueryRequest extends PageQueryRequest {
/**
* 数据源id
*/
@NotNull
private Long dataSourceId;
/**
* searchKey
*/
private String searchKey;
}

View File

@ -0,0 +1,50 @@
package ai.chat2db.server.admin.api.controller.datasource.vo;
import java.io.Serial;
import java.io.Serializable;
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
import ai.chat2db.server.tools.base.constant.EasyToolsConstant;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* DataSource Access Object
* It could be a user or a team
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DataSourceAccessObjectVO implements Serializable {
@Serial
private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID;
/**
* 授权id,根据类型区分是用户还是团队
*/
private Long id;
/**
* 授权类型
*
* @see AccessObjectTypeEnum
*/
private String type;
/**
* The name of the code that belongs to the authorization type, such as user account, team code
*/
private String code;
/**
* Code that belongs to the authorization type, such as user name, team name
*/
private String name;
}

View File

@ -1,6 +1,8 @@
package ai.chat2db.server.admin.api.controller.datasource.vo;
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
@ -12,17 +14,27 @@ import lombok.Data;
public class DataSourceAccessPageQueryVO {
/**
* 主键id
* 主键
*/
@NotNull
private Long id;
/**
* 授权类型
*
* @see AccessObjectTypeEnum
*/
@NotNull
private String accessObjectType;
/**
* 连接别名
* 授权id,根据类型区分是用户还是团队
*/
private String alias;
@NotNull
private Long accessObjectId;
/**
* 连接地址
* 授权对象
*/
private String url;
@NotNull
private DataSourceAccessObjectVO accessObject;
}

View File

@ -1,6 +1,7 @@
package ai.chat2db.server.admin.api.controller.datasource.vo;
import ai.chat2db.server.common.api.controller.vo.EnvironmentVO;
import lombok.Data;
/**
@ -25,4 +26,14 @@ public class DataSourcePageQueryVO {
* 连接地址
*/
private String url;
/**
* 环境id
*/
private Long environmentId;
/**
* 环境
*/
private EnvironmentVO environment;
}

View File

@ -0,0 +1,70 @@
package ai.chat2db.server.admin.api.controller.user;
import ai.chat2db.server.admin.api.controller.user.converter.DataSourceAdminConverter;
import ai.chat2db.server.admin.api.controller.user.request.DataSourceAccessBatchCreateRequest;
import ai.chat2db.server.admin.api.controller.user.request.DataSourceAccessPageQueryRequest;
import ai.chat2db.server.admin.api.controller.user.vo.DataSourceAccessPageQueryVO;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Data Source Access Management
*
* @author Jiaju Zhuang
*/
@RequestMapping("/api/admin/data/source/access")
@RestController
public class DataSourceAccessController {
@Resource
private DataSourceService dataSourceService;
@Resource
private DataSourceAdminConverter dataSourceAdminConverter;
/**
* Pagination query
*
* @param request
* @return
* @version 2.1.0
*/
@GetMapping("/page")
public WebPageResult<DataSourceAccessPageQueryVO> page(@Valid DataSourceAccessPageQueryRequest request) {
return null;
}
/**
* batch
*
* @param request
* @return
* @version 2.1.0
*/
@PostMapping("/batch-create")
public ActionResult batchCreate(@RequestBody DataSourceAccessBatchCreateRequest request) {
return null;
}
/**
* delete
*
* @param id
* @return
*/
@DeleteMapping("/{id}")
public ActionResult delete(@PathVariable Long id) {
return null;
}
}

View File

@ -0,0 +1,99 @@
package ai.chat2db.server.admin.api.controller.user;
import ai.chat2db.server.admin.api.controller.common.request.CommonPageQueryRequest;
import ai.chat2db.server.admin.api.controller.user.converter.DataSourceAdminConverter;
import ai.chat2db.server.admin.api.controller.user.request.DataSourceCloneRequest;
import ai.chat2db.server.admin.api.controller.user.request.DataSourceUpdateRequest;
import ai.chat2db.server.admin.api.controller.user.request.UserCreateRequest;
import ai.chat2db.server.admin.api.controller.user.vo.UserPageQueryVO;
import ai.chat2db.server.domain.api.param.DataSourceCreateParam;
import ai.chat2db.server.domain.api.param.DataSourceUpdateParam;
import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* User Management
*
* @author Jiaju Zhuang
*/
@RequestMapping("/api/admin/user")
@RestController
public class UserController {
@Resource
private DataSourceService dataSourceService;
@Resource
private DataSourceAdminConverter dataSourceAdminConverter;
/**
* Pagination query
*
* @param request
* @return
* @version 2.1.0
*/
@GetMapping("/page")
public WebPageResult<UserPageQueryVO> page(@Valid CommonPageQueryRequest request) {
return null;
}
/**
* create
*
* @param request
* @return
* @version 2.1.0
*/
@PostMapping("/create")
public DataResult<Long> create(@RequestBody UserCreateRequest request) {
DataSourceCreateParam param = dataSourceAdminConverter.createReq2param(request);
return dataSourceService.create(param);
}
/**
* update
*
* @param request
* @return
* @version 2.1.0
*/
@PostMapping("/update")
public ActionResult update(@RequestBody DataSourceUpdateRequest request) {
DataSourceUpdateParam param = dataSourceAdminConverter.updateReq2param(request);
return dataSourceService.update(param);
}
/**
* clone
*
* @param request
* @return
*/
@PostMapping("/clone")
public DataResult<Long> clone(@RequestBody DataSourceCloneRequest request) {
return dataSourceService.copyById(request.getId());
}
/**
* delete
*
* @param id
* @return
*/
@DeleteMapping("/{id}")
public ActionResult delete(@PathVariable Long id) {
return dataSourceService.delete(id);
}
}

View File

@ -0,0 +1,66 @@
package ai.chat2db.server.admin.api.controller.user.converter;
import ai.chat2db.server.admin.api.controller.common.request.CommonPageQueryRequest;
import ai.chat2db.server.admin.api.controller.user.request.DataSourceUpdateRequest;
import ai.chat2db.server.admin.api.controller.user.request.UserCreateRequest;
import ai.chat2db.server.domain.api.param.DataSourceCreateParam;
import ai.chat2db.server.domain.api.param.DataSourcePageQueryParam;
import ai.chat2db.server.domain.api.param.DataSourceUpdateParam;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
/**
* converter
*
* @author Jiaju Zhuang
*/
@Mapper(componentModel = "spring")
public abstract class DataSourceAdminConverter {
/**
* conversion
*
* @param request
* @return
*/
public abstract DataSourcePageQueryParam request2param(CommonPageQueryRequest request);
/**
* conversion
*
* @param request
* @return
*/
public abstract DataSourcePageQueryParam request2paramAccess(CommonPageQueryRequest request);
///**
// * conversion
// *
// * @param dto
// * @return
// */
//public abstract DataSourcePageQueryVO dto2vo(DataSource dto);
/**
* 参数转换
*
* @param request
* @return
*/
@Mappings({
@Mapping(source = "user", target = "userName")
})
public abstract DataSourceCreateParam createReq2param(UserCreateRequest request);
/**
* 参数转换
*
* @param request
* @return
*/
@Mappings({
@Mapping(source = "user", target = "userName")
})
public abstract DataSourceUpdateParam updateReq2param(DataSourceUpdateRequest request);
}

View File

@ -0,0 +1,35 @@
package ai.chat2db.server.admin.api.controller.user.request;
import java.util.List;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* create
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DataSourceAccessBatchCreateRequest {
/**
* 数据源id
*/
@NotNull
private Long dataSourceId;
/**
* DataSource Access Object
*/
@NotNull
@NotEmpty
private List<DataSourceAccessObjectRequest> accessObjectList;
}

View File

@ -0,0 +1,41 @@
package ai.chat2db.server.admin.api.controller.user.request;
import java.io.Serial;
import java.io.Serializable;
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
import ai.chat2db.server.tools.base.constant.EasyToolsConstant;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* DataSource Access Object
* It could be a user or a team
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DataSourceAccessObjectRequest implements Serializable {
@Serial
private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID;
/**
* 授权id,根据类型区分是用户还是团队
*/
private Long id;
/**
* 授权类型
*
* @see AccessObjectTypeEnum
*/
private String type;
}

View File

@ -0,0 +1,26 @@
package ai.chat2db.server.admin.api.controller.user.request;
import ai.chat2db.server.tools.base.wrapper.request.PageQueryRequest;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* Common pagination query
*
* @author Jiaju Zhuang
*/
@Data
public class DataSourceAccessPageQueryRequest extends PageQueryRequest {
/**
* 数据源id
*/
@NotNull
private Long dataSourceId;
/**
* searchKey
*/
private String searchKey;
}

View File

@ -0,0 +1,19 @@
package ai.chat2db.server.admin.api.controller.user.request;
import lombok.Data;
/**
* @author moji
* @version ConnectionCloneRequest.java, v 0.1 2022年09月16日 14:23 moji Exp $
* @date 2022/09/16
*/
@Data
public class DataSourceCloneRequest {
/**
* 主键id
*/
private Long id;
}

View File

@ -0,0 +1,105 @@
package ai.chat2db.server.admin.api.controller.user.request;
import java.util.List;
import ai.chat2db.server.tools.base.enums.EnvTypeEnum;
import ai.chat2db.spi.config.DriverConfig;
import ai.chat2db.spi.model.KeyValue;
import ai.chat2db.spi.model.SSHInfo;
import ai.chat2db.spi.model.SSLInfo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* @author moji
* @version ConnectionCreateRequest.java, v 0.1 2022年09月16日 14:23 moji Exp $
* @date 2022/09/16
*/
@Data
public class DataSourceUpdateRequest {
/**
* 主键id
*/
@NotNull
private Long id;
/**
* 连接别名
*/
private String alias;
/**
* 连接地址
*/
private String url;
/**
* 连接用户
*/
private String user;
/**
* 密码
*/
private String password;
/**
* 连接类型
*/
private String type;
/**
* 环境类型
* @see EnvTypeEnum
*/
private String envType;
/**
* host
*/
private String host;
/**
* port
*/
private String port;
/**
* ssh
*/
private SSHInfo ssh;
/**
* ssh
*/
private SSLInfo ssl;
/**
* sid
*/
private String sid;
/**
* driver
*/
private String driver;
/**
* jdbc版本
*/
private String jdbc;
/**
* 扩展信息
*/
private List<KeyValue> extendInfo;
/**
* 驱动配置
*/
private DriverConfig driverConfig;
}

View File

@ -0,0 +1,41 @@
package ai.chat2db.server.admin.api.controller.user.request;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* create
*@author Jiaju Zhuang
*/
@Data
public class UserCreateRequest {
/**
* 主键
*/
@NotNull
private Long id;
/**
* 用户名
*/
@NotNull
private String userName;
/**
* 密码
*/
@NotNull
private String password;
/**
* 昵称
*/
@NotNull
private String nickName;
/**
* 邮箱
*/
@NotNull
private String email;
}

View File

@ -0,0 +1,50 @@
package ai.chat2db.server.admin.api.controller.user.vo;
import java.io.Serial;
import java.io.Serializable;
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
import ai.chat2db.server.tools.base.constant.EasyToolsConstant;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* DataSource Access Object
* It could be a user or a team
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DataSourceAccessObjectVO implements Serializable {
@Serial
private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID;
/**
* 授权id,根据类型区分是用户还是团队
*/
private Long id;
/**
* 授权类型
*
* @see AccessObjectTypeEnum
*/
private String type;
/**
* The name of the code that belongs to the authorization type, such as user account, team code
*/
private String code;
/**
* Code that belongs to the authorization type, such as user name, team name
*/
private String name;
}

View File

@ -0,0 +1,40 @@
package ai.chat2db.server.admin.api.controller.user.vo;
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* Pagination query
*
* @author Jiaju Zhuang
*/
@Data
public class DataSourceAccessPageQueryVO {
/**
* 主键
*/
@NotNull
private Long id;
/**
* 授权类型
*
* @see AccessObjectTypeEnum
*/
@NotNull
private String accessObjectType;
/**
* 授权id,根据类型区分是用户还是团队
*/
@NotNull
private Long accessObjectId;
/**
* 授权对象
*/
@NotNull
private DataSourceAccessObjectVO accessObject;
}

View File

@ -0,0 +1,39 @@
package ai.chat2db.server.admin.api.controller.user.vo;
import ai.chat2db.server.domain.api.enums.ValidStatusEnum;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* Pagination query
*
* @author Jiaju Zhuang
*/
@Data
public class UserPageQueryVO {
/**
* 主键
*/
@NotNull
private Long id;
/**
* 用户名
*/
@NotNull
private String userName;
/**
* 昵称
*/
@NotNull
private String nickName;
/**
* 用户状态
*
* @see ValidStatusEnum
*/
private String status;
}