package com.ruoyi.hezhi.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.hezhi.domain.TbCaseType;
import com.ruoyi.hezhi.domain.vo.CaseTypeVO;
import com.ruoyi.hezhi.mapper.TbCaseTypeMapper;
import com.ruoyi.hezhi.mapper.TbTypeCourseMapper;
import com.ruoyi.hezhi.service.ITbCaseTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 案例类型Service业务层处理
 *
 * @author ruoyi
 * @date 2024-09-14
 */
@Service
public class TbCaseTypeServiceImpl implements ITbCaseTypeService
{
    @Autowired
    private TbCaseTypeMapper tbCaseTypeMapper;
    @Autowired
    private TbTypeCourseMapper tbTypeCourseMapper;

    /**
     * 查询案例类型
     *
     * @param caseTypeId 案例类型主键
     * @return 案例类型
     */
    @Override
    public TbCaseType selectTbCaseTypeByCaseTypeId(Long caseTypeId)
    {
        return tbCaseTypeMapper.selectTbCaseTypeByCaseTypeId(caseTypeId);
    }

    /**
     * 查询案例类型列表
     *
     * @param tbCaseType 案例类型
     * @return 案例类型
     */
    @Override
    public List<TbCaseType> selectTbCaseTypeList(TbCaseType tbCaseType)
    {
        return tbCaseTypeMapper.selectTbCaseTypeList(tbCaseType);
    }

    /**
     * 新增案例类型
     *
     * @param tbCaseType 案例类型
     * @return 结果
     */
    @Override
    public int insertTbCaseType(TbCaseType tbCaseType)
    {
        tbCaseType.setCreateTime(DateUtils.getNowDate());
        return tbCaseTypeMapper.insertTbCaseType(tbCaseType);
    }

    /**
     * 修改案例类型
     *
     * @param tbCaseType 案例类型
     * @return 结果
     */
    @Override
    public int updateTbCaseType(TbCaseType tbCaseType)
    {
        tbCaseType.setUpdateTime(DateUtils.getNowDate());
        return tbCaseTypeMapper.updateTbCaseType(tbCaseType);
    }

    /**
     * 批量删除案例类型
     *
     * @param caseTypeIds 需要删除的案例类型主键
     * @return 结果
     */
    @Override
    public int deleteTbCaseTypeByCaseTypeIds(Long[] caseTypeIds)
    {
        // 类型ID批量删除类型课程关联
        tbTypeCourseMapper.deleteTbTypeCourseByCaseTypeIds(caseTypeIds);
        return tbCaseTypeMapper.deleteTbCaseTypeByCaseTypeIds(caseTypeIds);
    }

    /**
     * 删除案例类型信息
     *
     * @param caseTypeId 案例类型主键
     * @return 结果
     */
    @Override
    public int deleteTbCaseTypeByCaseTypeId(Long caseTypeId)
    {
        return tbCaseTypeMapper.deleteTbCaseTypeByCaseTypeId(caseTypeId);
    }

    /**
     * 获取案例分类list
     * @return
     */
    @Override
    public List<CaseTypeVO> getCaseTypeList() {
        return  tbCaseTypeMapper.getTypeList();
    }
}
