package cn.lili.modules.promotion.entity.dto.search; import cn.hutool.core.text.CharSequenceUtil; import cn.lili.modules.promotion.entity.enums.PromotionsScopeTypeEnum; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.ApiModelProperty; import lombok.*; import java.util.Arrays; import java.util.List; /** * 促销商品查询通用类 * * @author paulG * @since 2021/2/21 **/ @EqualsAndHashCode(callSuper = true) @Data @NoArgsConstructor @AllArgsConstructor @Builder public class PromotionGoodsSearchParams extends BasePromotionsSearchParams { @ApiModelProperty(value = "促销活动id") private String promotionId; @ApiModelProperty(value = "促销类型") private String promotionType; @ApiModelProperty(value = "商品名称") private String goodsName; @ApiModelProperty(value = "商品分类路径") private String categoryPath; @ApiModelProperty(value = "商品SkuId") private String skuId; @ApiModelProperty(value = "商品SkuIds") private List skuIds; @ApiModelProperty(value = "促销活动id") private List promotionIds; @Override public QueryWrapper queryWrapper() { if (CharSequenceUtil.isEmpty(this.getScopeType())){ this.setScopeType(PromotionsScopeTypeEnum.PORTION_GOODS.name()); } QueryWrapper queryWrapper = super.queryWrapper(); if (CharSequenceUtil.isNotEmpty(promotionId)) { queryWrapper.eq("promotion_id", promotionId); } if (CharSequenceUtil.isNotEmpty(goodsName)) { queryWrapper.like("goods_name", goodsName); } if (CharSequenceUtil.isNotEmpty(promotionType)) { queryWrapper.eq("promotion_type", promotionType); } if (CharSequenceUtil.isNotEmpty(categoryPath)) { queryWrapper.like("category_path", categoryPath); } if (CharSequenceUtil.isNotEmpty(skuId)) { queryWrapper.in("sku_id", Arrays.asList(skuId.split(","))); } if (skuIds != null && !skuIds.isEmpty()) { queryWrapper.in("sku_id", skuIds); } if (promotionIds != null && promotionIds.isEmpty()) { queryWrapper.in("promotion_id", promotionIds); } return queryWrapper; } }