package com.fs.company.service.impl;

import java.util.List;

import com.fs.company.vo.CompanySmsListVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.fs.company.mapper.CompanySmsMapper;
import com.fs.company.domain.CompanySms;
import com.fs.company.service.ICompanySmsService;

/**
 * 公司短信Service业务层处理
 *
 * @author fs
 * @date 2023-01-09
 */
@Service
public class CompanySmsServiceImpl implements ICompanySmsService
{
    @Autowired
    private CompanySmsMapper companySmsMapper;

    /**
     * 查询公司短信
     *
     * @param smsId 公司短信ID
     * @return 公司短信
     */
    @Override
    public CompanySms selectCompanySmsById(Long smsId)
    {
        return companySmsMapper.selectCompanySmsById(smsId);
    }

    /**
     * 查询公司短信列表
     *
     * @param companySms 公司短信
     * @return 公司短信
     */
    @Override
    public List<CompanySmsListVO> selectCompanySmsList(CompanySms companySms)
    {
        List<CompanySmsListVO> list = companySmsMapper.selectCompanySmsList(companySms);
        for (CompanySmsListVO vo : list){
            vo.setSuccessSmsCount(companySmsMapper.successSmsCount(vo.getCompanyId()));
            vo.setFailSmsCount(companySmsMapper.failSmsCount(vo.getCompanyId()));
            vo.setSendSmsCount(companySmsMapper.sendSmsCount(vo.getCompanyId()));
            vo.setDebitSmsCount(companySmsMapper.debitSmsCount(vo.getCompanyId()));
        }
        return list;
    }

    /**
     * 新增公司短信
     *
     * @param companySms 公司短信
     * @return 结果
     */
    @Override
    public int insertCompanySms(CompanySms companySms)
    {
        return companySmsMapper.insertCompanySms(companySms);
    }

    /**
     * 修改公司短信
     *
     * @param companySms 公司短信
     * @return 结果
     */
    @Override
    public int updateCompanySms(CompanySms companySms)
    {
        return companySmsMapper.updateCompanySms(companySms);
    }

    /**
     * 批量删除公司短信
     *
     * @param smsIds 需要删除的公司短信ID
     * @return 结果
     */
    @Override
    public int deleteCompanySmsByIds(Long[] smsIds)
    {
        return companySmsMapper.deleteCompanySmsByIds(smsIds);
    }

    /**
     * 删除公司短信信息
     *
     * @param smsId 公司短信ID
     * @return 结果
     */
    @Override
    public int deleteCompanySmsById(Long smsId)
    {
        return companySmsMapper.deleteCompanySmsById(smsId);
    }

    @Override
    public CompanySms selectCompanySmsByCompanyId(Long companyId) {
        return companySmsMapper.selectCompanySmsByCompanyId(companyId);
    }

    @Override
    public int subCompanySms(Long companyId, int number) {
        return companySmsMapper.subCompanySms(companyId,number);
    }

    @Override
    public int addCompanySms(Long companyId, int number) {
        return companySmsMapper.addCompanySms(companyId,number);
    }

    @Override
    public CompanySms selectCompanySmsByCompanyIdForUpdate(Long companyId) {
        return companySmsMapper.selectCompanySmsByCompanyIdForUpdate(companyId);
    }
}
