package com.ruoyi.service.impl;

import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.domain.TestScenario;
import com.ruoyi.mapper.TestScenarioMapper;
import com.ruoyi.service.ITestScenarioService;
import com.ruoyi.service.TestUseCaseService;
import com.ruoyi.web.request.TestScenarioRequest;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.stream.Collectors;

@Service
@Transactional
public class TestScenarioServiceImpl extends ServiceImpl<TestScenarioMapper, TestScenario> implements ITestScenarioService {

    @Autowired
    private TestScenarioMapper testScenarioMapper;

    @Autowired
    private TestUseCaseService testUseCaseService;

    private static String url = "https://10.12.48.78:8090/DescribeScenarioTestTypeList";

    @Override
    public List<TestScenario> selectTestScenarioList(TestScenarioRequest testScenarioRequest){
        if(testScenarioRequest.getTestScenario() != null && (testScenarioRequest.getTestScenario().contains("%") ||testScenarioRequest.getTestScenario().contains("_")  )){
            testScenarioRequest.setTestScenario(testScenarioRequest.getTestScenario().toString().replaceAll("%","/%").replaceAll("_","/_"));
        }
        return testScenarioMapper.selectTestScenarioList(testScenarioRequest);
    }

    /**
     * 获取测试场景列表(科恩)
     * @return
     */
    @Override
    public List<String> selectScenarioList() {
        JSONObject jsonObject = testUseCaseService.callThirdPartyInterface(url, null);
        List<String> scenarioList = jsonObject.getList("scenario_list", Scenario.class)
                .stream()
                .map(Scenario::getName)
                .collect(Collectors.toList());
        return scenarioList;
    }

    @Data
    public class Scenario {

        private String name;

    }
}