|  | @@ -9,7 +9,9 @@ import cn.newfeifan.mall.module.product.controller.app.spu.vo.AppProductSpuPageR
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.product.dal.dataobject.spu.ProductSpuDO;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.product.enums.ProductConstants;
 | 
	
		
			
				|  |  |  import cn.newfeifan.mall.module.product.enums.spu.ProductSpuStatusEnum;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 | 
	
		
			
				|  |  |  import org.apache.ibatis.annotations.Mapper;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.util.Objects;
 | 
	
	
		
			
				|  | @@ -51,6 +53,26 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
 | 
	
		
			
				|  |  |          return selectCount(queryWrapper);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    default Long selectCount(SFunction<ProductSpuDO, ?> field, Object value,Long merId){
 | 
	
		
			
				|  |  | +        return selectCount(new LambdaQueryWrapper<ProductSpuDO>()
 | 
	
		
			
				|  |  | +                .eq(field, value)
 | 
	
		
			
				|  |  | +                .eq(ProductSpuDO::getMerchantId, merId));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 查询触发警戒库存的 SPU 数量ByShopId and merId
 | 
	
		
			
				|  |  | +     * @param merId 商户ID
 | 
	
		
			
				|  |  | +     * @return 触发警戒库存的 SPU 数量
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    default Long selectCount(Long merId) {
 | 
	
		
			
				|  |  | +        return selectCount(new LambdaQueryWrapperX<ProductSpuDO>()
 | 
	
		
			
				|  |  | +                .eqIfPresent(ProductSpuDO::getMerchantId, merId)
 | 
	
		
			
				|  |  | +                // 库存小于等于警戒库存
 | 
	
		
			
				|  |  | +                .le(ProductSpuDO::getStock, ProductConstants.ALERT_STOCK)
 | 
	
		
			
				|  |  | +                // 如果库存触发警戒库存且状态为回收站的话则不计入触发警戒库存的个数
 | 
	
		
			
				|  |  | +                .notIn(ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus()));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 获得商品 SPU 分页,提供给用户 App 使用
 | 
	
		
			
				|  |  |       */
 |