|
@@ -33,14 +33,30 @@ func init() {
|
|
|
} else {
|
|
|
s_pversionid, _ := c.GetPostForm("s_pversionid")
|
|
|
data := GetPostForm(c)
|
|
|
+ iscopyfiled, _ := data["iscopyfiled"].(bool)
|
|
|
data["l_createtime"] = time.Now().Unix()
|
|
|
s_username := sessions.Default(c).Get("username").(string)
|
|
|
data["s_username"] = s_username
|
|
|
data["delete"] = false
|
|
|
- Mgo.Save("version", data)
|
|
|
+ vid := Mgo.Save("version", data)
|
|
|
if s_pversionid != "" {
|
|
|
copyComRules(version, s_pversionid, s_username)
|
|
|
}
|
|
|
+ if iscopyfiled {
|
|
|
+ list, _ := Mgo.Find("versioninfo", `{"vid":`+s_pversionid+`,"delete":false}`, nil, nil, false, -1, -1)
|
|
|
+ log.Println(s_pversionid, len(*list))
|
|
|
+ for _, v := range *list {
|
|
|
+ delete(v, "_id")
|
|
|
+ v["l_createtime"] = time.Now().Unix()
|
|
|
+ v["s_username"] = sessions.Default(c).Get("username")
|
|
|
+ v["l_lasttime"] = time.Now().Unix()
|
|
|
+ v["vid"] = vid
|
|
|
+ v["delete"] = false
|
|
|
+ pid := Mgo.Save("versioninfo", v)
|
|
|
+ s_field := qu.ObjToString(v["s_field"])
|
|
|
+ copyFieldRules(vid, pid, s_field, s_pversionid, s_username)
|
|
|
+ }
|
|
|
+ }
|
|
|
c.JSON(200, gin.H{"rep": true})
|
|
|
}
|
|
|
})
|
|
@@ -173,52 +189,54 @@ func copyFieldRules(vid, pid, s_field, oldvid, s_username string) {
|
|
|
log.Println(s_field, oldvid, oldpid, s_username)
|
|
|
//克隆逻辑列表
|
|
|
logic, _ := Mgo.FindOne("rule_logic", `{"vid":"`+oldvid+`","pid":"`+oldpid+`","delete":false}`)
|
|
|
- oldsid := qu.BsonIdToSId((*logic)["_id"])
|
|
|
- delete(*logic, "_id")
|
|
|
- (*logic)["vid"] = vid
|
|
|
- (*logic)["pid"] = pid
|
|
|
- (*logic)["l_createtime"] = time.Now().Unix()
|
|
|
- (*logic)["l_lasttime"] = time.Now().Unix()
|
|
|
- (*logic)["s_username"] = s_username
|
|
|
- sid := Mgo.Save("rule_logic", logic)
|
|
|
- //克隆前置规则
|
|
|
- plist, _ := Mgo.Find("rule_logicpre", `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
|
|
|
- for _, v := range *plist {
|
|
|
- delete(v, "_id")
|
|
|
- v["vid"] = vid
|
|
|
- v["pid"] = pid
|
|
|
- v["sid"] = sid
|
|
|
- v["s_code"] = util.GetSyncIndex(getCode(v["s_code"].(string)))
|
|
|
- v["s_username"] = s_username
|
|
|
- v["l_createtime"] = time.Now().Unix()
|
|
|
- v["l_lasttime"] = time.Now().Unix()
|
|
|
- Mgo.Save("rule_logicpre", v)
|
|
|
- }
|
|
|
- //克隆抽取规则
|
|
|
- elist, _ := Mgo.Find("rule_logicore", `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
|
|
|
- for _, v := range *elist {
|
|
|
- delete(v, "_id")
|
|
|
- v["vid"] = vid
|
|
|
- v["pid"] = pid
|
|
|
- v["sid"] = sid
|
|
|
- v["s_code"] = util.GetSyncIndex(getCode(v["s_code"].(string)))
|
|
|
- v["s_username"] = s_username
|
|
|
- v["l_createtime"] = time.Now().Unix()
|
|
|
- v["l_lasttime"] = time.Now().Unix()
|
|
|
- Mgo.Save("rule_logicore", v)
|
|
|
- }
|
|
|
- //克隆过滤规则
|
|
|
- blist, _ := Mgo.Find("rule_logicback", `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
|
|
|
- for _, v := range *blist {
|
|
|
- delete(v, "_id")
|
|
|
- v["vid"] = vid
|
|
|
- v["pid"] = pid
|
|
|
- v["sid"] = sid
|
|
|
- v["s_code"] = util.GetSyncIndex(getCode(v["s_code"].(string)))
|
|
|
- v["s_username"] = s_username
|
|
|
- v["l_createtime"] = time.Now().Unix()
|
|
|
- v["l_lasttime"] = time.Now().Unix()
|
|
|
- Mgo.Save("rule_logicback", v)
|
|
|
+ if len(*logic) > 0 {
|
|
|
+ oldsid := qu.BsonIdToSId((*logic)["_id"])
|
|
|
+ delete(*logic, "_id")
|
|
|
+ (*logic)["vid"] = vid
|
|
|
+ (*logic)["pid"] = pid
|
|
|
+ (*logic)["l_createtime"] = time.Now().Unix()
|
|
|
+ (*logic)["l_lasttime"] = time.Now().Unix()
|
|
|
+ (*logic)["s_username"] = s_username
|
|
|
+ sid := Mgo.Save("rule_logic", logic)
|
|
|
+ //克隆前置规则
|
|
|
+ plist, _ := Mgo.Find("rule_logicpre", `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
|
|
|
+ for _, v := range *plist {
|
|
|
+ delete(v, "_id")
|
|
|
+ v["vid"] = vid
|
|
|
+ v["pid"] = pid
|
|
|
+ v["sid"] = sid
|
|
|
+ v["s_code"] = util.GetSyncIndex(getCode(v["s_code"].(string)))
|
|
|
+ v["s_username"] = s_username
|
|
|
+ v["l_createtime"] = time.Now().Unix()
|
|
|
+ v["l_lasttime"] = time.Now().Unix()
|
|
|
+ Mgo.Save("rule_logicpre", v)
|
|
|
+ }
|
|
|
+ //克隆抽取规则
|
|
|
+ elist, _ := Mgo.Find("rule_logicore", `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
|
|
|
+ for _, v := range *elist {
|
|
|
+ delete(v, "_id")
|
|
|
+ v["vid"] = vid
|
|
|
+ v["pid"] = pid
|
|
|
+ v["sid"] = sid
|
|
|
+ v["s_code"] = util.GetSyncIndex(getCode(v["s_code"].(string)))
|
|
|
+ v["s_username"] = s_username
|
|
|
+ v["l_createtime"] = time.Now().Unix()
|
|
|
+ v["l_lasttime"] = time.Now().Unix()
|
|
|
+ Mgo.Save("rule_logicore", v)
|
|
|
+ }
|
|
|
+ //克隆过滤规则
|
|
|
+ blist, _ := Mgo.Find("rule_logicback", `{"sid":"`+oldsid+`","delete":false}`, nil, nil, false, -1, -1)
|
|
|
+ for _, v := range *blist {
|
|
|
+ delete(v, "_id")
|
|
|
+ v["vid"] = vid
|
|
|
+ v["pid"] = pid
|
|
|
+ v["sid"] = sid
|
|
|
+ v["s_code"] = util.GetSyncIndex(getCode(v["s_code"].(string)))
|
|
|
+ v["s_username"] = s_username
|
|
|
+ v["l_createtime"] = time.Now().Unix()
|
|
|
+ v["l_lasttime"] = time.Now().Unix()
|
|
|
+ Mgo.Save("rule_logicback", v)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|