package com.ruoyi.SafetyDeclaration.service.impl;

import java.util.List;

import com.ruoyi.common.annotation.DataScope;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.SafetyDeclaration.mapper.SafetyDeclarationTableMapper;
import com.ruoyi.SafetyDeclaration.domain.SafetyDeclarationTable;
import com.ruoyi.SafetyDeclaration.service.ISafetyDeclarationTableService;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;

/**
 * 水电校园安全不良事件
 * Service业务层处理
 *
 * @author ruoyi
 * @date 2024-08-04
 */
@Service
public class SafetyDeclarationTableServiceImpl implements ISafetyDeclarationTableService {
    @Autowired
    private SafetyDeclarationTableMapper safetyDeclarationTableMapper;

    /**
     * 查询水电校园安全不良事件
     *
     * @param id 水电校园安全不良事件主键
     * @return 水电校园安全不良事件
     */
    @Override
    public SafetyDeclarationTable selectSafetyDeclarationTableById(Long id) {
        return safetyDeclarationTableMapper.selectSafetyDeclarationTableById(id);
    }

    /**
     * 查询水电校园安全不良事件
     * 列表
     *
     * @param safetyDeclarationTable 水电校园安全不良事件
     * @return 水电校园安全不良事件
     */
    @Override
    @DataScope(userAlias = "u")
    public List<SafetyDeclarationTable> selectSafetyDeclarationTableList(SafetyDeclarationTable safetyDeclarationTable) {
        return safetyDeclarationTableMapper.selectSafetyDeclarationTableList(safetyDeclarationTable);
    }

    /**
     * 新增水电校园安全不良事件
     *
     * @param safetyDeclarationTable 水电校园安全不良事件
     * @return 结果
     */
    @Override
    public int insertSafetyDeclarationTable(SafetyDeclarationTable safetyDeclarationTable) {
        safetyDeclarationTable.setCurrentState("0");
        // 获取创建者与创建时间
        safetyDeclarationTable.setCreateBy(SecurityUtils.getUsername());
        safetyDeclarationTable.setCreateTime(DateUtils.getNowDate());
        // 自动设置申报人为当前用户的昵称
        safetyDeclarationTable.setApplyUser(SecurityUtils.getLoginUser().getUser().getNickName());
        // 若发生时间未提供，则默认当前时间
        if (safetyDeclarationTable.getOccurTime() == null) {
            safetyDeclarationTable.setOccurTime(DateUtils.getNowDate());
        }
        return safetyDeclarationTableMapper.insertSafetyDeclarationTable(safetyDeclarationTable);
    }

    /**
     * 修改水电校园安全不良事件
     *
     * @param safetyDeclarationTable 水电校园安全不良事件
     * @return 结果
     */
    @Override
    public int updateSafetyDeclarationTable(SafetyDeclarationTable safetyDeclarationTable) {
        // 设置更新者与更新时间
        safetyDeclarationTable.setUpdateBy(SecurityUtils.getUsername());
        safetyDeclarationTable.setUpdateTime(DateUtils.getNowDate());
        return safetyDeclarationTableMapper.updateSafetyDeclarationTable(safetyDeclarationTable);
    }

    /**
     * 批量删除水电校园安全不良事件
     *
     * @param ids 需要删除的水电校园安全不良事件
     *            主键
     * @return 结果
     */
    @Override
    public int deleteSafetyDeclarationTableByIds(Long[] ids) {
        return safetyDeclarationTableMapper.deleteSafetyDeclarationTableByIds(ids);
    }

    /**
     * 删除水电校园安全不良事件
     * 信息
     *
     * @param id 水电校园安全不良事件
     *           主键
     * @return 结果
     */
    @Override
    public int deleteSafetyDeclarationTableById(Long id) {
        return safetyDeclarationTableMapper.deleteSafetyDeclarationTableById(id);
    }
}
