package com.test.test.service.impl;

import com.test.test.domain.TestTaskCase;
import com.test.test.mapper.TestTaskCaseMapper;
import com.test.test.service.ITestTaskCaseService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 自动化测试和用例关联Service业务层处理
 *
 * @author liangdl
 * @date 2025-02-21
 */
@Service
public class TestTaskCaseServiceImpl implements ITestTaskCaseService {
    @Resource
    private TestTaskCaseMapper testTaskCaseMapper;

    /**
     * 查询自动化测试和用例关联
     *
     * @param taskId 自动化测试和用例关联主键
     * @return 自动化测试和用例关联
     */
    @Override
    public TestTaskCase selectTestTaskCaseByTaskId(Long taskId) {
        return testTaskCaseMapper.selectTestTaskCaseByTaskId(taskId);
    }

    /**
     * 查询自动化测试和用例关联列表
     *
     * @param testTaskCase 自动化测试和用例关联
     * @return 自动化测试和用例关联
     */
    @Override
    public List<TestTaskCase> selectTestTaskCaseList(TestTaskCase testTaskCase) {
        return testTaskCaseMapper.selectTestTaskCaseList(testTaskCase);
    }

    /**
     * 新增自动化测试和用例关联
     *
     * @param testTaskCase 自动化测试和用例关联
     * @return 结果
     */
    @Override
    public int insertTestTaskCase(TestTaskCase testTaskCase) {
        Long max = testTaskCaseMapper.max(testTaskCase.getTaskId());
        if (max == null) {
            max = 0L;
        }
        testTaskCase.setSort(max + 1);
        return testTaskCaseMapper.insertTestTaskCase(testTaskCase);
    }

    /**
     * 修改自动化测试和用例关联
     *
     * @param testTaskCase 自动化测试和用例关联
     * @return 结果
     */
    @Override
    public int updateTestTaskCase(TestTaskCase testTaskCase) {
        return testTaskCaseMapper.updateTestTaskCase(testTaskCase);
    }

    /**
     * 批量删除自动化测试和用例关联
     *
     * @param taskIds 需要删除的自动化测试和用例关联主键
     * @return 结果
     */
    @Override
    public int deleteTestTaskCaseByTaskIds(Long[] taskIds) {
        return testTaskCaseMapper.deleteTestTaskCaseByTaskIds(taskIds);
    }

    /**
     * 删除自动化测试和用例关联信息
     *
     * @param taskId 自动化测试和用例关联主键
     * @return 结果
     */
    @Override
    public int deleteTestTaskCaseByTaskId(Long taskId) {
        return testTaskCaseMapper.deleteTestTaskCaseByTaskId(taskId);
    }

    @Override
    public int deleteTestTaskCase(TestTaskCase testTaskCase) {
        return testTaskCaseMapper.deleteTestTaskCase(testTaskCase);
    }
}
