package cn.com.tenlion.projectconfig.util;

import cn.com.tenlion.projectconfig.pojo.dtos.projectconfig.ProjectConfigDTO;
import cn.com.tenlion.projectconfig.service.projectconfig.IProjectConfigService;
import ink.wgink.module.file.service.IFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.*;

@Component
public class ProjectConfigUtil {

    @Autowired
    private IProjectConfigService iProjectConfigService;

    private static IProjectConfigService iProjectConfigStaticService;

    @Autowired
    private IFileService iFileService;

    private static IFileService iFileStaticService;

    @PostConstruct
    public void init() {
        iProjectConfigStaticService = this.iProjectConfigService;
        iFileStaticService = this.iFileService;
    }

    /**
     * 获取布尔配置文件
     * @param configKey
     * @return
     */
    public static Boolean getSwitch(String configKey) {
        ProjectConfigDTO configDTO = iProjectConfigStaticService.getByKey(configKey);
        if(configDTO != null && "2".equals(configDTO.getProjectConfigMode())) {
            return "1".equals(configDTO.getProjectConfigSwitch());
        }
        return false;
    }

    /**
     * 获取文本配置文件
     * @param configKey
     * @return
     */
    public static String getText(String configKey) {
        ProjectConfigDTO configDTO = iProjectConfigStaticService.getByKey(configKey);
        if(configDTO != null && "1".equals(configDTO.getProjectConfigMode()) ) {
            return configDTO.getProjectConfigText();
        }
        if(configDTO != null && "4".equals(configDTO.getProjectConfigMode()) ) {
            return configDTO.getProjectConfigParams();
        }
        return "";
    }

    /**
     * 获取文件ID集合
     * @param configKey
     * @return
     */
    public static List<String> getFile(String configKey) {
        List<String> list = new ArrayList<String>();
        ProjectConfigDTO configDTO = iProjectConfigStaticService.getByKey(configKey);
        if(configDTO != null && "3".equals(configDTO.getProjectConfigMode())) {
            String[] image = configDTO.getProjectConfigImage().split(",");
            list = Arrays.asList(image);
        }
        return list;
    }

}
