
package com.tmerclub.cloud.product.mapper;

import com.tmerclub.cloud.product.model.SpuExtension;
import com.tmerclub.cloud.product.vo.SpuExtensionVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @author tmerclub
 * @date 2020-11-11 13:49:06
 */
public interface SpuExtensionMapper {

    /**
     * 获取列表
     *
     * @return 列表
     */
    List<SpuExtensionVO> list();

    /**
     * 根据id获取
     *
     * @param spuExtendId id
     * @return
     */
    SpuExtensionVO getBySpuExtendId(@Param("spuExtendId") Long spuExtendId);

    /**
     * 保存
     *
     * @param spuExtension
     */
    void save(@Param("spuExtension") SpuExtension spuExtension);

    /**
     * 根据id删除
     *
     * @param spuId id
     */
    void deleteById(@Param("spuId") Long spuId);

    /**
     * 获取spu扩展信息
     *
     * @param spuId
     * @return
     */
    SpuExtension getBySpuId(Long spuId);

    /**
     * 更新商品扩展信息
     *
     * @param spuExtension
     */
    void update(@Param("spuExtension") SpuExtension spuExtension);

    /**
     * 根据商品id更新商品注水销量
     *
     * @param spuId
     * @param waterSoldNum
     */
    void updateWaterSoldNumBySpuId(@Param("spuId") Long spuId, @Param("waterSoldNum") Integer waterSoldNum);

    /**
     * 根据商品id修改商品评价数量
     *
     * @param spuId
     * @param changeCount
     */
    void changeCommentNum(@Param("spuId") Long spuId, @Param("changeCount") Integer changeCount);

    /**
     * 根据秒杀订单支付成功，更新商品销量
     *
     * @param spuId
     * @param prodCount
     * @return
     */
    void updateSaleNumBySeckillOrder(@Param("spuId") Long spuId, @Param("prodCount") Integer prodCount);

}
