package com.ruoyi.device.service.impl;

import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.device.domain.BaseType;
import com.ruoyi.device.mapper.BaseTypeMapper;
import com.ruoyi.device.service.IBaseTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.naming.Name;
import java.util.List;

/**
 * 设备类型维护Service业务层处理
 *
 * @author ruoyi
 * @date 2025-05-19
 */
@Service("baseTypeService")
public class BaseTypeServiceImpl implements IBaseTypeService {
    @Autowired
    private BaseTypeMapper baseTypeMapper;

    /**
     * 查询设备类型维护
     *
     * @param objId 设备类型维护主键
     * @return 设备类型维护
     */
    @Override
    public BaseType selectBaseTypeByObjId(Long objId) {
        return baseTypeMapper.selectBaseTypeByObjId(objId);
    }

    /**
     * 查询设备类型维护列表
     *
     * @param baseType 设备类型维护
     * @return 设备类型维护
     */
    @Override
    public List<BaseType> selectBaseTypeList(BaseType baseType) {
        return baseTypeMapper.selectBaseTypeList(baseType);
    }

    /**
     * 新增设备类型维护
     *
     * @param baseType 设备类型维护
     * @return 结果
     */
    @Override
    public int insertBaseType(BaseType baseType) {
        baseType.setCreateTime(DateUtils.getNowDate());
        baseType.setCreateBy(ShiroUtils.getLoginName());
        return baseTypeMapper.insertBaseType(baseType);
    }

    /**
     * 修改设备类型维护
     *
     * @param baseType 设备类型维护
     * @return 结果
     */
    @Override
    public int updateBaseType(BaseType baseType) {
        baseType.setUpdateTime(DateUtils.getNowDate());
        baseType.setUpdateBy(ShiroUtils.getLoginName());
        return baseTypeMapper.updateBaseType(baseType);
    }

    /**
     * 批量删除设备类型维护
     *
     * @param objIds 需要删除的设备类型维护主键
     * @return 结果
     */
    @Override
    public int deleteBaseTypeByObjIds(String objIds) {
        return baseTypeMapper.deleteBaseTypeByObjIds(Convert.toStrArray(objIds));
    }

    /**
     * 删除设备类型维护信息
     *
     * @param objId 设备类型维护主键
     * @return 结果
     */
    @Override
    public int deleteBaseTypeByObjId(Long objId) {
        return baseTypeMapper.deleteBaseTypeByObjId(objId);
    }

    @Override
    public boolean checkDeviceTypeName(BaseType baseType) {
        BaseType result = baseTypeMapper.checkDeviceTypeName(baseType);
        if (result == null) {
            System.out.println("可以保存");
            return true;//可以保存
        }
        if (baseType.getObjId().equals(result.getObjId())) {
            // System.out.println("id相同，可以保存");
            return true;
        }

        System.out.println("不能保存");
        return false;
    }
}
