fengweiqiang 5 سال پیش
والد
کامیت
89114dffb8
2فایلهای تغییر یافته به همراه48 افزوده شده و 18 حذف شده
  1. 47 17
      src/jy/admin/version.go
  2. 1 1
      src/web/templates/admin/version.html

+ 47 - 17
src/jy/admin/version.go

@@ -64,7 +64,7 @@ func init() {
 				if s_pversionid != "" {
 					copyComRules(version, s_pversionid, s_username, false)
 					if iscopysite {
-						scopySites(version,s_pversionid,s_username , true)
+						scopySites(version, s_pversionid, s_username, true, vid)
 					}
 				}
 				if iscopyfiled {
@@ -80,9 +80,6 @@ func init() {
 						s_field := qu.ObjToString(v["s_field"])
 						//克隆属性配置
 						copyFieldRules(vid, pid, s_field, s_pversionid, s_username, false)
-						if iscopysite {
-							copyFieldRules(vid, pid, s_field, s_pversionid, s_username, true)
-						}
 					}
 					//克隆分包属性
 					list2, _ := Mgo.Find("pkg_info", `{"vid":"`+s_pversionid+`","delete":false}`, nil, nil, false, -1, -1)
@@ -137,23 +134,26 @@ func init() {
 		//删除属性配置中的前置规则
 		//删除属性配置中的抽取规则
 		//删除属性配置中的后置规则
-
 		//刪除属性配置
-		go DelVersionInfo(_id,false)
-		go DelVersionInfo(_id,true)//站点
+		go DelVersionInfo(_id, false)
+		go DelVersionInfo(_id, true)
+		//站点删除
+		go func(_id string) {
+			Mgo.Del("site_management",bson.M{"vid":_id})
+		}(_id)
 		//删除分包配置
 		go DelPkgInfo(_id)
 		//删除版本的通用前置规则
 		go DelRulePre(s_version)
 		//删除版本的通用后置规则
-		go DelRuleBack(s_version,false)
-		go DelRuleBack(s_version,true)
+		go DelRuleBack(s_version, false)
+		go DelRuleBack(s_version, true)
 		//删除标签库
-		go DelTag(s_version,false)
-		go DelTag(s_version,true)
+		go DelTag(s_version, false)
+		go DelTag(s_version, true)
 		//删除版本的通用前置规则
-		go DelCleanUp(s_version,false)
-		go DelCleanUp(s_version,true)
+		go DelCleanUp(s_version, false)
+		go DelCleanUp(s_version, true)
 		c.JSON(200, gin.H{"rep": b})
 	})
 	Admin.GET("/version/info", func(c *gin.Context) {
@@ -504,20 +504,19 @@ func init() {
 func copyComRules(version, pvid, s_username string, isSite bool) {
 	var versiondb, rule_predb, rule_backdb, tagdb, tagdetailinfodb, cleanupdb string
 	if isSite {
-		versiondb = "site_version"
 		rule_predb = "site_rule_pre"
 		rule_backdb = "site_rule_back"
 		tagdb = "site_tag"
 		tagdetailinfodb = "site_tagdetailinfo"
 		cleanupdb = "site_cleanup"
 	} else {
-		versiondb = "version"
 		rule_predb = "rule_pre"
 		rule_backdb = "rule_back"
 		tagdb = "tag"
 		tagdetailinfodb = "tagdetailinfo"
 		cleanupdb = "cleanup"
 	}
+	versiondb = "version"
 	tmp, _ := Mgo.FindById(versiondb, pvid, nil)
 	oldversion := (*tmp)["version"].(string)
 	//克隆前置规则
@@ -607,6 +606,7 @@ func copyPkgRules(vid, pid, s_field, oldvid, s_username string) {
 
 //克隆版本Field
 func copyFieldRules(vid, pid, s_field, oldvid, s_username string, isSite bool) {
+	log.Println(vid, pid, s_field, oldvid, s_username)
 	var versioninfo, rule_logic, rule_logicpre, rule_logicore, rule_logicback string
 	if isSite {
 		versioninfo = "site_versioninfo"
@@ -698,8 +698,38 @@ func copyClearRuleLogic(vid, pid, s_field, oldvid, s_username string) {
 }
 
 //站点克隆
-func scopySites(version, pvid, s_username string, isSite bool) {
-	copyComRules(version, pvid, s_username, true)
+func scopySites(version, pvid, s_username string, isSite bool, newVersionId string) {
+	log.Println(version, pvid, s_username, isSite, newVersionId)
+	//站点克隆
+	sites, _ := Mgo.Find("site_management", bson.M{"vid": pvid}, nil, bson.M{}, false, -1, -1)
+	for _, v := range *sites {
+		oldSiteID := v["_id"].(bson.ObjectId).Hex()
+		delete(v, "_id")
+		v["vid"] = newVersionId
+		v["version"] = version
+		//存储站点克隆
+		newSiteId := Mgo.Save("site_management", v)
+		//属性克隆
+		infos, _ := Mgo.Find("site_versioninfo", bson.M{"vid": pvid, "pid": oldSiteID}, nil, bson.M{}, false, -1, -1)
+		for _, vv := range *infos {
+			delete(vv, "_id")
+			vv["l_createtime"] = time.Now().Unix()
+			vv["s_username"] = s_username
+			vv["l_lasttime"] = time.Now().Unix()
+			vv["vid"] = newVersionId
+			vv["delete"] = false
+			vv["pid"] = newSiteId
+			pid := Mgo.Save("site_versioninfo", vv)
+			s_field := qu.ObjToString(vv["s_field"])
+			//克隆属性配置
+			if isSite {
+				copyFieldRules(newVersionId, pid, s_field, pvid, s_username, true)
+			}
+		}
+
+	}
+	//后置规则克隆
+	copyComRules(version,pvid,s_username,true)
 }
 
 //获取代码

+ 1 - 1
src/web/templates/admin/version.html

@@ -364,7 +364,7 @@ function save(){
         data:{"_id":_id,"s_descript":s_descript,"version":version,"isextractcity":isextractcity,"s_pversionid":s_pversionid,"iscopyfiled":iscopyfiled,"iscopysite":iscopysite,"isfiles":isfiles,"s_filefileds":s_filefiledsJsonStr},
         success:function(r){
 			if(r&&r.rep){
-				// window.location.href="/admin/version"
+				window.location.href="/admin/version"
 			}else{
 				showTip("已存在!",1000)
 			}