From 8c542c0594915863a4c4e3f31bbc5880202938f6 Mon Sep 17 00:00:00 2001 From: dzq Date: Sun, 27 Apr 2025 10:49:04 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2):?= =?UTF-8?q?=20=E5=B0=86=E8=AE=A2=E5=8D=95=E5=AF=BC=E5=87=BA=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=B8=AD=E7=9A=84=E6=9F=A5=E8=AF=A2=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=88=86=E7=A6=BB=E4=B8=BA=E7=8B=AC=E7=AB=8B=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为了提升代码的可维护性和可读性,将订单导出功能中的查询参数从通用查询类中分离出来,创建了新的`SearchShopOrderExcelQuery`类。这样可以使查询逻辑更加清晰,并且便于后续扩展和修改。 --- .../controller/shop/ShopOrderController.java | 3 +- .../shop/order/OrderApplicationService.java | 3 +- .../query/SearchShopOrderExcelQuery.java | 44 +++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/order/query/SearchShopOrderExcelQuery.java diff --git a/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ShopOrderController.java b/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ShopOrderController.java index f496aca..2d20375 100644 --- a/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ShopOrderController.java +++ b/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ShopOrderController.java @@ -11,6 +11,7 @@ import com.agileboot.domain.shop.order.OrderApplicationService; import com.agileboot.domain.shop.order.db.ShopOrderEntity; import com.agileboot.domain.shop.order.db.dto.OrderWithGoodsDTO; import com.agileboot.domain.shop.order.dto.ShopOrderExcelDTO; +import com.agileboot.domain.shop.order.query.SearchShopOrderExcelQuery; import com.agileboot.domain.shop.order.query.SearchShopOrderQuery; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; @@ -45,7 +46,7 @@ public class ShopOrderController extends BaseController { @Operation(summary = "订单列表导出") @AccessLog(title = "订单管理", businessType = BusinessTypeEnum.EXPORT) @GetMapping("/excel") - public void exportOrderByExcel(HttpServletResponse response, SearchShopOrderQuery query) { + public void exportOrderByExcel(HttpServletResponse response, SearchShopOrderExcelQuery query) { query.setPaymentMethod("wechat"); query.setPayStatus(2); List list = orderApplicationService.list(query); diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java index 72c0a85..2ad9215 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java @@ -33,6 +33,7 @@ import com.agileboot.domain.shop.order.model.OrderModel; import com.agileboot.domain.shop.order.model.OrderModelFactory; import com.agileboot.domain.shop.order.model.OrderGoodsModel; import com.agileboot.domain.shop.order.model.OrderGoodsModelFactory; +import com.agileboot.domain.shop.order.query.SearchShopOrderExcelQuery; import com.agileboot.domain.shop.order.query.SearchShopOrderQuery; import com.agileboot.domain.shop.payment.PaymentApplicationService; import com.agileboot.domain.shop.payment.dto.WxJsApiPreCreateRequest; @@ -80,7 +81,7 @@ public class OrderApplicationService { return new PageDTO<>(page.getRecords(), page.getTotal()); } - public List list(SearchShopOrderQuery query) { + public List list(SearchShopOrderExcelQuery query) { return orderService.list(query.toQueryWrapper()); } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/query/SearchShopOrderExcelQuery.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/query/SearchShopOrderExcelQuery.java new file mode 100644 index 0000000..a756b78 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/query/SearchShopOrderExcelQuery.java @@ -0,0 +1,44 @@ +package com.agileboot.domain.shop.order.query; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.agileboot.common.core.page.AbstractPageQuery; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.poi.ss.formula.functions.T; + +import java.util.Date; + +@EqualsAndHashCode(callSuper = true) +@Data +public class SearchShopOrderExcelQuery extends AbstractPageQuery { + private Long orderId; + private Long cellId; + private Integer status; + private Integer payStatus; + private Date startTime; + private Date endTime; + private Date payTime; + private String paymentMethod; + + @Override + public QueryWrapper addQueryCondition() { + QueryWrapper queryWrapper = new QueryWrapper<>(); + + queryWrapper + .eq(orderId != null, "order_id", orderId) + .eq(status != null, "status", status) + .eq(payStatus != null, "pay_status", payStatus) + .eq(StrUtil.isNotEmpty(paymentMethod), "payment_method", paymentMethod) + .between(startTime != null && endTime != null, "create_time", startTime, endTime) + .between(payTime != null, "pay_time", + payTime == null ? null : DateUtil.beginOfDay(payTime).toJdkDate(), + payTime == null ? null : DateUtil.endOfDay(payTime).toJdkDate()) + .eq("deleted", 0) + .groupBy("order_id") + .orderByDesc("create_time"); + + return queryWrapper; + } +}