package com.zehong.system.service.impl;

import java.util.List;

import com.zehong.common.utils.DateUtils;
import com.zehong.system.domain.TConfinedSpace;
import com.zehong.system.domain.TDeviceInfoS;
import com.zehong.system.mapper.TConfinedSpaceMapper;
import com.zehong.system.service.ITConfinedSpaceService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 密闭空间和人员密集场所Service业务层处理
 *
 * @author zehong
 * @date 2026-03-18
 */
@Service
public class TConfinedSpaceServiceImpl implements ITConfinedSpaceService
{
    @Autowired
    private TConfinedSpaceMapper tConfinedSpaceMapper;

    /**
     * 查询密闭空间和人员密集场所
     *
     * @param id 密闭空间和人员密集场所ID
     * @return 密闭空间和人员密集场所
     */
    @Override
    public TConfinedSpace selectTConfinedSpaceById(Long id)
    {
        return tConfinedSpaceMapper.selectTConfinedSpaceById(id);
    }

    /**
     * 查询密闭空间和人员密集场所列表
     *
     * @param tConfinedSpace 密闭空间和人员密集场所
     * @return 密闭空间和人员密集场所
     */
    @Override
    public List<TConfinedSpace> selectTConfinedSpaceList(TConfinedSpace tConfinedSpace)
    {
        return tConfinedSpaceMapper.selectTConfinedSpaceList(tConfinedSpace);
    }

    /**
     * 新增密闭空间和人员密集场所
     *
     * @param tConfinedSpace 密闭空间和人员密集场所
     * @return 结果
     */
    @Override
    public int insertTConfinedSpace(TConfinedSpace tConfinedSpace)
    {
        tConfinedSpace.setCreateTime(DateUtils.getNowDate());
        return tConfinedSpaceMapper.insertTConfinedSpace(tConfinedSpace);
    }

    /**
     * 修改密闭空间和人员密集场所
     *
     * @param tConfinedSpace 密闭空间和人员密集场所
     * @return 结果
     */
    @Override
    public int updateTConfinedSpace(TConfinedSpace tConfinedSpace)
    {
        return tConfinedSpaceMapper.updateTConfinedSpace(tConfinedSpace);
    }

    /**
     * 批量删除密闭空间和人员密集场所
     *
     * @param ids 需要删除的密闭空间和人员密集场所ID
     * @return 结果
     */
    @Override
    public int deleteTConfinedSpaceByIds(Long[] ids)
    {
        return tConfinedSpaceMapper.deleteTConfinedSpaceByIds(ids);
    }

    /**
     * 删除密闭空间和人员密集场所信息
     *
     * @param id 密闭空间和人员密集场所ID
     * @return 结果
     */
    @Override
    public int deleteTConfinedSpaceById(Long id)
    {
        return tConfinedSpaceMapper.deleteTConfinedSpaceById(id);
    }

    /**
     * 将关联设备信息与密闭空间进行绑定
     * @param gettDeviceInfoS 关联设备列表
     * @param id 密闭空间 ID
     * @param relationDevicetype 关联设备类型
     */
    @Override
    public void updatetRelationDeviceDetailInfo(List<TDeviceInfoS> gettDeviceInfoS, Long id, String relationDevicetype) {
        if (CollectionUtils.isNotEmpty(gettDeviceInfoS)) {
            tConfinedSpaceMapper.updatetRelationDeviceDetailInfo(gettDeviceInfoS, id, relationDevicetype);
        }
    }
}