fix: 过滤订单售后状态(砍价、积分、赠品订单不可进行售后)

This commit is contained in:
lele0521 2024-05-20 11:16:36 +08:00
parent 076f47f5c4
commit d349616957
4 changed files with 44 additions and 3 deletions

View File

@ -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<PromotionTypeEnum> noAfterSale = EnumSet.of(PromotionTypeEnum.KANJIA, PromotionTypeEnum.POINTS_GOODS);
return noAfterSale.contains(PromotionTypeEnum.valueOf(promotionType));
}
}

View File

@ -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;
}
}

View File

@ -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<OrderPromotionTypeEnum> noAfterSale = EnumSet.of(OrderPromotionTypeEnum.GIFT, OrderPromotionTypeEnum.POINTS, OrderPromotionTypeEnum.KANJIA);
return noAfterSale.contains(OrderPromotionTypeEnum.valueOf(orderPromotionType));
}
}

View File

@ -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;
}
}