提交 9b2a934d authored 作者: hzh's avatar hzh

联系人全量列表增加排序功能

上级 7a342475
package org.dromara.common.mybatis.core.page;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2025-01-03
* @desc 排序
**/
@Data
@Accessors(chain = true)
public class OrderBy<T> {
/**
* 排序列
*/
private SFunction<T,?> orderByColumn;
/**
* 排序的方向desc或者asc
*/
private Boolean isAsc;
}
...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.reflect.GenericsUtils; import org.dromara.common.core.utils.reflect.GenericsUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.page.OrderBy;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
...@@ -53,6 +54,21 @@ public abstract class AbstractBaseService<V, B, T> implements IBaseService<V, B, ...@@ -53,6 +54,21 @@ public abstract class AbstractBaseService<V, B, T> implements IBaseService<V, B,
return list; return list;
} }
@Override
public List<V> queryList(B bo, OrderBy<T> orderBy) {
LambdaQueryWrapper<T> lqw = buildQueryWrapper(bo);
if (orderBy != null && orderBy.getOrderByColumn() != null) {
lqw.orderBy(true, Boolean.TRUE.equals(orderBy.getIsAsc()), orderBy.getOrderByColumn());
}
List<V> list = mapper().selectVoList(lqw);
Object processDataObj = ReflectUtil.getFieldValue(bo, "processData");
Boolean processData = processDataObj == null ? false : (Boolean) processDataObj;
if (processData) {
processData(list);
}
return list;
}
@Override @Override
public V getOne(B bo) { public V getOne(B bo) {
LambdaQueryWrapper<T> lqw = buildQueryWrapper(bo); LambdaQueryWrapper<T> lqw = buildQueryWrapper(bo);
......
...@@ -2,6 +2,7 @@ package org.dromara.common.mybatis.service; ...@@ -2,6 +2,7 @@ package org.dromara.common.mybatis.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.page.OrderBy;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
...@@ -38,8 +39,18 @@ public interface IBaseService<V, B, T> { ...@@ -38,8 +39,18 @@ public interface IBaseService<V, B, T> {
*/ */
List<V> queryList(B bo); List<V> queryList(B bo);
/**
* 查询符合条件的列表
*
* @param bo 查询条件
* @param orderBy 排序
* @return 结果
*/
List<V> queryList(B bo, OrderBy<T> orderBy);
/** /**
* 查询符合条件的单个 * 查询符合条件的单个
*
* @param bo bo * @param bo bo
* @return 结果 * @return 结果
*/ */
......
...@@ -9,10 +9,12 @@ import org.dromara.common.core.validate.EditGroup; ...@@ -9,10 +9,12 @@ import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log; import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.OrderBy;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.web.core.BaseController; import org.dromara.common.web.core.BaseController;
import org.dromara.server.domain.CrmContract;
import org.dromara.server.domain.bo.CrmContractBo; import org.dromara.server.domain.bo.CrmContractBo;
import org.dromara.server.domain.vo.CrmContractVo; import org.dromara.server.domain.vo.CrmContractVo;
import org.dromara.server.service.ICrmContractService; import org.dromara.server.service.ICrmContractService;
...@@ -51,7 +53,11 @@ public class CrmContractController extends BaseController { ...@@ -51,7 +53,11 @@ public class CrmContractController extends BaseController {
@GetMapping("/listAll") @GetMapping("/listAll")
public R<List<CrmContractVo>> listAll() { public R<List<CrmContractVo>> listAll() {
CrmContractBo bo = new CrmContractBo().setUserId(LoginHelper.getUserId()); CrmContractBo bo = new CrmContractBo().setUserId(LoginHelper.getUserId());
return R.ok(crmContractService.queryList(bo)); return R.ok(crmContractService.queryList(bo,
new OrderBy<CrmContract>()
.setOrderByColumn(CrmContract::getUpdateTime)
.setIsAsc(false)
));
} }
/** /**
......
package org.dromara.server.service.impl; package org.dromara.server.service.impl;
import cn.dev33.satoken.fun.SaParamRetFunction;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
...@@ -67,6 +68,8 @@ public class ApplyServiceImpl extends AbstractBaseService<ApplyVo, ApplyBo, Appl ...@@ -67,6 +68,8 @@ public class ApplyServiceImpl extends AbstractBaseService<ApplyVo, ApplyBo, Appl
lqw.eq(bo.getEndTime() != null, Apply::getEndTime, bo.getEndTime()); lqw.eq(bo.getEndTime() != null, Apply::getEndTime, bo.getEndTime());
lqw.eq(StringUtils.isNotEmpty(bo.getApplyReason()), Apply::getApplyReason, bo.getApplyReason()); lqw.eq(StringUtils.isNotEmpty(bo.getApplyReason()), Apply::getApplyReason, bo.getApplyReason());
lqw.eq(StringUtils.isNotEmpty(bo.getStatus()), Apply::getStatus, bo.getStatus()); lqw.eq(StringUtils.isNotEmpty(bo.getStatus()), Apply::getStatus, bo.getStatus());
SaParamRetFunction<Apply, Date> getApplyTime = Apply::getApplyTime;
lqw.orderBy(true,true,Apply::getApplyTime);
Optional.ofNullable(params).map(map -> map.get("phone")) Optional.ofNullable(params).map(map -> map.get("phone"))
.ifPresent(phone -> { .ifPresent(phone -> {
boolean result = Objects.nonNull(phone); boolean result = Objects.nonNull(phone);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论