package com.jianshui.common.utils.jianshui;

import com.jianshui.common.constant.AisinoApiConstants;
import com.jianshui.common.utils.spring.SpringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.env.Environment;

/**
 * @Description 通用工具类
 * @Author 巩权林
 * @Date 2021-12-17 16:01
 **/
public class CommonUtils {

    /**
     * 是否在内网环境
     *
     * @return
     */
    public static boolean isInLan() {
        Environment environment = SpringUtils.getBean(Environment.class);
        String inLan = environment.getProperty("jianshui.inLan");
        return Boolean.parseBoolean(inLan);
    }

    /**
     * 是否处于开发环境
     *
     * @return
     */
    public static boolean isDevMode() {
        // 获取系统环境变量
        String debugMode = System.getProperty("debugMode");
        if (StringUtils.isNotBlank(debugMode)) {
            if (StringUtils.equals(debugMode, "true")) {
                return true;
            } else if (StringUtils.equals(debugMode, "false")) {
                return false;
            }
        }
        Environment environment = SpringUtils.getBean(Environment.class);
        String mode = environment.getProperty("spring.profiles.active");
        return StringUtils.equals("dev", mode);
    }

    /**
     * 根据是否是内网环境和开发模式，获得请求航信济南的Url Host
     *
     * @return
     * @notice 注意！系统没有配置生产环境的内网地址，如果需要在航信济南内网调用客户端的生产环境，记得修改这里！！
     */
    public static String getAisinoHost() {
        boolean isInlan = isInLan();
        boolean isDevMode = isDevMode();

        if (isDevMode) {
            // 如果是开发环境
            if (isInlan) {
                // 如果处于航信内网
                return AisinoApiConstants.DEV_LAN_HOST;
            } else {
                return AisinoApiConstants.DEV_HOST;
            }
        } else {
            // 否则一律返回公网环境
            return AisinoApiConstants.PROD_HOST;
        }
    }
}
