package com.zhyc.module.base.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.zhyc.common.annotation.DataScope;
import com.zhyc.common.core.domain.BaseEntity;
import com.zhyc.common.utils.DateUtils;
import com.zhyc.module.base.domain.BasSheep;
import com.zhyc.module.base.mapper.BasSheepMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zhyc.module.base.service.IBasSheepService;

/**
 * 羊只基本信息Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-07-15
 */
@Service
public class BasSheepServiceImpl implements IBasSheepService 
{
    @Autowired
    private BasSheepMapper basSheepMapper;

    /**
     * 查询羊只基本信息
     * 
     * @param id 羊只基本信息主键
     * @return 羊只基本信息
     */
    @Override
    public BasSheep selectBasSheepById(Long id)
    {
        return basSheepMapper.selectBasSheepById(id);
    }

    /**
     * 查询羊只基本信息列表
     * 
     * @param basSheep 羊只基本信息
     * @return 羊只基本信息
     */
    @Override
    public List<BasSheep> selectBasSheepList(BasSheep basSheep)
    {
        return basSheepMapper.selectBasSheepList(basSheep);
    }

    /**
     * 搜索羊只 earNumbers
     *
     * @param query
     * @return
     */
    @Override
    @DataScope(deptAlias = "s", userAlias = "s")
    public List<String> searchEarNumbers(String query) {
        BasSheep basSheep = new BasSheep();
        basSheep.setManageTags(query);
        return basSheepMapper.searchEarNumbers(basSheep);
    }

    @Override
    @DataScope(deptAlias = "s", userAlias = "s")
    public List<BasSheep> selectBasSheepByManageTagsList(List<String> manageTagsList) {
    if (manageTagsList == null || manageTagsList.isEmpty()) {
        return new ArrayList<>();
    }
    return basSheepMapper.selectBasSheepByManageTagsList(manageTagsList,new BasSheep());
}

    /**
     * 新增羊只基本信息
     * 
     * @param basSheep 羊只基本信息
     * @return 结果
     */
    @Override
    public int insertBasSheep(BasSheep basSheep)
    {
        basSheep.setCreateTime(DateUtils.getNowDate());
        return basSheepMapper.insertBasSheep(basSheep);
    }

    /**
     * 修改羊只基本信息
     * 
     * @param basSheep 羊只基本信息
     * @return 结果
     */
    @Override
    public int updateBasSheep(BasSheep basSheep)
    {
        basSheep.setUpdateTime(DateUtils.getNowDate());
        return basSheepMapper.updateBasSheep(basSheep);
    }

    /**
     * 批量删除羊只基本信息
     * 
     * @param ids 需要删除的羊只基本信息主键
     * @return 结果
     */
    @Override
    public int deleteBasSheepByIds(Long[] ids)
    {
        return basSheepMapper.deleteBasSheepByIds(ids);
    }

    /**
     * 删除羊只基本信息信息
     * 
     * @param id 羊只基本信息主键
     * @return 结果
     */
    @Override
    public int deleteBasSheepById(Long id)
    {
        return basSheepMapper.deleteBasSheepById(id);
    }


    @Override
    public BasSheep selectBasSheepByManageTags(String manageTags){
        return basSheepMapper.selectBasSheepByManageTags(manageTags);
    }

    @Override
    public List<BasSheep> getSheepByRanchId(Long ranchId) {
        return basSheepMapper.getSheepByRanchId(ranchId);
    }

    @Override
    public List<BasSheep> selectBasSheepListByIds(List<Long> ids) {
        return basSheepMapper.selectBasSheepListByIds(ids);
    }

    //校验新管理/电子耳号
    @Override
    public boolean existsByTag(String tag, Integer earType) {
        if (earType == 0) {
            return basSheepMapper.existsByElectronicTag(tag) > 0;
        } else if (earType == 1) {
            return basSheepMapper.existsByManageTag(tag) > 0;
        }
        return false;
    }


}
