From 903229fb857047af1925b0889d81a184c77b4393 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期二, 29 七月 2025 11:46:49 +0800
Subject: [PATCH] 订单查询问题

---
 framework/src/main/java/cn/lili/modules/order/order/entity/dto/OrderSearchXcxParams.java |  215 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 myk线上配置.xlsx                                                                             |    0 
 2 files changed, 215 insertions(+), 0 deletions(-)

diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dto/OrderSearchXcxParams.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/OrderSearchXcxParams.java
new file mode 100644
index 0000000..21e8254
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dto/OrderSearchXcxParams.java
@@ -0,0 +1,215 @@
+package cn.lili.modules.order.order.entity.dto;
+
+import cn.hutool.core.text.CharSequenceUtil;
+import cn.lili.common.security.AuthUser;
+import cn.lili.common.security.context.UserContext;
+import cn.lili.common.security.enums.UserEnums;
+import cn.lili.common.utils.DateUtil;
+import cn.lili.common.vo.PageVO;
+import cn.lili.modules.order.order.entity.enums.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 璁㈠崟鏌ヨ鍙傛暟
+ *
+ * @author Chopper
+ * @since 2020/11/17 4:33 涓嬪崍
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class OrderSearchXcxParams extends PageVO {
+
+    private static final long serialVersionUID = -6380573339089959194L;
+
+    @ApiModelProperty(value = "鍟嗗搧鍚嶇О")
+    private String goodsName;
+
+    @ApiModelProperty(value = "璁㈠崟缂栧彿")
+    private String orderSn;
+
+    @ApiModelProperty(value = "椤甸潰鏍囩",
+            example = "ALL:鍏ㄩ儴," +
+                    "WAIT_PAY:寰呬粯娆�," +
+                    "WAIT_ROG:寰呮敹璐�," +
+                    "CANCELLED:宸插彇娑�," +
+                    "COMPLETE:宸插畬鎴�")
+    private String tag;
+
+    @ApiModelProperty(value = "鍟嗗ID")
+    private String storeId;
+
+    @ApiModelProperty(value = "浼氬憳ID")
+    private String memberId;
+
+    @ApiModelProperty(value = "鏀惰揣浜�")
+    private String shipName;
+
+    @ApiModelProperty(value = "涔板鏄电О")
+    private String buyerName;
+
+    @ApiModelProperty(value = "璁㈠崟鐘舵��")
+    private String orderStatus;
+
+    @ApiModelProperty(value = "浠樻鐘舵��")
+    private String payStatus;
+
+    @ApiModelProperty(value = "鍏抽敭瀛� 鍟嗗搧鍚嶇О/涔板鍚嶇О/搴楅摵鍚嶇О")
+    private String keywords;
+
+    @ApiModelProperty(value = "浠樻鏂瑰紡")
+    private String paymentType;
+
+    /**
+     * @see OrderTypeEnum
+     * @see OrderPromotionTypeEnum
+     */
+    @ApiModelProperty(value = "璁㈠崟绫诲瀷", allowableValues = "NORMAL,VIRTUAL,GIFT,PINTUAN,POINT")
+    private String orderType;
+
+    @ApiModelProperty(value = "鏀粯鏂瑰紡")
+    private String paymentMethod;
+
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鏀粯鏃堕棿")
+    private Date paymentTime;
+
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "涓嬪崟寮�濮嬫椂闂�")
+    private Date startDate;
+
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "涓嬪崟缁撴潫鏃堕棿")
+    private Date endDate;
+
+    @ApiModelProperty(value = "璁㈠崟鏉ユ簮")
+    private String clientType;
+
+    /**
+     * @see CommentStatusEnum
+     */
+    @ApiModelProperty(value = "璇勮鐘舵��:鏈瘎璁�(UNFINISHED),寰呰拷璇�(WAIT_CHASE),璇勮瀹屾垚(FINISHED)锛�")
+    private String commentStatus;
+
+    @ApiModelProperty(value = "鏄惁涓哄叾浠栬鍗曚笅鐨勮鍗曪紝濡傛灉鏄垯涓轰緷璧栬鍗曠殑sn锛屽惁鍒欎负绌�")
+    private String parentOrderSn;
+
+    @ApiModelProperty(value = "鏄惁涓烘煇璁㈠崟绫诲瀷鐨勮鍗曪紝濡傛灉鏄垯涓鸿鍗曠被鍨嬬殑id锛屽惁鍒欎负绌�")
+    private String promotionId;
+
+    @ApiModelProperty(value = "鎬讳环鏍�,鍙互涓鸿寖鍥达紝濡�10_1000")
+    private String flowPrice;
+
+    /**
+     * @see OrderPromotionTypeEnum
+     */
+    @ApiModelProperty(value = "璁㈠崟淇冮攢绫诲瀷")
+    private String orderPromotionType;
+
+    public <T> QueryWrapper<T> queryWrapper() {
+        AuthUser currentUser = UserContext.getCurrentUser();
+        QueryWrapper<T> wrapper = new QueryWrapper<>();
+
+        //鍏抽敭瀛楁煡璇�
+        if (CharSequenceUtil.isNotEmpty(keywords)) {
+            wrapper.and(keyWrapper -> keyWrapper.like("o.sn", keywords).or().like("oi.goods_name", keywords));
+        }
+        //鎸夌収涔板鏌ヨ
+        wrapper.like(CharSequenceUtil.isNotEmpty(memberId), "o.member_id", memberId);
+
+        //鎸夎鍗曠紪鍙锋煡璇�
+        wrapper.like(CharSequenceUtil.isNotEmpty(orderSn), "o.sn", orderSn);
+
+        //鎸夋椂闂存煡璇�
+        wrapper.ge(startDate != null, "o.create_time", startDate);
+
+        wrapper.le(endDate != null, "o.create_time", DateUtil.endOfDate(endDate));
+        //鎸夎喘涔颁汉鐢ㄦ埛鍚�
+        wrapper.like(CharSequenceUtil.isNotEmpty(buyerName), "o.member_name", buyerName);
+
+        //鎸夎鍗曠被鍨�
+        wrapper.eq(CharSequenceUtil.isNotEmpty(orderType), "o.order_type", orderType);
+
+        //鐗╂祦鏌ヨ
+        wrapper.like(CharSequenceUtil.isNotEmpty(shipName), "o.consignee_name", shipName);
+
+        //鎸夊晢鍝佸悕绉版煡璇�
+        wrapper.like(CharSequenceUtil.isNotEmpty(goodsName), "oi.goods_name", goodsName);
+
+        //浠樻鏂瑰紡
+        wrapper.like(CharSequenceUtil.isNotEmpty(paymentType), "o.payment_type", paymentType);
+
+        //鎸夋敮浠樻柟寮�
+        wrapper.eq(CharSequenceUtil.isNotEmpty(paymentMethod), "o.payment_method", paymentMethod);
+
+        //璁㈠崟鐘舵��
+        wrapper.eq(CharSequenceUtil.isNotEmpty(orderStatus), "o.order_status", orderStatus);
+
+        //浠樻鐘舵��
+        wrapper.eq(CharSequenceUtil.isNotEmpty(payStatus), "o.pay_status", payStatus);
+
+        //璁㈠崟鏉ユ簮
+        wrapper.like(CharSequenceUtil.isNotEmpty(clientType), "o.client_type", clientType);
+
+        //鎸夎瘎浠风姸鎬�
+        wrapper.eq(CharSequenceUtil.isNotEmpty(commentStatus), "oi.comment_status", commentStatus);
+
+        //鎸夋爣绛炬煡璇�
+        if (CharSequenceUtil.isNotEmpty(tag)) {
+            String orderStatusColumn = "o.order_status";
+            OrderTagEnum tagEnum = OrderTagEnum.valueOf(tag);
+            switch (tagEnum) {
+                //寰呬粯娆�
+                case WAIT_PAY:
+                    wrapper.eq(orderStatusColumn, OrderStatusEnum.UNPAID.name());
+                    break;
+                //寰呭彂璐�
+                case WAIT_SHIP:
+                    wrapper.eq(orderStatusColumn, OrderStatusEnum.UNDELIVERED.name());
+                    break;
+                //寰呮敹璐�
+                case WAIT_ROG:
+                    wrapper.eq(orderStatusColumn, OrderStatusEnum.DELIVERED.name());
+                    break;
+                //宸插彇娑�
+                case CANCELLED:
+                    wrapper.eq(orderStatusColumn, OrderStatusEnum.CANCELLED.name());
+                    break;
+                //宸插畬鎴�
+                case COMPLETE:
+                    wrapper.eq(orderStatusColumn, OrderStatusEnum.COMPLETED.name());
+                    break;
+                default:
+                    break;
+            }
+        }
+
+        // 渚濊禆璁㈠崟
+        wrapper.eq(parentOrderSn != null, "o.parent_order_sn", parentOrderSn);
+        // 淇冮攢娲诲姩id
+        wrapper.eq(CharSequenceUtil.isNotEmpty(promotionId), "o.promotion_id", promotionId);
+
+        wrapper.eq(CharSequenceUtil.isNotEmpty(orderPromotionType), "o.order_promotion_type", orderPromotionType);
+
+        if (CharSequenceUtil.isNotEmpty(flowPrice)) {
+            String[] s = flowPrice.split("_");
+            if (s.length > 1) {
+                wrapper.between("o.flow_price", s[0], s[1]);
+            } else {
+                wrapper.ge("o.flow_price", s[0]);
+            }
+        }
+        wrapper.eq("o.delete_flag", false);
+        return wrapper;
+    }
+
+}
diff --git "a/myk\347\272\277\344\270\212\351\205\215\347\275\256.xlsx" "b/myk\347\272\277\344\270\212\351\205\215\347\275\256.xlsx"
new file mode 100644
index 0000000..b0055ae
--- /dev/null
+++ "b/myk\347\272\277\344\270\212\351\205\215\347\275\256.xlsx"
Binary files differ

--
Gitblit v1.8.0