diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team/user/TeamUserPageQueryParam.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team/user/TeamUserPageQueryParam.java new file mode 100644 index 00000000..80cc5116 --- /dev/null +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/team/user/TeamUserPageQueryParam.java @@ -0,0 +1,27 @@ +package ai.chat2db.server.domain.api.param.team.user; + +import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * Team User + * + * @author Jiaju Zhuang + */ +@Data +public class TeamUserPageQueryParam extends PageQueryParam { + + /** + * 团队id + */ + @NotNull + private Long teamId; + + /** + * 用户id + */ + @NotNull + private Long userId; + +} diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/service/TeamUserService.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/service/TeamUserService.java index bc6d24a2..cf3c2ffc 100644 --- a/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/service/TeamUserService.java +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/service/TeamUserService.java @@ -3,6 +3,7 @@ package ai.chat2db.server.domain.api.service; 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.TeamUserCreatParam; +import ai.chat2db.server.domain.api.param.team.user.TeamUserPageQueryParam; 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; @@ -16,6 +17,15 @@ import jakarta.validation.constraints.NotNull; */ public interface TeamUserService { + /** + * Comprehensive Paging Query Data + * + * @param param + * @param selector + * @return + */ + PageResult pageQuery(TeamUserPageQueryParam param, TeamUserSelector selector); + /** * Comprehensive Paging Query Data * diff --git a/chat2db-server/chat2db-server-domain/chat2db-server-domain-core/src/main/java/ai/chat2db/server/domain/core/impl/TeamUserServiceImpl.java b/chat2db-server/chat2db-server-domain/chat2db-server-domain-core/src/main/java/ai/chat2db/server/domain/core/impl/TeamUserServiceImpl.java index 8007aa47..43ceb1ba 100644 --- a/chat2db-server/chat2db-server-domain/chat2db-server-domain-core/src/main/java/ai/chat2db/server/domain/core/impl/TeamUserServiceImpl.java +++ b/chat2db-server/chat2db-server-domain/chat2db-server-domain-core/src/main/java/ai/chat2db/server/domain/core/impl/TeamUserServiceImpl.java @@ -5,6 +5,7 @@ import java.util.List; 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.TeamUserCreatParam; +import ai.chat2db.server.domain.api.param.team.user.TeamUserPageQueryParam; import ai.chat2db.server.domain.api.param.team.user.TeamUserSelector; import ai.chat2db.server.domain.api.service.TeamUserService; import ai.chat2db.server.domain.core.converter.TeamConverter; @@ -18,6 +19,7 @@ import ai.chat2db.server.tools.base.wrapper.result.DataResult; 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 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; @@ -46,6 +48,24 @@ public class TeamUserServiceImpl implements TeamUserService { @Resource private TeamConverter teamConverter; + @Override + public PageResult pageQuery(TeamUserPageQueryParam param, TeamUserSelector selector) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(TeamUserDO::getTeamId, param.getTeamId()) + .eq(TeamUserDO::getUserId, param.getUserId()) + ; + + Page page = new Page<>(param.getPageNo(), param.getPageSize()); + page.setSearchCount(param.getEnableReturnCount()); + IPage iPage = teamUserMapper.selectPage(page, queryWrapper); + + List list = teamUserConverter.do2dto(iPage.getRecords()); + + fillData(list, selector); + + return PageResult.of(list, iPage.getTotal(), param); + } + @Override public PageResult comprehensivePageQuery(TeamUserComprehensivePageQueryParam param, TeamUserSelector selector) { diff --git a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/controller/oauth/OauthController.java b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/controller/oauth/OauthController.java index 1a7d6375..4ff19faf 100644 --- a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/controller/oauth/OauthController.java +++ b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/controller/oauth/OauthController.java @@ -30,7 +30,7 @@ import org.springframework.web.bind.annotation.RestController; * @author Jiaju Zhuang */ @RestController -@RequestMapping("/oauth") +@RequestMapping("/api/oauth") @Slf4j public class OauthController { diff --git a/chat2db-server/chat2db-server-tools/chat2db-server-tools-base/src/main/java/ai/chat2db/server/tools/base/wrapper/param/PageQueryParam.java b/chat2db-server/chat2db-server-tools/chat2db-server-tools-base/src/main/java/ai/chat2db/server/tools/base/wrapper/param/PageQueryParam.java index 08b13e34..762af5e9 100644 --- a/chat2db-server/chat2db-server-tools/chat2db-server-tools-base/src/main/java/ai/chat2db/server/tools/base/wrapper/param/PageQueryParam.java +++ b/chat2db-server/chat2db-server-tools/chat2db-server-tools-base/src/main/java/ai/chat2db/server/tools/base/wrapper/param/PageQueryParam.java @@ -5,7 +5,6 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; - import ai.chat2db.server.tools.base.constant.EasyToolsConstant; import ai.chat2db.server.tools.base.enums.OrderByDirectionEnum; @@ -68,6 +67,14 @@ public class PageQueryParam implements Serializable { this.pageSize = Integer.MAX_VALUE; } + /** + * 查询1条加速 + */ + public void queryOne() { + this.pageNo = 1; + this.pageSize = 1; + } + /** * 新增一个排序 并替换原有排序 * diff --git a/chat2db-server/chat2db-server-tools/chat2db-server-tools-base/src/main/java/ai/chat2db/server/tools/base/wrapper/result/PageResult.java b/chat2db-server/chat2db-server-tools/chat2db-server-tools-base/src/main/java/ai/chat2db/server/tools/base/wrapper/result/PageResult.java index 5f690e14..1e377cb3 100644 --- a/chat2db-server/chat2db-server-tools/chat2db-server-tools-base/src/main/java/ai/chat2db/server/tools/base/wrapper/result/PageResult.java +++ b/chat2db-server/chat2db-server-tools/chat2db-server-tools-base/src/main/java/ai/chat2db/server/tools/base/wrapper/result/PageResult.java @@ -160,7 +160,6 @@ public class PageResult implements Serializable, Result> { return new PageResult<>(data, 0L, param.getPageNo(), param.getPageSize()); } - /** * 构建空的返回对象 * @@ -223,6 +222,15 @@ public class PageResult implements Serializable, Result> { return hasNextPage; } + /** + * 判断是否存在数据 + * + * @return 是否存在数据 + */ + public boolean hasData() { + return hasData(this); + } + /** * 返回查询异常信息 * diff --git a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src/main/java/ai/chat2db/server/admin/api/controller/user/UserTeamAdminController.java b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src/main/java/ai/chat2db/server/admin/api/controller/user/UserTeamAdminController.java index 56860f17..28c79e48 100644 --- a/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src/main/java/ai/chat2db/server/admin/api/controller/user/UserTeamAdminController.java +++ b/chat2db-server/chat2db-server-web/chat2db-server-admin-api/src/main/java/ai/chat2db/server/admin/api/controller/user/UserTeamAdminController.java @@ -6,6 +6,7 @@ import ai.chat2db.server.admin.api.controller.user.request.UserTeamPageCommonQue import ai.chat2db.server.admin.api.controller.user.request.UserTeamBatchCreateRequest; import ai.chat2db.server.admin.api.controller.user.vo.UserTeamPageQueryVO; import ai.chat2db.server.domain.api.param.team.user.TeamUserCreatParam; +import ai.chat2db.server.domain.api.param.team.user.TeamUserPageQueryParam; 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; @@ -59,10 +60,19 @@ public class UserTeamAdminController { @PostMapping("/batch_create") public ActionResult bacthCreate(@Valid @RequestBody UserTeamBatchCreateRequest request) { request.getTeamIdList() - .forEach(teamId -> teamUserService.create(TeamUserCreatParam.builder() - .teamId(teamId) - .userId(request.getUserId()) - .build())); + .forEach(teamId -> { + TeamUserPageQueryParam teamUserPageQueryParam = new TeamUserPageQueryParam(); + teamUserPageQueryParam.setTeamId(teamId); + teamUserPageQueryParam.setUserId(request.getUserId()); + teamUserPageQueryParam.queryOne(); + if (teamUserService.pageQuery(teamUserPageQueryParam, null).hasData()) { + return; + } + teamUserService.create(TeamUserCreatParam.builder() + .teamId(teamId) + .userId(request.getUserId()) + .build()); + }); return ActionResult.isSuccess(); }