From a7d0c891b9aec71546becffe53e9fc9afa0e7a7f Mon Sep 17 00:00:00 2001 From: dzq Date: Tue, 17 Jun 2025 09:39:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(approval):=20=E4=BC=98=E5=8C=96=E9=80=80?= =?UTF-8?q?=E8=B4=A7=E5=AE=A1=E6=89=B9=E8=B5=84=E4=BA=A7=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增handleStatus字段用于区分处理状态 - 添加searchStr字段支持模糊搜索审批单号、申请人或商品名称 - 修改查询条件前缀为ra以匹配新SQL - 实现自定义分页查询方法selectApprovalAssetPage - 添加分组条件确保审批单唯一性 --- .../approval/db/ReturnApprovalMapper.java | 7 +++ .../db/ReturnApprovalServiceImpl.java | 2 +- .../query/SearchReturnApprovalAssetQuery.java | 56 +++++++++++++------ 3 files changed, 47 insertions(+), 18 deletions(-) diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalMapper.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalMapper.java index 41af022..e589e03 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalMapper.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalMapper.java @@ -27,6 +27,13 @@ public interface ReturnApprovalMapper extends BaseMapper { Page selectApprovalWithGoodsInfo(Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + @Select("SELECT ra.* " + + "FROM return_approval ra " + + "LEFT JOIN approval_goods ag ON ag.approval_id = ra.approval_id AND ag.deleted = 0 " + + "${ew.customSqlSegment}") + Page selectApprovalAssetPage(Page page, + @Param(Constants.WRAPPER) Wrapper queryWrapper); @Select("SELECT ra.*, sog.goods_name AS goodsName, sog.cover_img AS coverImg, " + "so.mobile, so.userid, so.name, so.payment_method AS paymentMethod " + diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalServiceImpl.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalServiceImpl.java index 8674330..461e4aa 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalServiceImpl.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalServiceImpl.java @@ -51,6 +51,6 @@ public class ReturnApprovalServiceImpl extends ServiceImpl getApprovalAssetPage(AbstractPageQuery query) { - return this.page(query.toPage(), query.toQueryWrapper()); + return this.baseMapper.selectApprovalAssetPage(query.toPage(), query.toQueryWrapper()); } } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/query/SearchReturnApprovalAssetQuery.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/query/SearchReturnApprovalAssetQuery.java index 1912971..2a8e599 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/query/SearchReturnApprovalAssetQuery.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/query/SearchReturnApprovalAssetQuery.java @@ -16,6 +16,8 @@ public class SearchReturnApprovalAssetQuery extends AbstractPageQuery { private Long orderId; private Long goodsId; private Integer status; + // 0:未处理 1:已处理 + private Integer handleStatus; private Long externalGoodsId; private Long externalApprovalId; private String code; @@ -33,31 +35,51 @@ public class SearchReturnApprovalAssetQuery extends AbstractPageQuery { private Date endTime; private String paymentMethod; private Date approvalTime; + private String searchStr; @Override public QueryWrapper addQueryCondition() { QueryWrapper queryWrapper = new QueryWrapper<>(); + if (status == null && handleStatus!= null) { + if (handleStatus == 0) { + queryWrapper.eq("ra.status", 1); + } else if (handleStatus == 1) { + queryWrapper.ne("ra.status", 1); + } + } + + if (StrUtil.isNotEmpty(searchStr)) { + if (searchStr.matches("\\d{6}")) { + queryWrapper.eq("ra.code", searchStr); + } else { + queryWrapper.like("ra.apply_user_name", searchStr) + .or() + .like("ag.goods_name", searchStr); + } + } + queryWrapper - .eq(approvalId != null, "approval_id", approvalId) - .eq(orderId != null, "order_id", orderId) - .eq(goodsId != null, "goods_id", goodsId) - .eq(status != null, "status", status) - .eq(externalGoodsId != null, "external_goods_id", externalGoodsId) - .eq(externalApprovalId != null, "external_approval_id", externalApprovalId) - .eq(StrUtil.isNotEmpty(code), "code", code) - .eq(codeCheck!= null, "code_check", codeCheck) - .eq(approvalType != null, "approval_type", approvalType) - .eq(StrUtil.isNotEmpty(corpid), "corpid", corpid) - .eq(StrUtil.isNotEmpty(applyUserid), "apply_userid", applyUserid) - .eq(StrUtil.isNotEmpty(applyUserName), "apply_user_name", applyUserName) - .eq(StrUtil.isNotEmpty(auditUserid), "audit_userid", auditUserid) - .like(StrUtil.isNotEmpty(returnRemark), "return_remark", returnRemark) - .like(StrUtil.isNotEmpty(auditRemark), "audit_remark", auditRemark) - .between(approvalTime != null, "approval_time", + .eq(approvalId != null, "ra.approval_id", approvalId) + .eq(orderId != null, "ra.order_id", orderId) + .eq(goodsId != null, "ra.goods_id", goodsId) + .eq(status != null, "ra.status", status) + .eq(externalGoodsId != null, "ra.external_goods_id", externalGoodsId) + .eq(externalApprovalId != null, "ra.external_approval_id", externalApprovalId) + .eq(StrUtil.isNotEmpty(code), "ra.code", code) + .eq(codeCheck!= null, "ra.code_check", codeCheck) + .eq(approvalType != null, "ra.approval_type", approvalType) + .eq(StrUtil.isNotEmpty(corpid), "ra.corpid", corpid) + .eq(StrUtil.isNotEmpty(applyUserid), "ra.apply_userid", applyUserid) + .eq(StrUtil.isNotEmpty(applyUserName), "ra.apply_user_name", applyUserName) + .eq(StrUtil.isNotEmpty(auditUserid), "ra.audit_userid", auditUserid) + .like(StrUtil.isNotEmpty(returnRemark), "ra.return_remark", returnRemark) + .like(StrUtil.isNotEmpty(auditRemark), "ra.audit_remark", auditRemark) + .between(approvalTime != null, "ra.approval_time", approvalTime == null ? null : DateUtil.beginOfDay(approvalTime).toJdkDate(), approvalTime == null ? null : DateUtil.endOfDay(approvalTime).toJdkDate()) - .orderByDesc("create_time"); + .groupBy("ra.approval_id") + .orderByDesc("ra.create_time"); this.timeRangeColumn = "create_time";