package com.xingxi.master.product.service.impl;

import com.xingxi.common.core.text.Convert;
import com.xingxi.common.utils.DateUtils;
import com.xingxi.master.product.domain.ProdAttr;
import com.xingxi.master.product.mapper.ProdAttrMapper;
import com.xingxi.master.product.service.IProdAttrService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 商品属性Service业务层处理
 *
 * @author xingxi
 * @date 2025-03-06
 */
@Service
public class ProdAttrServiceImpl implements IProdAttrService {
    @Resource
    private ProdAttrMapper prodAttrMapper;

    /**
     * 查询商品属性
     *
     * @param prodAttrId 商品属性主键
     * @return 商品属性
     */
    @Override
    public ProdAttr selectProdAttrByProdAttrId(Long prodAttrId) {
        return prodAttrMapper.selectProdAttrByProdAttrId(prodAttrId);
    }

    /**
     * 查询商品属性列表
     *
     * @param prodAttr 商品属性
     * @return 商品属性
     */
    @Override
    public List<ProdAttr> selectProdAttrList(ProdAttr prodAttr) {
        return prodAttrMapper.selectProdAttrList(prodAttr);
    }

    /**
     * 新增商品属性
     *
     * @param prodAttr 商品属性
     * @return 结果
     */
    @Override
    public int insertProdAttr(ProdAttr prodAttr) {
        prodAttr.setCreateTime(DateUtils.getNowDate());
        return prodAttrMapper.insertProdAttr(prodAttr);
    }

    /**
     * 新增商品属性
     *
     * @param prodAttrList 商品属性
     * @return 结果
     */
    @Override
    public int batchInsertProdAttr(List<ProdAttr> prodAttrList) {
        return prodAttrMapper.batchInsertProdAttr(prodAttrList);
    }

    /**
     * 修改商品属性
     *
     * @param prodAttr 商品属性
     * @return 结果
     */
    @Override
    public int updateProdAttr(ProdAttr prodAttr) {
        prodAttr.setUpdateTime(DateUtils.getNowDate());
        return prodAttrMapper.updateProdAttr(prodAttr);
    }

    /**
     * 批量删除商品属性
     *
     * @param prodAttrIds 需要删除的商品属性主键
     * @return 结果
     */
    @Override
    public int deleteProdAttrByProdAttrIds(String prodAttrIds) {
        return prodAttrMapper.deleteProdAttrByProdAttrIds(Convert.toStrArray(prodAttrIds));
    }

    /**
     * 删除商品属性信息
     *
     * @param prodAttrId 商品属性主键
     * @return 结果
     */
    @Override
    public int deleteProdAttrByProdAttrId(Long prodAttrId) {
        return prodAttrMapper.deleteProdAttrByProdAttrId(prodAttrId);
    }

    /**
     * 逻辑删除商品属性
     *
     * @param prodAttrId 商品属性主键
     * @return 结果
     */
    @Override
    public int logicDeleteProdAttrByProdAttrId(Long prodAttrId) {
        return prodAttrMapper.logicDeleteProdAttrByProdAttrId(prodAttrId);
    }

    /**
     * 逻辑批量删除商品属性
     *
     * @param prodAttrIds 需要删除的数据主键集合
     * @return 结果
     */
    @Override
    public int logicDeleteProdAttrByProdAttrIds(String[] prodAttrIds) {
        return prodAttrMapper.logicDeleteProdAttrByProdAttrIds(prodAttrIds);
    }

    /**
     * 逻辑批量删除商品属性
     *
     * @param prodAttr 商品属性
     * @return 结果
     */
    @Override
    public int logicDeleteProdAttrByCondition(ProdAttr prodAttr) {
        return prodAttrMapper.logicDeleteProdAttrByCondition(prodAttr);
    }
}
