From d3496169570a58bf1acef91c76697b2bf6bdb77e Mon Sep 17 00:00:00 2001 From: lele0521 Date: Mon, 20 May 2024 11:16:36 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=BF=87=E6=BB=A4=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=94=AE=E5=90=8E=E7=8A=B6=E6=80=81=EF=BC=88=E7=A0=8D=E4=BB=B7?= =?UTF-8?q?=E3=80=81=E7=A7=AF=E5=88=86=E3=80=81=E8=B5=A0=E5=93=81=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=B8=8D=E5=8F=AF=E8=BF=9B=E8=A1=8C=E5=94=AE=E5=90=8E?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/lili/common/enums/PromotionTypeEnum.java | 11 +++++++++++ .../order/order/entity/dos/OrderItem.java | 7 +++++++ .../entity/enums/OrderPromotionTypeEnum.java | 13 ++++++++++++- .../order/order/entity/vo/OrderSimpleVO.java | 16 ++++++++++++++-- 4 files changed, 44 insertions(+), 3 deletions(-) diff --git a/framework/src/main/java/cn/lili/common/enums/PromotionTypeEnum.java b/framework/src/main/java/cn/lili/common/enums/PromotionTypeEnum.java index b1384522..626b127f 100644 --- a/framework/src/main/java/cn/lili/common/enums/PromotionTypeEnum.java +++ b/framework/src/main/java/cn/lili/common/enums/PromotionTypeEnum.java @@ -1,6 +1,8 @@ package cn.lili.common.enums; +import java.util.EnumSet; + /** * 促销分类枚举 * @@ -52,4 +54,13 @@ public enum PromotionTypeEnum { return description; } + /** + * 判断订单类型是否可售后 + * POINTS\KANJIA 三种促销类型的订单不可进行售后 + * @return true 不可售后 false 可售后 + */ + public static boolean isAfterSale(String promotionType) { + EnumSet noAfterSale = EnumSet.of(PromotionTypeEnum.KANJIA, PromotionTypeEnum.POINTS_GOODS); + return noAfterSale.contains(PromotionTypeEnum.valueOf(promotionType)); + } } diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java index ad8f3318..b13c01c7 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java +++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/OrderItem.java @@ -2,6 +2,7 @@ package cn.lili.modules.order.order.entity.dos; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; +import cn.lili.common.enums.PromotionTypeEnum; import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.SnowFlake; import cn.lili.modules.order.cart.entity.dto.TradeDTO; @@ -187,4 +188,10 @@ public class OrderItem extends BaseEntity { this.priceDetail = JSONUtil.toJsonStr(priceDetail); } + public String getAfterSaleStatus() { + if (PromotionTypeEnum.isAfterSale(this.getPromotionType())) { + return OrderItemAfterSaleStatusEnum.EXPIRED.name(); + } + return afterSaleStatus; + } } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/enums/OrderPromotionTypeEnum.java b/framework/src/main/java/cn/lili/modules/order/order/entity/enums/OrderPromotionTypeEnum.java index 76e43d36..13c124eb 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/entity/enums/OrderPromotionTypeEnum.java +++ b/framework/src/main/java/cn/lili/modules/order/order/entity/enums/OrderPromotionTypeEnum.java @@ -1,5 +1,7 @@ package cn.lili.modules.order.order.entity.enums; +import java.util.EnumSet; + /** * 订单促销类型枚举 * @@ -27,6 +29,15 @@ public enum OrderPromotionTypeEnum { /** * 砍价订单 */ - KANJIA + KANJIA; + /** + * 判断订单类型是否可售后 + * GIFT\POINTS\KANJIA 三种促销类型的订单不可进行售后 + * @return true 不可售后 false 可售后 + */ + public static boolean isAfterSale(String orderPromotionType) { + EnumSet noAfterSale = EnumSet.of(OrderPromotionTypeEnum.GIFT, OrderPromotionTypeEnum.POINTS, OrderPromotionTypeEnum.KANJIA); + return noAfterSale.contains(OrderPromotionTypeEnum.valueOf(orderPromotionType)); + } } diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleVO.java b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleVO.java index 9bf3f110..4ba0fddd 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleVO.java +++ b/framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleVO.java @@ -4,6 +4,8 @@ import cn.hutool.core.text.CharSequenceUtil; import cn.lili.common.enums.ClientTypeEnum; import cn.lili.common.security.sensitive.Sensitive; import cn.lili.common.security.sensitive.enums.SensitiveStrategy; +import cn.lili.modules.order.order.entity.enums.OrderItemAfterSaleStatusEnum; +import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -186,7 +188,11 @@ public class OrderSimpleVO { orderItemVO.setImage(groupImages.split(",")[i]); } if (CharSequenceUtil.isNotEmpty(groupAfterSaleStatus) && groupAfterSaleStatus.split(",").length == groupGoodsId.split(",").length) { - orderItemVO.setAfterSaleStatus(groupAfterSaleStatus.split(",")[i]); + if (OrderPromotionTypeEnum.isAfterSale(this.orderPromotionType)) { + orderItemVO.setAfterSaleStatus(OrderItemAfterSaleStatusEnum.EXPIRED.name()); + } else { + orderItemVO.setAfterSaleStatus(groupAfterSaleStatus.split(",")[i]); + } } if (CharSequenceUtil.isNotEmpty(groupComplainStatus) && groupComplainStatus.split(",").length == groupGoodsId.split(",").length) { orderItemVO.setComplainStatus(groupComplainStatus.split(",")[i]); @@ -214,5 +220,11 @@ public class OrderSimpleVO { return new AllowOperation(this); } - + public String getGroupAfterSaleStatus() { + // 不可售后的订单类型集合 + if (OrderPromotionTypeEnum.isAfterSale(this.orderPromotionType)) { + return OrderItemAfterSaleStatusEnum.EXPIRED.name(); + } + return groupAfterSaleStatus; + } }