package com.fs.hisStore.service.impl;

import java.util.Collections;
import java.util.List;

import com.fs.hisStore.config.MedicalMallConfig;
import com.fs.hisStore.param.FsProductAttrValueParam;
import com.fs.hisStore.param.FsStoreProductAttrValueQueryParam;
import com.fs.hisStore.param.FsStoreTuiProductAttrValueParam;
import com.fs.hisStore.vo.FsStoreProductAttrValueQueryVO;
import com.fs.hisStore.vo.FsStoreProductAttrValueVO;
import com.fs.hisStore.vo.FsStoreTuiProductAttrValueVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.fs.hisStore.mapper.FsStoreProductAttrValueScrmMapper;
import com.fs.hisStore.domain.FsStoreProductAttrValueScrm;
import com.fs.hisStore.service.IFsStoreProductAttrValueScrmService;

/**
 * 商品属性值Service业务层处理
 *
 * @author fs
 * @date 2022-03-15
 */
@Service
public class FsStoreProductAttrValueScrmServiceImpl implements IFsStoreProductAttrValueScrmService
{
    @Autowired
    private FsStoreProductAttrValueScrmMapper fsStoreProductAttrValueMapper;

    @Autowired
    private MedicalMallConfig config;

    /**
     * 查询商品属性值
     *
     * @param id 商品属性值ID
     * @return 商品属性值
     */
    @Override
    public FsStoreProductAttrValueScrm selectFsStoreProductAttrValueById(Long id)
    {
        return fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueById(id);
    }

    /**
     * 查询商品属性值列表
     *
     * @param fsStoreProductAttrValue 商品属性值
     * @return 商品属性值
     */
    @Override
    public List<FsStoreProductAttrValueScrm> selectFsStoreProductAttrValueList(FsStoreProductAttrValueScrm fsStoreProductAttrValue)
    {
        return fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueList(fsStoreProductAttrValue);
    }

    /**
     * 新增商品属性值
     *
     * @param fsStoreProductAttrValue 商品属性值
     * @return 结果
     */
    @Override
    public int insertFsStoreProductAttrValue(FsStoreProductAttrValueScrm fsStoreProductAttrValue)
    {
        return fsStoreProductAttrValueMapper.insertFsStoreProductAttrValue(fsStoreProductAttrValue);
    }

    /**
     * 修改商品属性值
     *
     * @param fsStoreProductAttrValue 商品属性值
     * @return 结果
     */
    @Override
    public int updateFsStoreProductAttrValue(FsStoreProductAttrValueScrm fsStoreProductAttrValue)
    {
        return fsStoreProductAttrValueMapper.updateFsStoreProductAttrValue(fsStoreProductAttrValue);
    }

    /**
     * 批量删除商品属性值
     *
     * @param ids 需要删除的商品属性值ID
     * @return 结果
     */
    @Override
    public int deleteFsStoreProductAttrValueByIds(Long[] ids)
    {
        return fsStoreProductAttrValueMapper.deleteFsStoreProductAttrValueByIds(ids);
    }

    /**
     * 删除商品属性值信息
     *
     * @param id 商品属性值ID
     * @return 结果
     */
    @Override
    public int deleteFsStoreProductAttrValueById(Long id)
    {
        return fsStoreProductAttrValueMapper.deleteFsStoreProductAttrValueById(id);
    }

    @Override
    public List<FsStoreProductAttrValueScrm> selectFsStoreProductAttrValueByProductId(Long productId) {
        return fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueByProductId(productId);
    }

    @Override
    public int incProductAttrStock(Long num, Long productId, Long productAttrValueId) {
        return fsStoreProductAttrValueMapper.incProductAttrStock(num,productId,productAttrValueId);
    }

    @Override
    public List<FsStoreProductAttrValueVO> selectFsStoreProductAttrValueListVO(FsProductAttrValueParam param) {
        return fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueListVO(param);
    }

    @Override
    public List<FsStoreProductAttrValueQueryVO> selectStoreProductAttrValueListQuery(FsStoreProductAttrValueQueryParam param) {
        return fsStoreProductAttrValueMapper.selectStoreProductAttrValueListQuery(param, config);
    }

    @Override
    public List<FsStoreTuiProductAttrValueVO> selectStoreTuiProductAttrValueVOList(FsStoreTuiProductAttrValueParam param) {
        return fsStoreProductAttrValueMapper.selectStoreTuiProductAttrValueVOList(param);
    }

    @Override
    public List<FsStoreProductAttrValueScrm> getFsStoreProductAttrValueListInProductId(List<Long> productIds) {
        return fsStoreProductAttrValueMapper.getFsStoreProductAttrValueListInProductId(productIds);
    }


}
