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