package utils

import (
	"fmt"
	beego "github.com/beego/beego/v2/adapter"
	"github.com/beego/beego/v2/server/web"
)

var (
	RunMode   string //运行模式
	MYSQL_URL string //数据库连接
)

var SystemType string // 系统类型; hz:弘则;trial:试用平台;custom:客户

var (
	APPNAME                        string //项目中文名称
	EmailSendToUsers               string // 邮件提醒人员
	RefreshEdbInfoEmailSendToUsers string // 刷新完成通知邮件人员
	// AlarmMsgUrl 报警服务地址
	AlarmMsgUrl string
)

// 经济数据库
var (
	EDB_LIB_URL         string
	APP_EDB_LIB_NAME_EN string
	EDB_LIB_Md5_KEY     string
)

// 公共数据服务接口参数
var (
	APPID  string
	SECRET string
)

var (
	WxAppId                     string
	WxAppSecret                 string
	TemplateId                  string
	RemindTemplateId            string
	AppointmentRemindTemplateId string //活动预约通知模板id
	YbCommonTemplateId          string //研报小程序消息模板ID

	WxYbAppId string //微信研报小程序

	//内部员工公众号(弘则部门)
	AdminWxAppId     string
	AdminWxAppSecret string
)

// 模板消息推送
var (
	SendWxTemplateMsgUrl string
)

// BusinessCode 商家编码

var (
	BusinessCode  string //商户号
	WindServerUrl string //wind api 接口服务器地址
	LtServerUrl   string //路透 api 接口服务器地址
	PbServerUrl   string //彭博 api 接口服务器地址
)

func init() {
	tmpRunMode, err := web.AppConfig.String("run_mode")
	if err != nil {
		panic("配置文件读取run_mode错误 " + err.Error())
	}
	RunMode = tmpRunMode
	if RunMode == "" {
		localIp, err := GetLocalIP()
		fmt.Println("localIp:", localIp)
		if localIp == "10.0.0.123" {
			RunMode = "debug"
		} else {
			RunMode = "release"
		}
		//RunMode = "release"
		configPath := `/home/code/config/eta_task/conf/app.conf`
		err = web.LoadAppConfig("ini", configPath)
		if err != nil {
			fmt.Println("web.LoadAppConfig Err:" + err.Error())
		}
	}

	config, err := web.AppConfig.GetSection(RunMode)
	if err != nil {
		panic("配置文件读取错误 " + err.Error())
	}
	beego.Info(RunMode + " 模式")
	MYSQL_URL = config["mysql_url"]
	// 系统类型
	systemType, err := web.AppConfig.String("system_type")
	if err != nil {
		panic(any("配置文件读取system_type错误 " + err.Error()))
	}
	SystemType = systemType

	// 项目中文名称
	appNameCn, err := web.AppConfig.String("app_name_cn")
	if err != nil {
		panic(any("配置文件读取app_name_cn错误 " + err.Error()))
	}
	APPNAME = appNameCn

	// 邮件提醒人员
	EmailSendToUsers = config["email_send_to_users"]

	// 刷新完成通知邮件人员
	RefreshEdbInfoEmailSendToUsers = config["refresh_edb_info_email_send_to_users"]

	// 报警服务地址
	AlarmMsgUrl = config["alarm_msg_url"]

	// 公共指标库相关
	{
		EDB_LIB_URL = config["edb_lib_url"]
		APP_EDB_LIB_NAME_EN = config["app_edb_lib_name_en"]
		EDB_LIB_Md5_KEY = config["edb_lib_md5_key"]
	}

	APPID = config["appid"]
	SECRET = config["secret"]

	// 商家编码
	BusinessCode = config["business_code"]
	WindServerUrl = config["wind_server_url"]
	LtServerUrl = config["lt_server_url"]
	PbServerUrl = config["pb_server_url"]
}