package com.ruoyi.dz.service.impl;

import java.util.Collection;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.dz.mapper.DzClassesMapper;
import com.ruoyi.dz.domain.DzClasses;
import com.ruoyi.dz.service.IDzClassesService;

/**
 * 学生班级Service业务层处理
 *
 * @author ruoyi
 * @date 2025-09-29
 */
@Service
public class DzClassesServiceImpl implements IDzClassesService
{
    @Autowired
    private DzClassesMapper dzClassesMapper;

    /**
     * 查询学生班级
     *
     * @param classId 学生班级主键
     * @return 学生班级
     */
    @Override
    public DzClasses selectDzClassesByClassId(Long classId)
    {
        return dzClassesMapper.selectDzClassesByClassId(classId);
    }

    /**
     * 查询学生班级列表
     *
     * @param dzClasses 学生班级
     * @return 学生班级
     */
    @Override
    public List<DzClasses> selectDzClassesList(DzClasses dzClasses)
    {
        return dzClassesMapper.selectDzClassesList(dzClasses);
    }

    @Override
    public List<DzClasses> selectDzClassesListBySchoolId(Long schoolId)
    {
        return dzClassesMapper.selectDzClassesListBySchoolId(schoolId);
    }

    @Override
    public List<DzClasses> selectDzClassesListByCampusId(Long campusId)
    {
        return dzClassesMapper.selectDzClassesListByCampusId(campusId);
    }

    @Override
    public List<DzClasses> selectDzClassesBySchoolIds(Collection<Long> schoolIds)
    {
        if (schoolIds == null || schoolIds.isEmpty()) {
            return new java.util.ArrayList<>();
        }
        return dzClassesMapper.selectDzClassesBySchoolIds(schoolIds);
    }

    @Override
    public List<DzClasses> selectDzClassesListByIds(Collection<Long> classIds)
    {
        if (classIds == null || classIds.isEmpty()) {
            return new java.util.ArrayList<>();
        }
        return dzClassesMapper.selectClassesByIds(classIds);
    }

    /**
     * 新增学生班级
     *
     * @param dzClasses 学生班级
     * @return 结果
     */
    @Override
    public int insertDzClasses(DzClasses dzClasses)
    {
        dzClasses.setCreateTime(DateUtils.getNowDate());
        return dzClassesMapper.insertDzClasses(dzClasses);
    }

    /**
     * 修改学生班级
     *
     * @param dzClasses 学生班级
     * @return 结果
     */
    @Override
    public int updateDzClasses(DzClasses dzClasses)
    {
        dzClasses.setUpdateTime(DateUtils.getNowDate());
        return dzClassesMapper.updateDzClasses(dzClasses);
    }

    /**
     * 批量删除学生班级
     *
     * @param classIds 需要删除的学生班级主键
     * @return 结果
     */
    @Override
    public int deleteDzClassesByClassIds(Long[] classIds)
    {
        return dzClassesMapper.deleteDzClassesByClassIds(classIds);
    }

    /**
     * 删除学生班级信息
     *
     * @param classId 学生班级主键
     * @return 结果
     */
    @Override
    public int deleteDzClassesByClassId(Long classId)
    {
        return dzClassesMapper.deleteDzClassesByClassId(classId);
    }

    /**
     * 校验班级名称在同一学校下是否唯一
     *
     * @param schoolId 学校ID
     * @param name 班级名称
     * @param classId 班级ID（修改时传入，新增时为null）
     * @return true表示唯一，false表示重复
     */
    @Override
    public boolean checkClassName(Long schoolId, String name, Long classId)
    {
        if (schoolId == null || name == null || name.trim().isEmpty()) {
            return true;
        }
        int count = dzClassesMapper.checkClassName(schoolId, name.trim(), classId);
        return count == 0;
    }
}
