Browse Source

站点属性初始化

fengweiqiang 5 years ago
parent
commit
f3db47eb7f
1 changed files with 26 additions and 22 deletions
  1. 26 22
      src/jy/extract/extractInit.go

+ 26 - 22
src/jy/extract/extractInit.go

@@ -549,6 +549,27 @@ func (e *ExtractTask) InitRuleCore(isSite bool) {
 			}
 			fieldrules[s_field] = append(fieldrules[s_field], rcore)
 		}
+		infolist, _ := db.Mgo.Find("infotype", `{}`, `{}`, `{}`, false, -1, -1)
+		for _, v := range *infolist {
+			topclass := qu.ObjToString(v["topclass"])
+			if v["subclass"] == nil {
+				eSiteRuleCores[topclass] = make(map[string][]*RuleCore)
+				for attr, _ := range v["fields"].(map[string]interface{}) {
+					if fieldrules[attr]!=nil{
+						eSiteRuleCores[topclass][attr] = fieldrules[attr]
+					}
+				}
+			} else {
+				for ca, fs := range v["subclass"].(map[string]interface{}) {
+					eSiteRuleCores[topclass+"_"+ca] = make(map[string][]*RuleCore)
+					for field, _ := range fs.(map[string]interface{}) {
+						if fieldrules[field] !=nil{
+							eSiteRuleCores[topclass+"_"+ca][field] = fieldrules[field]
+						}
+					}
+				}
+			}
+		}
 		if isSite {
 			sm, _ := db.Mgo.FindById("site_management", qu.ObjToString(vinfo["pid"]), bson.M{"site_script": 1})
 			if (*sm) == nil || len(*sm) <=0{
@@ -559,32 +580,15 @@ func (e *ExtractTask) InitRuleCore(isSite bool) {
 			for _, v2 := range (*sm)["site_script"].([]interface{}) {
 				if mdpvalue, ok := Luacodes.Load(v2); ok {
 					//属性配置
-					infolist, _ := db.Mgo.Find("infotype", `{}`, `{}`, `{}`, false, -1, -1)
-					for _, v := range *infolist {
-						topclass := qu.ObjToString(v["topclass"])
-						if v["subclass"] == nil {
-							eSiteRuleCores[topclass] = make(map[string][]*RuleCore)
-							for attr, _ := range v["fields"].(map[string]interface{}) {
-								if fieldrules[attr]!=nil{
-									eSiteRuleCores[topclass][attr] = fieldrules[attr]
-								}
-							}
-						} else {
-							for ca, fs := range v["subclass"].(map[string]interface{}) {
-								eSiteRuleCores[topclass+"_"+ca] = make(map[string][]*RuleCore)
-								for field, _ := range fs.(map[string]interface{}) {
-									if fieldrules[field] !=nil{
-										eSiteRuleCores[topclass+"_"+ca][field] = fieldrules[field]
-									}
-								}
-							}
-						}
-					}
 					if mdpvalue.(map[string]interface{})["e.SiteRuleCores"] == nil{
 						mdpvalue.(map[string]interface{})["e.SiteRuleCores"] = eSiteRuleCores
 					}else {
 						for k2,v2 :=range eSiteRuleCores{
-							mdpvalue.(map[string]interface{})["e.SiteRuleCores"].(map[string]map[string][]*RuleCore )[k2] = v2
+							tmpv := mdpvalue.(map[string]interface{})["e.SiteRuleCores"].(map[string]map[string][]*RuleCore)[k2]
+							for kkkk,vvv:=range v2{
+								tmpv[kkkk]=vvv
+							}
+							mdpvalue.(map[string]interface{})["e.SiteRuleCores"].(map[string]map[string][]*RuleCore )[k2] = tmpv
 						}
 					}
 					Luacodes.Store(v2, mdpvalue)