package com.siwei.rsmonitoring.service.impl;

import java.util.List;

import com.siwei.common.core.utils.DateUtils;
import com.siwei.common.core.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.siwei.rsmonitoring.mapper.TDictDataMapper;
import com.siwei.rsmonitoring.domain.TDictData;
import com.siwei.rsmonitoring.service.ITDictDataService;

/**
 * 字段数据（树结构）Service业务层处理
 *
 * @author siwei
 * @date 2025-02-27
 */
@Service
public class TDictDataServiceImpl implements ITDictDataService {
    @Autowired
    private TDictDataMapper tDictDataMapper;

    /**
     * 查询字段数据（树结构）
     *
     * @param dictCode 字段数据（树结构）主键
     * @return 字段数据（树结构）
     */
    @Override
    public TDictData selectTDictDataByDictCode(Long dictCode) {
        return tDictDataMapper.selectTDictDataByDictCode(dictCode);
    }


    @Override
    public List<TDictData> selectTDictDataTree(String dictType, String parent) {
        TDictData tDictDataQuery = new TDictData();
        tDictDataQuery.setDictType(dictType);
        if (StringUtils.isEmpty(parent)) {
            parent = "-999";
        }
        tDictDataQuery.setParent(parent);
        List<TDictData> retlist = tDictDataMapper.selectTDictDataList(tDictDataQuery);
        for (TDictData objv0 : retlist) {
            objv0.setChildren(selectTDictDataTree(objv0.getDictType(), objv0.getDictValue()));
        }
        return retlist;
    }


    /**
     * 查询字段数据（树结构）列表
     *
     * @param tDictData 字段数据（树结构）
     * @return 字段数据（树结构）
     */
    @Override
    public List<TDictData> selectTDictDataList(TDictData tDictData) {
        return tDictDataMapper.selectTDictDataList(tDictData);
    }

    /**
     * 新增字段数据（树结构）
     *
     * @param tDictData 字段数据（树结构）
     * @return 结果
     */
    @Override
    public int insertTDictData(TDictData tDictData) {
        tDictData.setCreateTime(DateUtils.getNowDate());
        return tDictDataMapper.insertTDictData(tDictData);
    }

    /**
     * 修改字段数据（树结构）
     *
     * @param tDictData 字段数据（树结构）
     * @return 结果
     */
    @Override
    public int updateTDictData(TDictData tDictData) {
        tDictData.setUpdateTime(DateUtils.getNowDate());
        return tDictDataMapper.updateTDictData(tDictData);
    }

    /**
     * 批量删除字段数据（树结构）
     *
     * @param dictCodes 需要删除的字段数据（树结构）主键
     * @return 结果
     */
    @Override
    public int deleteTDictDataByDictCodes(Long[] dictCodes) {
        return tDictDataMapper.deleteTDictDataByDictCodes(dictCodes);
    }

    /**
     * 删除字段数据（树结构）信息
     *
     * @param dictCode 字段数据（树结构）主键
     * @return 结果
     */
    @Override
    public int deleteTDictDataByDictCode(Long dictCode) {
        return tDictDataMapper.deleteTDictDataByDictCode(dictCode);
    }
}
