diff --git a/chat2db-client/src/components/ConnectionEdit/index.tsx b/chat2db-client/src/components/ConnectionEdit/index.tsx index 230b16fe..7af68e3d 100644 --- a/chat2db-client/src/components/ConnectionEdit/index.tsx +++ b/chat2db-client/src/components/ConnectionEdit/index.tsx @@ -53,7 +53,7 @@ export default forwardRef(function CreateConnection(props: IProps, ref: Forwarde backfillDataLoading: false, sshTestLoading: false }); - const [envList, setEnvList] = useState<{value:string,label:string}[]>([]); + const [envList, setEnvList] = useState<{ value: string, label: string }[]>([]); useEffect(() => { @@ -200,7 +200,7 @@ export default forwardRef(function CreateConnection(props: IProps, ref: Forwarde p.id = backfillData.id; } - if (type === submitType.SAVE || type === submitType.UPDATE) { + if ((type === submitType.SAVE || type === submitType.UPDATE) && submit) { submit?.(p); return } diff --git a/chat2db-client/src/pages/main/connection/index.tsx b/chat2db-client/src/pages/main/connection/index.tsx index 1eefe3ad..437953ab 100644 --- a/chat2db-client/src/pages/main/connection/index.tsx +++ b/chat2db-client/src/pages/main/connection/index.tsx @@ -5,7 +5,7 @@ import ConnectionEdit from '@/components/ConnectionEdit'; import Iconfont from '@/components/Iconfont'; import connectionService from '@/service/connection'; import { DatabaseTypeCode, databaseMap, databaseTypeList } from '@/constants'; -import { IDatabase, IConnectionDetails } from '@/typings'; +import { IDatabase, IConnectionDetails, IEnvironmentVO } from '@/typings'; import { Button, Dropdown, Modal } from 'antd'; import { MoreOutlined } from '@ant-design/icons'; import styles from './index.less'; @@ -13,6 +13,7 @@ import { connect, history, Dispatch } from 'umi'; import { IConnectionModelType } from '@/models/connection'; import { IWorkspaceModelType } from '@/models/workspace'; + interface IMenu { key: number; label: string; @@ -20,16 +21,19 @@ interface IMenu { meta: IConnectionDetails; } +// interface IConnectionList { +// environment: 'dev' | 'test' | 'prod'; +// connectionList: IMenu[]; +// } + interface IProps { connectionModel: IConnectionModelType['state']; - workspaceModel: IWorkspaceModelType['state']; dispatch: any; } function Connections(props: IProps) { - const { connectionModel, workspaceModel, dispatch } = props; + const { connectionModel, dispatch } = props; const { connectionList } = connectionModel; - const { curWorkspaceParams } = workspaceModel; const volatileRef = useRef(); const [curConnection, setCurConnection] = useState>({}); diff --git a/chat2db-client/src/typings/index.ts b/chat2db-client/src/typings/index.ts index d2aad71e..bc1fe32c 100644 --- a/chat2db-client/src/typings/index.ts +++ b/chat2db-client/src/typings/index.ts @@ -5,4 +5,5 @@ export * from './database'; export * from './main'; export * from './theme'; export * from './tree'; -export * from './setting' \ No newline at end of file +export * from './setting' +export * from './team' \ No newline at end of file diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceCloseParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceCloseParam.java new file mode 100644 index 00000000..d5a8904c --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceCloseParam.java @@ -0,0 +1,26 @@ +package ai.chat2db.server.domain.api.param.datasource; + +import jakarta.validation.constraints.NotNull; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 数据源关闭 + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DataSourceCloseParam { + /** + * 对应数据库存储的来源id + */ + @NotNull + private Long dataSourceId; + +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceCreateParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceCreateParam.java new file mode 100644 index 00000000..5a8496aa --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceCreateParam.java @@ -0,0 +1,104 @@ +package ai.chat2db.server.domain.api.param.datasource; + +import java.util.List; + +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 lombok.Data; + +/** + * @author moji + * @version DataSourceCreateParam.java, v 0.1 2022年09月23日 15:23 moji Exp $ + * @date 2022/09/23 + */ +@Data +public class DataSourceCreateParam { + + /** + * 别名 + */ + private String alias; + + /** + * 连接地址 + */ + private String url; + + /** + * 用户名 + */ + private String userName; + + /** + * 密码 + */ + private String password; + + /** + * 数据库类型 + */ + private String type; + + /** + * 环境类型 + */ + 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 extendInfo; + + + /** + * 驱动配置 + */ + private DriverConfig driverConfig; + + /** + * 连接类型 + * + * @see ai.chat2db.server.domain.api.enums.DataSourceKindEnum + */ + private String kind; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourcePageQueryParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourcePageQueryParam.java new file mode 100644 index 00000000..b2f96075 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourcePageQueryParam.java @@ -0,0 +1,39 @@ +package ai.chat2db.server.domain.api.param.datasource; + +import ai.chat2db.server.tools.base.wrapper.param.OrderBy; +import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam; +import lombok.Data; +import lombok.Getter; + +/** + * @author moji + * @version DataSourcePageQueryParam.java, v 0.1 2022年09月23日 15:27 moji Exp $ + * @date 2022/09/23 + */ +@Data +public class DataSourcePageQueryParam extends PageQueryParam { + + /** + * 搜索关键词 + */ + private String searchKey; + + /** + * 连接类型 + * + * @see ai.chat2db.server.domain.api.enums.DataSourceKindEnum + */ + private String kind; + + @Getter + public enum OrderCondition implements ai.chat2db.server.tools.base.wrapper.param.OrderCondition { + ID_DESC(OrderBy.desc("id")), + ; + + final OrderBy orderBy; + + OrderCondition(OrderBy orderBy) { + this.orderBy = orderBy; + } + } +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourcePreConnectParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourcePreConnectParam.java new file mode 100644 index 00000000..ee4db569 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourcePreConnectParam.java @@ -0,0 +1,94 @@ +package ai.chat2db.server.domain.api.param.datasource; + +import java.util.List; + +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 DataSourcePreConnectParam { + + /** + * 连接别名 + */ + private String alias; + + /** + * 连接地址 + */ + @NotNull + private String url; + + /** + * 连接用户 + */ + private String user; + + /** + * 密码 + */ + @NotNull + private String password; + + /** + * 连接类型 + */ + @NotNull + private String type; + + + /** + * 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 extendInfo; + + /** + * 驱动配置 + */ + private DriverConfig driverConfig; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceSelector.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceSelector.java new file mode 100644 index 00000000..00f411f6 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceSelector.java @@ -0,0 +1,23 @@ +package ai.chat2db.server.domain.api.param.datasource; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author moji + * @version DataSourceSelector.java, v 0.1 2022年09月23日 15:28 moji Exp $ + * @date 2022/09/23 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DataSourceSelector { + + /** + * 环境id + */ + private Boolean environment; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceTestParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceTestParam.java new file mode 100644 index 00000000..58bd235c --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceTestParam.java @@ -0,0 +1,96 @@ +package ai.chat2db.server.domain.api.param.datasource; + +import java.util.List; + +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.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 数据源测试参数 + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DataSourceTestParam { + + /** + * 数据库类型 + * + * @see DbTypeEnum + */ + @NotNull + private String dbType; + + /** + * 请求连接 + */ + @NotNull + private String url; + + /** + * 用户名 + */ + private String username; + + /** + * 密码 + */ + private String password; + + /** + * 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 extendInfo; + + + /** + * 驱动配置 + */ + private DriverConfig driverConfig; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceUpdateParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceUpdateParam.java new file mode 100644 index 00000000..f565df8d --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DataSourceUpdateParam.java @@ -0,0 +1,104 @@ +package ai.chat2db.server.domain.api.param.datasource; + +import java.util.List; + +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 DataSourceCreateParam.java, v 0.1 2022年09月23日 15:23 moji Exp $ + * @date 2022/09/23 + */ +@Data +public class DataSourceUpdateParam { + + /** + * 主键 + */ + @NotNull + private Long id; + + /** + * 别名 + */ + private String alias; + + /** + * 连接地址 + */ + private String url; + + /** + * 用户名 + */ + private String userName; + + /** + * 密码 + */ + private String password; + + /** + * 数据库类型 + */ + private String type; + + /** + * 环境类型 + */ + 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 extendInfo; + + /** + * 驱动配置 + */ + private DriverConfig driverConfig; + +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DatabaseOperationParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DatabaseOperationParam.java new file mode 100644 index 00000000..bc369281 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DatabaseOperationParam.java @@ -0,0 +1,22 @@ + +package ai.chat2db.server.domain.api.param.datasource; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author jipengfei + * @version : DatabaseOperationParam.java + */ +@Data +@AllArgsConstructor +@Builder +@NoArgsConstructor +public class DatabaseOperationParam { + + private String databaseName; + + private String newDatabaseName; +} \ No newline at end of file diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DatabaseQueryAllParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DatabaseQueryAllParam.java new file mode 100644 index 00000000..2e2b2759 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/DatabaseQueryAllParam.java @@ -0,0 +1,41 @@ +package ai.chat2db.server.domain.api.param.datasource; + +import java.sql.Connection; + +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 展示数据库信息 + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DatabaseQueryAllParam { + /** + * 对应数据库存储的来源id + */ + @NotNull + private Long dataSourceId; + + /** + * if true, refresh the cache + */ + private boolean refresh; + + /** + * Can be null, if null, use the default connection + */ + private Connection connection; + + /** + * Can be null, if null, use the default dbType + */ + private String dbType; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessBatchCreatParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessBatchCreatParam.java new file mode 100644 index 00000000..7529557e --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessBatchCreatParam.java @@ -0,0 +1,29 @@ +package ai.chat2db.server.domain.api.param.datasource.access; + +import java.util.List; + +import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Data Source Access + * + * @author Jiaju Zhuang + */ +@Data +public class DataSourceAccessBatchCreatParam extends PageQueryParam { + /** + * 数据源id + */ + @NotNull + private Long dataSourceId; + + /** + * DataSource Access Object + */ + @NotNull + @NotEmpty + private List accessObjectList; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessComprehensivePageQueryParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessComprehensivePageQueryParam.java new file mode 100644 index 00000000..b3c94cae --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessComprehensivePageQueryParam.java @@ -0,0 +1,40 @@ +package ai.chat2db.server.domain.api.param.datasource.access; + +import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum; +import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam; +import lombok.Data; + +/** + * Data Source Access + * + * @author Jiaju Zhuang + */ +@Data +public class DataSourceAccessComprehensivePageQueryParam extends PageQueryParam { + /** + * 数据源id + */ + private Long dataSourceId; + + /** + * 授权类型 + * + * @see AccessObjectTypeEnum + */ + private String accessObjectType; + + /** + * 授权id,根据类型区分是用户还是团队 + */ + private Long accessObjectId; + + /** + * Query keywords for users or teams + */ + private String userOrTeamSearchKey; + + /** + * Query keywords for data source + */ + private String dataSourceSearchKey; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessCreatParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessCreatParam.java new file mode 100644 index 00000000..13398978 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessCreatParam.java @@ -0,0 +1,39 @@ +package ai.chat2db.server.domain.api.param.datasource.access; + +import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * Data Source Access + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DataSourceAccessCreatParam { + /** + * 数据源id + */ + @NotNull + private Long dataSourceId; + + /** + * 授权类型 + * + * @see AccessObjectTypeEnum + */ + @NotNull + private String accessObjectType; + + /** + * 授权id,根据类型区分是用户还是团队 + */ + @NotNull + private Long accessObjectId; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessObjectParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessObjectParam.java new file mode 100644 index 00000000..20896eb4 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessObjectParam.java @@ -0,0 +1,41 @@ + +package ai.chat2db.server.domain.api.param.datasource.access; + +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 DataSourceAccessObjectParam implements Serializable { + + @Serial + private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID; + + /** + * 授权id,根据类型区分是用户还是团队 + */ + private Long id; + + /** + * 授权类型 + * + * @see AccessObjectTypeEnum + */ + private String type; + +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessPageQueryParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessPageQueryParam.java new file mode 100644 index 00000000..d12310ae --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessPageQueryParam.java @@ -0,0 +1,34 @@ +package ai.chat2db.server.domain.api.param.datasource.access; + +import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum; +import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Data Source Access + * + * @author Jiaju Zhuang + */ +@Data +public class DataSourceAccessPageQueryParam extends PageQueryParam { + /** + * 数据源id + */ + @NotNull + private Long dataSourceId; + + /** + * 授权类型 + * + * @see AccessObjectTypeEnum + */ + @NotNull + private String accessObjectType; + + /** + * 授权id,根据类型区分是用户还是团队 + */ + @NotNull + private Long accessObjectId; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessSelector.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessSelector.java new file mode 100644 index 00000000..65c50c2b --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/datasource 2/access/DataSourceAccessSelector.java @@ -0,0 +1,34 @@ +package ai.chat2db.server.domain.api.param.datasource.access; + +import ai.chat2db.server.domain.api.param.datasource.DataSourceSelector; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * slecetor + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DataSourceAccessSelector { + + /** + * 授权对象 + */ + private Boolean accessObject; + + /** + * 数据源 + */ + private Boolean dataSource; + + /** + * 数据源 + */ + private DataSourceSelector dataSourceSelector; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamCreateParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamCreateParam.java new file mode 100644 index 00000000..f8a3f39e --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamCreateParam.java @@ -0,0 +1,46 @@ +package ai.chat2db.server.domain.api.param.team; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * create + * + * @author Jiaju Zhuang + */ +@Data +public class TeamCreateParam { + /** + * 团队编码 + */ + @NotNull + private String code; + + /** + * 团队名称 + */ + @NotNull + private String name; + + /** + * 团队状态 + * + * @see ai.chat2db.server.domain.api.enums.ValidStatusEnum + */ + @NotNull + private String status; + + + /** + * 角色编码 + * + * @see ai.chat2db.server.domain.api.enums.RoleCodeEnum + */ + @NotNull + private String roleCode; + + /** + * 团队描述 + */ + private String description; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamPageQueryParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamPageQueryParam.java new file mode 100644 index 00000000..59d50572 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamPageQueryParam.java @@ -0,0 +1,32 @@ +package ai.chat2db.server.domain.api.param.team; + +import ai.chat2db.server.tools.base.wrapper.param.OrderBy; +import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam; +import lombok.Data; +import lombok.Getter; + +/** + * page query + * + * @author Jiaju Zhuang + */ +@Data +public class TeamPageQueryParam extends PageQueryParam { + + /** + * searchKey + */ + private String searchKey; + + @Getter + public enum OrderCondition implements ai.chat2db.server.tools.base.wrapper.param.OrderCondition { + ID_DESC(OrderBy.desc("id")), + ; + + final OrderBy orderBy; + + OrderCondition(OrderBy orderBy) { + this.orderBy = orderBy; + } + } +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamSelector.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamSelector.java new file mode 100644 index 00000000..5be026ec --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamSelector.java @@ -0,0 +1,23 @@ +package ai.chat2db.server.domain.api.param.team; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * select + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class TeamSelector { + /** + * 修改人用户 + */ + private Boolean modifiedUser; + +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamUpdateParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamUpdateParam.java new file mode 100644 index 00000000..047c05a2 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/TeamUpdateParam.java @@ -0,0 +1,42 @@ +package ai.chat2db.server.domain.api.param.team; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * update + * + * @author Jiaju Zhuang + */ +@Data +public class TeamUpdateParam { + /** + * 主键 + */ + @NotNull + private Long id; + + /** + * 团队名称 + */ + private String name; + + /** + * 团队状态 + * + * @see ai.chat2db.server.domain.api.enums.ValidStatusEnum + */ + private String status; + + /** + * 角色编码 + * + * @see ai.chat2db.server.domain.api.enums.RoleCodeEnum + */ + private String roleCode; + + /** + * 团队描述 + */ + private String description; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserComprehensivePageQueryParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserComprehensivePageQueryParam.java new file mode 100644 index 00000000..26f47e4e --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserComprehensivePageQueryParam.java @@ -0,0 +1,40 @@ +package ai.chat2db.server.domain.api.param.team.user; + +import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam; +import lombok.Data; + +/** + * Team User + * + * @author Jiaju Zhuang + */ +@Data +public class TeamUserComprehensivePageQueryParam extends PageQueryParam { + + /** + * 团队id + */ + private Long teamId; + + /** + * 用户id + */ + private Long userId; + + /** + * 团队角色code + * + * @see ai.chat2db.server.domain.api.enums.RoleCodeEnum + */ + private String teamRoleCode; + + /** + * Query keywords for team + */ + private String teamSearchKey; + + /** + * Query keywords for user + */ + private String userSearchKey; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserCreatParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserCreatParam.java new file mode 100644 index 00000000..619fae38 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserCreatParam.java @@ -0,0 +1,29 @@ +package ai.chat2db.server.domain.api.param.team.user; + +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * Team User + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class TeamUserCreatParam { + /** + * team id + */ + @NotNull + private Long teamId; + + /** + * user id + */ + private Long userId; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserPageQueryParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserPageQueryParam.java new file mode 100644 index 00000000..80cc5116 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserPageQueryParam.java @@ -0,0 +1,27 @@ +package ai.chat2db.server.domain.api.param.team.user; + +import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Team User + * + * @author Jiaju Zhuang + */ +@Data +public class TeamUserPageQueryParam extends PageQueryParam { + + /** + * 团队id + */ + @NotNull + private Long teamId; + + /** + * 用户id + */ + @NotNull + private Long userId; + +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserSelector.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserSelector.java new file mode 100644 index 00000000..a14e74ef --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team 2/user/TeamUserSelector.java @@ -0,0 +1,27 @@ +package ai.chat2db.server.domain.api.param.team.user; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * select + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class TeamUserSelector { + /** + * 团队 + */ + private Boolean team; + + /** + * 用户 + */ + private Boolean user; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserCreateParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserCreateParam.java new file mode 100644 index 00000000..eb75caea --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserCreateParam.java @@ -0,0 +1,54 @@ +package ai.chat2db.server.domain.api.param.user; + +import ai.chat2db.server.domain.api.enums.RoleCodeEnum; +import ai.chat2db.server.domain.api.enums.ValidStatusEnum; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * create + * + * @author Jiaju Zhuang + */ +@Data +public class UserCreateParam { + /** + * 用户名 + */ + @NotNull + private String userName; + + /** + * 密码 + */ + @NotNull + private String password; + + /** + * 昵称 + */ + @NotNull + private String nickName; + + /** + * 邮箱 + */ + @NotNull + private String email; + + /** + * 角色编码 + * + * @see RoleCodeEnum + */ + @NotNull + private String roleCode; + + /** + * 用户状态 + * + * @see ValidStatusEnum + */ + @NotNull + private String status; +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserPageQueryParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserPageQueryParam.java new file mode 100644 index 00000000..b6e1d8b6 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserPageQueryParam.java @@ -0,0 +1,38 @@ +package ai.chat2db.server.domain.api.param.user; + +import ai.chat2db.server.tools.base.wrapper.param.OrderBy; +import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * * page query + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class UserPageQueryParam extends PageQueryParam { + + /** + * searchKey + */ + private String searchKey; + + @Getter + public enum OrderCondition implements ai.chat2db.server.tools.base.wrapper.param.OrderCondition { + ID_DESC(OrderBy.desc("id")), + ; + + final OrderBy orderBy; + + OrderCondition(OrderBy orderBy) { + this.orderBy = orderBy; + } + } +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserSelector.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserSelector.java new file mode 100644 index 00000000..0f25ce93 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserSelector.java @@ -0,0 +1,23 @@ +package ai.chat2db.server.domain.api.param.user; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * select + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class UserSelector { + /** + * 修改人用户 + */ + private Boolean modifiedUser; + +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserUpdateParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserUpdateParam.java new file mode 100644 index 00000000..1b6358cb --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/user 2/UserUpdateParam.java @@ -0,0 +1,54 @@ +package ai.chat2db.server.domain.api.param.user; + +import ai.chat2db.server.domain.api.enums.RoleCodeEnum; +import ai.chat2db.server.domain.api.enums.ValidStatusEnum; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * create + * + * @author Jiaju Zhuang + */ +@Data +public class UserUpdateParam { + /** + * 主键 + */ + @NotNull + private Long id; + + /** + * 密码 + */ + @NotNull + private String password; + + /** + * 昵称 + */ + @NotNull + private String nickName; + + /** + * 邮箱 + */ + @NotNull + private String email; + + + /** + * 角色编码 + * + * @see RoleCodeEnum + */ + private String roleCode; + + /** + * 用户状态 + * + * @see ValidStatusEnum + */ + @NotNull + private String status; +} diff --git a/chat2db-server/chat2db-server-start/src/test/java/ai/chat2db/server/start/test/dto 2/TestDTO.java b/chat2db-server/chat2db-server-start/src/test/java/ai/chat2db/server/start/test/dto 2/TestDTO.java new file mode 100644 index 00000000..0646e0b6 --- /dev/null +++ b/chat2db-server/chat2db-server-start/src/test/java/ai/chat2db/server/start/test/dto 2/TestDTO.java @@ -0,0 +1,22 @@ +package ai.chat2db.server.start.test.dto; + +import java.io.Serial; +import java.io.Serializable; + +import ai.chat2db.server.tools.base.constant.EasyToolsConstant; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class TestDTO implements Serializable { + + @Serial + private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID; + + private String name; +} diff --git a/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/enums 2/ModeEnum.java b/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/enums 2/ModeEnum.java new file mode 100644 index 00000000..c2ca6770 --- /dev/null +++ b/chat2db-server/chat2db-server-tools/chat2db-server-tools-common/src/main/java/ai/chat2db/server/tools/common/enums 2/ModeEnum.java @@ -0,0 +1,34 @@ +package ai.chat2db.server.tools.common.enums; + +import ai.chat2db.server.tools.base.enums.BaseEnum; +import lombok.Getter; + +/** + * model + * + * @author Jiaju Zhuang + */ +@Getter +public enum ModeEnum implements BaseEnum { + /** + * DESKTOP + */ + DESKTOP("DESKTOP"), + + /** + * WEB + */ + WEB("WEB"), + + ; + final String description; + + ModeEnum(String description) { + this.description = description; + } + + @Override + public String getCode() { + return this.name(); + } +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/common/request/TeamUserPageQueryRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/common/request/TeamUserPageQueryRequest.java new file mode 100644 index 00000000..53a5c01a --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/common/request/TeamUserPageQueryRequest.java @@ -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; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/common/vo/TeamUserListVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/common/vo/TeamUserListVO.java new file mode 100644 index 00000000..7b2b55f2 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/common/vo/TeamUserListVO.java @@ -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; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/converter/DataSourceAccessAdminConverter.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/converter/DataSourceAccessAdminConverter.java new file mode 100644 index 00000000..f97e2098 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/converter/DataSourceAccessAdminConverter.java @@ -0,0 +1,50 @@ +package ai.chat2db.server.admin.api.controller.datasource.converter; + +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.enums.DataSourceKindEnum; +import ai.chat2db.server.domain.api.model.DataSourceAccess; +import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessBatchCreatParam; +import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessComprehensivePageQueryParam; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; + +/** + * converter + * + * @author Jiaju Zhuang + */ +@Mapper(componentModel = "spring", imports = {DataSourceKindEnum.class}) +public abstract class DataSourceAccessAdminConverter { + + /** + * convert + * + * @param request + * @return + */ + @Mappings({ + @Mapping(source = "searchKey", target = "userOrTeamSearchKey"), + @Mapping(target = "enableReturnCount", expression = "java(true)"), + }) + public abstract DataSourceAccessComprehensivePageQueryParam request2param(DataSourceAccessPageQueryRequest request); + + /** + * convert + * + * @param request + * @return + */ + public abstract DataSourceAccessBatchCreatParam request2param(DataSourceAccessBatchCreateRequest request); + + /** + * conversion + * + * @param dto + * @return + */ + public abstract DataSourceAccessPageQueryVO dto2vo(DataSourceAccess dto); + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/converter/DataSourceAdminConverter.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/converter/DataSourceAdminConverter.java new file mode 100644 index 00000000..5236de60 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/converter/DataSourceAdminConverter.java @@ -0,0 +1,76 @@ +package ai.chat2db.server.admin.api.controller.datasource.converter; + +import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceCreateRequest; +import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceUpdateRequest; +import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourcePageQueryVO; +import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest; +import ai.chat2db.server.domain.api.enums.DataSourceKindEnum; +import ai.chat2db.server.domain.api.model.DataSource; +import ai.chat2db.server.domain.api.param.datasource.DataSourceCreateParam; +import ai.chat2db.server.domain.api.param.datasource.DataSourcePageQueryParam; +import ai.chat2db.server.domain.api.param.datasource.DataSourceUpdateParam; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; + +/** + * converter + * + * @author Jiaju Zhuang + */ +@Mapper(componentModel = "spring",imports = {DataSourceKindEnum.class}) +public abstract class DataSourceAdminConverter { + + /** + * conversion + * + * @param request + * @return + */ + @Mappings({ + @Mapping(target = "enableReturnCount", expression = "java(true)"), + }) + public abstract DataSourcePageQueryParam request2param(CommonPageQueryRequest request); + + /** + * conversion + * + * @param request + * @return + */ + @Mappings({ + @Mapping(target = "enableReturnCount", expression = "java(true)"), + }) + 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"), + @Mapping(target = "kind", expression = "java(DataSourceKindEnum.SHARED.getCode())"), + }) + public abstract DataSourceCreateParam createReq2param(DataSourceCreateRequest request); + + /** + * 参数转换 + * + * @param request + * @return + */ + @Mappings({ + @Mapping(source = "user", target = "userName") + }) + public abstract DataSourceUpdateParam updateReq2param(DataSourceUpdateRequest request); +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceAccessBatchCreateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceAccessBatchCreateRequest.java new file mode 100644 index 00000000..14d17940 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceAccessBatchCreateRequest.java @@ -0,0 +1,33 @@ +package ai.chat2db.server.admin.api.controller.datasource.request; + +import java.util.List; + +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 + private List accessObjectList; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceAccessObjectRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceAccessObjectRequest.java new file mode 100644 index 00000000..e0bdf202 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceAccessObjectRequest.java @@ -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; + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceAccessPageQueryRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceAccessPageQueryRequest.java new file mode 100644 index 00000000..f833609b --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceAccessPageQueryRequest.java @@ -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; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceCloneRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceCloneRequest.java new file mode 100644 index 00000000..54386e61 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceCloneRequest.java @@ -0,0 +1,19 @@ +package ai.chat2db.server.admin.api.controller.datasource.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; + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceCreateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceCreateRequest.java new file mode 100644 index 00000000..b8606a5e --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceCreateRequest.java @@ -0,0 +1,106 @@ +package ai.chat2db.server.admin.api.controller.datasource.request; + +import java.util.List; + +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 DataSourceCreateRequest { + + /** + * 连接别名 + */ + private String alias; + + /** + * 连接地址 + */ + @NotNull + private String url; + + /** + * 连接用户名 + */ + private String user; + + /** + * 密码 + */ + @NotNull + private String password; + + /** + * 认证类型 + */ + private String authenticationType; + + /** + * 连接类型 + */ + @NotNull + private String type; + + /** + * 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 extendInfo; + + + /** + * 驱动配置 + */ + private DriverConfig driverConfig; + + /** + * 环境id + */ + @NotNull + private Long environmentId; + + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceUpdateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceUpdateRequest.java new file mode 100644 index 00000000..ae779838 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/request/DataSourceUpdateRequest.java @@ -0,0 +1,108 @@ +package ai.chat2db.server.admin.api.controller.datasource.request; + +import java.util.List; + +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 extendInfo; + + /** + * 驱动配置 + */ + private DriverConfig driverConfig; + + /** + * 环境id + */ + @NotNull + private Long environmentId; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/DataSourceAccessObjectVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/DataSourceAccessObjectVO.java new file mode 100644 index 00000000..4d1ccb91 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/DataSourceAccessObjectVO.java @@ -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; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/DataSourceAccessPageQueryVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/DataSourceAccessPageQueryVO.java new file mode 100644 index 00000000..6d2220dc --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/DataSourceAccessPageQueryVO.java @@ -0,0 +1,40 @@ + +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; + +/** + * 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; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/DataSourcePageQueryVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/DataSourcePageQueryVO.java new file mode 100644 index 00000000..b77956d6 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/DataSourcePageQueryVO.java @@ -0,0 +1,39 @@ + +package ai.chat2db.server.admin.api.controller.datasource.vo; + +import ai.chat2db.server.common.api.controller.vo.SimpleEnvironmentVO; +import lombok.Data; + +/** + * Pagination query + * + * @author Jiaju Zhuang + */ +@Data +public class DataSourcePageQueryVO { + + /** + * 主键id + */ + private Long id; + + /** + * 连接别名 + */ + private String alias; + + /** + * 连接地址 + */ + private String url; + + /** + * 环境id + */ + private Long environmentId; + + /** + * 环境 + */ + private SimpleEnvironmentVO environment; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/SimpleDataSourceVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/SimpleDataSourceVO.java new file mode 100644 index 00000000..8ae1f982 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/datasource/vo/SimpleDataSourceVO.java @@ -0,0 +1,39 @@ + +package ai.chat2db.server.admin.api.controller.datasource.vo; + +import ai.chat2db.server.common.api.controller.vo.SimpleEnvironmentVO; +import lombok.Data; + +/** + * Data Source + * + * @author Jiaju Zhuang + */ +@Data +public class SimpleDataSourceVO { + + /** + * 主键id + */ + private Long id; + + /** + * 连接别名 + */ + private String alias; + + /** + * 连接地址 + */ + private String url; + + /** + * 环境id + */ + private Long environmentId; + + /** + * 环境 + */ + private SimpleEnvironmentVO environment; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/converter/TeamAdminConverter.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/converter/TeamAdminConverter.java new file mode 100644 index 00000000..a6eaf129 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/converter/TeamAdminConverter.java @@ -0,0 +1,62 @@ +package ai.chat2db.server.admin.api.controller.team.converter; + +import ai.chat2db.server.admin.api.controller.team.request.TeamCreateRequest; +import ai.chat2db.server.admin.api.controller.team.request.TeamUpdateRequest; +import ai.chat2db.server.admin.api.controller.team.vo.TeamPageQueryVO; +import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest; +import ai.chat2db.server.domain.api.enums.DataSourceKindEnum; +import ai.chat2db.server.domain.api.model.Team; +import ai.chat2db.server.domain.api.param.team.TeamCreateParam; +import ai.chat2db.server.domain.api.param.team.TeamPageQueryParam; +import ai.chat2db.server.domain.api.param.team.TeamUpdateParam; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; + +/** + * converter + * + * @author Jiaju Zhuang + */ +@Mapper(componentModel = "spring",imports = {DataSourceKindEnum.class}) +public abstract class TeamAdminConverter { + + + /** + * conversion + * + * @param request + * @return + */ + @Mappings({ + @Mapping(target = "enableReturnCount", expression = "java(true)"), + }) + public abstract TeamPageQueryParam request2param(CommonPageQueryRequest request); + + + /** + * conversion + * + * @param dto + * @return + */ + public abstract TeamPageQueryVO dto2vo(Team dto); + + + /** + * conversion + * + * @param request + * @return + */ + public abstract TeamCreateParam request2param(TeamCreateRequest request); + + + /** + * conversion + * + * @param request + * @return + */ + public abstract TeamUpdateParam request2param(TeamUpdateRequest request); +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/converter/TeamDataSourcesAdminConverter.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/converter/TeamDataSourcesAdminConverter.java new file mode 100644 index 00000000..368041b6 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/converter/TeamDataSourcesAdminConverter.java @@ -0,0 +1,56 @@ +package ai.chat2db.server.admin.api.controller.team.converter; + +import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceAccessBatchCreateRequest; +import ai.chat2db.server.admin.api.controller.team.request.TeamPageCommonQueryRequest; +import ai.chat2db.server.admin.api.controller.team.vo.TeamDataSourcePageQueryVO; +import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum; +import ai.chat2db.server.domain.api.enums.DataSourceKindEnum; +import ai.chat2db.server.domain.api.model.DataSourceAccess; +import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessBatchCreatParam; +import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessComprehensivePageQueryParam; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; + +/** + * converter + * + * @author Jiaju Zhuang + */ +@Mapper(componentModel = "spring", imports = {DataSourceKindEnum.class, AccessObjectTypeEnum.class}) +public abstract class TeamDataSourcesAdminConverter { + + /** + * convert + * + * @param request + * @return + */ + @Mappings({ + @Mapping(target = "accessObjectId", source = "teamId"), + @Mapping(target = "accessObjectType", expression = "java(AccessObjectTypeEnum.TEAM.name())"), + @Mapping(source = "searchKey", target = "dataSourceSearchKey"), + @Mapping(target = "enableReturnCount", expression = "java(true)"), + }) + public abstract DataSourceAccessComprehensivePageQueryParam request2param(TeamPageCommonQueryRequest request); + + /** + * convert + * + * @param request + * @return + */ + public abstract DataSourceAccessBatchCreatParam request2param(DataSourceAccessBatchCreateRequest request); + + /** + * conversion + * + * @param dto + * @return + */ + @Mappings({ + @Mapping(target = "teamId", source = "accessObjectId"), + }) + public abstract TeamDataSourcePageQueryVO dto2vo(DataSourceAccess dto); + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/converter/TeamUserAdminConverter.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/converter/TeamUserAdminConverter.java new file mode 100644 index 00000000..42dc9f4e --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/converter/TeamUserAdminConverter.java @@ -0,0 +1,49 @@ +package ai.chat2db.server.admin.api.controller.team.converter; + +import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceAccessBatchCreateRequest; +import ai.chat2db.server.admin.api.controller.team.request.TeamPageCommonQueryRequest; +import ai.chat2db.server.admin.api.controller.team.vo.TeamUserPageQueryVO; +import ai.chat2db.server.domain.api.model.TeamUser; +import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessBatchCreatParam; +import ai.chat2db.server.domain.api.param.team.user.TeamUserComprehensivePageQueryParam; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; + +/** + * converter + * + * @author Jiaju Zhuang + */ +@Mapper(componentModel = "spring") +public abstract class TeamUserAdminConverter { + + /** + * convert + * + * @param request + * @return + */ + @Mappings({ + @Mapping(source = "searchKey", target = "userSearchKey"), + @Mapping(target = "enableReturnCount", expression = "java(true)"), + }) + public abstract TeamUserComprehensivePageQueryParam request2param(TeamPageCommonQueryRequest request); + + /** + * convert + * + * @param request + * @return + */ + public abstract DataSourceAccessBatchCreatParam request2param(DataSourceAccessBatchCreateRequest request); + + /** + * conversion + * + * @param dto + * @return + */ + public abstract TeamUserPageQueryVO dto2vo(TeamUser dto); + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamCreateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamCreateRequest.java new file mode 100644 index 00000000..1b3bcf9a --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamCreateRequest.java @@ -0,0 +1,38 @@ +package ai.chat2db.server.admin.api.controller.team.request; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * create + * + * @author Jiaju Zhuang + */ +@Data +public class TeamCreateRequest { + + /** + * 团队编码 + */ + @NotNull + private String code; + + /** + * 团队名称 + */ + @NotNull + private String name; + + /** + * 团队状态 + * + * @see ai.chat2db.server.domain.api.enums.ValidStatusEnum + */ + @NotNull + private String status; + + /** + * 团队描述 + */ + private String description; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamDataSourceBatchCreateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamDataSourceBatchCreateRequest.java new file mode 100644 index 00000000..58a13992 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamDataSourceBatchCreateRequest.java @@ -0,0 +1,34 @@ +package ai.chat2db.server.admin.api.controller.team.request; + +import java.util.List; + +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 TeamDataSourceBatchCreateRequest { + + /** + * team id + */ + @NotNull + private Long teamId; + + + /** + * Data Source id list + */ + @NotNull + private List dataSourceIdList; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamPageCommonQueryRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamPageCommonQueryRequest.java new file mode 100644 index 00000000..44862815 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamPageCommonQueryRequest.java @@ -0,0 +1,25 @@ + +package ai.chat2db.server.admin.api.controller.team.request; + +import ai.chat2db.server.tools.base.wrapper.request.PageQueryRequest; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Pagination query + * + * @author Jiaju Zhuang + */ +@Data +public class TeamPageCommonQueryRequest extends PageQueryRequest { + /** + * team id + */ + @NotNull + private Long teamId; + + /** + * searchKey + */ + private String searchKey; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamUpdateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamUpdateRequest.java new file mode 100644 index 00000000..623b517d --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamUpdateRequest.java @@ -0,0 +1,45 @@ +package ai.chat2db.server.admin.api.controller.team.request; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * update + * + * @author Jiaju Zhuang + */ +@Data +public class TeamUpdateRequest { + /** + * 主键 + */ + @NotNull + private Long id; + + /** + * 团队名称 + */ + @NotNull + private String name; + + /** + * 团队状态 + * + * @see ai.chat2db.server.domain.api.enums.ValidStatusEnum + */ + @NotNull + private String status; + + /** + * 角色编码 + * + * @see ai.chat2db.server.domain.api.enums.RoleCodeEnum + */ + @NotNull + private String roleCode; + + /** + * 团队描述 + */ + private String description; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamUserBatchCreateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamUserBatchCreateRequest.java new file mode 100644 index 00000000..6c983bcf --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/request/TeamUserBatchCreateRequest.java @@ -0,0 +1,33 @@ +package ai.chat2db.server.admin.api.controller.team.request; + +import java.util.List; + +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 TeamUserBatchCreateRequest { + + /** + * team id + */ + @NotNull + private Long teamId; + + /** + * user id list + */ + @NotNull + private List userIdList; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/SimpleTeamVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/SimpleTeamVO.java new file mode 100644 index 00000000..f6b0bf5f --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/SimpleTeamVO.java @@ -0,0 +1,37 @@ + +package ai.chat2db.server.admin.api.controller.team.vo; + +import lombok.Data; + +/** + * team + * + * @author Jiaju Zhuang + */ +@Data +public class SimpleTeamVO { + + /** + * 主键 + */ + private Long id; + + /** + * 团队编码 + */ + private String code; + + /** + * 团队名称 + */ + private String name; + + + /** + * 团队状态 + * + * @see ai.chat2db.server.domain.api.enums.ValidStatusEnum + */ + private String status; + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/TeamDataSourcePageQueryVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/TeamDataSourcePageQueryVO.java new file mode 100644 index 00000000..7caa47de --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/TeamDataSourcePageQueryVO.java @@ -0,0 +1,31 @@ + +package ai.chat2db.server.admin.api.controller.team.vo; + +import ai.chat2db.server.admin.api.controller.datasource.vo.SimpleDataSourceVO; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Pagination query + * + * @author Jiaju Zhuang + */ +@Data +public class TeamDataSourcePageQueryVO { + + /** + * 主键 + */ + @NotNull + private Long id; + + /** + * team id + */ + private Long teamId; + + /** + * Data Source + */ + private SimpleDataSourceVO dataSource; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/TeamPageQueryVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/TeamPageQueryVO.java new file mode 100644 index 00000000..75e2b9a5 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/TeamPageQueryVO.java @@ -0,0 +1,57 @@ + +package ai.chat2db.server.admin.api.controller.team.vo; + +import java.util.Date; + +import ai.chat2db.server.common.api.controller.vo.SimpleUserVO; +import lombok.Data; + +/** + * Pagination query + * + * @author Jiaju Zhuang + */ +@Data +public class TeamPageQueryVO { + /** + * 主键 + */ + private Long id; + + /** + * 团队编码 + */ + private String code; + + /** + * 团队名称 + */ + private String name; + + /** + * 团队状态 + * + * @see ai.chat2db.server.domain.api.enums.ValidStatusEnum + */ + private String status; + + /** + * 团队描述 + */ + private String description; + + /** + * 修改时间 + */ + private Date gmtModified; + + /** + * 修改人用户id + */ + private Long modifiedUserId; + + /** + * 修改人用户 + */ + private SimpleUserVO modifiedUser; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/TeamUserPageQueryVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/TeamUserPageQueryVO.java new file mode 100644 index 00000000..a5520a23 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/team/vo/TeamUserPageQueryVO.java @@ -0,0 +1,28 @@ + +package ai.chat2db.server.admin.api.controller.team.vo; + +import ai.chat2db.server.admin.api.controller.user.vo.SimpleUserVO; +import lombok.Data; + +/** + * Pagination query + * + * @author Jiaju Zhuang + */ +@Data +public class TeamUserPageQueryVO { + /** + * 主键 + */ + private Long id; + + /** + * team id + */ + private Long teamId; + + /** + * user + */ + private SimpleUserVO user; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/converter/UserAdminConverter.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/converter/UserAdminConverter.java new file mode 100644 index 00000000..28bc43b6 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/converter/UserAdminConverter.java @@ -0,0 +1,57 @@ +package ai.chat2db.server.admin.api.controller.user.converter; + +import ai.chat2db.server.admin.api.controller.user.request.UserCreateRequest; +import ai.chat2db.server.admin.api.controller.user.request.UserUpdateRequest; +import ai.chat2db.server.admin.api.controller.user.vo.UserPageQueryVO; +import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest; +import ai.chat2db.server.domain.api.model.User; +import ai.chat2db.server.domain.api.param.user.UserCreateParam; +import ai.chat2db.server.domain.api.param.user.UserPageQueryParam; +import ai.chat2db.server.domain.api.param.user.UserUpdateParam; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; + +/** + * converter + * + * @author Jiaju Zhuang + */ +@Mapper(componentModel = "spring") +public abstract class UserAdminConverter { + + /** + * conversion + * + * @param request + * @return + */ + @Mappings({ + @Mapping(target = "enableReturnCount", expression = "java(true)"), + }) + public abstract UserPageQueryParam request2param(CommonPageQueryRequest request); + + /** + * conversion + * + * @param dto + * @return + */ + public abstract UserPageQueryVO dto2vo(User dto); + + /** + * conversion + * + * @param request + * @return + */ + public abstract UserCreateParam request2param(UserCreateRequest request); + + /** + * conversion + * + * @param request + * @return + */ + public abstract UserUpdateParam request2param(UserUpdateRequest request); +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/converter/UserDataSourcesAdminConverter.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/converter/UserDataSourcesAdminConverter.java new file mode 100644 index 00000000..1de4822b --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/converter/UserDataSourcesAdminConverter.java @@ -0,0 +1,56 @@ +package ai.chat2db.server.admin.api.controller.user.converter; + +import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceAccessBatchCreateRequest; +import ai.chat2db.server.admin.api.controller.user.request.UserPageCommonQueryRequest; +import ai.chat2db.server.admin.api.controller.user.vo.UserDataSourcePageQueryVO; +import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum; +import ai.chat2db.server.domain.api.enums.DataSourceKindEnum; +import ai.chat2db.server.domain.api.model.DataSourceAccess; +import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessBatchCreatParam; +import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessComprehensivePageQueryParam; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; + +/** + * converter + * + * @author Jiaju Zhuang + */ +@Mapper(componentModel = "spring", imports = {DataSourceKindEnum.class, AccessObjectTypeEnum.class}) +public abstract class UserDataSourcesAdminConverter { + + /** + * convert + * + * @param request + * @return + */ + @Mappings({ + @Mapping(source = "userId", target = "accessObjectId"), + @Mapping(target = "accessObjectType", expression = "java(AccessObjectTypeEnum.USER.name())"), + @Mapping(source = "searchKey", target = "userOrTeamSearchKey"), + @Mapping(target = "enableReturnCount", expression = "java(true)"), + }) + public abstract DataSourceAccessComprehensivePageQueryParam request2param(UserPageCommonQueryRequest request); + + /** + * convert + * + * @param request + * @return + */ + public abstract DataSourceAccessBatchCreatParam request2param(DataSourceAccessBatchCreateRequest request); + + /** + * conversion + * + * @param dto + * @return + */ + @Mappings({ + @Mapping(target = "userId", source = "accessObjectId"), + }) + public abstract UserDataSourcePageQueryVO dto2vo(DataSourceAccess dto); + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/converter/UserTeamAdminConverter.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/converter/UserTeamAdminConverter.java new file mode 100644 index 00000000..77424f29 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/converter/UserTeamAdminConverter.java @@ -0,0 +1,38 @@ +package ai.chat2db.server.admin.api.controller.user.converter; + +import ai.chat2db.server.admin.api.controller.user.request.UserPageCommonQueryRequest; +import ai.chat2db.server.admin.api.controller.user.vo.UserTeamPageQueryVO; +import ai.chat2db.server.domain.api.model.TeamUser; +import ai.chat2db.server.domain.api.param.team.user.TeamUserComprehensivePageQueryParam; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; + +/** + * converter + * + * @author Jiaju Zhuang + */ +@Mapper(componentModel = "spring") +public abstract class UserTeamAdminConverter { + + /** + * convert + * + * @param request + * @return + */ + @Mappings({ + @Mapping(source = "searchKey", target = "teamSearchKey"), + @Mapping(target = "enableReturnCount", expression = "java(true)"), + }) + public abstract TeamUserComprehensivePageQueryParam request2param(UserPageCommonQueryRequest request); + + /** + * conversion + * + * @param dto + * @return + */ + public abstract UserTeamPageQueryVO dto2vo(TeamUser dto); +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserCreateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserCreateRequest.java new file mode 100644 index 00000000..4e2d1cd7 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserCreateRequest.java @@ -0,0 +1,54 @@ +package ai.chat2db.server.admin.api.controller.user.request; + +import ai.chat2db.server.domain.api.enums.RoleCodeEnum; +import ai.chat2db.server.domain.api.enums.ValidStatusEnum; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * create + *@author Jiaju Zhuang + */ +@Data +public class UserCreateRequest { + /** + * 用户名 + */ + @NotNull + private String userName; + + /** + * 密码 + */ + @NotNull + private String password; + + /** + * 昵称 + */ + @NotNull + private String nickName; + + /** + * 邮箱 + */ + @NotNull + private String email; + + + /** + * 角色编码 + * + * @see RoleCodeEnum + */ + @NotNull + private String roleCode; + + /** + * 用户状态 + * + * @see ValidStatusEnum + */ + @NotNull + private String status; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserDataSourceBatchCreateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserDataSourceBatchCreateRequest.java new file mode 100644 index 00000000..b396bb72 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserDataSourceBatchCreateRequest.java @@ -0,0 +1,32 @@ +package ai.chat2db.server.admin.api.controller.user.request; + +import java.util.List; + +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 UserDataSourceBatchCreateRequest { + + /** + * user id + */ + private Long userId; + + /** + * Data Source id list + */ + @NotNull + private List dataSourceIdList; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserPageCommonQueryRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserPageCommonQueryRequest.java new file mode 100644 index 00000000..c0e79a32 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserPageCommonQueryRequest.java @@ -0,0 +1,25 @@ + +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; + +/** + * Pagination query + * + * @author Jiaju Zhuang + */ +@Data +public class UserPageCommonQueryRequest extends PageQueryRequest { + /** + * user id + */ + @NotNull + private Long userId; + + /** + * searchKey + */ + private String searchKey; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserTeamBatchCreateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserTeamBatchCreateRequest.java new file mode 100644 index 00000000..831bee3a --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserTeamBatchCreateRequest.java @@ -0,0 +1,32 @@ +package ai.chat2db.server.admin.api.controller.user.request; + +import java.util.List; + +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 UserTeamBatchCreateRequest { + + /** + * user id + */ + private Long userId; + + /** + * team id list + */ + @NotNull + private List teamIdList; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserUpdateRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserUpdateRequest.java new file mode 100644 index 00000000..382826b0 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/request/UserUpdateRequest.java @@ -0,0 +1,52 @@ +package ai.chat2db.server.admin.api.controller.user.request; + +import ai.chat2db.server.domain.api.enums.RoleCodeEnum; +import ai.chat2db.server.domain.api.enums.ValidStatusEnum; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * create + *@author Jiaju Zhuang + */ +@Data +public class UserUpdateRequest { + /** + * 主键 + */ + @NotNull + private Long id; + + /** + * 密码 + */ + private String password; + + /** + * 昵称 + */ + @NotNull + private String nickName; + + /** + * 邮箱 + */ + @NotNull + private String email; + + + /** + * 角色编码 + * + * @see RoleCodeEnum + */ + private String roleCode; + + /** + * 用户状态 + * + * @see ValidStatusEnum + */ + @NotNull + private String status; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/SimpleUserVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/SimpleUserVO.java new file mode 100644 index 00000000..8b8f8807 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/SimpleUserVO.java @@ -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; + +/** + * user + * + * @author Jiaju Zhuang + */ +@Data +public class SimpleUserVO { + /** + * 主键 + */ + @NotNull + private Long id; + + /** + * 用户名 + */ + @NotNull + private String userName; + + /** + * 昵称 + */ + @NotNull + private String nickName; + + /** + * 用户状态 + * + * @see ValidStatusEnum + */ + private String status; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/UserDataSourcePageQueryVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/UserDataSourcePageQueryVO.java new file mode 100644 index 00000000..0281b318 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/UserDataSourcePageQueryVO.java @@ -0,0 +1,31 @@ + +package ai.chat2db.server.admin.api.controller.user.vo; + +import ai.chat2db.server.admin.api.controller.datasource.vo.SimpleDataSourceVO; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Pagination query + * + * @author Jiaju Zhuang + */ +@Data +public class UserDataSourcePageQueryVO { + + /** + * 主键 + */ + @NotNull + private Long id; + + /** + * user id + */ + private Long userId; + + /** + * Data Source + */ + private SimpleDataSourceVO dataSource; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/UserPageQueryVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/UserPageQueryVO.java new file mode 100644 index 00000000..5ff1abaf --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/UserPageQueryVO.java @@ -0,0 +1,73 @@ + +package ai.chat2db.server.admin.api.controller.user.vo; + +import java.util.Date; + +import ai.chat2db.server.common.api.controller.vo.SimpleUserVO; +import ai.chat2db.server.domain.api.enums.RoleCodeEnum; +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; + + /** + * 邮箱 + */ + @NotNull + private String email; + + /** + * 角色编码 + * + * @see RoleCodeEnum + */ + private String roleCode; + + + /** + * 修改时间 + */ + private Date gmtModified; + + /** + * 修改人用户id + */ + private Long modifiedUserId; + + /** + * 修改人用户 + */ + private SimpleUserVO modifiedUser; + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/UserTeamPageQueryVO.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/UserTeamPageQueryVO.java new file mode 100644 index 00000000..56424c24 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src 2/main/java/ai/chat2db/server/admin/api/controller/user/vo/UserTeamPageQueryVO.java @@ -0,0 +1,28 @@ + +package ai.chat2db.server.admin.api.controller.user.vo; + +import ai.chat2db.server.admin.api.controller.team.vo.SimpleTeamVO; +import lombok.Data; + +/** + * Pagination query + * + * @author Jiaju Zhuang + */ +@Data +public class UserTeamPageQueryVO { + /** + * 主键 + */ + private Long id; + + /** + * user id + */ + private Long userId; + + /** + * 团队 + */ + private SimpleTeamVO team; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/CommonCommonController.java b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/CommonCommonController.java new file mode 100644 index 00000000..327a2aab --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/CommonCommonController.java @@ -0,0 +1,42 @@ + +package ai.chat2db.server.common.api.controller; + +import ai.chat2db.server.common.api.controller.converter.EnvironmentCommonConverter; +import ai.chat2db.server.common.api.controller.vo.SimpleEnvironmentVO; +import ai.chat2db.server.domain.api.param.EnvironmentPageQueryParam; +import ai.chat2db.server.domain.api.service.EnvironmentService; +import ai.chat2db.server.tools.base.wrapper.result.ListResult; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * Basic interface + * + * @author Jiaju Zhuang + */ +@RequestMapping("/api/common") +@RestController +public class CommonCommonController { + + @Resource + private EnvironmentService environmentService; + @Resource + private EnvironmentCommonConverter environmentCommonConverter; + + /** + * Query all environments + * + * @return + * @version 2.1.0 + */ + @GetMapping("/environment/list_all") + public ListResult environmentList() { + EnvironmentPageQueryParam environmentPageQueryParam = new EnvironmentPageQueryParam(); + environmentPageQueryParam.setPageSize(Integer.MIN_VALUE); + return ListResult.of( + environmentCommonConverter.dto2vo(environmentService.pageQuery(environmentPageQueryParam).getData())); + } + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/converter/EnvironmentCommonConverter.java b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/converter/EnvironmentCommonConverter.java new file mode 100644 index 00000000..74978830 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/converter/EnvironmentCommonConverter.java @@ -0,0 +1,27 @@ +package ai.chat2db.server.common.api.controller.converter; + +import java.util.List; + +import ai.chat2db.server.common.api.controller.vo.SimpleEnvironmentVO; +import ai.chat2db.server.domain.api.model.Environment; +import lombok.extern.slf4j.Slf4j; +import org.mapstruct.Mapper; + +/** + * converter + * + * @author Jiaju Zhuang + */ +@Slf4j +@Mapper(componentModel = "spring") +public abstract class EnvironmentCommonConverter { + + + /** + * convert + * + * @param list + * @return + */ + public abstract List dto2vo(List list); +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/request/CommonPageQueryRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/request/CommonPageQueryRequest.java new file mode 100644 index 00000000..87c58b29 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/request/CommonPageQueryRequest.java @@ -0,0 +1,20 @@ + +package ai.chat2db.server.common.api.controller.request; + +import ai.chat2db.server.tools.base.wrapper.request.PageQueryRequest; +import lombok.Data; + +/** + * Common pagination query + * + * @author Jiaju Zhuang + */ +@Data +public class CommonPageQueryRequest extends PageQueryRequest { + + + /** + * searchKey + */ + private String searchKey; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/request/CommonQueryRequest.java b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/request/CommonQueryRequest.java new file mode 100644 index 00000000..048b6c23 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/request/CommonQueryRequest.java @@ -0,0 +1,18 @@ + +package ai.chat2db.server.common.api.controller.request; + +import lombok.Data; + +/** + * Common query + * + * @author Jiaju Zhuang + */ +@Data +public class CommonQueryRequest { + + /** + * searchKey + */ + private String searchKey; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/vo/SimpleEnvironmentVO.java b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/vo/SimpleEnvironmentVO.java new file mode 100644 index 00000000..4c9efe9d --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/vo/SimpleEnvironmentVO.java @@ -0,0 +1,48 @@ +package ai.chat2db.server.common.api.controller.vo; + +import java.io.Serial; +import java.io.Serializable; + +import ai.chat2db.server.domain.api.enums.EnvironmentStyleEnum; +import ai.chat2db.server.tools.base.constant.EasyToolsConstant; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * Environment + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class SimpleEnvironmentVO implements Serializable { + + @Serial + private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID; + + /** + * 主键 + */ + private Long id; + + /** + * 环境名称 + */ + private String name; + + /** + * 环境缩写 + */ + private String shortName; + + /** + * 样式类型 + * + * @see EnvironmentStyleEnum + */ + private String style; +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/vo/SimpleUserVO.java b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/vo/SimpleUserVO.java new file mode 100644 index 00000000..d9c67b84 --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-common-api/src 2/main/java/ai/chat2db/server/common/api/controller/vo/SimpleUserVO.java @@ -0,0 +1,41 @@ + +package ai.chat2db.server.common.api.controller.vo; + +import java.io.Serial; +import java.io.Serializable; + +import ai.chat2db.server.tools.base.constant.EasyToolsConstant; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * user + * + * @author Jiaju Zhuang + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class +SimpleUserVO implements Serializable { + @Serial + private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID; + + /** + * 主键 + */ + private Long id; + + /** + * 用户名 + */ + private String userName; + + /** + * 昵称 + */ + private String nickName; +} \ No newline at end of file