From 54adbd532ecfd5d98ae8df749e1868fb6ba346b2 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 5 May 2026 16:48:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=BD=AE=E9=A1=B6=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=8E=92=E5=BA=8F=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在CrmOrder实体类中新增isTop字段用于标识是否置顶 - 在CrmOrderBo业务对象中添加isTop属性支持查询过滤 - 在CrmOrderVo视图对象中添加isTop属性并配置Excel导出 - 更新MyBatis映射文件添加isTop字段的数据库映射关系 - 修改订单查询服务实现支持按置顶状态进行查询过滤 - 重构排序逻辑将原有的订单类型+创建时间排序改为置顶优先+状态+创建时间排序 - 新排序规则:置顶订单优先显示、已生效状态次之、最后按创建时间倒序排列 --- .../java/com/klp/crm/domain/CrmOrder.java | 5 +++++ .../com/klp/crm/domain/bo/CrmOrderBo.java | 5 +++++ .../com/klp/crm/domain/vo/CrmOrderVo.java | 6 ++++++ .../crm/service/impl/CrmOrderServiceImpl.java | 19 ++++++++++++++++--- .../main/resources/mapper/CrmOrderMapper.xml | 11 +++++++---- 5 files changed, 39 insertions(+), 7 deletions(-) diff --git a/klp-crm/src/main/java/com/klp/crm/domain/CrmOrder.java b/klp-crm/src/main/java/com/klp/crm/domain/CrmOrder.java index d41ff19a..4e245511 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/CrmOrder.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/CrmOrder.java @@ -226,4 +226,9 @@ public class CrmOrder extends BaseEntity { @TableLogic private Long delFlag; + /** + * 是否置顶 0-否 1-是 + */ + private Integer isTop; + } diff --git a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmOrderBo.java b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmOrderBo.java index b07e18a1..5d337096 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmOrderBo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/bo/CrmOrderBo.java @@ -235,6 +235,11 @@ public class CrmOrderBo extends BaseEntity { */ private String annexFiles; + /** + * 是否置顶 0-否 1-是 + */ + private Integer isTop; + /** * 关键字搜索 */ diff --git a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java index af1db5d6..9b81914e 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java @@ -279,6 +279,12 @@ public class CrmOrderVo extends BaseEntity { @ExcelProperty(value = "附件") private String annexFiles; + /** + * 是否置顶 0-否 1-是 + */ + @ExcelProperty(value = "是否置顶") + private Integer isTop; + // @ExcelProperty(value = "客户编号") private String customerCode; diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java index 71877a71..8c8c6b18 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java @@ -208,11 +208,16 @@ public class CrmOrderServiceImpl implements ICrmOrderService { qw.eq(bo.getStatus() != null, "co.status", bo.getStatus()); qw.eq(bo.getContractId() != null, "co.contract_id", bo.getContractId()); qw.like(StringUtils.isNotBlank(bo.getAnnexFiles()), "co.annex_files", bo.getAnnexFiles()); + qw.eq(bo.getIsTop() != null, "co.is_top", bo.getIsTop()); //逻辑删除 qw.eq("co.del_flag", 0); - //根据orderType排序预订单是0 正是订单是1 0排在前面 1排在后面 升序 - qw.orderByAsc("co.order_type"); - qw.orderByDesc("co.create_time"); + //排序规则: + // 1. 置顶优先 (is_top=1 排在前面) + // 2. 状态为1(已生效)的排在前面 + // 3. 创建时间倒序 + qw.orderByDesc("co.is_top") + .orderByDesc("CASE WHEN co.status = 1 THEN 1 ELSE 0 END") + .orderByDesc("co.create_time"); return qw; } @@ -268,6 +273,14 @@ public class CrmOrderServiceImpl implements ICrmOrderService { lqw.eq(bo.getStatus() != null, CrmOrder::getStatus, bo.getStatus()); lqw.eq(bo.getContractId() != null, CrmOrder::getContractId, bo.getContractId()); lqw.like(StringUtils.isNotBlank(bo.getAnnexFiles()), CrmOrder::getAnnexFiles, bo.getAnnexFiles()); + lqw.eq(bo.getIsTop() != null, CrmOrder::getIsTop, bo.getIsTop()); + //逻辑删除 + lqw.eq(CrmOrder::getDelFlag, 0); + //排序规则: + // 1. 置顶优先 (is_top=1 排在前面) + // 2. 状态为1(已生效)的排在前面 + // 3. 创建时间倒序 + lqw.last("ORDER BY is_top DESC, CASE WHEN status = 1 THEN 1 ELSE 0 END DESC, create_time DESC"); return lqw; } diff --git a/klp-crm/src/main/resources/mapper/CrmOrderMapper.xml b/klp-crm/src/main/resources/mapper/CrmOrderMapper.xml index ae849e39..42587de3 100644 --- a/klp-crm/src/main/resources/mapper/CrmOrderMapper.xml +++ b/klp-crm/src/main/resources/mapper/CrmOrderMapper.xml @@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +