mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-08-01 17:17:36 +08:00
Add order by
This commit is contained in:
@ -1,8 +1,9 @@
|
|||||||
package ai.chat2db.server.domain.api.param.datasource;
|
package ai.chat2db.server.domain.api.param.datasource;
|
||||||
|
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.param.OrderBy;
|
||||||
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author moji
|
* @author moji
|
||||||
@ -23,4 +24,16 @@ public class DataSourcePageQueryParam extends PageQueryParam {
|
|||||||
* @see ai.chat2db.server.domain.api.enums.DataSourceKindEnum
|
* @see ai.chat2db.server.domain.api.enums.DataSourceKindEnum
|
||||||
*/
|
*/
|
||||||
private String kind;
|
private String kind;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum OrderCondition implements ai.chat2db.server.tools.base.wrapper.param.OrderCondition {
|
||||||
|
ID_DESC(OrderBy.desc("id")),
|
||||||
|
;
|
||||||
|
|
||||||
|
final OrderBy orderBy;
|
||||||
|
|
||||||
|
OrderCondition(OrderBy orderBy) {
|
||||||
|
this.orderBy = orderBy;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package ai.chat2db.server.domain.api.param.team;
|
package ai.chat2db.server.domain.api.param.team;
|
||||||
|
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.param.OrderBy;
|
||||||
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* page query
|
* page query
|
||||||
@ -16,4 +18,15 @@ public class TeamPageQueryParam extends PageQueryParam {
|
|||||||
*/
|
*/
|
||||||
private String searchKey;
|
private String searchKey;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum OrderCondition implements ai.chat2db.server.tools.base.wrapper.param.OrderCondition {
|
||||||
|
ID_DESC(OrderBy.desc("id")),
|
||||||
|
;
|
||||||
|
|
||||||
|
final OrderBy orderBy;
|
||||||
|
|
||||||
|
OrderCondition(OrderBy orderBy) {
|
||||||
|
this.orderBy = orderBy;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
package ai.chat2db.server.domain.api.param.user;
|
package ai.chat2db.server.domain.api.param.user;
|
||||||
|
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.param.OrderBy;
|
||||||
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.SuperBuilder;
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
@ -21,4 +23,16 @@ public class UserPageQueryParam extends PageQueryParam {
|
|||||||
* searchKey
|
* searchKey
|
||||||
*/
|
*/
|
||||||
private String searchKey;
|
private String searchKey;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum OrderCondition implements ai.chat2db.server.tools.base.wrapper.param.OrderCondition {
|
||||||
|
ID_DESC(OrderBy.desc("id")),
|
||||||
|
;
|
||||||
|
|
||||||
|
final OrderBy orderBy;
|
||||||
|
|
||||||
|
OrderCondition(OrderBy orderBy) {
|
||||||
|
this.orderBy = orderBy;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@ import ai.chat2db.server.tools.common.model.LoginUser;
|
|||||||
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 ai.chat2db.server.tools.common.util.EasyEnumUtils;
|
import ai.chat2db.server.tools.common.util.EasyEnumUtils;
|
||||||
|
import ai.chat2db.server.tools.common.util.EasySqlUtils;
|
||||||
import ai.chat2db.spi.config.DriverConfig;
|
import ai.chat2db.spi.config.DriverConfig;
|
||||||
import ai.chat2db.spi.model.DataSourceConnect;
|
import ai.chat2db.spi.model.DataSourceConnect;
|
||||||
import ai.chat2db.spi.model.Database;
|
import ai.chat2db.spi.model.Database;
|
||||||
@ -187,9 +188,12 @@ public class DataSourceServiceImpl implements DataSourceService {
|
|||||||
@Override
|
@Override
|
||||||
public PageResult<DataSource> queryPageWithPermission(DataSourcePageQueryParam param, DataSourceSelector selector) {
|
public PageResult<DataSource> queryPageWithPermission(DataSourcePageQueryParam param, DataSourceSelector selector) {
|
||||||
LoginUser loginUser = ContextUtils.getLoginUser();
|
LoginUser loginUser = ContextUtils.getLoginUser();
|
||||||
|
|
||||||
IPage<DataSourceDO> iPage = dataSourceCustomMapper.selectPageWithPermission(
|
IPage<DataSourceDO> iPage = dataSourceCustomMapper.selectPageWithPermission(
|
||||||
new Page<>(param.getPageNo(), param.getPageSize()),
|
new Page<>(param.getPageNo(), param.getPageSize()),
|
||||||
BooleanUtils.isTrue(loginUser.getAdmin()), loginUser.getId(), param.getSearchKey(),param.getKind());
|
BooleanUtils.isTrue(loginUser.getAdmin()), loginUser.getId(), param.getSearchKey(),param.getKind(),
|
||||||
|
EasySqlUtils.orderBy(param.getOrderByList()));
|
||||||
|
|
||||||
List<DataSource> dataSources = dataSourceConverter.do2dto(iPage.getRecords());
|
List<DataSource> dataSources = dataSourceConverter.do2dto(iPage.getRecords());
|
||||||
|
|
||||||
fillData(dataSources, selector);
|
fillData(dataSources, selector);
|
||||||
|
@ -19,6 +19,7 @@ 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;
|
||||||
import ai.chat2db.server.tools.common.exception.DataAlreadyExistsBusinessException;
|
import ai.chat2db.server.tools.common.exception.DataAlreadyExistsBusinessException;
|
||||||
import ai.chat2db.server.tools.common.exception.ParamBusinessException;
|
import ai.chat2db.server.tools.common.exception.ParamBusinessException;
|
||||||
|
import ai.chat2db.server.tools.common.model.EasyLambdaQueryWrapper;
|
||||||
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.conditions.query.LambdaQueryWrapper;
|
||||||
@ -61,7 +62,7 @@ public class TeamServiceImpl implements TeamService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<Team> pageQuery(TeamPageQueryParam param, TeamSelector selector) {
|
public PageResult<Team> pageQuery(TeamPageQueryParam param, TeamSelector selector) {
|
||||||
LambdaQueryWrapper<TeamDO> queryWrapper = new LambdaQueryWrapper<>();
|
EasyLambdaQueryWrapper<TeamDO> queryWrapper = new EasyLambdaQueryWrapper<>();
|
||||||
if (StringUtils.isNotBlank(param.getSearchKey())) {
|
if (StringUtils.isNotBlank(param.getSearchKey())) {
|
||||||
queryWrapper.and(wrapper -> wrapper.like(TeamDO::getCode, "%" + param.getSearchKey() + "%")
|
queryWrapper.and(wrapper -> wrapper.like(TeamDO::getCode, "%" + param.getSearchKey() + "%")
|
||||||
.or()
|
.or()
|
||||||
@ -69,6 +70,7 @@ public class TeamServiceImpl implements TeamService {
|
|||||||
}
|
}
|
||||||
Page<TeamDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
Page<TeamDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
||||||
page.setSearchCount(param.getEnableReturnCount());
|
page.setSearchCount(param.getEnableReturnCount());
|
||||||
|
queryWrapper.orderBy(param.getOrderByList());
|
||||||
IPage<TeamDO> iPage = teamMapper.selectPage(page, queryWrapper);
|
IPage<TeamDO> iPage = teamMapper.selectPage(page, queryWrapper);
|
||||||
List<Team> list = teamConverter.do2dto(iPage.getRecords());
|
List<Team> list = teamConverter.do2dto(iPage.getRecords());
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ 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;
|
||||||
import ai.chat2db.server.tools.common.exception.DataAlreadyExistsBusinessException;
|
import ai.chat2db.server.tools.common.exception.DataAlreadyExistsBusinessException;
|
||||||
import ai.chat2db.server.tools.common.exception.ParamBusinessException;
|
import ai.chat2db.server.tools.common.exception.ParamBusinessException;
|
||||||
|
import ai.chat2db.server.tools.common.model.EasyLambdaQueryWrapper;
|
||||||
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 cn.hutool.crypto.digest.DigestUtil;
|
import cn.hutool.crypto.digest.DigestUtil;
|
||||||
@ -74,7 +75,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<User> pageQuery(UserPageQueryParam param, UserSelector selector) {
|
public PageResult<User> pageQuery(UserPageQueryParam param, UserSelector selector) {
|
||||||
LambdaQueryWrapper<DbhubUserDO> queryWrapper = new LambdaQueryWrapper<>();
|
EasyLambdaQueryWrapper<DbhubUserDO> queryWrapper = new EasyLambdaQueryWrapper<>();
|
||||||
if (StringUtils.isNotBlank(param.getSearchKey())) {
|
if (StringUtils.isNotBlank(param.getSearchKey())) {
|
||||||
queryWrapper.and(wrapper -> wrapper.like(DbhubUserDO::getUserName, "%" + param.getSearchKey() + "%")
|
queryWrapper.and(wrapper -> wrapper.like(DbhubUserDO::getUserName, "%" + param.getSearchKey() + "%")
|
||||||
.or()
|
.or()
|
||||||
@ -84,6 +85,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
}
|
}
|
||||||
// Default not to query desktop accounts
|
// Default not to query desktop accounts
|
||||||
queryWrapper.ne(DbhubUserDO::getId, RoleCodeEnum.DESKTOP.getDefaultUserId());
|
queryWrapper.ne(DbhubUserDO::getId, RoleCodeEnum.DESKTOP.getDefaultUserId());
|
||||||
|
queryWrapper.orderBy(param.getOrderByList());
|
||||||
Page<DbhubUserDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
Page<DbhubUserDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
||||||
page.setSearchCount(param.getEnableReturnCount());
|
page.setSearchCount(param.getEnableReturnCount());
|
||||||
IPage<DbhubUserDO> iPage = dbhubUserMapper.selectPage(page, queryWrapper);
|
IPage<DbhubUserDO> iPage = dbhubUserMapper.selectPage(page, queryWrapper);
|
||||||
|
@ -12,6 +12,6 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
*/
|
*/
|
||||||
public interface DataSourceCustomMapper extends Mapper<DataSourceDO> {
|
public interface DataSourceCustomMapper extends Mapper<DataSourceDO> {
|
||||||
IPage<DataSourceDO> selectPageWithPermission(IPage<DataSourceDO> page, @Param("admin") Boolean admin,
|
IPage<DataSourceDO> selectPageWithPermission(IPage<DataSourceDO> page, @Param("admin") Boolean admin,
|
||||||
@Param("userId") Long userId, @Param("searchKey") String searchKey, @Param("kind") String kind);
|
@Param("userId") Long userId, @Param("searchKey") String searchKey, @Param("kind") String kind, @Param("orderBy") String orderBy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,9 @@
|
|||||||
<if test="kind != null ">
|
<if test="kind != null ">
|
||||||
and ds.kind = #{kind}
|
and ds.kind = #{kind}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="orderBy != null ">
|
||||||
|
${orderBy}
|
||||||
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -70,5 +70,9 @@
|
|||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-context-indexer</artifactId>
|
<artifactId>spring-context-indexer</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package ai.chat2db.server.tools.common.model;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.param.OrderBy;
|
||||||
|
import ai.chat2db.server.tools.common.util.EasySqlUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
|
||||||
|
import static com.baomidou.mybatisplus.core.enums.SqlKeyword.ORDER_BY;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom query wrapper
|
||||||
|
*
|
||||||
|
* @author Jiaju Zhuang
|
||||||
|
*/
|
||||||
|
public class EasyLambdaQueryWrapper<T> extends LambdaQueryWrapper<T> {
|
||||||
|
public void orderBy(List<OrderBy> orderByList) {
|
||||||
|
if (CollectionUtils.isEmpty(orderByList)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (OrderBy orderBy : orderByList) {
|
||||||
|
appendSqlSegments(ORDER_BY, EasySqlUtils.columnToSqlSegment(orderBy.getOrderConditionName()),
|
||||||
|
EasySqlUtils.parseOrderBy(orderBy.getDirection()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
package ai.chat2db.server.tools.common.util;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import ai.chat2db.server.tools.base.enums.OrderByDirectionEnum;
|
||||||
|
import ai.chat2db.server.tools.base.wrapper.param.OrderBy;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.segments.ColumnSegment;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.segments.OrderBySegmentList;
|
||||||
|
import com.baomidou.mybatisplus.core.enums.SqlKeyword;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
|
||||||
|
import static com.baomidou.mybatisplus.core.enums.SqlKeyword.ASC;
|
||||||
|
import static com.baomidou.mybatisplus.core.enums.SqlKeyword.DESC;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sql utils
|
||||||
|
*
|
||||||
|
* @author Jiaju Zhuang
|
||||||
|
*/
|
||||||
|
public class EasySqlUtils {
|
||||||
|
|
||||||
|
public static String orderBy(List<OrderBy> orderByList) {
|
||||||
|
if (CollectionUtils.isEmpty(orderByList)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
OrderBySegmentList orderBySegmentList = new OrderBySegmentList();
|
||||||
|
for (OrderBy orderBy : orderByList) {
|
||||||
|
orderBySegmentList.addAll(
|
||||||
|
Arrays.asList(SqlKeyword.ORDER_BY, columnToSqlSegment(orderBy.getOrderConditionName()),
|
||||||
|
parseOrderBy(orderBy.getDirection())));
|
||||||
|
}
|
||||||
|
return orderBySegmentList.getSqlSegment();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 columnName
|
||||||
|
*/
|
||||||
|
public static ColumnSegment columnToSqlSegment(String column) {
|
||||||
|
return () -> column;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ISqlSegment parseOrderBy(OrderByDirectionEnum direction) {
|
||||||
|
if (direction == OrderByDirectionEnum.ASC) {
|
||||||
|
return ASC;
|
||||||
|
}
|
||||||
|
return DESC;
|
||||||
|
}
|
||||||
|
}
|
@ -8,6 +8,8 @@ import ai.chat2db.server.admin.api.controller.datasource.request.DataSourceUpdat
|
|||||||
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourcePageQueryVO;
|
import ai.chat2db.server.admin.api.controller.datasource.vo.DataSourcePageQueryVO;
|
||||||
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
import ai.chat2db.server.domain.api.param.datasource.DataSourceCreateParam;
|
import ai.chat2db.server.domain.api.param.datasource.DataSourceCreateParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.datasource.DataSourcePageQueryParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.datasource.DataSourcePageQueryParam.OrderCondition;
|
||||||
import ai.chat2db.server.domain.api.param.datasource.DataSourceSelector;
|
import ai.chat2db.server.domain.api.param.datasource.DataSourceSelector;
|
||||||
import ai.chat2db.server.domain.api.param.datasource.DataSourceUpdateParam;
|
import ai.chat2db.server.domain.api.param.datasource.DataSourceUpdateParam;
|
||||||
import ai.chat2db.server.domain.api.service.DataSourceService;
|
import ai.chat2db.server.domain.api.service.DataSourceService;
|
||||||
@ -49,7 +51,9 @@ public class DataSourceAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<DataSourcePageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
public WebPageResult<DataSourcePageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
||||||
return dataSourceService.queryPageWithPermission(dataSourceAdminConverter.request2param(request), DATA_SOURCE_SELECTOR)
|
DataSourcePageQueryParam param = dataSourceAdminConverter.request2param(request);
|
||||||
|
param.orderBy(OrderCondition.ID_DESC);
|
||||||
|
return dataSourceService.queryPageWithPermission(param, DATA_SOURCE_SELECTOR)
|
||||||
.mapToWeb(dataSourceAdminConverter::dto2vo);
|
.mapToWeb(dataSourceAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,8 @@ 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.common.api.controller.request.CommonPageQueryRequest;
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.TeamPageQueryParam;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.TeamPageQueryParam.OrderCondition;
|
||||||
import ai.chat2db.server.domain.api.param.team.TeamSelector;
|
import ai.chat2db.server.domain.api.param.team.TeamSelector;
|
||||||
import ai.chat2db.server.domain.api.service.TeamService;
|
import ai.chat2db.server.domain.api.service.TeamService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
@ -46,7 +48,9 @@ public class TeamAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<TeamPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
public WebPageResult<TeamPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
||||||
return teamService.pageQuery(teamAdminConverter.request2param(request), TEAM_SELECTOR)
|
TeamPageQueryParam param = teamAdminConverter.request2param(request);
|
||||||
|
param.orderBy(OrderCondition.ID_DESC);
|
||||||
|
return teamService.pageQuery(param, TEAM_SELECTOR)
|
||||||
.mapToWeb(teamAdminConverter::dto2vo);
|
.mapToWeb(teamAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,8 @@ 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.common.api.controller.request.CommonPageQueryRequest;
|
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
||||||
|
import ai.chat2db.server.domain.api.param.team.TeamPageQueryParam.OrderCondition;
|
||||||
|
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.UserSelector;
|
||||||
import ai.chat2db.server.domain.api.service.UserService;
|
import ai.chat2db.server.domain.api.service.UserService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||||
@ -47,7 +49,9 @@ public class UserAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<UserPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
public WebPageResult<UserPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
||||||
return userService.pageQuery(userAdminConverter.request2param(request), USER_SELECTOR)
|
UserPageQueryParam param = userAdminConverter.request2param(request);
|
||||||
|
param.orderBy(OrderCondition.ID_DESC);
|
||||||
|
return userService.pageQuery(param, USER_SELECTOR)
|
||||||
.mapToWeb(userAdminConverter::dto2vo);
|
.mapToWeb(userAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user