package com.ghy.system.service.impl;

import com.ghy.common.core.text.Convert;
import com.ghy.common.utils.DateUtils;
import com.ghy.system.domain.SysDeptConfig;
import com.ghy.system.mapper.SysDeptConfigMapper;
import com.ghy.system.mapper.SysDeptMapper;
import com.ghy.system.service.ISysDeptConfigService;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

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

/**
 * @author clunt
 * 部门配置impl
 */
@Service
public class SysDeptConfigServiceImpl implements ISysDeptConfigService {

    @Resource
    private SysDeptConfigMapper sysDeptConfigMapper;

    @Resource
    private SysDeptMapper sysDeptMapper;

    @Override
    public SysDeptConfig selectByDeptId(Long deptId) {
        Assert.notNull(deptId, "deptId is null!!!");
        return sysDeptConfigMapper.selectByDeptId(deptId);
    }

    @Override
    public List<SysDeptConfig> selectAllMerchant() {
        return sysDeptConfigMapper.selectAllMerchant();
    }

    /**
     * 查询分公司配置
     *
     * @param sysDeptConfigId 分公司配置主键
     * @return 分公司配置
     */
    @Override
    public SysDeptConfig selectSysDeptConfigBySysDeptConfigId(Long sysDeptConfigId) {
        return sysDeptConfigMapper.selectSysDeptConfigBySysDeptConfigId(sysDeptConfigId);
    }

    /**
     * 查询分公司配置列表
     *
     * @param sysDeptConfig 分公司配置
     * @return 分公司配置
     */
    @Override
    public List<SysDeptConfig> selectSysDeptConfigList(SysDeptConfig sysDeptConfig) {
        return sysDeptConfigMapper.selectSysDeptConfigList(sysDeptConfig);
    }

    /**
     * 新增分公司配置
     *
     * @param sysDeptConfig 分公司配置
     * @return 结果
     */
    @Override
    public int insertSysDeptConfig(SysDeptConfig sysDeptConfig) {
        sysDeptConfig.setCreateTime(DateUtils.getNowDate());
        return sysDeptConfigMapper.insertSysDeptConfig(sysDeptConfig);
    }

    /**
     * 修改分公司配置
     *
     * @param sysDeptConfig 分公司配置
     * @return 结果
     */
    @Override
    public int updateSysDeptConfig(SysDeptConfig sysDeptConfig) {
        sysDeptConfig.setUpdateTime(DateUtils.getNowDate());
        return sysDeptConfigMapper.updateSysDeptConfig(sysDeptConfig);
    }

    /**
     * 批量删除分公司配置
     *
     * @param sysDeptConfigIds 需要删除的分公司配置主键
     * @return 结果
     */
    @Override
    public int deleteSysDeptConfigBySysDeptConfigIds(String sysDeptConfigIds) {
        return sysDeptConfigMapper.deleteSysDeptConfigBySysDeptConfigIds(Convert.toStrArray(sysDeptConfigIds));
    }

    /**
     * 删除分公司配置信息
     *
     * @param sysDeptConfigId 分公司配置主键
     * @return 结果
     */
    @Override
    public int deleteSysDeptConfigBySysDeptConfigId(Long sysDeptConfigId) {
        return sysDeptConfigMapper.deleteSysDeptConfigBySysDeptConfigId(sysDeptConfigId);
    }

}
