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

import com.xingxi.common.core.text.Convert;
import com.xingxi.common.enums.EDelFlag;
import com.xingxi.common.utils.DateUtils;
import com.xingxi.master.product.domain.ProdAttrJoint;
import com.xingxi.master.product.mapper.ProdAttrJointMapper;
import com.xingxi.master.product.service.IProdAttrJointService;
import org.springframework.stereotype.Service;

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

/**
 * 商品属性组合Service业务层处理
 *
 * @author xingxi
 * @date 2025-03-06
 */
@Service
public class ProdAttrJointServiceImpl implements IProdAttrJointService {
    @Resource
    private ProdAttrJointMapper prodAttrJointMapper;

    /**
     * 查询商品属性组合
     *
     * @param prodAttrJointId 商品属性组合主键
     * @return 商品属性组合
     */
    @Override
    public ProdAttrJoint selectProdAttrJointByProdAttrJointId(Long prodAttrJointId) {
        return prodAttrJointMapper.selectProdAttrJointByProdAttrJointId(prodAttrJointId);
    }

    /**
     * 查询商品属性组合列表
     *
     * @param prodAttrJoint 商品属性组合
     * @return 商品属性组合
     */
    @Override
    public List<ProdAttrJoint> selectProdAttrJointList(ProdAttrJoint prodAttrJoint) {
        prodAttrJoint.setDelFlag(EDelFlag.NO.getVal());
        return prodAttrJointMapper.selectProdAttrJointList(prodAttrJoint);
    }

    /**
     * 新增商品属性组合
     *
     * @param prodAttrJoint 商品属性组合
     * @return 结果
     */
    @Override
    public int insertProdAttrJoint(ProdAttrJoint prodAttrJoint) {
        prodAttrJoint.setCreateTime(DateUtils.getNowDate());
        return prodAttrJointMapper.insertProdAttrJoint(prodAttrJoint);
    }

    /**
     * 新增商品属性组合
     *
     * @param prodAttrJointList 商品属性组合
     * @return 结果
     */
    @Override
    public int batchInsertProdAttrJoint(List<ProdAttrJoint> prodAttrJointList) {
        return prodAttrJointMapper.batchInsertProdAttrJoint(prodAttrJointList);
    }

    /**
     * 修改商品属性组合
     *
     * @param prodAttrJoint 商品属性组合
     * @return 结果
     */
    @Override
    public int updateProdAttrJoint(ProdAttrJoint prodAttrJoint) {
        prodAttrJoint.setUpdateTime(DateUtils.getNowDate());
        return prodAttrJointMapper.updateProdAttrJoint(prodAttrJoint);
    }

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

    /**
     * 删除商品属性组合信息
     *
     * @param prodAttrJointId 商品属性组合主键
     * @return 结果
     */
    @Override
    public int deleteProdAttrJointByProdAttrJointId(Long prodAttrJointId) {
        return prodAttrJointMapper.deleteProdAttrJointByProdAttrJointId(prodAttrJointId);
    }

    /**
     * 逻辑删除商品属性组合
     *
     * @param prodAttrJointId 商品属性组合主键
     * @return 结果
     */
    @Override
    public int logicDeleteProdAttrJointByProdAttrJointId(Long prodAttrJointId) {
        return prodAttrJointMapper.logicDeleteProdAttrJointByProdAttrJointId(prodAttrJointId);
    }

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

    /**
     * 逻辑批量删除商品属性组合
     *
     * @param prodAttrJoint 商品属性组合
     * @return 结果
     */
    @Override
    public int logicDeleteProdAttrJointByCondition(ProdAttrJoint prodAttrJoint) {
        return prodAttrJointMapper.logicDeleteProdAttrJointByCondition(prodAttrJoint);
    }
}
