|
@@ -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)))
|
|
|
}
|