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