zhangqian
2024-07-01 73b6baf6af3d88cdcb0e2df7932a9bd96b0b85c5
conf/config.go
@@ -3,6 +3,7 @@
import (
   "log"
   "os"
   "wms/constvar"
   "wms/pkg/logx"
   "wms/pkg/mysqlx"
@@ -23,35 +24,46 @@
type (
   webConf struct {
      Host      string // 本机ip地址
      Port      string // 端口号
      APPort    string // 本机作为的Grpc服务端的端口号
      AlHost    string // 算法服务ip地址
      AlPort    string // 算法服务端口号
      NodeId    string // 主账户用户名
      OssType   string // 对象存储类型
      JWTSecret string
   }
   nsqConf struct {
      NsqdAddr       string
      NsqlookupdAddr string
      Host        string // 本机ip地址
      Port        string // 端口号
      NodeId      string // 主账户用户名
      OssType     string // 对象存储类型
      JWTSecret   string
      FileServer  string //文件服务器地址
      ServerId    string //服务ID
      Env         constvar.Env
      GrpcPort    string //grpc端口号
      CompanyName string //公司名
   }
   localConf struct {
      StorePath string // 本地文件存储路径
   }
   grpcServerConf struct {
      ApsAddr string //aps服务grpc地址
      CrmAddr string //crm服务grpc地址
      SrmAddr string //srm服务grpc地址
   }
   fileTemplateConf struct {
      InputSelfmadeAddr string //入库自制单模版地址
   }
   dingTalkConf struct {
      AlarmKey string
      AlarmUrl string
   }
)
var (
   WebConf   = &webConf{}
   LogConf   = &logx.Conf{}
   DbConf    = &mysqlx.Conf{}
   NsqConf   = &nsqConf{}
   LocalConf = &localConf{}
   NodeId    string
   GrpcPort  string
   Viper     *viper.Viper
   WebConf        = &webConf{}
   LogConf        = &logx.Conf{}
   DbConf         = &mysqlx.Conf{}
   LocalConf      = &localConf{}
   Viper          *viper.Viper
   GrpcServerConf = &grpcServerConf{}
   DingTalkConf   = &dingTalkConf{}
)
func Init() error {
@@ -66,25 +78,33 @@
   }
   read2Conf(Viper)
   GrpcPort = os.Getenv("GRPC_PORT") // 只给grpc算法服务使用,本服务不用
   nodeId := os.Getenv("NODE_ID")    // 主账户用户名
   host := os.Getenv("HOST")         // 本机IP地址
   algHost := os.Getenv("AL_HOST")   // 算法服务的IP地址
   nsqdAddr := os.Getenv("NSQD_ADDR")
   if len(GrpcPort) == 0 { // 如果gprcPort为空,那么用配置的APPort
      GrpcPort = WebConf.APPort
   GrpcPort := os.Getenv("WMS_GRPC") // 只对外提供grpc服务,本服务不用
   apsAddr := os.Getenv("APS_GRPC")
   crmAddr := os.Getenv("CRM_GRPC")
   srmAddr := os.Getenv("SRM_GRPC")
   companyName := os.Getenv("COMPANY_NAME")
   if len(GrpcPort) > 0 {
      WebConf.GrpcPort = GrpcPort
   }
   if len(nodeId) > 0 {
      WebConf.NodeId = nodeId
   }
   if len(algHost) > 0 {
      WebConf.AlHost = algHost
   }
   if len(host) > 0 {
      WebConf.Host = host
   }
   if len(nsqdAddr) > 0 {
      NsqConf.NsqdAddr = nsqdAddr
   if len(apsAddr) > 0 {
      GrpcServerConf.ApsAddr = apsAddr
   }
   if len(crmAddr) > 0 {
      GrpcServerConf.CrmAddr = crmAddr
   }
   if len(srmAddr) > 0 {
      GrpcServerConf.SrmAddr = srmAddr
   }
   if len(companyName) > 0 {
      WebConf.CompanyName = companyName
   }
   DBHost := os.Getenv("DB_HOST")
@@ -107,8 +127,9 @@
   _ = v.UnmarshalKey("web", WebConf)
   _ = v.UnmarshalKey("log", LogConf)
   _ = v.UnmarshalKey("db", DbConf)
   _ = v.UnmarshalKey("nsq", NsqConf)
   _ = v.UnmarshalKey("local", LocalConf)
   _ = v.UnmarshalKey("grpcServer", GrpcServerConf)
   _ = v.UnmarshalKey("dingTalk", DingTalkConf)
   showConfig()
}
@@ -117,8 +138,8 @@
   log.Printf("   WebConf:                %+v", WebConf)
   log.Printf("   LogConf:                %+v", LogConf)
   log.Printf("   DbConf:                 %+v", DbConf)
   log.Printf("   NsqConf:                %+v", NsqConf)
   log.Printf("   GrpcPort:               %+v", GrpcPort)
   log.Printf("   LocalConf:               %+v", LocalConf)
   log.Printf("   GrpcServerConf:               %+v", GrpcServerConf)
   log.Printf("   DingTalkConf:               %+v", DingTalkConf)
   log.Println("......................................................")
}