maxiaoshan 2 rokov pred
rodič
commit
625d70c92c

+ 56 - 21
src/front/front.go

@@ -45,6 +45,7 @@ type Front struct {
 	delRedis        xweb.Mapper `xweb:"/center/spider/delRedis"`        //清理Redis
 	updateESP       xweb.Mapper `xweb:"/center/spider/updateesp"`       //修改爬虫的节点/状态/平台
 	updatePendState xweb.Mapper `xweb:"/center/spider/updatePendState"` //更新爬虫挂起状态
+	tagCode         xweb.Mapper `xweb:"/center/spider/tagcode"`         //标记爬虫
 
 	spiderModel xweb.Mapper `xweb:"/center/model"`           //获取补充模型
 	runStep     xweb.Mapper `xweb:"/center/run"`             //方法测试
@@ -113,7 +114,7 @@ func (f *Front) Login() error {
 		"s_name": username,
 		"s_pass": password,
 	}
-	user, _ := u.MgoE.FindOne("user", query)
+	user, _ := u.MgoEB.FindOne("user", query)
 	if user != nil && len(*user) > 0 && qu.IntAll((*user)["i_delete"]) == 0 {
 		f.SetSession("userid", mongodb.BsonIdToSId((*user)["_id"]))
 		f.SetSession("username", (*user)["s_fullname"])
@@ -152,8 +153,8 @@ func (f *Front) User() {
 					"$lt": auth,
 				},
 			}
-			user, _ := u.MgoE.Find("user", query, nil, nil, false, start, limit)
-			count := u.MgoE.Count("user", query)
+			user, _ := u.MgoEB.Find("user", query, nil, nil, false, start, limit)
+			count := u.MgoEB.Count("user", query)
 			page := start / 10
 			for k, v := range *user {
 				v["num"] = k + 1 + page*10
@@ -189,7 +190,7 @@ func (f *Front) DelUser() {
 				"i_delete": 1,
 			},
 		}
-		ok := u.MgoE.Update("user", query, update, false, false)
+		ok := u.MgoEB.Update("user", query, update, false, false)
 		if ok {
 			f.ServeJson(map[string]interface{}{
 				"status": "y",
@@ -254,7 +255,7 @@ func (f *Front) UpdateUser() {
 		f.ServeJson("没有权限!")
 		return
 	}
-	ok := u.MgoE.Update("user", query, update, false, false)
+	ok := u.MgoEB.Update("user", query, update, false, false)
 	if ok {
 		f.ServeJson(map[string]interface{}{
 			"status": "y",
@@ -272,7 +273,7 @@ func (f *Front) CheckUsenamer() {
 		query := map[string]interface{}{
 			"s_name": username,
 		}
-		user, _ := u.MgoE.FindOne("user", query)
+		user, _ := u.MgoEB.FindOne("user", query)
 		if user != nil && len(*user) > 0 {
 			f.ServeJson(map[string]interface{}{
 				"status": "hasUser",
@@ -293,7 +294,7 @@ func (f *Front) CheckEmail() {
 		query := map[string]interface{}{
 			"s_email": email,
 		}
-		user, _ := u.MgoE.FindOne("user", query)
+		user, _ := u.MgoEB.FindOne("user", query)
 		if user != nil && len(*user) > 0 {
 			f.ServeJson(map[string]interface{}{
 				"status": "hasEmail",
@@ -337,7 +338,7 @@ func (f *Front) SaveNewUser() {
 			"i_delete":     0,
 			"l_comeintime": time,
 		}
-		ok := u.MgoE.Save("user", save)
+		ok := u.MgoEB.Save("user", save)
 		if ok != "" {
 			f.ServeJson(map[string]interface{}{
 				"status": "y",
@@ -445,7 +446,7 @@ func (f *Front) LoadIndex() {
 			if v["event"] == nil { //节点
 				v["event"] = 0
 			}
-			user, _ := u.MgoE.FindOne("user", map[string]interface{}{"s_name": qu.ObjToString(v["createuser"])})
+			user, _ := u.MgoEB.FindOne("user", map[string]interface{}{"s_name": qu.ObjToString(v["createuser"])})
 			//v["state"] = LuaStateMap[qu.IntAll(v["state"])]
 			v["i_scope"] = (*user)["i_scope"]
 		}
@@ -570,7 +571,7 @@ func (f *Front) Importfile() {
 						//o["transfercode"] = qu.IntAll(Transfercode[table])
 
 						query := map[string]interface{}{"code": cells[1].Value}
-						rs, _ := u.MgoE.FindOne("import", query)
+						rs, _ := u.MgoEB.FindOne("import", query)
 						if len(*rs) > 0 {
 							errorinfo[cells[1].Value] = "第" + strconv.Itoa(k) + "行重复,已经过滤"
 						} else {
@@ -579,7 +580,7 @@ func (f *Front) Importfile() {
 								errorinfo[cells[1].Value] = "第" + strconv.Itoa(k) + "行找不到作者,已经过滤"
 							} else {
 								o["author"] = name
-								u.MgoE.Save("import", o)
+								u.MgoEB.Save("import", o)
 							}
 						}
 					}
@@ -598,7 +599,7 @@ func savelua(o map[string]interface{}) (bool, string) {
 	AutoTpl["Base.SpiderChannel"] = o["channel"]
 	AutoTpl["Base.SpiderTargetChannelUrl"] = o["channeladdr"]
 	author := o["author"].(string)
-	one, _ := u.MgoE.FindOne("user", map[string]interface{}{"s_email": author})
+	one, _ := u.MgoEB.FindOne("user", map[string]interface{}{"s_email": author})
 	id := mongodb.BsonIdToSId((*one)["_id"])
 	if len(*one) == 0 {
 		return false, ""
@@ -695,7 +696,7 @@ func savelua(o map[string]interface{}) (bool, string) {
 	//qu.Debug("param---", param)
 	ok := spider.SaveSpider(o["code"].(string), param)
 	if ok { //保存成功,校验新导入的爬虫对应站点是否存在,否则加站点记录
-		if u.MgoE.Count("site", map[string]interface{}{"site": o["name"]}) == 0 {
+		if u.MgoEB.Count("site", map[string]interface{}{"site": o["name"]}) == 0 {
 			qu.Debug("补充站点信息:", o["name"])
 			domain := u.DomainReg.FindString(qu.ObjToString(AutoTpl["Base.SpiderTargetChannelUrl"]))
 			if domain != "" {
@@ -721,7 +722,7 @@ func savelua(o map[string]interface{}) (bool, string) {
 				"comeintime":    time.Now().Unix(),
 				"important":     0,
 			}
-			u.MgoE.Save("site", siteInfo)
+			u.MgoEB.Save("site", siteInfo)
 		}
 	}
 	return ok, (*one)["s_name"].(string)
@@ -733,7 +734,7 @@ func (f *Front) Importdata() {
 		if f.Method() == "GET" {
 			f.Render("import.html")
 		} else {
-			rss, _ := u.MgoE.Find("import", nil, `{"timestamp": -1}`, nil, false, -1, -1)
+			rss, _ := u.MgoEB.Find("import", nil, `{"timestamp": -1}`, nil, false, -1, -1)
 			f.ServeJson(map[string]interface{}{
 				"data": *rss,
 			})
@@ -753,7 +754,7 @@ func Wlog(name, code, man, manid, types string, content map[string]interface{})
 		"time":    time.Now().Unix(),
 		"content": content,
 	}
-	u.MgoE.Save("lua_logs", obj)
+	u.MgoEB.Save("lua_logs", obj)
 }
 
 func (f *Front) Oldedit() {
@@ -803,7 +804,7 @@ func (f *Front) Assign() {
 	codes := f.GetString("codes")
 	userid := f.GetString("userid")       //分配给谁
 	codesarr := strings.Split(codes, ",") //被分配的爬虫
-	user, _ := u.MgoE.FindById("user", userid, nil)
+	user, _ := u.MgoEB.FindById("user", userid, nil)
 	if user != nil && len(*user) > 0 {
 		name := qu.ObjToString((*user)["s_name"])
 		query := map[string]interface{}{
@@ -853,7 +854,7 @@ func editModify(codesarr []string, userid, name string) {
 			"s_modifyid": userid,
 		},
 	}
-	b := u.MgoE.Update("task", query, set, false, true)
+	b := u.MgoEB.Update("task", query, set, false, true)
 	qu.Debug("任务重新分配成功", b)
 }
 
@@ -897,13 +898,13 @@ func (f *Front) UpdatePendState() {
 	stype := f.GetString("stype")
 	qu.Debug(code, stype, pendstate)
 	//success = u.MgoE.Update("luaconfig", map[string]interface{}{"code": code}, map[string]interface{}{"$set": map[string]interface{}{"pendstate": pendstate}}, false, false)
-	success = u.MgoEB.Update("luaconfig", map[string]interface{}{"code": code}, map[string]interface{}{"$set": map[string]interface{}{"pendstate": pendstate}}, false, false)
+	success = u.MgoEB.Update("luaconfig", map[string]interface{}{"code": code}, map[string]interface{}{"$set": map[string]interface{}{"pendstate": pendstate, "pendtime": time.Now().Unix()}}, false, false)
 	if success {
 		if stype == "code" { //爬虫挂起时,关闭所有任务
-			u.MgoE.Update("task", map[string]interface{}{"s_code": code, "i_state": map[string]interface{}{"$ne": 6}}, map[string]interface{}{"$set": map[string]interface{}{"i_state": 6}}, false, true)
+			u.MgoEB.Update("task", map[string]interface{}{"s_code": code, "i_state": map[string]interface{}{"$ne": 6}}, map[string]interface{}{"$set": map[string]interface{}{"i_state": 6, "l_pendtime": time.Now().Unix()}}, false, true)
 		} else if stype == "task" { //任务挂起任务时任务关闭
 			id := f.GetString("id")
-			u.MgoE.UpdateById("task", id, map[string]interface{}{"$set": map[string]interface{}{"i_pendstate": pendstate, "i_state": 6}})
+			u.MgoEB.UpdateById("task", id, map[string]interface{}{"$set": map[string]interface{}{"i_pendstate": pendstate, "i_state": 6, "l_pendtime": time.Now().Unix()}})
 		}
 	}
 	f.ServeJson(map[string]interface{}{"success": success})
@@ -940,6 +941,40 @@ func (f *Front) UpdateESP() {
 		set["state"] = 0
 		set["event"] = 7000
 		set["spidertype"] = "history"
+		//更新、新建任务
+		task, _ := u.MgoEB.FindOne("task", map[string]interface{}{"s_code": code, "i_state": map[string]interface{}{"$in": []int{0, 1, 2, 3, 5}}})
+		text := "指定追加描述:------------------------------\n无发布转待完成\n"
+		if len(*task) > 0 { //已有任务,更新
+			u.MgoEB.UpdateById("task", (*task)["_id"],
+				map[string]interface{}{
+					"$set": map[string]interface{}{
+						"i_state":      2,
+						"s_descript":   qu.ObjToString((*task)["s_descript"]) + text,
+						"l_updatetime": time.Now().Unix(),
+					},
+				})
+		} else {
+			save := map[string]interface{}{
+				"s_channel":           (*one)["channel"],
+				"i_event":             (*one)["event"],
+				"i_frequencyerrtimes": 0,
+				"i_state":             2,
+				"s_descript":          text,
+				"l_complete":          time.Now().Unix() + int64(24*3600),
+				"s_urgency":           "4",
+				"i_pendstate":         0,
+				"s_modifyid":          (*one)["modifyuserid"],
+				"s_source":            "人工",
+				"i_times":             0,
+				"l_comeintime":        time.Now().Unix(),
+				"i_num":               0,
+				"s_modify":            (*one)["modifyuser"],
+				"s_code":              code,
+				"s_site":              (*one)["site"],
+				"s_type":              "0",
+			}
+			u.MgoEB.Save("task", save)
+		}
 	} else if w == "platform" {
 		set["platform"] = val
 		set["comeintime"] = time.Now().Unix()

+ 1 - 1
src/front/luamove.go

@@ -316,7 +316,7 @@ func SpiderMoveEvent(data string) {
 		u.MgoEB.Update("luaconfig", map[string]interface{}{"code": code}, map[string]interface{}{"$set": map[string]interface{}{"event": event, "state": 6}}, false, false)
 		qu.Debug("Code:", code, "历史迁移到增量节点失败")
 	}
-	u.MgoE.Save("luamovelog", map[string]interface{}{
+	u.MgoEB.Save("luamovelog", map[string]interface{}{
 		"code":       code,
 		"comeintime": time.Now().Unix(),
 		"type":       "movevent",

+ 9 - 9
src/front/site.go

@@ -68,8 +68,8 @@ func (s *Site) SiteList() {
 		}
 		sort = fmt.Sprintf(sort, orderName, orderType)
 		qu.Debug("query:", query, "sort:", sort)
-		sites, _ := util.MgoE.Find(sp.Config.SiteColl, query, sort, ``, false, start, limit)
-		count := util.MgoE.Count(sp.Config.SiteColl, query)
+		sites, _ := util.MgoEB.Find(sp.Config.SiteColl, query, sort, ``, false, start, limit)
+		count := util.MgoEB.Count(sp.Config.SiteColl, query)
 		for k, s := range *sites {
 			s["num"] = k + 1 + start
 			remarktime := qu.Int64All(s["remarktime"])
@@ -99,7 +99,7 @@ func (s *Site) SaveSite() {
 	id := s.GetString("id")
 	site := s.GetString("site")
 	if id == "" { //新增
-		data, _ := util.MgoE.FindOne(sp.Config.SiteColl, `{"site":"`+site+`"}`)
+		data, _ := util.MgoEB.FindOne(sp.Config.SiteColl, `{"site":"`+site+`"}`)
 		if len(*data) > 0 {
 			s.ServeJson(map[string]interface{}{"ok": false})
 			return
@@ -143,14 +143,14 @@ func (s *Site) SaveSite() {
 		update["platform"] = platform
 		update["delete"] = false
 		update["comeintime"] = time.Now().Unix()
-		if id := util.MgoE.Save(sp.Config.SiteColl, update); id != "" {
+		if id := util.MgoEB.Save(sp.Config.SiteColl, update); id != "" {
 			b = true
 		} else {
 			b = false
 		}
 	} else { //更新
 		update["updatetime"] = time.Now().Unix()
-		b = util.MgoE.Update(sp.Config.SiteColl, map[string]interface{}{"_id": mgo.StringTOBsonId(id)}, map[string]interface{}{"$set": update}, true, false)
+		b = util.MgoEB.Update(sp.Config.SiteColl, map[string]interface{}{"_id": mgo.StringTOBsonId(id)}, map[string]interface{}{"$set": update}, true, false)
 	}
 	s.ServeJson(map[string]interface{}{"ok": b})
 }
@@ -172,7 +172,7 @@ func (s *Site) ImportFile() {
 					msg = "站点名称为空"
 					break
 				}
-				data, _ := util.MgoE.FindOne(sp.Config.SiteColl, `{"site":"`+site+`"}`)
+				data, _ := util.MgoEB.FindOne(sp.Config.SiteColl, `{"site":"`+site+`"}`)
 				if len(*data) > 0 {
 					msg = site + ":站点已存在"
 					break
@@ -213,7 +213,7 @@ func (s *Site) ImportFile() {
 					"delete":        false,
 					"comeintime":    time.Now().Unix(),
 				}
-				if id := util.MgoE.Save(sp.Config.SiteColl, save); id == "" {
+				if id := util.MgoEB.Save(sp.Config.SiteColl, save); id == "" {
 					msg = "导入失败"
 				}
 			}
@@ -238,7 +238,7 @@ func (s *Site) DeleteSite() {
 		}
 		arr = append(arr, update)
 	}
-	if util.MgoE.UpdateBulk(sp.Config.SiteColl, arr...) {
+	if util.MgoEB.UpdateBulk(sp.Config.SiteColl, arr...) {
 		s.ServeJson(map[string]interface{}{"d": true})
 	} else {
 		s.ServeJson(map[string]interface{}{"d": false})
@@ -269,7 +269,7 @@ func (s *Site) UpdateImportant() {
 	defer qu.Catch()
 	id := s.GetString("id")
 	important, _ := s.GetInteger("val")
-	if util.MgoE.UpdateById("site", id, map[string]interface{}{"$set": map[string]interface{}{"important": important}}) {
+	if util.MgoEB.UpdateById("site", id, map[string]interface{}{"$set": map[string]interface{}{"important": important}}) {
 		s.Write("y")
 		return
 	}

+ 34 - 20
src/front/spider.go

@@ -8,6 +8,7 @@ import (
 	"mongodb"
 	"sort"
 	"spider"
+	"strconv"
 
 	mu "mfw/util"
 	qu "qfw/util"
@@ -147,6 +148,12 @@ func (f *Front) LoadSpider(codeTaskIdReState string) error {
 				f.T["spidertype"] = (*lua)["spidertype"]
 				f.T["spidermovevent"] = (*lua)["spidermovevent"]
 				f.T["spiderhistorymaxpage"] = (*lua)["spiderhistorymaxpage"]
+				events := []string{}
+				for k, _ := range util.Config.Uploadevents {
+					events = append(events, k)
+				}
+				sort.Strings(events)
+				f.T["events"] = events
 				if (*lua)["oldlua"] != nil {
 					return f.Render("oldedit.html", &f.T)
 				}
@@ -349,7 +356,6 @@ func (f *Front) SaveStep() {
 				} else {
 					param["state"] = state
 				}
-
 			} else {
 				param["createuser"] = f.GetSession("loginuser")
 				param["createuserid"] = f.GetSession("userid")
@@ -368,17 +374,25 @@ func (f *Front) SaveStep() {
 			//其他信息
 			param["isflow"] = f.OtherBase.IsFlow
 			param["spidertype"] = f.OtherBase.SpiderType
-			param["spidermovevent"] = f.OtherBase.SpiderMoveEvent
 			param["spiderhistorymaxpage"] = f.OtherBase.SpiderHistoryMaxPage
-			if f.OtherBase.SpiderType == "history" { //爬虫类型是history的放到7000节点,并记录历史节点
+			qu.Debug(f.OtherBase.SpiderMoveEvent)
+			tmpEvent, err := strconv.Atoi(f.OtherBase.SpiderMoveEvent) //f.OtherBase.SpiderMoveEvent此处SpiderMoveEvent已不表示comm、bid、7700,表示增量的节点
+			if f.OtherBase.SpiderType == "history" {                   //爬虫类型是history的放到7000节点,并记录历史节点
 				param["event"] = 7000
-				if event := qu.IntAll((*one)["event"]); event != 7000 {
+				if err == nil {
+					param["historyevent"] = tmpEvent //开发人员切换增量节点
+				} else if event := qu.IntAll((*one)["event"]); event != 7000 { //默认增量节点
 					param["historyevent"] = event
 				}
+			} else if f.OtherBase.SpiderType == "increment" && err == nil { //增量
+				param["event"] = tmpEvent //开发人员切换增量节点
 			}
-			if f.OtherBase.SpiderMoveEvent == "7700" {
-				param["historyevent"] = 7700
+			if tmpEvent == 7700 {
+				param["spidermovevent"] = "7700"
+			} else if movevent, ok := util.Config.Uploadevents[f.OtherBase.SpiderMoveEvent].(string); ok && movevent != "" {
+				param["spidermovevent"] = movevent
 			}
+
 			//三级页复制
 			param["str_recontent"] = f.StepRe3.Expert
 			param["iscopycontent"] = f.StepRe3.Checked
@@ -408,7 +422,7 @@ func (f *Front) SaveStep() {
 }
 
 func LuaSaveLog(code, user string, data *map[string]interface{}, stype int) {
-	saveOne, _ := u.MgoE.FindOne("luasavelog", map[string]interface{}{"state": 0, "code": code})
+	saveOne, _ := u.MgoEB.FindOne("luasavelog", map[string]interface{}{"state": 0, "code": code})
 	if stype == 0 { //保存记录
 		if len(*saveOne) == 0 && len(*data) > 0 { //重新记录
 			delete(*data, "_id")
@@ -419,7 +433,7 @@ func LuaSaveLog(code, user string, data *map[string]interface{}, stype int) {
 				"comeintime": time.Now().Unix(),
 				"luaold":     data,
 			}
-			u.MgoE.Save("luasavelog", save)
+			u.MgoEB.Save("luasavelog", save)
 		}
 	} else if stype == 1 { //对比
 		if len(*saveOne) > 0 {
@@ -449,7 +463,7 @@ func LuaSaveLog(code, user string, data *map[string]interface{}, stype int) {
 				set["luaupdate"] = updateMap
 				set["lusnew"] = data
 			}
-			u.MgoE.UpdateById("luasavelog", (*saveOne)["_id"], map[string]interface{}{"$set": set})
+			u.MgoEB.UpdateById("luasavelog", (*saveOne)["_id"], map[string]interface{}{"$set": set})
 		}
 	}
 }
@@ -641,7 +655,7 @@ func (f *Front) SpiderPass() {
 		"s_code":  code,
 		"i_state": 3,
 	}
-	task, _ := u.MgoE.FindOne("task", query)
+	task, _ := u.MgoEB.FindOne("task", query)
 	descript := "null"
 	remark := "null"
 	remarktmp := []string{}
@@ -775,7 +789,7 @@ func (f *Front) DownSpider(code string) {
 					script = (*one)["luacontent"].(string)
 				}
 			} else {
-				user, _ := u.MgoE.FindById("user", createuserid, nil)
+				user, _ := u.MgoEB.FindById("user", createuserid, nil)
 				name := (*one)["createuser"]
 				email := (*user)["s_email"]
 				upload := time.Now().Format("2006-01-02 15:04:05")
@@ -798,7 +812,7 @@ func (f *Front) DownSpider(code string) {
 		"success": success,
 		"script":  script,
 	}
-	u.MgoE.Save("luadownlogs", downlogs)
+	u.MgoEB.Save("luadownlogs", downlogs)
 }
 
 //下架删除心跳
@@ -1012,7 +1026,7 @@ func (f *Front) Assort() {
 					"i_state": 6,
 				},
 			}
-			u.MgoE.Update("task", query, update, false, true)
+			u.MgoEB.Update("task", query, update, false, true)
 			//删除心跳
 			DelSpiderHeart(code)
 		} else {
@@ -1126,12 +1140,12 @@ func UpStateAndUpSpider(code, id, reason, username string, state int) (bool, err
 					}
 					//新爬虫审核记录表
 					if state == Sp_state_3 {
-						count := u.MgoE.Count("lua_logs_auditor", map[string]interface{}{"code": code, "types": types})
+						count := u.MgoEB.Count("lua_logs_auditor", map[string]interface{}{"code": code, "types": types})
 						if count == 0 { //新爬虫审核记录
-							u.MgoE.Save("lua_logs_auditor_new", obj)
+							u.MgoEB.Save("lua_logs_auditor_new", obj)
 						}
 					}
-					u.MgoE.Save("lua_logs_auditor", obj) //历史维护爬虫审核记录
+					u.MgoEB.Save("lua_logs_auditor", obj) //历史维护爬虫审核记录
 				}
 			}
 		}
@@ -1146,7 +1160,7 @@ func SaveRemark(taskid []string, reason, username string) {
 		reason = "审核通过"
 	}
 	for _, id := range taskid {
-		task, _ := u.MgoE.FindById("task", id, nil)
+		task, _ := u.MgoEB.FindById("task", id, nil)
 		if task != nil && len(*task) > 0 {
 			checkData := (*task)["a_check"]
 			var checkArr []map[string]interface{}
@@ -1165,7 +1179,7 @@ func SaveRemark(taskid []string, reason, username string) {
 			}
 			checkArr = append(checkArr, newData)
 			(*task)["a_check"] = checkArr
-			u.MgoE.UpdateById("task", id, map[string]interface{}{"$set": &task})
+			u.MgoEB.UpdateById("task", id, map[string]interface{}{"$set": &task})
 		}
 	}
 }
@@ -1231,7 +1245,7 @@ func UpTaskState(code []string, num int, reason string, startTime int64) {
 				},
 			}
 		}
-		flag := u.MgoE.Update("task", query, update, false, true)
+		flag := u.MgoEB.Update("task", query, update, false, true)
 		log.Println("codeOrId:", query, "	修改任务状态:", flag)
 	}
 }
@@ -1578,7 +1592,7 @@ func checkTask(codes []string, num int) []string {
 					},
 				}
 			}
-			task, _ := u.MgoE.Find("task", query, nil, nil, false, -1, -1)
+			task, _ := u.MgoEB.Find("task", query, nil, nil, false, -1, -1)
 			if task != nil {
 				for _, t := range *task {
 					idArr = append(idArr, mongodb.BsonIdToSId(t["_id"]))

+ 35 - 0
src/front/spider2.go

@@ -0,0 +1,35 @@
+package front
+
+import (
+	qu "qfw/util"
+	"time"
+	"util"
+)
+
+// TagCode 标记爬虫
+func (f *Front) TagCode() {
+	defer qu.Catch()
+	taskId := f.GetString("id")
+	code := f.GetString("code")
+	stype := f.GetString("stype")
+	qu.Debug(taskId, code, stype)
+	//关闭任务
+	update := map[string]interface{}{
+		"$set": map[string]interface{}{
+			"i_state":     6,
+			"l_checktime": time.Now().Unix(),
+		},
+	}
+	util.MgoEB.UpdateById("task", taskId, update)
+	//标记爬虫
+	/*
+		tags:{任务类型:标记时间}
+	*/
+	update = map[string]interface{}{
+		"$set": map[string]interface{}{
+			"tasktags." + stype: time.Now().Unix(),
+		},
+	}
+	util.MgoEB.Update("luaconfig", map[string]interface{}{"code": code}, update, false, false)
+	f.Write("y")
+}

+ 6 - 6
src/quesManager/quesManager.go

@@ -69,8 +69,8 @@ func (q *QuesM) ManagerQues() {
 			orderType = -1
 		}
 		sort = fmt.Sprintf(sort, orderName, orderType)
-		ques, _ := util.MgoE.Find("question", query, sort, nil, false, start, limit)
-		count := util.MgoE.Count("question", query)
+		ques, _ := util.MgoEB.Find("question", query, sort, nil, false, start, limit)
+		count := util.MgoEB.Count("question", query)
 		page := start / 10
 		if ques != nil && len(*ques) > 0 {
 			for k, v := range *ques {
@@ -150,7 +150,7 @@ func (q *QuesM) SaveNewQues() {
 	newQues["s_sugesstion"] = ""          //意见反馈
 
 	//log.Println(title, id, addr, introStage, errFiled, name, descript, endTime)
-	saveid := util.MgoE.Save("question", newQues)
+	saveid := util.MgoEB.Save("question", newQues)
 	state := "err"
 	if saveid != "" {
 		state = "ok"
@@ -183,7 +183,7 @@ func (q *QuesM) SaveFeedbackSug() {
 		},
 	}
 	//	log.Println(_id, s_sugesstion, state, query, update)
-	b := util.MgoE.Update("question", query, update, false, false)
+	b := util.MgoEB.Update("question", query, update, false, false)
 	log.Println("Save:	", _id, "	反馈意见", b)
 	returnState := "false"
 	if b {
@@ -205,7 +205,7 @@ func (q *QuesM) CloseQues() {
 			"i_state": 4,
 		},
 	}
-	b := util.MgoE.Update("question", query, update, false, false)
+	b := util.MgoEB.Update("question", query, update, false, false)
 	log.Println("Close :", _id, "	", b)
 	state := "false"
 	if b {
@@ -298,7 +298,7 @@ func arrangeData(title, id, addr, errField, descript, introStage, feedbackPerson
 	fileQues["i_time"] = time.Now().Unix()        //录入时间
 	fileQues["i_state"] = 0                       //问题状态(新建默认为未处理)
 	fileQues["s_sugesstion"] = ""                 //意见反馈
-	util.MgoE.Save("question", fileQues)
+	util.MgoEB.Save("question", fileQues)
 	return ""
 
 }

+ 1 - 1
src/task/flush.go

@@ -40,7 +40,7 @@ func FlushAuthor() {
 	for _, v := range *rets {
 		next, ok := v["next"].(string)
 		if ok {
-			one, _ := u.MgoE.FindOne("user", map[string]interface{}{"s_email": next})
+			one, _ := u.MgoEB.FindOne("user", map[string]interface{}{"s_email": next})
 			if len(*one) > 0 {
 				update := map[string]interface{}{
 					"$set": map[string]interface{}{

+ 32 - 32
src/taskManager/taskManager.go

@@ -81,7 +81,7 @@ func (t *TaskM) Taskfile() {
 								"$in": []int{0, 1, 2, 3, 5},
 							},
 						}
-						task, _ := u.MgoE.FindOne("task", query)
+						task, _ := u.MgoEB.FindOne("task", query)
 						if len(*task) > 0 { //任务已存在
 							errorinfo[cells[0].Value] = "第" + fmt.Sprint(k+1) + "行爬虫任务已存在"
 							continue
@@ -143,7 +143,7 @@ func (t *TaskM) Taskfile() {
 							o["l_complete"] = completeTime
 							o["i_pendstate"] = 0
 							o["l_checktime"] = time.Now().Unix()
-							u.MgoE.Save("task", o)
+							u.MgoEB.Save("task", o)
 							//清空map
 							o = map[string]interface{}{}
 						} else {
@@ -209,8 +209,8 @@ func (t *TaskM) ManagerTask() {
 				sort = `{` + sortb + `,"l_complete":1}`
 			}
 			qu.Debug("query:", query, sort)
-			task, _ := u.MgoE.Find("task", query, sort, nil, false, start, limit)
-			count := u.MgoE.Count("task", query)
+			task, _ := u.MgoEB.Find("task", query, sort, nil, false, start, limit)
+			count := u.MgoEB.Count("task", query)
 			page := start / 10
 			if len(*task) > 0 {
 				for k, v := range *task {
@@ -315,8 +315,8 @@ func (t *TaskM) Mytask() {
 		// sortb := strings.Replace(sorta, "}", "", -1)
 		// sortNew := `{"l_complete": 1,` + sortb + `}`
 		qu.Debug(query, sort)
-		task, _ := u.MgoE.Find("task", query, sort, nil, false, start, limit)
-		count := u.MgoE.Count("task", query)
+		task, _ := u.MgoEB.Find("task", query, sort, nil, false, start, limit)
+		count := u.MgoEB.Count("task", query)
 		if task != nil && len(*task) > 0 {
 			for _, v := range *task {
 				code := fmt.Sprint(v["s_code"])
@@ -375,7 +375,7 @@ func (t *TaskM) Mytask() {
 		if SessionFailuer {
 			query["s_modifyid"] = userid
 			query["i_state"] = 5
-			task, _ := u.MgoE.Find("task", query, nil, nil, false, -1, -1)
+			task, _ := u.MgoEB.Find("task", query, nil, nil, false, -1, -1)
 			failedtasknum = len(*task)
 			SessionFailuer = false
 		}
@@ -407,7 +407,7 @@ func (t *TaskM) CheckCode() {
 				"$in": []int{0, 1, 2, 3, 5},
 			},
 		}
-		task, _ := u.MgoE.FindOne("task", query)
+		task, _ := u.MgoEB.FindOne("task", query)
 		if task != nil && len(*task) > 0 {
 			(*task)["l_complete"] = time.Unix((*task)["l_complete"].(int64), 0).Format("2006-01-02 15:04:05")
 			status = "hasCode"
@@ -445,7 +445,7 @@ func GetModifyUsers() []map[string]interface{} {
 		"i_auth":   1,
 		"i_delete": 0,
 	}
-	user, _ := u.MgoE.Find("user", query, nil, nil, false, -1, -1)
+	user, _ := u.MgoEB.Find("user", query, nil, nil, false, -1, -1)
 	return *user
 }
 
@@ -513,7 +513,7 @@ func (t *TaskM) SaveNewTask() {
 			newTask["l_complete"] = timeDate.Unix()
 		}
 	}
-	taskid := u.MgoE.Save("task", newTask)
+	taskid := u.MgoEB.Save("task", newTask)
 	if taskid != "" {
 		t.ServeJson(map[string]interface{}{
 			"state": "ok",
@@ -532,7 +532,7 @@ func (t *TaskM) EditTask(ids string) error {
 			//"s_code": util.Se.Decode4Hex(code),
 			"_id": mongodb.StringTOBsonId(id),
 		}
-		task, _ := u.MgoE.FindOne("task", query)
+		task, _ := u.MgoEB.FindOne("task", query)
 		if task != nil && len(*task) > 0 {
 			(*task)["l_comeintime"] = time.Unix((*task)["l_comeintime"].(int64), 0).Format("2006-01-02 15:04:05")
 			(*task)["l_complete"] = time.Unix((*task)["l_complete"].(int64), 0).Format("2006-01-02 15:04:05")
@@ -587,7 +587,7 @@ func (t *TaskM) Del() {
 	del := map[string]interface{}{
 		"_id": mongodb.StringTOBsonId(id),
 	}
-	ok := u.MgoE.Del("task", del)
+	ok := u.MgoEB.Del("task", del)
 	if ok {
 		state = "ok"
 	}
@@ -639,7 +639,7 @@ func (t *TaskM) UpdateTask() {
 	queryU := map[string]interface{}{
 		"s_name": modify,
 	}
-	task, _ := u.MgoE.FindOne("user", queryU)
+	task, _ := u.MgoEB.FindOne("user", queryU)
 	queryT := map[string]interface{}{
 		"_id": mongodb.StringTOBsonId(id),
 	}
@@ -652,7 +652,7 @@ func (t *TaskM) UpdateTask() {
 			"s_modifyid": mongodb.BsonIdToSId((*task)["_id"]),
 		},
 	}
-	ok := u.MgoE.Update("task", queryT, update, false, false)
+	ok := u.MgoEB.Update("task", queryT, update, false, false)
 	if ok {
 		state = "ok"
 		t.SetSession("jumpMark", "y")
@@ -673,7 +673,7 @@ func (t *TaskM) UpdateTaskState() {
 	query := map[string]interface{}{
 		"_id": mongodb.StringTOBsonId(id),
 	}
-	task, _ := u.MgoE.FindOne("task", query)
+	task, _ := u.MgoEB.FindOne("task", query)
 	updateOk := false
 	if len(*task) > 0 {
 		state := qu.IntAll((*task)["i_state"])
@@ -683,7 +683,7 @@ func (t *TaskM) UpdateTaskState() {
 					"i_state": 2,
 				},
 			}
-			updateOk = u.MgoE.Update("task", query, update, false, false) //更新任务状态
+			updateOk = u.MgoEB.Update("task", query, update, false, false) //更新任务状态
 			code := qu.ObjToString((*task)["s_code"])
 			//mgdb.Update("luaconfig", map[string]interface{}{"code": code}, map[string]interface{}{"$set": map[string]interface{}{"ismodify": true}}, false, false)
 			u.MgoEB.Update("luaconfig", map[string]interface{}{"code": code}, map[string]interface{}{"$set": map[string]interface{}{"ismodify": true}}, false, false)
@@ -726,7 +726,7 @@ func (t *TaskM) SaveRecord() {
 			"i_state": 3,
 		},
 	}
-	ok := u.MgoE.UpdateById("task", id, set)
+	ok := u.MgoEB.UpdateById("task", id, set)
 	t.ServeJson(map[string]interface{}{
 		"state": ok,
 	})
@@ -793,8 +793,8 @@ func (t *TaskM) Audit() {
 		sorta := strings.Replace(sort, "{", "", -1)
 		sortb := strings.Replace(sorta, "}", "", -1)
 		sortNew := `{"l_complete": 1,` + sortb + `}`
-		task, _ := u.MgoE.Find("task", query, sortNew, nil, false, start, limit)
-		count := u.MgoE.Count("task", query)
+		task, _ := u.MgoEB.Find("task", query, sortNew, nil, false, start, limit)
+		count := u.MgoEB.Count("task", query)
 		if task != nil && len(*task) > 0 {
 			for _, v := range *task {
 				v["encode"] = util.Se.Encode2Hex(fmt.Sprint(v["s_code"]))
@@ -849,7 +849,7 @@ func UpdateOldTask(id, descript, urgency string, complete int64) {
 			"l_comeintime": time.Now().Unix(),
 		},
 	}
-	ok := u.MgoE.Update("task", queryT, update, false, false)
+	ok := u.MgoEB.Update("task", queryT, update, false, false)
 	if ok {
 		log.Println("更新已有任务成功")
 	} else {
@@ -872,7 +872,7 @@ func (t *TaskM) AssignChangeTaskState() {
 				"$in": []int{1, 2, 3, 5},
 			},
 		}
-		task, _ := u.MgoE.FindOne("task", query)
+		task, _ := u.MgoEB.FindOne("task", query)
 		if len(*task) > 0 { //有相关任务不能分发
 			t.ServeJson("e")
 			return
@@ -886,14 +886,14 @@ func (t *TaskM) AssignChangeTaskState() {
 			"l_checktime": time.Now().Unix(),
 		}
 		if reason != "" {
-			tmp, _ := u.MgoE.FindOne("task", query)
+			tmp, _ := u.MgoEB.FindOne("task", query)
 			descript := qu.ObjToString((*tmp)["s_descript"]) + "审核人员追加描述:------------------------------\n" + reason + "\n"
 			set["s_descript"] = descript
 		}
 		update := map[string]interface{}{
 			"$set": set,
 		}
-		flag := u.MgoE.Update("task", query, update, false, false)
+		flag := u.MgoEB.Update("task", query, update, false, false)
 		if flag {
 			t.ServeJson("y")
 			t.SetSession("jumpMark", "y")
@@ -922,7 +922,7 @@ func (t *TaskM) CloseChangeTaskState() {
 				"l_checktime": time.Now().Unix(),
 			},
 		}
-		flag := u.MgoE.Update("task", query, update, false, false)
+		flag := u.MgoEB.Update("task", query, update, false, false)
 		if flag {
 			go updateClose(code) //更新closerate数据
 			t.ServeJson("y")
@@ -951,7 +951,7 @@ func (t *TaskM) BatchAssign() {
 					"$in": []int{1, 2, 3, 5},
 				},
 			}
-			task, _ := u.MgoE.FindOne("task", query)
+			task, _ := u.MgoEB.FindOne("task", query)
 			//log.Println("task", task)
 			if len(*task) > 0 { //任务已经存在
 				existCode = append(existCode, code)
@@ -966,7 +966,7 @@ func (t *TaskM) BatchAssign() {
 						"l_checktime": time.Now().Unix(),
 					},
 				}
-				flag := u.MgoE.Update("task", query, update, false, false)
+				flag := u.MgoEB.Update("task", query, update, false, false)
 				log.Println("任务id:", id, "	更新:", flag)
 			}
 		}
@@ -994,7 +994,7 @@ func (t *TaskM) BatchClose() {
 					"l_checktime": time.Now().Unix(),
 				},
 			}
-			flag := u.MgoE.Update("task", query, update, false, false)
+			flag := u.MgoEB.Update("task", query, update, false, false)
 			log.Println("任务id:", id, "	关闭:", flag)
 			if !flag {
 				falseCode = append(falseCode, codes[k])
@@ -1023,7 +1023,7 @@ func (t *TaskM) BatchDeal() {
 			query := map[string]interface{}{
 				"_id": mongodb.StringTOBsonId(id),
 			}
-			flag := u.MgoE.Update("task", query, update, false, false)
+			flag := u.MgoEB.Update("task", query, update, false, false)
 			log.Println("任务id:", id, "	更新为处理中:", flag)
 		}
 		t.ServeJson("处理成功")
@@ -1048,7 +1048,7 @@ func updateClose(code string) {
 	query := map[string]interface{}{
 		"s_code": code,
 	}
-	data, _ := u.MgoE.FindOne("closerate", query)
+	data, _ := u.MgoEB.FindOne("closerate", query)
 	if data != nil && len(*data) > 0 {
 		arr := qu.ObjArrToStringArr((*data)["timeClose"].([]interface{}))
 		last := arr[len(arr)-1] //更新最后一天的数据
@@ -1062,7 +1062,7 @@ func updateClose(code string) {
 				"timeClose": arr,
 			},
 		}
-		flag := u.MgoE.Update("closerate", query, update, false, false)
+		flag := u.MgoEB.Update("closerate", query, update, false, false)
 		fmt.Println("closerate关闭任务:code	", flag)
 	}
 }
@@ -1151,8 +1151,8 @@ func (t *TaskM) CreateRelateTask() {
 	defer qu.Catch()
 	taskid := t.GetString("id")
 	relatecode := t.GetString("relatecode")
-	task, _ := u.MgoE.FindById("task", taskid, nil)
+	task, _ := u.MgoEB.FindById("task", taskid, nil)
 	(*task)["s_code"] = relatecode
-	id := u.MgoE.Save("task", task)
+	id := u.MgoEB.Save("task", task)
 	t.ServeJson(map[string]interface{}{"ok": id != ""})
 }

+ 4 - 4
src/timetask/timetask.go

@@ -37,7 +37,7 @@ func CheckLuaMove() {
 		"ok": false,
 	}
 	qu.Debug("query:", query)
-	list, _ := util.MgoE.Find("luamovelog", query, nil, nil, false, -1, -1)
+	list, _ := util.MgoEB.Find("luamovelog", query, nil, nil, false, -1, -1)
 	text := ""
 	if len(*list) > 0 {
 		for _, l := range *list {
@@ -69,7 +69,7 @@ func CheckCreateTask() {
 		},
 	}
 	codes := []string{}
-	list, _ := util.MgoE.Find("luacreatetaskerr", query, nil, nil, false, -1, -1)
+	list, _ := util.MgoEB.Find("luacreatetaskerr", query, nil, nil, false, -1, -1)
 	if len(*list) > 0 {
 		for _, l := range *list {
 			code := qu.ObjToString(l["code"])
@@ -101,7 +101,7 @@ func GetTime(day int) int64 {
 func UpdateSiteInfo() {
 	defer qu.Catch()
 	qu.Debug("定时更新站点信息开始...")
-	sites, _ := util.MgoE.Find(sp.Config.SiteColl, ``, ``, `{"site":1}`, false, -1, -1)
+	sites, _ := util.MgoEB.Find(sp.Config.SiteColl, ``, ``, `{"site":1}`, false, -1, -1)
 	for _, s := range *sites {
 		site := qu.ObjToString(s["site"])
 		domain, status, event, platform, area, city, district, _ := util.GetLuasInfoBySite(site)
@@ -117,7 +117,7 @@ func UpdateSiteInfo() {
 				"updatetime":    time.Now().Unix(),
 			},
 		}
-		util.MgoE.UpdateById(sp.Config.SiteColl, s["_id"], set)
+		util.MgoEB.UpdateById(sp.Config.SiteColl, s["_id"], set)
 	}
 	qu.Debug("定时更新站点信息完成...")
 

+ 7 - 7
src/util/util.go

@@ -14,7 +14,7 @@ import (
 )
 
 var (
-	MgoE            *mgo.MongodbSim //编辑器87
+	//MgoE            *mgo.MongodbSim //编辑器87
 	MgoEB           *mgo.MongodbSim //编辑器163
 	MgoS            *mgo.MongodbSim
 	Province        map[string][]string
@@ -85,12 +85,12 @@ var (
 
 func InitMgo() {
 	defer qu.Catch()
-	MgoE = &mgo.MongodbSim{
-		MongodbAddr: sp.Config.Dbaddr,
-		DbName:      sp.Config.Dbname,
-		Size:        10,
-	}
-	MgoE.InitPool()
+	//MgoE = &mgo.MongodbSim{
+	//	MongodbAddr: sp.Config.Dbaddr,
+	//	DbName:      sp.Config.Dbname,
+	//	Size:        10,
+	//}
+	//MgoE.InitPool()
 	MgoEB = &mgo.MongodbSim{
 		MongodbAddr: sp.Config.BidEditor.Addr,
 		DbName:      sp.Config.BidEditor.Db,

+ 8 - 5
src/vps/aliecs.go

@@ -56,10 +56,13 @@ func RunInstances(name, image, stype string, public bool, num, hours int, ok *bo
 func runInstances(zoneMap ZoneMap, name, widthOut, stype, imageId string, pernum, hours int) bool {
 	log.Println("apply ecs:", zoneMap, name, imageId, widthOut, stype, pernum, hours)
 	applyOk := false
-	launchTemplateId := zoneMap.LaunchTemplateId4
-	if stype == "8" {
+	launchTemplateId := zoneMap.LaunchTemplateId2
+	if stype == "4" {
+		launchTemplateId = zoneMap.LaunchTemplateId4
+	} else if stype == "8" {
 		launchTemplateId = zoneMap.LaunchTemplateId8
 	}
+	qu.Debug(launchTemplateId)
 	if hours == 0 { //表示无期限
 		hours = 24 * 365 * 3 //阿里竞价服务器最长申请3年
 	}
@@ -91,7 +94,7 @@ func runInstances(zoneMap ZoneMap, name, widthOut, stype, imageId string, pernum
 			applyOk = true
 			//实例id持久化
 			for _, v := range t {
-				util.MgoE.Save("ecs", map[string]interface{}{
+				util.MgoEB.Save("ecs", map[string]interface{}{
 					"InstanceId": v,
 					"TaskName":   name,
 					"UseFor":     "lua",
@@ -134,7 +137,7 @@ func DescribeInstances(ok *bool) {
 				}
 				if strings.Contains(qu.ObjToString(tmp["InstanceName"]), "lua") {
 					//更新实例信息
-					util.MgoE.Update("ecs", `{"InstanceId":"`+qu.ObjToString(tmp["InstanceId"])+`"}`, map[string]interface{}{"$set": tmp}, true, false)
+					util.MgoEB.Update("ecs", `{"InstanceId":"`+qu.ObjToString(tmp["InstanceId"])+`"}`, map[string]interface{}{"$set": tmp}, true, false)
 				}
 			}
 		}
@@ -146,7 +149,7 @@ func StopInstance(InstanceId string) {
 	res := GET("StopInstance", [][]string{
 		[]string{"InstanceId", InstanceId},
 	})
-	util.MgoE.Update("ecs", `{"InstanceId":"`+InstanceId+`"}`, map[string]interface{}{"$set": map[string]interface{}{"Status": "Released"}}, true, false)
+	util.MgoEB.Update("ecs", `{"InstanceId":"`+InstanceId+`"}`, map[string]interface{}{"$set": map[string]interface{}{"Status": "Released"}}, true, false)
 	log.Println("StopInstance", res)
 }
 

+ 1 - 0
src/vps/config.go

@@ -9,6 +9,7 @@ type vpsconfig struct {
 
 type ZoneMap struct {
 	ZoneId            string `json:"zoneid"`
+	LaunchTemplateId2 string `json:"launchtemplateid2"`
 	LaunchTemplateId4 string `json:"launchtemplateid4"`
 	LaunchTemplateId8 string `json:"launchtemplateid8"`
 	VswitchId         string `json:"vswitchid"`

+ 11 - 11
src/vps/vps.go

@@ -33,9 +33,9 @@ func (vps *Vps) VpsList() {
 			// 	"$exists": false,
 			// },
 		}
-		count := util.MgoE.Count("ecs", query)
+		count := util.MgoEB.Count("ecs", query)
 		qu.Debug("query:", query, count)
-		list, _ := util.MgoE.Find("ecs", query, nil, nil, false, start, limit)
+		list, _ := util.MgoEB.Find("ecs", query, nil, nil, false, start, limit)
 		for _, l := range *list {
 			autoReleaseTime := qu.ObjToString(l["AutoReleaseTime"])
 			parseTime, _ := time.Parse("2006-01-02T15:04Z", autoReleaseTime)
@@ -85,7 +85,7 @@ func (vps *Vps) Delay() {
 		}
 	} else { //延时所有实例
 		qu.Debug("所有实例延时:", delaytime)
-		list, _ := util.MgoE.Find("ecs", map[string]interface{}{"Status": "Running"}, nil, map[string]interface{}{"InstanceId": 1}, false, -1, -1)
+		list, _ := util.MgoEB.Find("ecs", map[string]interface{}{"Status": "Running"}, nil, map[string]interface{}{"InstanceId": 1}, false, -1, -1)
 		for _, l := range *list {
 			ok := false
 			instanceId := qu.ObjToString(l["InstanceId"])
@@ -111,7 +111,7 @@ func (vps *Vps) Release() {
 	}
 	if ok {
 		autoReleaseTime := time.Now().UTC().Format("2006-01-02T15:04Z")
-		util.MgoE.Update("ecs", `{"InstanceId":"`+instanceId+`"}`, map[string]interface{}{"$set": map[string]interface{}{"Status": "Deleted", "AutoReleaseTime": autoReleaseTime, "releaseTime": time.Now().Unix()}}, false, false)
+		util.MgoEB.Update("ecs", `{"InstanceId":"`+instanceId+`"}`, map[string]interface{}{"$set": map[string]interface{}{"Status": "Deleted", "AutoReleaseTime": autoReleaseTime, "releaseTime": time.Now().Unix()}}, false, false)
 	}
 	vps.ServeJson(map[string]interface{}{"ok": ok})
 }
@@ -141,7 +141,7 @@ func (vps *Vps) Deploy() {
 	qu.Debug(sshStr)
 	ok := RunSsh(ip, Password, sshStr, 22)
 	if ok {
-		util.MgoE.Update("ecs", map[string]interface{}{"InstanceId": instanceId}, map[string]interface{}{
+		util.MgoEB.Update("ecs", map[string]interface{}{"InstanceId": instanceId}, map[string]interface{}{
 			"$set":      map[string]interface{}{"EcsState": "deploy"},
 			"$addToSet": map[string]interface{}{"EcsStype": map[string]interface{}{"$each": stypeArr}},
 		}, false, false)
@@ -164,7 +164,7 @@ func (vps *Vps) AllDeploy() {
 	qu.Debug(sshStr)
 	allOk := true
 	failedAll := []string{}
-	list, _ := util.MgoE.Find("ecs", map[string]interface{}{"Status": "Running"}, nil, map[string]interface{}{"ip_ww": 1, "InstanceId": 1}, false, -1, -1)
+	list, _ := util.MgoEB.Find("ecs", map[string]interface{}{"Status": "Running"}, nil, map[string]interface{}{"ip_ww": 1, "InstanceId": 1}, false, -1, -1)
 	for _, l := range *list {
 		ip := qu.ObjToString(l["ip_ww"])
 		instanceId := qu.ObjToString(l["InstanceId"])
@@ -173,7 +173,7 @@ func (vps *Vps) AllDeploy() {
 			failedAll = append(failedAll, instanceId)
 			allOk = false
 		} else {
-			util.MgoE.Update("ecs", map[string]interface{}{"InstanceId": instanceId}, map[string]interface{}{
+			util.MgoEB.Update("ecs", map[string]interface{}{"InstanceId": instanceId}, map[string]interface{}{
 				"$set":      map[string]interface{}{"EcsState": "deploy"},
 				"$addToSet": map[string]interface{}{"EcsStype": map[string]interface{}{"$each": []string{"data", "file", "special"}}},
 			}, false, false)
@@ -189,7 +189,7 @@ func (vps *Vps) AllRelease() {
 	qu.Debug("释放所有实例...")
 	allOk := true
 	failedAll := []string{}
-	list, _ := util.MgoE.Find("ecs", map[string]interface{}{"Status": "Running"}, nil, map[string]interface{}{"InstanceId": 1}, false, -1, -1)
+	list, _ := util.MgoEB.Find("ecs", map[string]interface{}{"Status": "Running"}, nil, map[string]interface{}{"InstanceId": 1}, false, -1, -1)
 	for _, l := range *list {
 		ok := false
 		instanceId := qu.ObjToString(l["InstanceId"])
@@ -199,7 +199,7 @@ func (vps *Vps) AllRelease() {
 			allOk = false
 		} else {
 			autoReleaseTime := time.Now().UTC().Format("2006-01-02T15:04Z")
-			util.MgoE.Update("ecs", `{"InstanceId":"`+instanceId+`"}`, map[string]interface{}{"$set": map[string]interface{}{"Status": "Deleted", "AutoReleaseTime": autoReleaseTime, "releaseTime": time.Now().Unix()}}, false, false)
+			util.MgoEB.Update("ecs", `{"InstanceId":"`+instanceId+`"}`, map[string]interface{}{"$set": map[string]interface{}{"Status": "Deleted", "AutoReleaseTime": autoReleaseTime, "releaseTime": time.Now().Unix()}}, false, false)
 		}
 	}
 	msg := "释放失败实例:" + strings.Join(failedAll, ",")
@@ -213,9 +213,9 @@ func (vps *Vps) Delete() {
 	qu.Debug("删除实例信息:", instanceId)
 	ok := false
 	if instanceId != "" {
-		ok = util.MgoE.Del("ecs", map[string]interface{}{"InstanceId": instanceId})
+		ok = util.MgoEB.Del("ecs", map[string]interface{}{"InstanceId": instanceId})
 	} else {
-		ok = util.MgoE.Del("ecs", map[string]interface{}{"Status": "Deleted"})
+		ok = util.MgoEB.Del("ecs", map[string]interface{}{"Status": "Deleted"})
 	}
 	vps.ServeJson(map[string]interface{}{"ok": ok})
 }

+ 1 - 0
src/vpsconfig.json

@@ -5,6 +5,7 @@
   "zoneids": [
     {
       "zoneid": "cn-beijing-h",
+      "launchtemplateid2": "lt-2zebxi1ablpl9e277bsd",
       "launchtemplateid4": "lt-2ze5ir54gy4ui8okr71f",
       "launchtemplateid8": "lt-2ze5fzxwgt8jcqczvmjy",
       "vswitchid": "vsw-2ze1n1k3mo3fv2irsfdps"

+ 27 - 27
src/web/templates/index.html

@@ -170,15 +170,15 @@
           				<th>栏目名称</th>
           				<th>爬虫代码</th>
                   		<th>紧急度</th>
-						{{if eq (session "platform") "python"}}
-						<th>难易度</th>
-						{{end}}
           				<th>节点</th>
           				<th>作者</th>
           				<th>最后修改时间</th>
           				<th>状态</th>
 						<th>平台</th>
 						<th>挂起</th>
+						{{if eq (session "platform") "python"}}
+						<th>难易度</th>
+						{{end}}
                   		<th class="hidden-xs">操作</th>
                 </tr>
                 </thead>
@@ -197,7 +197,7 @@ $(function(){
               "url": "/js/dataTables.chinese.lang"
           },
 		"columnDefs": [
-			{ "orderable": false, "targets": [0,10,12] },
+			{ "orderable": false, "targets": [0,10,12{{if eq (session "platform") "python"}},13{{end}}] },
 			//更新紧急度
 			{"targets":[5], createdCell: function (cell, cellData, rowData, rowIndex, colIndex) {
 					{{if gt (session "auth") 2}}
@@ -375,18 +375,6 @@ $(function(){
 				  return "普通"
 				}
 			}},
-			{{if eq (session "platform") "python"}}
-			{ "data": "grade",render:function(val){
-				console.log(val)
-				if(val == undefined||val == 0){
-					return "普通"
-				}else if (val == 1){
-					return "较难"
-				}else if (val == 2){
-					return "很难"
-				}
-			}},
-			{{end}}
 			{ "data": "event","width":"50px"},
 			{ "data": "createuser"},
 			{ "data": "modifytime"},
@@ -427,6 +415,18 @@ $(function(){
 					return "是"
 				}
 			}},
+			{{if eq (session "platform") "python"}}
+			{ "data": "grade",render:function(val){
+				console.log(val)
+				if(val == undefined||val == 0){
+					return "普通"
+				}else if (val == 1){
+					return "较难"
+				}else if (val == 2){
+					return "很难"
+				}
+			}},
+			{{end}}
 			{ "data": "param_common","width":"95px",render:function(val,a,row){
 				var div=$("<div><div class=\"btn-group\"></div></div>")
 				var currentuser="{{session "username"}}";
@@ -877,18 +877,18 @@ $(function(){
     	return "<select onchange='updateesp(this.value,\"event\",\""+state+"\",\""+code+"\",\""+id+"\")' class='form-control input-sm'>"+spiderEvent+"</select>"
     };
     function createComboxState(id){
-    return "<select id='task_state'  onchange='updateesp(this.value,\"state\",\"\",\"\",\""+id+"\")' class='form-control input-sm'>"+
+    	return "<select id='task_state'  onchange='updateesp(this.value,\"state\",\"\",\"\",\""+id+"\")' class='form-control input-sm'>"+
             "<option value='0' class='text-info text-bold'>待完成</option>"+
-      		  "<option disabled value='1'>待审核</option>"+
-      			"<option disabled value='2'>未通过</option>"+
-      			"<option disabled value='3'>已通过</option>"+
-      		  "<option disabled value='4'>已作废</option>"+
-      			"<option disabled value='5'>已上架</option>"+
-      			"<option disabled value='6'>已下架</option>"+
-      		  "<option disabled value='7'>无发布</option>"+
-      			"<option disabled value='8'>需登录</option>"+
-      			"<option disabled value='9'>转python</option>"+
-      			"<option disabled value='10'>已删除</option>"+
+      		"<option disabled value='1'>待审核</option>"+
+      		"<option disabled value='2'>未通过</option>"+
+      		"<option disabled value='3'>已通过</option>"+
+      		"<option disabled value='4'>已作废</option>"+
+      		"<option disabled value='5'>已上架</option>"+
+      		"<option disabled value='6'>已下架</option>"+
+      		"<option disabled value='7'>无发布</option>"+
+      		"<option disabled value='8'>需登录</option>"+
+      		"<option disabled value='9'>转python</option>"+
+      		"<option disabled value='10'>已删除</option>"+
             "<option disabled value='10'>已上线</option>"+
           +"</select>"
   };

+ 66 - 47
src/web/templates/spiderbase.html

@@ -86,7 +86,7 @@
 						/>
 					</div>
 				</div>
-        <div class="form-group" id="historymaxpage">
+        		<div class="form-group" id="historymaxpage">
 					<label for="spiderHistoryMaxPage" class="col-sm-5 control-label">
 						&nbsp&nbsp&nbsp历史最大页 
 					</label>
@@ -152,59 +152,78 @@
 <!--							</script>-->
 <!--						</div>-->
 <!--					</div>-->
+					<div class="form-group">
+						<label for="spidertype" class="col-sm-4 control-label ">
+							爬虫类型
+						</label>
+						<div class="col-sm-7">
+							<select name="OtherBase.SpiderType" id="spiderType" class="form-control" onchange="spiderTypeChange()">
+								<option value="increment">
+									增量
+								</option>
+								<option value="history">
+									历史
+								</option>
+							</select>
+							<script>
+								if ({{.T.spidertype}} == "increment") {
+									$("#spiderType").get(0).selectedIndex = 0;
+									$("#historymaxpage").addClass("hide");
+									// $("#movevent").addClass("hide");
+								} else {
+									$("#spiderType").get(0).selectedIndex = 1;
+									$("#historymaxpage").removeClass("hide");
+									// $("#movevent").removeClass("hide");
+								}
+
+							</script>
+						</div>
+					</div>
 					<div class="form-group" id="spiderevent">
 						<label for="spiderevent" class="col-sm-4 control-label ">
 							增量节点
 						</label>
 						<div class="col-sm-7">
 							<select name="OtherBase.SpiderMoveEvent" id="spidermovevent" class="form-control">
-								<option value="bid" disabled style="color:#DADADA">
-									高性能模式
-								</option>
-								<option value="comm" disabled style="color:#DADADA">
-									低性能模式
-								</option>
-								<option value="7700">
-									7700
-								</option>
+<!--								<option value="bid" disabled style="color:#DADADA">-->
+<!--									高性能模式-->
+<!--								</option>-->
+<!--								<option value="comm" disabled style="color:#DADADA">-->
+<!--									低性能模式-->
+<!--								</option>-->
+<!--								<option value="7700">-->
+<!--									7700-->
+<!--								</option>-->
 							</select>
 							<script>
-								if ({{.T.spidermovevent}} == "bid") {
-									$("#spidermovevent").get(0).selectedIndex = 0;
-								} else if({{.T.spidermovevent}} == "comm"){
-									$("#spidermovevent").get(0).selectedIndex = 1;
-								}else{
-									$("#spidermovevent").get(0).selectedIndex = 2;
+								// if ({{.T.spidermovevent}} == "bid") {
+								// 	$("#spidermovevent").get(0).selectedIndex = 0;
+								// } else if({{.T.spidermovevent}} == "comm"){
+								// 	$("#spidermovevent").get(0).selectedIndex = 1;
+								// }else{
+								// 	$("#spidermovevent").get(0).selectedIndex = 2;
+								// }
+								var startext = "<option";
+								var events = {{.T.events}};
+								console.log({{.T.spidertype}})
+								for(k in events){
+									var event = events[k];
+									var endtext = " value="+event+">"+event+"</option>";
+									var midtext = "";
+									if(event == 7000){
+										midtext = midtext +" disabled style='color:#DADADA'";
+									}
+									if ({{.T.spidertype}} == "increment" && event == {{.T.lua.event}}) {//增量爬虫展示event
+										midtext = midtext + " selected";
+									} else if({{.T.spidertype}} == "history" && event == {{.T.lua.historyevent}}){//历史展示historyevent
+										midtext = midtext + " selected";
+									}
+									var resultext = startext+midtext+endtext
+									$("#spidermovevent").append(resultext)
 								}
 							</script>
 						</div>
 					</div>
-				<div class="form-group">
-					<label for="spidertype" class="col-sm-4 control-label ">
-						爬虫类型
-					</label>
-					<div class="col-sm-7">
-						<select name="OtherBase.SpiderType" id="spiderType" class="form-control" onchange="spiderTypeChange()">
-							<option value="increment">
-								增量
-							</option>
-							<option value="history">
-								历史
-							</option>
-						</select>
-						<script>
-              			if ({{.T.spidertype}} == "increment") {
-							$("#spiderType").get(0).selectedIndex = 0;
-                  			$("#historymaxpage").addClass("hide");
-                 			$("#movevent").addClass("hide");
-						} else {
-							$("#spiderType").get(0).selectedIndex = 1;
-                  			$("#historymaxpage").removeClass("hide");
-                  			$("#movevent").removeClass("hide");
-						}
-						</script>
-					</div>
-				</div>
         <div class="form-group">
 					<label for="spider2Collection" class="col-sm-4 control-label ">
 						存入表名
@@ -369,12 +388,12 @@
 <script>
   function spiderTypeChange(){
     var val = $("#spiderType").val();
-    if (val == "increment") {
+    if (val == "increment") {//选择增量模式
       $("#historymaxpage").addClass("hide");
-      $("#movevent").addClass("hide");
-		} else {
+      	// $("#movevent").addClass("hide");
+	} else {//选择历史模式
       $("#historymaxpage").removeClass("hide");
-      $("#movevent").removeClass("hide");
-		}
+      // $("#movevent").removeClass("hide");
+	}
   }
 </script>

+ 30 - 7
src/web/templates/task.html

@@ -219,29 +219,32 @@
 				}},
 				{"data": "s_source"},
 				{"data": "l_complete","width":"8%",render:function(val,a,row){
-							return val;
-						}},
-				{ "data": "i_pendstate",render:function(val){
+					return val;
+				}},
+				{"data": "i_pendstate",render:function(val){
 					if(val == 0||val == undefined){
 						return "否"
 					}else{
 						return "是"
 					}
 				}},
-				{"data": "_id","width":"91px",render:function(val,a,row){
+				{"data": "_id","width":"13%",render:function(val,a,row){
 					var div=$("<div><div class=\"btn-group\"></div></div>")
-					var buttonWatch=$('<a type="button" target="_blank" class="btn btn-sm btn-default">编辑</a>');
-					var buttonClose=$('<a type="button" class="btn btn-sm btn-default">关闭</a>');
+					var buttonWatch=$('<a type="button" target="_blank" class="btn btn-sm btn-success">编辑</a>');
+					var buttonClose=$('<a type="button" class="btn btn-sm btn-danger">关闭</a>');
+					var buttonTag=$('<a type="button" class="btn btn-sm btn-primary">标记</a>');
 					//var buttonDel=$('<a type="button" class="btn btn-sm btn-default">删除</a>');
 					buttonWatch.attr("href","/center/task/edit/"+row['_id']+"__0");
 					buttonClose.attr("onclick","closeTask('"+row['s_code']+"','"+row['i_state']+"','"+row['_id']+"')");
+					buttonTag.attr("onclick","tagTask('"+row['s_code']+"','"+row['i_state']+"','"+row['_id']+"','"+row['s_type']+"')");
 					div.find(".btn-group").append(buttonWatch);
 				    div.find(".btn-group").append(buttonClose);
 					if(row['i_state'] == "待确认"){
-						var buttonAssign=$('<a type="button" class="btn btn-sm btn-default">分发</a>');
+						var buttonAssign=$('<a type="button" class="btn btn-sm btn-warning">分发</a>');
 						buttonAssign.attr("onclick","assignTask('"+row['s_code']+"','"+row['i_state']+"','"+row['_id']+"')");
 						div.find(".btn-group").append(buttonAssign);
 				 	}
+					div.find(".btn-group").append(buttonTag);
 					return div.html();
 				}}
 			],
@@ -505,6 +508,26 @@
 		})
 	}
 
+	//标记任务
+	function tagTask(code,state,id,stype){
+	  if(state != "待确认" && state != "待处理" && state != "处理中"){
+		  alert("该任务不能被标记!")
+		  return
+	  }
+	  showConfirm("确定标记任务?",function(){
+		  $.post("/center/spider/tagcode",{"id":id,"code":code,"stype":stype},function(r){
+			  if(r == "y"){
+				  showTip("标记成功", 1000);
+				  $('#com-alert').on('hidden.bs.modal', function () {
+					  ttabletask.ajax.reload();
+				  })
+			  }else{
+				  showTip("标记失败", 1000);
+			  }
+		  })
+	  })
+	}
+
 	//批量分发
 	function batchAssign(){
 		var codes=[];

+ 5 - 3
src/web/templates/vps/vpslist.html

@@ -50,6 +50,7 @@
 								<label for="vpstype" class="col-sm-2 control-label">机器型号:</label>
 								<div class="col-sm-10">
 									<select class="form-control" id="vpstype">
+										<option value="2">2核</option>
 										<option value="4">4核</option>
 										<option value="8">8核</option>
 									</select>
@@ -259,7 +260,7 @@
 						}
 						return val;
 					}},
-					{"data": "InstanceId"},
+					{"data": "InstanceId",width:"16%"},
 					{"data": "_id",render:function(val,a,row){
 						if(val == undefined){
 							val = ""
@@ -268,7 +269,7 @@
 						}
 						return val;
 					}},
-					{"data": "AutoReleaseTime",width:"75px",render:function(val,a,row){
+					{"data": "AutoReleaseTime",render:function(val,a,row){
 						if(val == undefined){
 							val = ""
 						}else{
@@ -288,7 +289,7 @@
 						}
 						return val;
 					}},//未部署、已部署、已停止
-					{"data": "_id",render:function(val,a,row){
+					{"data": "_id",width:"15%",render:function(val,a,row){
 						let classHtmlMap = {'data':'<a class="btn btn-sm btn-warning"','special':'<a class="btn btn-sm btn-warning"','file':'<a class="btn btn-sm btn-warning"'};
 						for (var i in row.EcsStype){
 							let stype = row.EcsStype[i]
@@ -347,6 +348,7 @@
 			let vpsimage = $("#vpsimage").val();
 			let vpsnum = $("#vpsnum").val();
 			let vpsduration = $("#vpsduration").val();
+			console.log(vpsname,vpsimage,vpsnum,vpsduration)
 			if (vpsname == ""||vpsnum == ""||vpsduration == ""){
 				alert("请填写完整的信息!")
 				return