mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-29 10:43:06 +08:00
Complete team user code
This commit is contained in:
@ -61,6 +61,12 @@ public class DataSourceAccess implements Serializable {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private Long dataSourceId;
|
private Long dataSourceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据源
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private DataSource dataSource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 授权类型
|
* 授权类型
|
||||||
*
|
*
|
||||||
|
@ -18,7 +18,12 @@ public class DataSourceAccessComprehensivePageQueryParam extends PageQueryParam
|
|||||||
private Long dataSourceId;
|
private Long dataSourceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* searchKey
|
* Query keywords for users or teams
|
||||||
*/
|
*/
|
||||||
private String searchKey;
|
private String userOrTeamSearchKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Query keywords for data source
|
||||||
|
*/
|
||||||
|
private String dataSourceSearchKey;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
}
|
@ -20,4 +20,10 @@ public class DataSourceAccessSelector {
|
|||||||
* 授权对象
|
* 授权对象
|
||||||
*/
|
*/
|
||||||
private Boolean accessObject;
|
private Boolean accessObject;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据源
|
||||||
|
*/
|
||||||
|
private Boolean dataSource;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 团队描述
|
||||||
|
*/
|
||||||
|
private String description;
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package ai.chat2db.server.domain.api.param.team;
|
||||||
|
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* page query
|
||||||
|
*
|
||||||
|
* @author Jiaju Zhuang
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class TeamPageQueryParam extends PageQueryParam {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* searchKey
|
||||||
|
*/
|
||||||
|
private String searchKey;
|
||||||
|
|
||||||
|
}
|
@ -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 {
|
||||||
|
/**
|
||||||
|
* empty
|
||||||
|
*/
|
||||||
|
private Boolean empty;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 团队描述
|
||||||
|
*/
|
||||||
|
private String description;
|
||||||
|
}
|
@ -27,4 +27,14 @@ public class TeamUserComprehensivePageQueryParam extends PageQueryParam {
|
|||||||
* @see ai.chat2db.server.domain.api.enums.RoleCodeEnum
|
* @see ai.chat2db.server.domain.api.enums.RoleCodeEnum
|
||||||
*/
|
*/
|
||||||
private String teamRoleCode;
|
private String teamRoleCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Query keywords for team
|
||||||
|
*/
|
||||||
|
private String teamSearchKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Query keywords for user
|
||||||
|
*/
|
||||||
|
private String userSearchKey;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package ai.chat2db.server.domain.api.param.user;
|
||||||
|
|
||||||
|
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 ValidStatusEnum
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private String status;
|
||||||
|
}
|
@ -1,16 +1,13 @@
|
|||||||
package ai.chat2db.server.domain.api.param;
|
package ai.chat2db.server.domain.api.param.user;
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
|
|
||||||
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.SuperBuilder;
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户查询参数
|
* * page query
|
||||||
*
|
*
|
||||||
* @author Jiaju Zhuang
|
* @author Jiaju Zhuang
|
||||||
*/
|
*/
|
||||||
@ -18,11 +15,10 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@SuperBuilder
|
@SuperBuilder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class UserQueryParam extends PageQueryParam {
|
public class UserPageQueryParam extends PageQueryParam {
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 7341467383637825621L;
|
|
||||||
/**
|
/**
|
||||||
* 用户名
|
* searchKey
|
||||||
*/
|
*/
|
||||||
private String keyWord;
|
private String searchKey;
|
||||||
}
|
}
|
@ -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 {
|
||||||
|
/**
|
||||||
|
* empty
|
||||||
|
*/
|
||||||
|
private Boolean empty;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
package ai.chat2db.server.domain.api.param.user;
|
||||||
|
|
||||||
|
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 userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 昵称
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邮箱
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户状态
|
||||||
|
*
|
||||||
|
* @see ValidStatusEnum
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private String status;
|
||||||
|
}
|
@ -1,10 +1,11 @@
|
|||||||
package ai.chat2db.server.domain.api.service;
|
package ai.chat2db.server.domain.api.service;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.DataSourceAccess;
|
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 ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessComprehensivePageQueryParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessCreatParam;
|
||||||
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessSelector;
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessSelector;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
@ -25,14 +26,14 @@ public interface DataSourceAccessService {
|
|||||||
PageResult<DataSourceAccess> comprehensivePageQuery(DataSourceAccessComprehensivePageQueryParam param,
|
PageResult<DataSourceAccess> comprehensivePageQuery(DataSourceAccessComprehensivePageQueryParam param,
|
||||||
DataSourceAccessSelector selector);
|
DataSourceAccessSelector selector);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Batch Create
|
* Batch Create
|
||||||
*
|
*
|
||||||
* @param param
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
ActionResult batchCreate(DataSourceAccessBatchCreatParam param);
|
DataResult<Long> create(DataSourceAccessCreatParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* delete
|
* delete
|
||||||
*
|
*
|
||||||
|
@ -3,7 +3,15 @@ package ai.chat2db.server.domain.api.service;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.Team;
|
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.TeamSelector;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.TeamUpdateParam;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* team
|
* team
|
||||||
@ -12,6 +20,15 @@ import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
|||||||
*/
|
*/
|
||||||
public interface TeamService {
|
public interface TeamService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pagination query
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @param selector
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
PageResult<Team> pageQuery(TeamPageQueryParam param, TeamSelector selector);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List Query Data
|
* List Query Data
|
||||||
*
|
*
|
||||||
@ -20,4 +37,28 @@ public interface TeamService {
|
|||||||
*/
|
*/
|
||||||
ListResult<Team> listQuery(List<Long> idList);
|
ListResult<Team> listQuery(List<Long> idList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
DataResult<Long> create(TeamCreateParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* update
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
DataResult<Long> update(TeamUpdateParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* delete
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ActionResult delete(@NotNull Long id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,12 @@ package ai.chat2db.server.domain.api.service;
|
|||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.TeamUser;
|
import ai.chat2db.server.domain.api.model.TeamUser;
|
||||||
import ai.chat2db.server.domain.api.param.team.user.TeamUserComprehensivePageQueryParam;
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserComprehensivePageQueryParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserCreatParam;
|
||||||
import ai.chat2db.server.domain.api.param.team.user.TeamUserSelector;
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserSelector;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* team user
|
* team user
|
||||||
@ -21,4 +25,19 @@ public interface TeamUserService {
|
|||||||
*/
|
*/
|
||||||
PageResult<TeamUser> comprehensivePageQuery(TeamUserComprehensivePageQueryParam param, TeamUserSelector selector);
|
PageResult<TeamUser> comprehensivePageQuery(TeamUserComprehensivePageQueryParam param, TeamUserSelector selector);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
DataResult<Long> create(TeamUserCreatParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* delete
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ActionResult delete(@NotNull Long id);
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,11 @@ package ai.chat2db.server.domain.api.service;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.User;
|
import ai.chat2db.server.domain.api.model.User;
|
||||||
import ai.chat2db.server.domain.api.param.UserQueryParam;
|
import ai.chat2db.server.domain.api.param.user.UserCreateParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.user.UserSelector;
|
||||||
|
import ai.chat2db.server.domain.api.param.user.UserPageQueryParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.user.UserUpdateParam;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||||
@ -44,26 +48,26 @@ public interface UserService {
|
|||||||
* @param param
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PageResult<User> queryPage(UserQueryParam param);
|
PageResult<User> pageQuery(UserPageQueryParam param, UserSelector selector);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新用户信息
|
* 更新用户信息
|
||||||
* @param user
|
* @param user
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
DataResult<Boolean> update(User user);
|
DataResult<Long> update(UserUpdateParam user);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除用户
|
* 删除用户
|
||||||
* @param id
|
* @param id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
DataResult<Boolean> delete(Long id);
|
ActionResult delete(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建一个用户
|
* 创建一个用户
|
||||||
* @param user
|
* @param user
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
DataResult<Long> create(User user);
|
DataResult<Long> create(UserCreateParam user);
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package ai.chat2db.server.domain.core.converter;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.DataSourceAccess;
|
import ai.chat2db.server.domain.api.model.DataSourceAccess;
|
||||||
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessCreatParam;
|
||||||
import ai.chat2db.server.domain.repository.entity.DataSourceAccessDO;
|
import ai.chat2db.server.domain.repository.entity.DataSourceAccessDO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
@ -46,6 +47,19 @@ public abstract class DataSourceAccessConverter {
|
|||||||
public abstract DataSourceAccessDO param2do(Long dataSourceId, Long accessObjectId, String accessObjectType,
|
public abstract DataSourceAccessDO param2do(Long dataSourceId, Long accessObjectId, String accessObjectType,
|
||||||
Long userId);
|
Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(target = "createUserId", source = "userId"),
|
||||||
|
@Mapping(target = "modifiedUserId", source = "userId"),
|
||||||
|
})
|
||||||
|
public abstract DataSourceAccessDO param2do(DataSourceAccessCreatParam param, Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* convert
|
* convert
|
||||||
*
|
*
|
||||||
|
@ -4,6 +4,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.Team;
|
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.TeamUpdateParam;
|
||||||
import ai.chat2db.server.domain.api.service.TeamService;
|
import ai.chat2db.server.domain.api.service.TeamService;
|
||||||
import ai.chat2db.server.domain.repository.entity.TeamDO;
|
import ai.chat2db.server.domain.repository.entity.TeamDO;
|
||||||
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
||||||
@ -37,6 +39,22 @@ public abstract class TeamConverter {
|
|||||||
*/
|
*/
|
||||||
public abstract List<Team> do2dto(List<TeamDO> list);
|
public abstract List<Team> do2dto(List<TeamDO> list);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract TeamDO param2do(TeamCreateParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract TeamDO param2do(TeamUpdateParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fill in detailed information
|
* Fill in detailed information
|
||||||
*
|
*
|
||||||
|
@ -5,6 +5,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.Environment;
|
import ai.chat2db.server.domain.api.model.Environment;
|
||||||
import ai.chat2db.server.domain.api.model.TeamUser;
|
import ai.chat2db.server.domain.api.model.TeamUser;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserCreatParam;
|
||||||
import ai.chat2db.server.domain.api.service.EnvironmentService;
|
import ai.chat2db.server.domain.api.service.EnvironmentService;
|
||||||
import ai.chat2db.server.domain.repository.entity.TeamUserDO;
|
import ai.chat2db.server.domain.repository.entity.TeamUserDO;
|
||||||
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
||||||
@ -38,6 +39,20 @@ public abstract class TeamUserConverter {
|
|||||||
*/
|
*/
|
||||||
public abstract List<TeamUser> do2dto(List<TeamUserDO> list);
|
public abstract List<TeamUser> do2dto(List<TeamUserDO> list);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(target = "createUserId", source = "userId"),
|
||||||
|
@Mapping(target = "modifiedUserId", source = "userId"),
|
||||||
|
})
|
||||||
|
public abstract TeamUserDO param2do(TeamUserCreatParam param, Long userId);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fill in detailed information
|
* Fill in detailed information
|
||||||
*
|
*
|
||||||
|
@ -4,6 +4,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.User;
|
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.UserUpdateParam;
|
||||||
import ai.chat2db.server.domain.api.service.UserService;
|
import ai.chat2db.server.domain.api.service.UserService;
|
||||||
import ai.chat2db.server.domain.repository.entity.DbhubUserDO;
|
import ai.chat2db.server.domain.repository.entity.DbhubUserDO;
|
||||||
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
||||||
@ -50,6 +52,20 @@ public abstract class UserConverter {
|
|||||||
*/
|
*/
|
||||||
public abstract DbhubUserDO dto2do(User user);
|
public abstract DbhubUserDO dto2do(User user);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract DbhubUserDO param2do(UserCreateParam user);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param user
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract DbhubUserDO param2do(UserUpdateParam user);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fill in detailed information
|
* Fill in detailed information
|
||||||
*
|
*
|
||||||
|
@ -3,16 +3,13 @@ package ai.chat2db.server.domain.core.impl;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
|
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
|
||||||
import ai.chat2db.server.domain.api.model.DataSourceAccess;
|
import ai.chat2db.server.domain.api.model.DataSourceAccess;
|
||||||
import ai.chat2db.server.domain.api.model.DataSourceAccessObject;
|
import ai.chat2db.server.domain.api.model.DataSourceAccessObject;
|
||||||
import ai.chat2db.server.domain.api.model.Team;
|
import ai.chat2db.server.domain.api.model.Team;
|
||||||
import ai.chat2db.server.domain.api.model.User;
|
import ai.chat2db.server.domain.api.model.User;
|
||||||
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessBatchCreatParam;
|
|
||||||
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessComprehensivePageQueryParam;
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessComprehensivePageQueryParam;
|
||||||
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessObjectParam;
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessCreatParam;
|
||||||
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessSelector;
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessSelector;
|
||||||
import ai.chat2db.server.domain.api.service.DataSourceAccessService;
|
import ai.chat2db.server.domain.api.service.DataSourceAccessService;
|
||||||
import ai.chat2db.server.domain.api.service.TeamService;
|
import ai.chat2db.server.domain.api.service.TeamService;
|
||||||
@ -22,10 +19,10 @@ import ai.chat2db.server.domain.repository.entity.DataSourceAccessDO;
|
|||||||
import ai.chat2db.server.domain.repository.mapper.DataSourceAccessCustomMapper;
|
import ai.chat2db.server.domain.repository.mapper.DataSourceAccessCustomMapper;
|
||||||
import ai.chat2db.server.domain.repository.mapper.DataSourceAccessMapper;
|
import ai.chat2db.server.domain.repository.mapper.DataSourceAccessMapper;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||||
import ai.chat2db.server.tools.common.util.ContextUtils;
|
import ai.chat2db.server.tools.common.util.ContextUtils;
|
||||||
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
@ -58,8 +55,11 @@ public class DataSourceAccessServiceImpl implements DataSourceAccessService {
|
|||||||
@Override
|
@Override
|
||||||
public PageResult<DataSourceAccess> comprehensivePageQuery(DataSourceAccessComprehensivePageQueryParam param,
|
public PageResult<DataSourceAccess> comprehensivePageQuery(DataSourceAccessComprehensivePageQueryParam param,
|
||||||
DataSourceAccessSelector selector) {
|
DataSourceAccessSelector selector) {
|
||||||
IPage<DataSourceAccessDO> iPage = dataSourceAccessCustomMapper.comprehensivePageQuery(
|
Page<DataSourceAccessDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
||||||
new Page<>(param.getPageNo(), param.getPageSize()), param.getDataSourceId(), param.getSearchKey());
|
page.setSearchCount(param.getEnableReturnCount());
|
||||||
|
IPage<DataSourceAccessDO> iPage = dataSourceAccessCustomMapper.comprehensivePageQuery(page,
|
||||||
|
param.getDataSourceId(), param.getUserOrTeamSearchKey(),
|
||||||
|
param.getDataSourceSearchKey());
|
||||||
|
|
||||||
List<DataSourceAccess> list = dataSourceAccessConverter.do2dto(iPage.getRecords());
|
List<DataSourceAccess> list = dataSourceAccessConverter.do2dto(iPage.getRecords());
|
||||||
|
|
||||||
@ -69,25 +69,11 @@ public class DataSourceAccessServiceImpl implements DataSourceAccessService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActionResult batchCreate(DataSourceAccessBatchCreatParam param) {
|
public DataResult<Long> create(DataSourceAccessCreatParam param) {
|
||||||
if (CollectionUtils.isEmpty(param.getAccessObjectList())) {
|
DataSourceAccessDO data = dataSourceAccessConverter.param2do(param, ContextUtils.getUserId());
|
||||||
return ActionResult.isSuccess();
|
|
||||||
}
|
dataSourceAccessMapper.insert(data);
|
||||||
for (DataSourceAccessObjectParam dataSourceAccessObjectParam : param.getAccessObjectList()) {
|
return DataResult.of(data.getId());
|
||||||
LambdaQueryWrapper<DataSourceAccessDO> queryWrapper = new LambdaQueryWrapper<>();
|
|
||||||
queryWrapper.eq(DataSourceAccessDO::getAccessObjectType, dataSourceAccessObjectParam.getType());
|
|
||||||
queryWrapper.eq(DataSourceAccessDO::getDataSourceId, dataSourceAccessObjectParam.getId());
|
|
||||||
DataSourceAccessDO query = dataSourceAccessMapper.selectOne(queryWrapper);
|
|
||||||
if (query != null) {
|
|
||||||
log.info("The data source already exists, no need to add it again,{}",
|
|
||||||
JSON.toJSONString(dataSourceAccessObjectParam));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
dataSourceAccessMapper.insert(
|
|
||||||
dataSourceAccessConverter.param2do(param.getDataSourceId(), dataSourceAccessObjectParam.getId(),
|
|
||||||
dataSourceAccessObjectParam.getType(), ContextUtils.getUserId()));
|
|
||||||
}
|
|
||||||
return ActionResult.isSuccess();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -3,15 +3,25 @@ package ai.chat2db.server.domain.core.impl;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.Team;
|
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.TeamSelector;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.TeamUpdateParam;
|
||||||
import ai.chat2db.server.domain.api.service.TeamService;
|
import ai.chat2db.server.domain.api.service.TeamService;
|
||||||
import ai.chat2db.server.domain.core.converter.TeamConverter;
|
import ai.chat2db.server.domain.core.converter.TeamConverter;
|
||||||
import ai.chat2db.server.domain.repository.entity.TeamDO;
|
import ai.chat2db.server.domain.repository.entity.TeamDO;
|
||||||
import ai.chat2db.server.domain.repository.mapper.TeamMapper;
|
import ai.chat2db.server.domain.repository.mapper.TeamMapper;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -39,4 +49,48 @@ public class TeamServiceImpl implements TeamService {
|
|||||||
List<Team> list = teamConverter.do2dto(dataList);
|
List<Team> list = teamConverter.do2dto(dataList);
|
||||||
return ListResult.of(list);
|
return ListResult.of(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<Team> pageQuery(TeamPageQueryParam param, TeamSelector selector) {
|
||||||
|
LambdaQueryWrapper<TeamDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
if (StringUtils.isNotBlank(param.getSearchKey())) {
|
||||||
|
queryWrapper.and(wrapper -> wrapper.like(TeamDO::getCode, "%" + param.getSearchKey() + "%")
|
||||||
|
.or()
|
||||||
|
.like(TeamDO::getName, "%" + param.getSearchKey() + "%"));
|
||||||
|
}
|
||||||
|
Page<TeamDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
||||||
|
page.setSearchCount(param.getEnableReturnCount());
|
||||||
|
IPage<TeamDO> iPage = teamMapper.selectPage(page, queryWrapper);
|
||||||
|
List<Team> list = teamConverter.do2dto(iPage.getRecords());
|
||||||
|
|
||||||
|
fillData(list, selector);
|
||||||
|
|
||||||
|
return PageResult.of(list, iPage.getTotal(), param);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataResult<Long> create(TeamCreateParam param) {
|
||||||
|
TeamDO data = teamConverter.param2do(param);
|
||||||
|
teamMapper.insert(data);
|
||||||
|
return DataResult.of(data.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataResult<Long> update(TeamUpdateParam param) {
|
||||||
|
TeamDO data = teamConverter.param2do(param);
|
||||||
|
teamMapper.updateById(data);
|
||||||
|
return DataResult.of(data.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionResult delete(Long id) {
|
||||||
|
teamMapper.deleteById(id);
|
||||||
|
return ActionResult.isSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillData(List<Team> list, TeamSelector selector) {
|
||||||
|
if (CollectionUtils.isEmpty(list) || selector == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.TeamUser;
|
import ai.chat2db.server.domain.api.model.TeamUser;
|
||||||
import ai.chat2db.server.domain.api.param.team.user.TeamUserComprehensivePageQueryParam;
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserComprehensivePageQueryParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserCreatParam;
|
||||||
import ai.chat2db.server.domain.api.param.team.user.TeamUserSelector;
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserSelector;
|
||||||
import ai.chat2db.server.domain.api.service.TeamUserService;
|
import ai.chat2db.server.domain.api.service.TeamUserService;
|
||||||
import ai.chat2db.server.domain.core.converter.TeamConverter;
|
import ai.chat2db.server.domain.core.converter.TeamConverter;
|
||||||
@ -11,7 +12,11 @@ import ai.chat2db.server.domain.core.converter.TeamUserConverter;
|
|||||||
import ai.chat2db.server.domain.core.converter.UserConverter;
|
import ai.chat2db.server.domain.core.converter.UserConverter;
|
||||||
import ai.chat2db.server.domain.repository.entity.TeamUserDO;
|
import ai.chat2db.server.domain.repository.entity.TeamUserDO;
|
||||||
import ai.chat2db.server.domain.repository.mapper.TeamUserCustomMapper;
|
import ai.chat2db.server.domain.repository.mapper.TeamUserCustomMapper;
|
||||||
|
import ai.chat2db.server.domain.repository.mapper.TeamUserMapper;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||||
|
import ai.chat2db.server.tools.common.util.ContextUtils;
|
||||||
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -35,6 +40,8 @@ public class TeamUserServiceImpl implements TeamUserService {
|
|||||||
@Resource
|
@Resource
|
||||||
private TeamUserCustomMapper teamUserCustomMapper;
|
private TeamUserCustomMapper teamUserCustomMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
private TeamUserMapper teamUserMapper;
|
||||||
|
@Resource
|
||||||
private UserConverter userConverter;
|
private UserConverter userConverter;
|
||||||
@Resource
|
@Resource
|
||||||
private TeamConverter teamConverter;
|
private TeamConverter teamConverter;
|
||||||
@ -42,8 +49,10 @@ public class TeamUserServiceImpl implements TeamUserService {
|
|||||||
@Override
|
@Override
|
||||||
public PageResult<TeamUser> comprehensivePageQuery(TeamUserComprehensivePageQueryParam param,
|
public PageResult<TeamUser> comprehensivePageQuery(TeamUserComprehensivePageQueryParam param,
|
||||||
TeamUserSelector selector) {
|
TeamUserSelector selector) {
|
||||||
IPage<TeamUserDO> iPage = teamUserCustomMapper.comprehensivePageQuery(
|
Page<TeamUserDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
||||||
new Page<>(param.getPageNo(), param.getPageSize()), param.getTeamId(), param.getUserId(),
|
page.setSearchCount(param.getEnableReturnCount());
|
||||||
|
IPage<TeamUserDO> iPage = teamUserCustomMapper.comprehensivePageQuery(page, param.getTeamId(),
|
||||||
|
param.getUserId(),
|
||||||
param.getTeamRoleCode());
|
param.getTeamRoleCode());
|
||||||
|
|
||||||
List<TeamUser> list = teamUserConverter.do2dto(iPage.getRecords());
|
List<TeamUser> list = teamUserConverter.do2dto(iPage.getRecords());
|
||||||
@ -53,6 +62,20 @@ public class TeamUserServiceImpl implements TeamUserService {
|
|||||||
return PageResult.of(list, iPage.getTotal(), param);
|
return PageResult.of(list, iPage.getTotal(), param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataResult<Long> create(TeamUserCreatParam param) {
|
||||||
|
TeamUserDO data = teamUserConverter.param2do(param, ContextUtils.getUserId());
|
||||||
|
|
||||||
|
teamUserMapper.insert(data);
|
||||||
|
return DataResult.of(data.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActionResult delete(Long id) {
|
||||||
|
teamUserMapper.deleteById(id);
|
||||||
|
return ActionResult.isSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
private void fillData(List<TeamUser> list, TeamUserSelector selector) {
|
private void fillData(List<TeamUser> list, TeamUserSelector selector) {
|
||||||
if (CollectionUtils.isEmpty(list) || selector == null) {
|
if (CollectionUtils.isEmpty(list) || selector == null) {
|
||||||
return;
|
return;
|
||||||
|
@ -3,12 +3,18 @@ package ai.chat2db.server.domain.core.impl;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import ai.chat2db.server.domain.api.enums.RoleCodeEnum;
|
||||||
import ai.chat2db.server.domain.api.model.User;
|
import ai.chat2db.server.domain.api.model.User;
|
||||||
import ai.chat2db.server.domain.api.param.UserQueryParam;
|
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.UserSelector;
|
||||||
|
import ai.chat2db.server.domain.api.param.user.UserUpdateParam;
|
||||||
import ai.chat2db.server.domain.api.service.UserService;
|
import ai.chat2db.server.domain.api.service.UserService;
|
||||||
import ai.chat2db.server.domain.core.converter.UserConverter;
|
import ai.chat2db.server.domain.core.converter.UserConverter;
|
||||||
import ai.chat2db.server.domain.repository.entity.DbhubUserDO;
|
import ai.chat2db.server.domain.repository.entity.DbhubUserDO;
|
||||||
import ai.chat2db.server.domain.repository.mapper.DbhubUserMapper;
|
import ai.chat2db.server.domain.repository.mapper.DbhubUserMapper;
|
||||||
|
import ai.chat2db.server.tools.base.excption.BusinessException;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||||
@ -18,6 +24,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -61,37 +68,56 @@ public class UserServiceImpl implements UserService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<User> queryPage(UserQueryParam param) {
|
public PageResult<User> pageQuery(UserPageQueryParam param, UserSelector selector) {
|
||||||
LambdaQueryWrapper<DbhubUserDO> query = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<DbhubUserDO> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
if (Objects.nonNull(param.getKeyWord())) {
|
if (StringUtils.isNotBlank(param.getSearchKey())) {
|
||||||
query.like(DbhubUserDO::getUserName, param.getKeyWord());
|
queryWrapper.and(wrapper -> wrapper.like(DbhubUserDO::getUserName, "%" + param.getSearchKey() + "%")
|
||||||
|
.or()
|
||||||
|
.like(DbhubUserDO::getNickName, "%" + param.getSearchKey() + "%")
|
||||||
|
.or()
|
||||||
|
.like(DbhubUserDO::getEmail, "%" + param.getSearchKey() + "%"));
|
||||||
}
|
}
|
||||||
|
// Default not to query desktop accounts
|
||||||
|
queryWrapper.ne(DbhubUserDO::getId, RoleCodeEnum.DESKTOP.getDefaultUserId());
|
||||||
Page<DbhubUserDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
Page<DbhubUserDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
||||||
page.setOptimizeCountSql(false);
|
page.setSearchCount(param.getEnableReturnCount());
|
||||||
IPage<DbhubUserDO> iPage = dbhubUserMapper.selectPage(page, query);
|
IPage<DbhubUserDO> iPage = dbhubUserMapper.selectPage(page, queryWrapper);
|
||||||
return PageResult.of(userConverter.do2dto(iPage.getRecords()), iPage.getTotal(), param);
|
return PageResult.of(userConverter.do2dto(iPage.getRecords()), iPage.getTotal(), param);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataResult<Boolean> update(User user) {
|
public DataResult<Long> update(UserUpdateParam user) {
|
||||||
DbhubUserDO dbhubUserDO = userConverter.dto2do(user);
|
if (RoleCodeEnum.DESKTOP.getDefaultUserId().equals(user.getId())) {
|
||||||
if (Objects.nonNull(dbhubUserDO.getPassword())) {
|
throw new BusinessException("user.canNotOperateSystemAccount");
|
||||||
String bcryptPassword = DigestUtil.bcrypt(dbhubUserDO.getPassword());
|
|
||||||
dbhubUserDO.setPassword(bcryptPassword);
|
|
||||||
}
|
}
|
||||||
int n = dbhubUserMapper.updateById(dbhubUserDO);
|
DbhubUserDO data = userConverter.param2do(user);
|
||||||
return DataResult.of(n == 1);
|
if (Objects.nonNull(data.getPassword())) {
|
||||||
|
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
|
||||||
|
data.setPassword(bcryptPassword);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RoleCodeEnum.ADMIN.getDefaultUserId().equals(user.getId())) {
|
||||||
|
data.setStatus(null);
|
||||||
|
data.setEmail(null);
|
||||||
|
data.setUserName(null);
|
||||||
|
data.setRoleCode(null);
|
||||||
|
}
|
||||||
|
dbhubUserMapper.updateById(data);
|
||||||
|
return DataResult.of(data.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataResult<Boolean> delete(Long id) {
|
public ActionResult delete(Long id) {
|
||||||
int n = dbhubUserMapper.deleteById(id);
|
if (RoleCodeEnum.DESKTOP.getDefaultUserId().equals(id) || RoleCodeEnum.ADMIN.getDefaultUserId().equals(id)) {
|
||||||
return DataResult.of(n == 1);
|
throw new BusinessException("user.canNotOperateSystemAccount");
|
||||||
|
}
|
||||||
|
dbhubUserMapper.deleteById(id);
|
||||||
|
return ActionResult.isSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataResult<Long> create(User user) {
|
public DataResult<Long> create(UserCreateParam user) {
|
||||||
DbhubUserDO data = userConverter.dto2do(user);
|
DbhubUserDO data = userConverter.param2do(user);
|
||||||
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
|
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
|
||||||
data.setPassword(bcryptPassword);
|
data.setPassword(bcryptPassword);
|
||||||
dbhubUserMapper.insert(data);
|
dbhubUserMapper.insert(data);
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ai.chat2db.server.domain.repository.mapper;
|
package ai.chat2db.server.domain.repository.mapper;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.repository.entity.DataSourceAccessDO;
|
import ai.chat2db.server.domain.repository.entity.DataSourceAccessDO;
|
||||||
import ai.chat2db.server.domain.repository.entity.DataSourceDO;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.Mapper;
|
import com.baomidou.mybatisplus.core.mapper.Mapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@ -13,6 +12,8 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
*/
|
*/
|
||||||
public interface DataSourceAccessCustomMapper extends Mapper<DataSourceAccessDO> {
|
public interface DataSourceAccessCustomMapper extends Mapper<DataSourceAccessDO> {
|
||||||
|
|
||||||
IPage<DataSourceAccessDO> comprehensivePageQuery(IPage<DataSourceDO> page, @Param("dataSourceId") Long dataSourceId, @Param("searchKey") String searchKey);
|
IPage<DataSourceAccessDO> comprehensivePageQuery(IPage<DataSourceAccessDO> page, @Param("dataSourceId") Long dataSourceId,
|
||||||
|
@Param("userOrTeamSearchKey") String userOrTeamSearchKey,
|
||||||
|
@Param("dataSourceSearchKey") String dataSourceSearchKey);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package ai.chat2db.server.domain.repository.mapper;
|
package ai.chat2db.server.domain.repository.mapper;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.repository.entity.DataSourceDO;
|
|
||||||
import ai.chat2db.server.domain.repository.entity.TeamUserDO;
|
import ai.chat2db.server.domain.repository.entity.TeamUserDO;
|
||||||
import com.baomidou.mybatisplus.core.mapper.Mapper;
|
import com.baomidou.mybatisplus.core.mapper.Mapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -13,6 +12,6 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
*/
|
*/
|
||||||
public interface TeamUserCustomMapper extends Mapper<TeamUserDO> {
|
public interface TeamUserCustomMapper extends Mapper<TeamUserDO> {
|
||||||
|
|
||||||
IPage<TeamUserDO> comprehensivePageQuery(IPage<DataSourceDO> page, @Param("teamId") Long teamId,
|
IPage<TeamUserDO> comprehensivePageQuery(IPage<TeamUserDO> page, @Param("teamId") Long teamId,
|
||||||
@Param("userId") Long userId, @Param("teamRoleCode") String teamRoleCode);
|
@Param("userId") Long userId, @Param("teamRoleCode") String teamRoleCode);
|
||||||
}
|
}
|
||||||
|
@ -4,18 +4,24 @@
|
|||||||
<select id="comprehensivePageQuery" resultType="ai.chat2db.server.domain.repository.entity.DataSourceAccessDO">
|
<select id="comprehensivePageQuery" resultType="ai.chat2db.server.domain.repository.entity.DataSourceAccessDO">
|
||||||
select dsa.*
|
select dsa.*
|
||||||
from DATA_SOURCE_ACCESS dsa
|
from DATA_SOURCE_ACCESS dsa
|
||||||
<if test="searchKey != null ">
|
<if test="userOrTeamSearchKey != null ">
|
||||||
left join TEAM t on t.id =dsa.ACCESS_OBJECT_ID and dsa.ACCESS_OBJECT_TYPE = 'TEAM'
|
left join TEAM t on t.id =dsa.ACCESS_OBJECT_ID and dsa.ACCESS_OBJECT_TYPE = 'TEAM'
|
||||||
left join DBHUB_USER du on du.ID=dsa.ACCESS_OBJECT_ID and dsa.ACCESS_OBJECT_TYPE = 'USER'
|
left join DBHUB_USER du on du.ID=dsa.ACCESS_OBJECT_ID and dsa.ACCESS_OBJECT_TYPE = 'USER'
|
||||||
</if>
|
</if>
|
||||||
|
<if test="dataSourceSearchKey != null ">
|
||||||
|
left join DATA_SOURCE ds on ds.id =dsa.DATA_SOURCE_ID
|
||||||
|
</if>
|
||||||
<where>
|
<where>
|
||||||
<if test="dataSourceId != null ">
|
<if test="dataSourceId != null ">
|
||||||
and dsa.DATA_SOURCE_ID = #{dataSourceId}
|
and dsa.DATA_SOURCE_ID = #{dataSourceId}
|
||||||
</if>
|
</if>
|
||||||
<if test="searchKey != null ">
|
<if test="searchKey != null ">
|
||||||
and (t.CODE like concat('%',#{searchKey},'%') or t.NAME like concat('%',#{searchKey},'%') or
|
and (t.CODE like concat('%',#{userOrTeamSearchKey},'%') or t.NAME like concat('%',#{userOrTeamSearchKey},'%') or
|
||||||
du.USER_NAME like concat('%',#{searchKey},'%') or du.NICK_NAME like concat('%',#{searchKey},'%') or
|
du.USER_NAME like concat('%',#{userOrTeamSearchKey},'%') or du.NICK_NAME like concat('%',#{userOrTeamSearchKey},'%') or
|
||||||
du.EMAIL like concat('%',#{searchKey},'%'))
|
du.EMAIL like concat('%',#{userOrTeamSearchKey},'%'))
|
||||||
|
</if>
|
||||||
|
<if test="dataSourceSearchKey != null ">
|
||||||
|
and (ds.ALIAS like concat('%',#{dataSourceSearchKey},'%') or ds.URL like concat('%',#{dataSourceSearchKey},'%'))
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
@ -4,9 +4,12 @@
|
|||||||
<select id="comprehensivePageQuery" resultType="ai.chat2db.server.domain.repository.entity.TeamUserDO">
|
<select id="comprehensivePageQuery" resultType="ai.chat2db.server.domain.repository.entity.TeamUserDO">
|
||||||
select tu.*
|
select tu.*
|
||||||
from TEAM_USER tu
|
from TEAM_USER tu
|
||||||
<if test="teamRoleCode != null ">
|
<if test="teamRoleCode != null or teamSearchKey != null">
|
||||||
left join TEAM t on t.id = tu.TEAM_ID
|
left join TEAM t on t.id = tu.TEAM_ID
|
||||||
</if>
|
</if>
|
||||||
|
<if test="userSearchKey != null">
|
||||||
|
left join DBHUB_USER du on du.id = tu.USER_ID
|
||||||
|
</if>
|
||||||
<where>
|
<where>
|
||||||
<if test="teamId != null ">
|
<if test="teamId != null ">
|
||||||
and tu.TEAM_ID = #{teamId}
|
and tu.TEAM_ID = #{teamId}
|
||||||
@ -18,6 +21,14 @@
|
|||||||
and t.ROLE_CODE = #{teamRoleCode}
|
and t.ROLE_CODE = #{teamRoleCode}
|
||||||
and t.STATUS = 'VALID'
|
and t.STATUS = 'VALID'
|
||||||
</if>
|
</if>
|
||||||
|
<if test="teamSearchKey != null ">
|
||||||
|
and (t.CODE like concat('%',#{teamSearchKey},'%') or t.NAME like concat('%',#{teamSearchKey},'%'))
|
||||||
|
</if>
|
||||||
|
<if test="userSearchKey != null ">
|
||||||
|
and ( du.USER_NAME like concat('%',#{userSearchKey},'%') or du.NICK_NAME like
|
||||||
|
concat('%',#{userSearchKey},'%') or
|
||||||
|
du.EMAIL like concat('%',#{userSearchKey},'%'))
|
||||||
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
@ -23,4 +23,6 @@ connection.ssh.error=SSH connection failed, please check the connection informat
|
|||||||
connection.driver.load.error=Failed to load driver class, please check the driver jar package
|
connection.driver.load.error=Failed to load driver class, please check the driver jar package
|
||||||
# sqlResult
|
# sqlResult
|
||||||
sqlResult.rowNumber=Row Number
|
sqlResult.rowNumber=Row Number
|
||||||
sqlResult.success=Execution successful
|
sqlResult.success=Execution successful
|
||||||
|
|
||||||
|
user.canNotOperateSystemAccount=System accounts cannot be operated
|
@ -21,4 +21,6 @@ connection.ssh.error=SSH connection failed, please check the connection informat
|
|||||||
connection.driver.load.error=Failed to load driver class, please check the driver jar package
|
connection.driver.load.error=Failed to load driver class, please check the driver jar package
|
||||||
# sqlResult
|
# sqlResult
|
||||||
sqlResult.rowNumber=Row Number
|
sqlResult.rowNumber=Row Number
|
||||||
sqlResult.success=Execution successful
|
sqlResult.success=Execution successful
|
||||||
|
|
||||||
|
user.canNotOperateSystemAccount=System accounts cannot be operated
|
@ -20,4 +20,6 @@ connection.ssh.error=SSH 链接异常,请检查SSH配置
|
|||||||
connection.driver.load.error=数据库驱动加载异常,请检查驱动配置
|
connection.driver.load.error=数据库驱动加载异常,请检查驱动配置
|
||||||
# sqlResult
|
# sqlResult
|
||||||
sqlResult.rowNumber=行号
|
sqlResult.rowNumber=行号
|
||||||
sqlResult.success=执行成功
|
sqlResult.success=执行成功
|
||||||
|
|
||||||
|
user.canNotOperateSystemAccount=不能操作系统账号
|
||||||
|
@ -272,6 +272,25 @@ public class PageResult<T> implements Serializable, Result<List<T>> {
|
|||||||
return pageResult;
|
return pageResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将当前的类型转换成另外一个类型
|
||||||
|
*
|
||||||
|
* @param mapper 转换的方法
|
||||||
|
* @param <R> 返回的类型
|
||||||
|
* @return 分页返回对象
|
||||||
|
*/
|
||||||
|
public <R> ListResult<R> mapToList(Function<T, R> mapper) {
|
||||||
|
List<R> returnData = hasData(this) ? getData().stream().map(mapper).collect(Collectors.toList())
|
||||||
|
: Collections.emptyList();
|
||||||
|
ListResult<R> result = new ListResult<>();
|
||||||
|
result.setSuccess(getSuccess());
|
||||||
|
result.setErrorCode(getErrorCode());
|
||||||
|
result.setErrorMessage(getErrorMessage());
|
||||||
|
result.setTraceId(getTraceId());
|
||||||
|
result.setData(returnData);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将当前的类型转换成另外一个类型
|
* 将当前的类型转换成另外一个类型
|
||||||
* 并且转换成web的类型
|
* 并且转换成web的类型
|
||||||
|
@ -1,11 +1,19 @@
|
|||||||
|
|
||||||
package ai.chat2db.server.admin.api.controller.common;
|
package ai.chat2db.server.admin.api.controller.common;
|
||||||
|
|
||||||
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
import java.util.List;
|
||||||
|
|
||||||
|
import ai.chat2db.server.admin.api.controller.common.converter.CommonAdminConverter;
|
||||||
import ai.chat2db.server.admin.api.controller.common.vo.TeamUserListVO;
|
import ai.chat2db.server.admin.api.controller.common.vo.TeamUserListVO;
|
||||||
import ai.chat2db.server.admin.api.controller.datasource.converter.DataSourceAdminConverter;
|
import ai.chat2db.server.admin.api.controller.team.vo.SimpleTeamVO;
|
||||||
import ai.chat2db.server.domain.api.service.DataSourceService;
|
import ai.chat2db.server.admin.api.controller.user.vo.SimpleUserVO;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
import ai.chat2db.server.common.api.controller.request.CommonQueryRequest;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.TeamPageQueryParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.user.UserPageQueryParam;
|
||||||
|
import ai.chat2db.server.domain.api.service.TeamService;
|
||||||
|
import ai.chat2db.server.domain.api.service.UserService;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -22,9 +30,11 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
public class CommonAdminController {
|
public class CommonAdminController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DataSourceService dataSourceService;
|
private UserService userService;
|
||||||
@Resource
|
@Resource
|
||||||
private DataSourceAdminConverter dataSourceAdminConverter;
|
private TeamService teamService;
|
||||||
|
@Resource
|
||||||
|
private CommonAdminConverter commonAdminConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fuzzy query of users or teams
|
* Fuzzy query of users or teams
|
||||||
@ -34,8 +44,18 @@ public class CommonAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@GetMapping("/team_user/list")
|
@GetMapping("/team_user/list")
|
||||||
public WebPageResult<TeamUserListVO> teamUserList(@Valid CommonPageQueryRequest request) {
|
public ListResult<TeamUserListVO> teamUserList(@Valid CommonQueryRequest request) {
|
||||||
return null;
|
UserPageQueryParam userPageQueryParam = commonAdminConverter.request2paramUser(request);
|
||||||
|
List<TeamUserListVO> result = Lists.newArrayList();
|
||||||
|
result.addAll(userService.pageQuery(userPageQueryParam, null)
|
||||||
|
.mapToList(commonAdminConverter::dto2voTeamUser)
|
||||||
|
.getData());
|
||||||
|
|
||||||
|
TeamPageQueryParam teamPageQueryParam = commonAdminConverter.request2paramTeam(request);
|
||||||
|
result.addAll(teamService.pageQuery(teamPageQueryParam, null)
|
||||||
|
.mapToList(commonAdminConverter::dto2voTeamUser)
|
||||||
|
.getData());
|
||||||
|
return ListResult.of(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,8 +66,9 @@ public class CommonAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@GetMapping("/user/list")
|
@GetMapping("/user/list")
|
||||||
public WebPageResult<TeamUserListVO> userList(@Valid CommonPageQueryRequest request) {
|
public ListResult<SimpleUserVO> userList(@Valid CommonQueryRequest request) {
|
||||||
return null;
|
return userService.pageQuery(commonAdminConverter.request2paramUser(request), null)
|
||||||
|
.mapToList(commonAdminConverter::dto2voUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,8 +79,9 @@ public class CommonAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@GetMapping("/team/list")
|
@GetMapping("/team/list")
|
||||||
public WebPageResult<TeamUserListVO> teamList(@Valid CommonPageQueryRequest request) {
|
public ListResult<SimpleTeamVO> teamList(@Valid CommonQueryRequest request) {
|
||||||
return null;
|
return teamService.pageQuery(commonAdminConverter.request2paramTeam(request), null)
|
||||||
|
.mapToList(commonAdminConverter::dto2voTeam);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,87 @@
|
|||||||
|
package ai.chat2db.server.admin.api.controller.common.converter;
|
||||||
|
|
||||||
|
import ai.chat2db.server.admin.api.controller.common.vo.TeamUserListVO;
|
||||||
|
import ai.chat2db.server.admin.api.controller.team.vo.SimpleTeamVO;
|
||||||
|
import ai.chat2db.server.admin.api.controller.user.vo.SimpleUserVO;
|
||||||
|
import ai.chat2db.server.common.api.controller.request.CommonQueryRequest;
|
||||||
|
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
|
||||||
|
import ai.chat2db.server.domain.api.model.Team;
|
||||||
|
import ai.chat2db.server.domain.api.model.User;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.TeamPageQueryParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.user.UserPageQueryParam;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.Mapping;
|
||||||
|
import org.mapstruct.Mappings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* converter
|
||||||
|
*
|
||||||
|
* @author Jiaju Zhuang
|
||||||
|
*/
|
||||||
|
@Mapper(componentModel = "spring", imports = {AccessObjectTypeEnum.class})
|
||||||
|
public abstract class CommonAdminConverter {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(target = "pageSize", expression = "java(10)"),
|
||||||
|
})
|
||||||
|
public abstract TeamPageQueryParam request2paramTeam(CommonQueryRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(target = "pageSize", expression = "java(10)"),
|
||||||
|
})
|
||||||
|
public abstract UserPageQueryParam request2paramUser(CommonQueryRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract SimpleTeamVO dto2voTeam(Team dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract SimpleUserVO dto2voUser(User dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(target = "type", expression = "java(AccessObjectTypeEnum.TEAM.getCode())"),
|
||||||
|
@Mapping(target = "code", source = "code"),
|
||||||
|
@Mapping(target = "name", source = "name"),
|
||||||
|
})
|
||||||
|
public abstract TeamUserListVO dto2voTeamUser(Team dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(target = "type", expression = "java(AccessObjectTypeEnum.USER.getCode())"),
|
||||||
|
@Mapping(target = "code", source = "userName"),
|
||||||
|
@Mapping(target = "name", source = "nickName"),
|
||||||
|
})
|
||||||
|
public abstract TeamUserListVO dto2voTeamUser(User dto);
|
||||||
|
}
|
@ -5,6 +5,7 @@ import ai.chat2db.server.admin.api.controller.datasource.converter.DataSourceAcc
|
|||||||
import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceAccessBatchCreateRequest;
|
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.request.DataSourceAccessPageQueryRequest;
|
||||||
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourceAccessPageQueryVO;
|
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourceAccessPageQueryVO;
|
||||||
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessCreatParam;
|
||||||
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessSelector;
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessSelector;
|
||||||
import ai.chat2db.server.domain.api.service.DataSourceAccessService;
|
import ai.chat2db.server.domain.api.service.DataSourceAccessService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
@ -59,8 +60,14 @@ public class DataSourceAccessAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@PostMapping("/batch_create")
|
@PostMapping("/batch_create")
|
||||||
public ActionResult batchCreate(@RequestBody DataSourceAccessBatchCreateRequest request) {
|
public ActionResult batchCreate(@Valid @RequestBody DataSourceAccessBatchCreateRequest request) {
|
||||||
return dataSourceAccessService.batchCreate(dataSourceAccessAdminConverter.request2param(request));
|
request.getAccessObjectList()
|
||||||
|
.forEach(accessObject -> dataSourceAccessService.create(DataSourceAccessCreatParam.builder()
|
||||||
|
.dataSourceId(request.getDataSourceId())
|
||||||
|
.accessObjectId(accessObject.getId())
|
||||||
|
.accessObjectType(accessObject.getType())
|
||||||
|
.build()));
|
||||||
|
return ActionResult.isSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -71,7 +78,7 @@ public class DataSourceAccessAdminController {
|
|||||||
*/
|
*/
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public ActionResult delete(@PathVariable Long id) {
|
public ActionResult delete(@PathVariable Long id) {
|
||||||
return null;
|
return dataSourceAccessService.delete(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,8 @@ 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.DataSourceAccessBatchCreatParam;
|
||||||
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessComprehensivePageQueryParam;
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessComprehensivePageQueryParam;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.Mapping;
|
||||||
|
import org.mapstruct.Mappings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* converter
|
* converter
|
||||||
@ -23,6 +25,9 @@ public abstract class DataSourceAccessAdminConverter {
|
|||||||
* @param request
|
* @param request
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(source = "searchKey", target = "userOrTeamSearchKey"),
|
||||||
|
})
|
||||||
public abstract DataSourceAccessComprehensivePageQueryParam request2param(DataSourceAccessPageQueryRequest request);
|
public abstract DataSourceAccessComprehensivePageQueryParam request2param(DataSourceAccessPageQueryRequest request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
|
|
||||||
package ai.chat2db.server.admin.api.controller.team;
|
package ai.chat2db.server.admin.api.controller.team;
|
||||||
|
|
||||||
|
import ai.chat2db.server.admin.api.controller.team.converter.TeamAdminConverter;
|
||||||
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
import ai.chat2db.server.admin.api.controller.team.request.TeamCreateRequest;
|
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.request.TeamUpdateRequest;
|
||||||
import ai.chat2db.server.admin.api.controller.team.vo.TeamPageQueryVO;
|
import ai.chat2db.server.admin.api.controller.team.vo.TeamPageQueryVO;
|
||||||
|
import ai.chat2db.server.domain.api.service.TeamService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -25,6 +28,10 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RequestMapping("/api/admin/team")
|
@RequestMapping("/api/admin/team")
|
||||||
@RestController
|
@RestController
|
||||||
public class TeamAdminController {
|
public class TeamAdminController {
|
||||||
|
@Resource
|
||||||
|
private TeamService teamService;
|
||||||
|
@Resource
|
||||||
|
private TeamAdminConverter teamAdminConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pagination query
|
* Pagination query
|
||||||
@ -35,7 +42,8 @@ public class TeamAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<TeamPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
public WebPageResult<TeamPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
||||||
return null;
|
return teamService.pageQuery(teamAdminConverter.request2param(request), null)
|
||||||
|
.mapToWeb(teamAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,8 +55,7 @@ public class TeamAdminController {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
public DataResult<Long> create(@RequestBody TeamCreateRequest request) {
|
public DataResult<Long> create(@RequestBody TeamCreateRequest request) {
|
||||||
return null;
|
return teamService.create(teamAdminConverter.request2param(request));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -59,8 +66,8 @@ public class TeamAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
public ActionResult update(@RequestBody TeamUpdateRequest request) {
|
public DataResult<Long> update(@RequestBody TeamUpdateRequest request) {
|
||||||
return null;
|
return teamService.update(teamAdminConverter.request2param(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -71,6 +78,6 @@ public class TeamAdminController {
|
|||||||
*/
|
*/
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public ActionResult delete(@PathVariable Long id) {
|
public ActionResult delete(@PathVariable Long id) {
|
||||||
return null;
|
return teamService.delete(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
|
|
||||||
package ai.chat2db.server.admin.api.controller.team;
|
package ai.chat2db.server.admin.api.controller.team;
|
||||||
|
|
||||||
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
import ai.chat2db.server.admin.api.controller.team.converter.TeamDataSourcesAdminConverter;
|
||||||
import ai.chat2db.server.admin.api.controller.team.request.TeamDataSourceBatchCreateRequest;
|
import ai.chat2db.server.admin.api.controller.team.request.TeamDataSourceBatchCreateRequest;
|
||||||
import ai.chat2db.server.admin.api.controller.team.vo.TeamDataSourcePageQueryVO;
|
import ai.chat2db.server.admin.api.controller.team.vo.TeamDataSourcePageQueryVO;
|
||||||
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
|
||||||
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessCreatParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessSelector;
|
||||||
|
import ai.chat2db.server.domain.api.service.DataSourceAccessService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -24,6 +29,14 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RequestMapping("/api/admin/team/data_source")
|
@RequestMapping("/api/admin/team/data_source")
|
||||||
@RestController
|
@RestController
|
||||||
public class TeamDataSourceAdminController {
|
public class TeamDataSourceAdminController {
|
||||||
|
private static final DataSourceAccessSelector DATA_SOURCE_ACCESS_SELECTOR = DataSourceAccessSelector.builder()
|
||||||
|
.accessObject(Boolean.TRUE)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DataSourceAccessService dataSourceAccessService;
|
||||||
|
@Resource
|
||||||
|
private TeamDataSourcesAdminConverter teamDataSourcesAdminConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pagination query
|
* Pagination query
|
||||||
@ -34,7 +47,9 @@ public class TeamDataSourceAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<TeamDataSourcePageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
public WebPageResult<TeamDataSourcePageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
||||||
return null;
|
return dataSourceAccessService.comprehensivePageQuery(teamDataSourcesAdminConverter.request2param(request),
|
||||||
|
DATA_SOURCE_ACCESS_SELECTOR)
|
||||||
|
.mapToWeb(teamDataSourcesAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,9 +60,14 @@ public class TeamDataSourceAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@PostMapping("/batch_create")
|
@PostMapping("/batch_create")
|
||||||
public DataResult<Long> create(@RequestBody TeamDataSourceBatchCreateRequest request) {
|
public ActionResult create(@Valid @RequestBody TeamDataSourceBatchCreateRequest request) {
|
||||||
return null;
|
request.getDataSourceIdList()
|
||||||
|
.forEach(dataSourceId -> dataSourceAccessService.create(DataSourceAccessCreatParam.builder()
|
||||||
|
.dataSourceId(dataSourceId)
|
||||||
|
.accessObjectId(request.getTeamId())
|
||||||
|
.accessObjectType(AccessObjectTypeEnum.TEAM.getCode())
|
||||||
|
.build()));
|
||||||
|
return ActionResult.isSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,6 +78,6 @@ public class TeamDataSourceAdminController {
|
|||||||
*/
|
*/
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public ActionResult delete(@PathVariable Long id) {
|
public ActionResult delete(@PathVariable Long id) {
|
||||||
return null;
|
return dataSourceAccessService.delete(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
|
|
||||||
package ai.chat2db.server.admin.api.controller.team;
|
package ai.chat2db.server.admin.api.controller.team;
|
||||||
|
|
||||||
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
import ai.chat2db.server.admin.api.controller.team.converter.TeamUserAdminConverter;
|
||||||
import ai.chat2db.server.admin.api.controller.team.request.TeamUserBatchCreateRequest;
|
import ai.chat2db.server.admin.api.controller.team.request.TeamUserBatchCreateRequest;
|
||||||
import ai.chat2db.server.admin.api.controller.team.vo.TeamUserPageQueryVO;
|
import ai.chat2db.server.admin.api.controller.team.vo.TeamUserPageQueryVO;
|
||||||
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserCreatParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserSelector;
|
||||||
|
import ai.chat2db.server.domain.api.service.TeamUserService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -24,6 +28,14 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RequestMapping("/api/admin/team/user")
|
@RequestMapping("/api/admin/team/user")
|
||||||
@RestController
|
@RestController
|
||||||
public class TeamUserAdminController {
|
public class TeamUserAdminController {
|
||||||
|
private static final TeamUserSelector TEAM_USER_SELECTOR = TeamUserSelector.builder()
|
||||||
|
.user(Boolean.TRUE)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private TeamUserService teamUserService;
|
||||||
|
@Resource
|
||||||
|
private TeamUserAdminConverter teamUserAdminConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pagination query
|
* Pagination query
|
||||||
@ -34,7 +46,8 @@ public class TeamUserAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<TeamUserPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
public WebPageResult<TeamUserPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
||||||
return null;
|
return teamUserService.comprehensivePageQuery(teamUserAdminConverter.request2param(request), TEAM_USER_SELECTOR)
|
||||||
|
.mapToWeb(teamUserAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,9 +58,13 @@ public class TeamUserAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@PostMapping("/batch_create")
|
@PostMapping("/batch_create")
|
||||||
public DataResult<Long> create(@RequestBody TeamUserBatchCreateRequest request) {
|
public ActionResult create(@Valid @RequestBody TeamUserBatchCreateRequest request) {
|
||||||
return null;
|
request.getUserIdList()
|
||||||
|
.forEach(userId -> teamUserService.create(TeamUserCreatParam.builder()
|
||||||
|
.teamId(request.getTeamId())
|
||||||
|
.userId(userId)
|
||||||
|
.build()));
|
||||||
|
return ActionResult.isSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,6 +75,6 @@ public class TeamUserAdminController {
|
|||||||
*/
|
*/
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public ActionResult delete(@PathVariable Long id) {
|
public ActionResult delete(@PathVariable Long id) {
|
||||||
return null;
|
return teamUserService.delete(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* converter
|
||||||
|
*
|
||||||
|
* @author Jiaju Zhuang
|
||||||
|
*/
|
||||||
|
@Mapper(componentModel = "spring",imports = {DataSourceKindEnum.class})
|
||||||
|
public abstract class TeamAdminConverter {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
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);
|
||||||
|
}
|
@ -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.vo.TeamDataSourcePageQueryVO;
|
||||||
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
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 TeamDataSourcesAdminConverter {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(source = "searchKey", target = "dataSourceSearchKey"),
|
||||||
|
})
|
||||||
|
public abstract DataSourceAccessComprehensivePageQueryParam request2param(CommonPageQueryRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract DataSourceAccessBatchCreatParam request2param(DataSourceAccessBatchCreateRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract TeamDataSourcePageQueryVO dto2vo(DataSourceAccess dto);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
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.vo.TeamUserPageQueryVO;
|
||||||
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
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"),
|
||||||
|
})
|
||||||
|
public abstract TeamUserComprehensivePageQueryParam request2param(CommonPageQueryRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract DataSourceAccessBatchCreatParam request2param(DataSourceAccessBatchCreateRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract TeamUserPageQueryVO dto2vo(TeamUser dto);
|
||||||
|
|
||||||
|
}
|
@ -23,6 +23,7 @@ public class TeamDataSourceBatchCreateRequest {
|
|||||||
/**
|
/**
|
||||||
* team id
|
* team id
|
||||||
*/
|
*/
|
||||||
|
@NotNull
|
||||||
private Long teamId;
|
private Long teamId;
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,12 +16,6 @@ public class TeamUpdateRequest {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
|
||||||
* 团队编码
|
|
||||||
*/
|
|
||||||
@NotNull
|
|
||||||
private String code;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 团队名称
|
* 团队名称
|
||||||
*/
|
*/
|
||||||
|
@ -23,6 +23,7 @@ public class TeamUserBatchCreateRequest {
|
|||||||
/**
|
/**
|
||||||
* team id
|
* team id
|
||||||
*/
|
*/
|
||||||
|
@NotNull
|
||||||
private Long teamId;
|
private Long teamId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
package ai.chat2db.server.admin.api.controller.team.vo;
|
package ai.chat2db.server.admin.api.controller.team.vo;
|
||||||
|
|
||||||
import ai.chat2db.server.admin.api.controller.datasource.vo.SimpleDataSourceVO;
|
import ai.chat2db.server.admin.api.controller.datasource.vo.SimpleDataSourceVO;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -12,6 +13,12 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class TeamDataSourcePageQueryVO {
|
public class TeamDataSourcePageQueryVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* team id
|
* team id
|
||||||
*/
|
*/
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
|
|
||||||
package ai.chat2db.server.admin.api.controller.user;
|
package ai.chat2db.server.admin.api.controller.user;
|
||||||
|
|
||||||
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
|
||||||
import ai.chat2db.server.admin.api.controller.user.converter.UserAdminConverter;
|
import ai.chat2db.server.admin.api.controller.user.converter.UserAdminConverter;
|
||||||
import ai.chat2db.server.admin.api.controller.user.request.UserCreateRequest;
|
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.request.UserUpdateRequest;
|
||||||
import ai.chat2db.server.admin.api.controller.user.vo.UserPageQueryVO;
|
import ai.chat2db.server.admin.api.controller.user.vo.UserPageQueryVO;
|
||||||
import ai.chat2db.server.domain.api.service.DataSourceService;
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
import ai.chat2db.server.domain.api.service.UserService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
||||||
@ -30,9 +30,9 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
public class UserAdminController {
|
public class UserAdminController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DataSourceService dataSourceService;
|
private UserService userService;
|
||||||
@Resource
|
@Resource
|
||||||
private UserAdminConverter dataSourceAdminConverter;
|
private UserAdminConverter userAdminConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pagination query
|
* Pagination query
|
||||||
@ -43,7 +43,8 @@ public class UserAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<UserPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
public WebPageResult<UserPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
||||||
return null;
|
return userService.pageQuery(userAdminConverter.request2param(request), null)
|
||||||
|
.mapToWeb(userAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,9 +55,8 @@ public class UserAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
public DataResult<Long> create(@RequestBody UserCreateRequest request) {
|
public DataResult<Long> create(@Valid @RequestBody UserCreateRequest request) {
|
||||||
return null;
|
return userService.create(userAdminConverter.request2param(request));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -67,8 +67,8 @@ public class UserAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
public ActionResult update(@RequestBody UserUpdateRequest request) {
|
public DataResult<Long> update(@RequestBody UserUpdateRequest request) {
|
||||||
return null;
|
return userService.update(userAdminConverter.request2param(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -79,6 +79,6 @@ public class UserAdminController {
|
|||||||
*/
|
*/
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public ActionResult delete(@PathVariable Long id) {
|
public ActionResult delete(@PathVariable Long id) {
|
||||||
return null;
|
return userService.delete(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
|
|
||||||
package ai.chat2db.server.admin.api.controller.user;
|
package ai.chat2db.server.admin.api.controller.user;
|
||||||
|
|
||||||
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
import ai.chat2db.server.admin.api.controller.user.converter.UserDataSourcesAdminConverter;
|
||||||
import ai.chat2db.server.admin.api.controller.user.request.UserTeamBatchCreateRequest;
|
import ai.chat2db.server.admin.api.controller.user.request.UserDataSourceBatchCreateRequest;
|
||||||
import ai.chat2db.server.admin.api.controller.user.vo.UserDataSourcePageQueryVO;
|
import ai.chat2db.server.admin.api.controller.user.vo.UserDataSourcePageQueryVO;
|
||||||
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
import ai.chat2db.server.domain.api.enums.AccessObjectTypeEnum;
|
||||||
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessCreatParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.datasource.access.DataSourceAccessSelector;
|
||||||
|
import ai.chat2db.server.domain.api.service.DataSourceAccessService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -24,6 +29,14 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RequestMapping("/api/admin/user/data_source")
|
@RequestMapping("/api/admin/user/data_source")
|
||||||
@RestController
|
@RestController
|
||||||
public class UserDataSourceAdminController {
|
public class UserDataSourceAdminController {
|
||||||
|
private static final DataSourceAccessSelector DATA_SOURCE_ACCESS_SELECTOR = DataSourceAccessSelector.builder()
|
||||||
|
.accessObject(Boolean.TRUE)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DataSourceAccessService dataSourceAccessService;
|
||||||
|
@Resource
|
||||||
|
private UserDataSourcesAdminConverter userDataSourcesAdminConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pagination query
|
* Pagination query
|
||||||
@ -34,7 +47,9 @@ public class UserDataSourceAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<UserDataSourcePageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
public WebPageResult<UserDataSourcePageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
||||||
return null;
|
return dataSourceAccessService.comprehensivePageQuery(userDataSourcesAdminConverter.request2param(request),
|
||||||
|
DATA_SOURCE_ACCESS_SELECTOR)
|
||||||
|
.mapToWeb(userDataSourcesAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,9 +60,14 @@ public class UserDataSourceAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@PostMapping("/batch_create")
|
@PostMapping("/batch_create")
|
||||||
public DataResult<Long> create(@RequestBody UserTeamBatchCreateRequest request) {
|
public ActionResult create(@RequestBody UserDataSourceBatchCreateRequest request) {
|
||||||
return null;
|
request.getDataSourceIdList()
|
||||||
|
.forEach(dataSourceId -> dataSourceAccessService.create(DataSourceAccessCreatParam.builder()
|
||||||
|
.dataSourceId(dataSourceId)
|
||||||
|
.accessObjectId(request.getUserId())
|
||||||
|
.accessObjectType(AccessObjectTypeEnum.USER.getCode())
|
||||||
|
.build()));
|
||||||
|
return ActionResult.isSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,6 +78,6 @@ public class UserDataSourceAdminController {
|
|||||||
*/
|
*/
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public ActionResult delete(@PathVariable Long id) {
|
public ActionResult delete(@PathVariable Long id) {
|
||||||
return null;
|
return dataSourceAccessService.delete(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
|
|
||||||
package ai.chat2db.server.admin.api.controller.user;
|
package ai.chat2db.server.admin.api.controller.user;
|
||||||
|
|
||||||
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
import ai.chat2db.server.admin.api.controller.user.converter.UserTeamAdminConverter;
|
||||||
import ai.chat2db.server.admin.api.controller.user.request.UserTeamBatchCreateRequest;
|
import ai.chat2db.server.admin.api.controller.user.request.UserTeamBatchCreateRequest;
|
||||||
import ai.chat2db.server.admin.api.controller.user.vo.UserTeamPageQueryVO;
|
import ai.chat2db.server.admin.api.controller.user.vo.UserTeamPageQueryVO;
|
||||||
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserCreatParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.user.TeamUserSelector;
|
||||||
|
import ai.chat2db.server.domain.api.service.TeamUserService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -24,6 +28,13 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RequestMapping("/api/admin/user/team")
|
@RequestMapping("/api/admin/user/team")
|
||||||
@RestController
|
@RestController
|
||||||
public class UserTeamAdminController {
|
public class UserTeamAdminController {
|
||||||
|
private static final TeamUserSelector TEAM_USER_SELECTOR = TeamUserSelector.builder()
|
||||||
|
.team(Boolean.TRUE)
|
||||||
|
.build();
|
||||||
|
@Resource
|
||||||
|
private TeamUserService teamUserService;
|
||||||
|
@Resource
|
||||||
|
private UserTeamAdminConverter userTeamAdminConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pagination query
|
* Pagination query
|
||||||
@ -34,7 +45,8 @@ public class UserTeamAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<UserTeamPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
public WebPageResult<UserTeamPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
||||||
return null;
|
return teamUserService.comprehensivePageQuery(userTeamAdminConverter.request2param(request), TEAM_USER_SELECTOR)
|
||||||
|
.mapToWeb(userTeamAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,9 +57,13 @@ public class UserTeamAdminController {
|
|||||||
* @version 2.1.0
|
* @version 2.1.0
|
||||||
*/
|
*/
|
||||||
@PostMapping("/batch_create")
|
@PostMapping("/batch_create")
|
||||||
public DataResult<Long> create(@RequestBody UserTeamBatchCreateRequest request) {
|
public ActionResult bacthCreate(@Valid @RequestBody UserTeamBatchCreateRequest request) {
|
||||||
return null;
|
request.getTeamIdList()
|
||||||
|
.forEach(teamId -> teamUserService.create(TeamUserCreatParam.builder()
|
||||||
|
.teamId(teamId)
|
||||||
|
.userId(request.getUserId())
|
||||||
|
.build()));
|
||||||
|
return ActionResult.isSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,6 +74,6 @@ public class UserTeamAdminController {
|
|||||||
*/
|
*/
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public ActionResult delete(@PathVariable Long id) {
|
public ActionResult delete(@PathVariable Long id) {
|
||||||
return null;
|
return teamUserService.delete(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
package ai.chat2db.server.admin.api.controller.user.converter;
|
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.Mapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,49 +18,38 @@ import org.mapstruct.Mapper;
|
|||||||
@Mapper(componentModel = "spring")
|
@Mapper(componentModel = "spring")
|
||||||
public abstract class UserAdminConverter {
|
public abstract class UserAdminConverter {
|
||||||
|
|
||||||
///**
|
/**
|
||||||
// * conversion
|
* conversion
|
||||||
// *
|
*
|
||||||
// * @param request
|
* @param request
|
||||||
// * @return
|
* @return
|
||||||
// */
|
*/
|
||||||
//public abstract DataSourcePageQueryParam request2param(CommonPageQueryRequest request);
|
public abstract UserPageQueryParam request2param(CommonPageQueryRequest request);
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * conversion
|
|
||||||
// *
|
|
||||||
// * @param request
|
|
||||||
// * @return
|
|
||||||
// */
|
|
||||||
//public abstract DataSourcePageQueryParam request2paramAccess(CommonPageQueryRequest request);
|
|
||||||
|
|
||||||
///**
|
|
||||||
// * conversion
|
/**
|
||||||
// *
|
* conversion
|
||||||
// * @param dto
|
*
|
||||||
// * @return
|
* @param dto
|
||||||
// */
|
* @return
|
||||||
//public abstract DataSourcePageQueryVO dto2vo(DataSource dto);
|
*/
|
||||||
//
|
public abstract UserPageQueryVO dto2vo(User dto);
|
||||||
///**
|
|
||||||
// * 参数转换
|
|
||||||
// *
|
/**
|
||||||
// * @param request
|
* conversion
|
||||||
// * @return
|
*
|
||||||
// */
|
* @param request
|
||||||
//@Mappings({
|
* @return
|
||||||
// @Mapping(source = "user", target = "userName")
|
*/
|
||||||
//})
|
public abstract UserCreateParam request2param(UserCreateRequest request);
|
||||||
//public abstract DataSourceCreateParam createReq2param(UserCreateRequest request);
|
|
||||||
//
|
|
||||||
///**
|
/**
|
||||||
// * 参数转换
|
* conversion
|
||||||
// *
|
*
|
||||||
// * @param request
|
* @param request
|
||||||
// * @return
|
* @return
|
||||||
// */
|
*/
|
||||||
//@Mappings({
|
public abstract UserUpdateParam request2param(UserUpdateRequest request);
|
||||||
// @Mapping(source = "user", target = "userName")
|
|
||||||
//})
|
|
||||||
//public abstract DataSourceUpdateParam updateReq2param(DataSourceUpdateRequest request);
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
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.vo.UserDataSourcePageQueryVO;
|
||||||
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
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 UserDataSourcesAdminConverter {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(source = "searchKey", target = "userOrTeamSearchKey"),
|
||||||
|
})
|
||||||
|
public abstract DataSourceAccessComprehensivePageQueryParam request2param(CommonPageQueryRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract DataSourceAccessBatchCreatParam request2param(DataSourceAccessBatchCreateRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract UserDataSourcePageQueryVO dto2vo(DataSourceAccess dto);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
package ai.chat2db.server.admin.api.controller.user.converter;
|
||||||
|
|
||||||
|
import ai.chat2db.server.admin.api.controller.user.vo.UserTeamPageQueryVO;
|
||||||
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
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"),
|
||||||
|
})
|
||||||
|
public abstract TeamUserComprehensivePageQueryParam request2param(CommonPageQueryRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* conversion
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract UserTeamPageQueryVO dto2vo(TeamUser dto);
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -1,27 +1,7 @@
|
|||||||
|
|
||||||
package ai.chat2db.server.web.api.controller.user;
|
package ai.chat2db.server.web.api.controller.user;
|
||||||
|
|
||||||
import ai.chat2db.server.domain.api.model.User;
|
|
||||||
import ai.chat2db.server.domain.api.param.UserQueryParam;
|
|
||||||
import ai.chat2db.server.domain.api.service.UserService;
|
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
|
|
||||||
import ai.chat2db.server.web.api.controller.user.converter.UserWebConverter;
|
|
||||||
import ai.chat2db.server.web.api.controller.user.request.UserCreateRequest;
|
|
||||||
import ai.chat2db.server.web.api.controller.user.request.UserQueryRequest;
|
|
||||||
import ai.chat2db.server.web.api.controller.user.request.UserUpdateRequest;
|
|
||||||
import ai.chat2db.server.web.api.controller.user.vo.UserVO;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,60 +11,60 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RequestMapping("/api/user")
|
@RequestMapping("/api/user")
|
||||||
@RestController
|
@RestController
|
||||||
public class UserController {
|
public class UserController {
|
||||||
|
//
|
||||||
@Autowired
|
//@Autowired
|
||||||
private UserService userService;
|
//private UserService userService;
|
||||||
|
//
|
||||||
@Autowired
|
//@Autowired
|
||||||
private UserWebConverter userWebConverter;
|
//private UserWebConverter userWebConverter;
|
||||||
|
//
|
||||||
@GetMapping("/{id}")
|
//@GetMapping("/{id}")
|
||||||
public DataResult<UserVO> query(@PathVariable("id") Long id) {
|
//public DataResult<UserVO> query(@PathVariable("id") Long id) {
|
||||||
return DataResult.of(userWebConverter.dto2vo(userService.query(id).getData()));
|
// return DataResult.of(userWebConverter.dto2vo(userService.query(id).getData()));
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
@GetMapping("/list")
|
//@GetMapping("/list")
|
||||||
public WebPageResult<UserVO> list(UserQueryRequest request) {
|
//public WebPageResult<UserVO> list(UserQueryRequest request) {
|
||||||
UserQueryParam userQueryParam = new UserQueryParam();
|
// UserQueryParam userQueryParam = new UserQueryParam();
|
||||||
userQueryParam.setKeyWord(request.getKeyWord());
|
// userQueryParam.setKeyWord(request.getKeyWord());
|
||||||
userQueryParam.setPageNo(request.getPageNo());
|
// userQueryParam.setPageNo(request.getPageNo());
|
||||||
userQueryParam.setPageSize(request.getPageSize());
|
// userQueryParam.setPageSize(request.getPageSize());
|
||||||
PageResult<User> pageResult = userService.queryPage(userQueryParam);
|
// PageResult<User> pageResult = userService.queryPage(userQueryParam);
|
||||||
return WebPageResult.of(userWebConverter.dto2vo(pageResult.getData()), pageResult.getTotal(), request);
|
// return WebPageResult.of(userWebConverter.dto2vo(pageResult.getData()), pageResult.getTotal(), request);
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* 新增Key
|
// * 新增Key
|
||||||
*
|
// *
|
||||||
* @param request
|
// * @param request
|
||||||
* @return
|
// * @return
|
||||||
*/
|
// */
|
||||||
@PostMapping("/create")
|
//@PostMapping("/create")
|
||||||
public DataResult<Long> create(@RequestBody UserCreateRequest request) {
|
//public DataResult<Long> create(@RequestBody UserCreateRequest request) {
|
||||||
return userService.create(userWebConverter.createRequest2dto(request));
|
// return userService.create(userWebConverter.createRequest2dto(request));
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* 更新我的保存
|
// * 更新我的保存
|
||||||
*
|
// *
|
||||||
* @param request
|
// * @param request
|
||||||
* @return
|
// * @return
|
||||||
*/
|
// */
|
||||||
@RequestMapping(value = "/update",method = {RequestMethod.POST, RequestMethod.PUT})
|
//@RequestMapping(value = "/update",method = {RequestMethod.POST, RequestMethod.PUT})
|
||||||
public ActionResult update(@RequestBody UserUpdateRequest request) {
|
//public ActionResult update(@RequestBody UserUpdateRequest request) {
|
||||||
DataResult<Boolean> result = userService.update(userWebConverter.updateRequest2dto(request));
|
// DataResult<Boolean> result = userService.update(userWebConverter.updateRequest2dto(request));
|
||||||
return ActionResult.isSuccess();
|
// return ActionResult.isSuccess();
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* 删除我的保存
|
// * 删除我的保存
|
||||||
*
|
// *
|
||||||
* @param id
|
// * @param id
|
||||||
* @return
|
// * @return
|
||||||
*/
|
// */
|
||||||
@DeleteMapping("/{id}")
|
//@DeleteMapping("/{id}")
|
||||||
public ActionResult delete(@PathVariable("id") Long id) {
|
//public ActionResult delete(@PathVariable("id") Long id) {
|
||||||
userService.delete(id);
|
// userService.delete(id);
|
||||||
return ActionResult.isSuccess();
|
// return ActionResult.isSuccess();
|
||||||
}
|
//}
|
||||||
}
|
}
|
Reference in New Issue
Block a user