Browse Source

添加配置文件内容检测

wcc 2 năm trước cách đây
mục cha
commit
379e33cc11
3 tập tin đã thay đổi với 71 bổ sung10 xóa
  1. 1 1
      createEsIndex/biddingall.toml
  2. 62 9
      createEsIndex/init.go
  3. 8 0
      createEsIndex/oss/ossclient.go

+ 1 - 1
createEsIndex/biddingall.toml

@@ -63,4 +63,4 @@ num = 50
     [all.12]
     coll = "bidding"
     gtid = "644e90800000000000000000"  ##  2023.5.1
-    lteid = "64b95a000000000000000000" ##  2023.7.21
+    lteid = "64baab800000000000000000" ##  2023.7.22

+ 62 - 9
createEsIndex/init.go

@@ -56,7 +56,14 @@ func InitMgo() {
 		Password:    config.Conf.DB.MongoB.Password,
 	}
 	MgoB.InitPool()
+	if config.Conf.DB.MongoB.Addr == "" || config.Conf.DB.MongoB.Dbname == "" {
+		log.Error("InitMgo", zap.String("MgoB", "地址或者数据库为空"))
+	}
+	if config.Conf.DB.MongoB.Coll == "" {
+		log.Error("InitMgo", zap.String("MgoB", "查询表为空"))
+	}
 	log.Info("InitMgo", zap.Any("MgoB duration", time.Since(now).Seconds()))
+	//项目信息
 	MgoP = &mongodb.MongodbSim{
 		MongodbAddr: config.Conf.DB.MongoP.Addr,
 		DbName:      config.Conf.DB.MongoP.Dbname,
@@ -65,8 +72,15 @@ func InitMgo() {
 		Password:    config.Conf.DB.MongoP.Password,
 	}
 	MgoP.InitPool()
+	if config.Conf.DB.MongoP.Addr == "" || config.Conf.DB.MongoP.Dbname == "" {
+		log.Error("InitMgo", zap.String("MongoP", "地址或者数据库为空"))
+	}
+	if config.Conf.DB.MongoP.Coll == "" {
+		log.Error("InitMgo", zap.String("MongoP", "查询表为空"))
+	}
 	log.Info("InitMgo", zap.Any("MgoP duration", time.Since(now).Seconds()))
 
+	//中标单位定时同步
 	MgoQ = &mongodb.MongodbSim{
 		MongodbAddr: config.Conf.DB.MongoQ.Addr,
 		DbName:      config.Conf.DB.MongoQ.Dbname,
@@ -75,7 +89,11 @@ func InitMgo() {
 		Password:    config.Conf.DB.MongoQ.Password,
 	}
 	MgoQ.InitPool()
+	if config.Conf.DB.MongoQ.Addr == "" || config.Conf.DB.MongoQ.Dbname == "" {
+		log.Error("InitMgo", zap.String("MongoQ", "地址或者数据库为空"))
+	}
 	log.Info("InitMgo", zap.Any("MgoQ duration", time.Since(now).Seconds()))
+	//采购单位
 	Mysql = &mysqldb.Mysql{
 		Address:  config.Conf.DB.MysqlB.Addr,
 		DBName:   config.Conf.DB.MysqlB.Dbname,
@@ -83,9 +101,11 @@ func InitMgo() {
 		PassWord: config.Conf.DB.MysqlB.Password,
 	}
 	Mysql.Init()
-
+	if config.Conf.DB.MysqlB.Addr == "" || config.Conf.DB.MysqlB.Dbname == "" {
+		log.Error("InitMgo", zap.String("Mysql", "地址或者数据库为空"))
+	}
 	log.Info("InitMgo", zap.Any("MysqlB duration", time.Since(now).Seconds()))
-
+	//181 特殊企业,采购单位验证
 	MgoS = &mongodb.MongodbSim{
 		MongodbAddr: config.Conf.DB.MongoS.Addr,
 		DbName:      config.Conf.DB.MongoS.Dbname,
@@ -94,7 +114,9 @@ func InitMgo() {
 		Password:    config.Conf.DB.MongoS.Password,
 	}
 	MgoS.InitPool()
-
+	if config.Conf.DB.MongoS.Addr == "" || config.Conf.DB.MongoS.Dbname == "" {
+		log.Error("InitMgo", zap.String("MongoS", "地址或者数据库为空"))
+	}
 	log.Info("InitMgo", zap.Any("MgoS duration", time.Since(now).Seconds()))
 }
 
@@ -108,6 +130,30 @@ func InitEs() {
 	}
 	Es.InitElasticSize()
 
+	if config.Conf.DB.Es.Addr == "" {
+		log.Error("InitEs", zap.String("ES", "地址或者数据库为空"))
+	}
+	if config.Conf.DB.Es.IndexB == "" {
+		log.Error("InitEs", zap.String("IndexB", "indexb  bidding 索引为空,请检查"))
+	} else {
+		log.Debug("InitEs", zap.String("IndexB", config.Conf.DB.Es.IndexB))
+	}
+	if config.Conf.DB.Es.IndexP == "" {
+		log.Error("InitEs", zap.String("IndexB", "projectset 项目索引为空,请检查"))
+	} else {
+		log.Debug("InitEs", zap.String("IndexP", config.Conf.DB.Es.IndexP))
+	}
+
+	if config.Conf.DB.Es.IndexTmp == "" {
+		log.Error("InitEs", zap.String("IndexTmp 为空", "请检查是否需要配置;该配置主要生产环境需要"))
+	}
+	if config.Conf.DB.Es.IndexWinner == "" {
+		log.Error("InitEs", zap.String("IndexWinner", "中标单位 索引为空,请检查"))
+	}
+	if config.Conf.DB.Es.IndexBuyer == "" {
+		log.Error("InitEs", zap.String("IndexBuyer", "采购单位 索引为空,请检查"))
+	}
+
 	Es1 = &elastic.Elastic{
 		S_esurl:  config.Conf.DB.Es.AddrP,
 		I_size:   config.Conf.DB.Es.Size,
@@ -172,13 +218,19 @@ func verifyESFields() {
 	// 获取 Elasticsearch 索引的 mapping 信息
 	mapping, err := client.GetMapping().Index(index).Do(context.Background())
 	if err != nil {
-		log.Info("verifyESFields", zap.Any("getting Elasticsearch mapping:", err))
+		log.Error("verifyESFields", zap.Any("getting Elasticsearch mapping:", err))
 	}
 
 	indexName, _ := GetIndexName(client, index)
 
-	if indexName == "" {
-		log.Info("verifyESFields", zap.String("索引不存在,请检查索引", index))
+	if indexName == "" || mapping == nil {
+		log.Error("verifyESFields", zap.String("索引不存在,请检查索引", index))
+		os.Exit(-1)
+		return
+	}
+	if mapping[indexName].(map[string]interface{})["mappings"] == nil || mapping[indexName].(map[string]interface{})["mappings"].(map[string]interface{})["properties"] == nil {
+		log.Error("verifyESFields", zap.String("索引不存在或状态不对,请检查索引", index))
+		os.Exit(-1)
 		return
 	}
 	properties := mapping[indexName].(map[string]interface{})["mappings"].(map[string]interface{})["properties"].(map[string]interface{})
@@ -233,15 +285,16 @@ func verifyESFields() {
 	}
 
 	if len(errField) > 0 {
-		log.Info("verifyESFields", zap.Int("错误字段数量", len(errField)))
+		log.Error("verifyESFields", zap.Int("错误字段数量", len(errField)))
 		for _, field := range errField {
 			if strings.Contains(field, ".") {
 				fe := strings.Split(field, ".")
-				log.Info(fmt.Sprintf("%s 字段类型错误", field), zap.String(fmt.Sprintf("数据库类型为:%s,但是es字段类型是:", BiddingLevelField[fe[0]][fe[1]]), esMap[field]))
+				log.Error(fmt.Sprintf("%s 字段类型错误", field), zap.String(fmt.Sprintf("数据库类型为:%s,但是es字段类型是:", BiddingLevelField[fe[0]][fe[1]]), esMap[field]))
 			} else {
-				log.Info(fmt.Sprintf("%s 字段类型错误", field), zap.String(fmt.Sprintf("数据库类型为:%s,但是es字段类型是:", BiddingField[field]), esMap[field]))
+				log.Error(fmt.Sprintf("%s 字段类型错误", field), zap.String(fmt.Sprintf("数据库类型为:%s,但是es字段类型是:", BiddingField[field]), esMap[field]))
 			}
 		}
+		os.Exit(-1)
 	} else {
 		log.Info("es 字段类型检测结束,", zap.Int("所有字段都符合,检测字段数量为:", len(okField)))
 	}

+ 8 - 0
createEsIndex/oss/ossclient.go

@@ -9,6 +9,7 @@ import (
 	"go.uber.org/zap"
 	"io/ioutil"
 	"os"
+	"time"
 )
 
 var (
@@ -20,12 +21,19 @@ var (
 )
 
 func InitOss() {
+	now := time.Now()
+	if config.Conf.DB.Oss.Endpoint == "" || config.Conf.DB.Oss.AccessKey == "" || config.Conf.DB.Oss.AccessSecret == "" {
+		log.Info("InitOss", zap.String("OSS:", "配置信息为空"))
+		os.Exit(-1)
+	}
 	client, err := oss.New(config.Conf.DB.Oss.Endpoint, config.Conf.DB.Oss.AccessKey, config.Conf.DB.Oss.AccessSecret)
 	if err != nil {
 		fmt.Println("Error:", err)
 		os.Exit(-1)
 	}
 	ossclient = client
+
+	log.Info("InitOss", zap.Any("duration", time.Since(now).Seconds()))
 }
 
 func OssGetObject(objectName, id string) string {