package com.xinelu.manage.service.taskstatusdict.impl;

import com.xinelu.common.constant.Constants;
import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.codes.GenerateSystemCodeUtil;
import com.xinelu.manage.domain.taskstatusdict.TaskStatusDict;
import com.xinelu.manage.mapper.taskstatusdict.TaskStatusDictMapper;
import com.xinelu.manage.service.taskstatusdict.ITaskStatusDictService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;


/**
 * 任务状态字典Service业务层处理
 *
 * @author xinelu
 * @date 2024-03-13
 */
@Service
public class TaskStatusDictServiceImpl implements ITaskStatusDictService {
    @Resource
    private TaskStatusDictMapper taskStatusDictMapper;
    @Resource
    private GenerateSystemCodeUtil generateSystemCodeUtil;

    /**
     * 查询任务状态字典
     *
     * @param id 任务状态字典主键
     * @return 任务状态字典
     */
    @Override
    public TaskStatusDict selectTaskStatusDictById(Long id) {
        return taskStatusDictMapper.selectTaskStatusDictById(id);
    }

    /**
     * 查询任务状态字典列表
     *
     * @param taskStatusDict 任务状态字典
     * @return 任务状态字典
     */
    @Override
    public List<TaskStatusDict> selectTaskStatusDictList(TaskStatusDict taskStatusDict) {
        return taskStatusDictMapper.selectTaskStatusDictList(taskStatusDict);
    }

    /**
     * 新增任务状态字典
     *
     * @param taskStatusDict 任务状态字典
     * @return 结果
     */
    @Override
    public int insertTaskStatusDict(TaskStatusDict taskStatusDict) {
        taskStatusDict.setTaskStatusCode(Constants.TASK_STATUS_CODE + generateSystemCodeUtil.generateSystemCode(Constants.TASK_STATUS_CODE));
        taskStatusDict.setCreateTime(LocalDateTime.now());
        taskStatusDict.setCreateBy(SecurityUtils.getUsername());
        return taskStatusDictMapper.insertTaskStatusDict(taskStatusDict);
    }

    /**
     * 修改任务状态字典
     *
     * @param taskStatusDict 任务状态字典
     * @return 结果
     */
    @Override
    public int updateTaskStatusDict(TaskStatusDict taskStatusDict) {
        taskStatusDict.setUpdateTime(LocalDateTime.now());
        taskStatusDict.setUpdateBy(SecurityUtils.getUsername());
        return taskStatusDictMapper.updateTaskStatusDict(taskStatusDict);
    }

    /**
     * 批量删除任务状态字典
     *
     * @param ids 需要删除的任务状态字典主键
     * @return 结果
     */
    @Override
    public int deleteTaskStatusDictByIds(Long[] ids) {
        return taskStatusDictMapper.deleteTaskStatusDictByIds(ids);
    }

    /**
     * 删除任务状态字典信息
     *
     * @param id 任务状态字典主键
     * @return 结果
     */
    @Override
    public int deleteTaskStatusDictById(Long id) {
        return taskStatusDictMapper.deleteTaskStatusDictById(id);
    }
}
