Browse Source

关联爬虫相关操作修改

maxiaoshan 2 years ago
parent
commit
3825305514

+ 2 - 2
src/config.json

@@ -10,11 +10,11 @@
     "redisservers": "title_repeat_judgement=192.168.3.18:2379",
     "msgservers": {
         "comm": {
-            "addr": "spdata.jianyu360.com:801",
+            "addr": "spdata.jianyu360.com:805",
             "name": "编辑器_队列节点"
         },
         "bid": {
-            "addr": "spdata.jianyu360.com:803",
+            "addr": "spdata.jianyu360.com:805",
             "name": "编辑器_并发节点"
         },
         "test": {

+ 2 - 0
src/front/front.go

@@ -982,7 +982,9 @@ func (f *Front) SpiderCopy() {
 				f.ServeJson(map[string]interface{}{"success": false, "text": "已存在补漏爬虫"})
 				return
 			}
+			u.MgoE.Update("luaconfig", map[string]interface{}{"code": codeOld}, map[string]interface{}{"$set": map[string]interface{}{"relatecode": codeNew}}, false, false)
 			lua["code"] = codeNew
+			lua["relatecode"] = codeOld
 			if param_common := lua["param_common"].([]interface{}); len(param_common) < 13 {
 				f.ServeJson(map[string]interface{}{"success": false, "text": "脚本异常,请联系管理员"})
 				return

+ 20 - 1
src/taskManager/taskManager.go

@@ -40,6 +40,8 @@ type TaskM struct {
 	batchDeal             xweb.Mapper `xweb:"/center/task/batchDeal"`             //批量处理任务
 	getJumpMark           xweb.Mapper `xweb:"/center/task/getJumpMark"`           //跳转标记
 	searchDataInfo        xweb.Mapper `xweb:"/center/task/searchDataInfo"`        //搜索信息详情
+	createRelateTask      xweb.Mapper `xweb:"/center/task/createrelatetask"`      //创建关联任务
+
 	//del                 xweb.Mapper `xweb:"/center/task/del"`                   //删除任务
 	//searchTask      	  xweb.Mapper `xweb:"/center/task/searchTask"`      	  //查询任务
 
@@ -331,7 +333,14 @@ func (t *TaskM) Mytask() {
 		count := mgdb.Count("task", query)
 		if task != nil {
 			for _, v := range task {
-				v["encode"] = util.Se.Encode2Hex(fmt.Sprint(v["s_code"]))
+				code := fmt.Sprint(v["s_code"])
+				relatecode := ""
+				lua, _ := u.MgoE.FindOneByField("luaconfig", map[string]interface{}{"code": code, "state": 5}, map[string]interface{}{"relatecode": 1})
+				if len(*lua) > 0 {
+					relatecode = qu.ObjToString((*lua)["relatecode"])
+				}
+				v["relatecode"] = relatecode
+				v["encode"] = util.Se.Encode2Hex(code)
 				if v["s_urgency"] == "1" {
 					v["s_urgency"] = "普通"
 				} else if v["s_urgency"] == "2" {
@@ -1159,3 +1168,13 @@ func (t *TaskM) SearchDataInfo() {
 		t.ServeJson("无信息")
 	}
 }
+
+func (t *TaskM) CreateRelateTask() {
+	defer qu.Catch()
+	taskid := t.GetString("id")
+	relatecode := t.GetString("relatecode")
+	task, _ := u.MgoE.FindById("task", taskid, nil)
+	(*task)["s_code"] = relatecode
+	id := u.MgoE.Save("task", task)
+	t.ServeJson(map[string]interface{}{"ok": id != ""})
+}

+ 1 - 1
src/web/templates/head.html

@@ -596,7 +596,7 @@
 			<li data="index"><a href="/center"><i class="glyphicon glyphicon-eye-open"></i> <span>爬虫列表</span></a></li>
 			<li data="index_rwlb"><a href="/center/mytask"><i class="glyphicon glyphicon-tasks"></i> <span>任务列表</span></a></li>
 		{{end}}
-		{{if eq (session "paltform") "lua"}}
+		{{if eq (session "paltform") "golua平台"}}
      	<li data="index_heart"><a href="/center/heart"><i class="fa fa-heartbeat"></i> <span>心跳监控</span></a></li>
     	<li data="index_errlua"><a href="/center/errorLua"><i class="fa fa-warning"></i> <span>错误爬虫管理</span></a></li>
     	<li data="index_errdata"><a href="/center/errorData"><i class="glyphicon glyphicon-exclamation-sign"></i> <span>错误信息管理</span></a></li>

+ 61 - 32
src/web/templates/index.html

@@ -187,6 +187,7 @@
 
 <script>
 var first=1;
+var user = {};
 $(function(){
 	ttable=$('#spider').DataTable({
 		"language": {
@@ -332,7 +333,7 @@ $(function(){
 		 },
 		"columns": [
 			{ "data": "_id",render:function(val,a,row){
-				return "<input type='checkbox' scope='"+row.i_scope+"' value='"+val+"' name='"+row.param_common[1]+"_"+row.param_common[2]+"' code='"+row.param_common[0]+"'/>"
+				return "<input type='checkbox' platform='"+row.platform+"' scope='"+row.i_scope+"' value='"+val+"' name='"+row.param_common[1]+"_"+row.param_common[2]+"' code='"+row.param_common[0]+"'/>"
 			}},
       		{ "data": "_id",render:function(val,a,row){
 				return row.num
@@ -611,6 +612,10 @@ $(function(){
 	function comfirm_spidercopy(){
     	var code = $("#spidercopy").val();
 		if(code != ""){
+		  if(code.indexOf("_bu") != -1 ){
+			  alert("该爬虫不可复制!")
+			  return;
+		  }
 		  $.ajax({
 			url:"/center/spider/copy",
 			type:"post",
@@ -674,12 +679,14 @@ $(function(){
 	function assign(){
 		var names=[];
 		$("#spider td input[type=checkbox]").each(function(){
-			console.log($(this).attr('scope'))
-			if ($(this).attr('scope') == '1'){//禁止分配的爬虫
-				$(this).prop("checked",false);
-			}else if($(this).prop("checked")){
+			if($(this).prop("checked")){
 				names.push($(this).attr("name"));
 			}
+			// if ($(this).attr('scope') == '1'){//禁止分配的爬虫
+			// 	$(this).prop("checked",false);
+			// }else if($(this).prop("checked")){
+			// 	names.push($(this).attr("name"));
+			// }
 		});
 		if(names.length>0){
 			$("#modal-assign .list-group").empty();
@@ -754,13 +761,17 @@ $(function(){
 			showTip("没有选择项", 1000, function() {});
 		}
 	}
+	//查找开发人员
 	function searchAssignModify(){
 		$.post("/center/searchMintainer",function(r){
 			var data = r.mintainer;
 			$("#assign-modify").empty();
 			$("#assign-modify").append("<option value=''>--请选择--</option>");
 			for(var i in data){
-				$("#assign-modify").append("<option value='"+data[i]["_id"]+"'>"+data[i]["s_email"]+"</option>");
+				var email = data[i]["s_email"];
+				var uid = data[i]["_id"];
+				user[uid] = data[i]["s_platform"];
+				$("#assign-modify").append("<option value='"+uid+"'>"+email+"</option>");
 			}
 		})
 	}
@@ -770,9 +781,6 @@ $(function(){
 	function disables_cancel(){
 		$("#modal-disables").modal("hide");
 	}
-  	function spidercopy_cancel(){
-		$("#modal-spidercopy").modal("hide");
-	}
 	function nopublish_cancel(){
 		$("#modal-nopublish").modal("hide");
 	}
@@ -780,36 +788,54 @@ $(function(){
 	function assign_save(){
 		$("#modal-assign").modal("hide");
 		var userid = $("#assign-modify").val();
+		var userPlatform = user[userid];//被分配人员所属平台
 		if(userid != ""){
-			var codes=[];
+			var codes = [];
+			var nocodes = [];
 			$("#spider td input[type=checkbox]").each(function(){
 				if($(this).prop("checked")){
-					codes.push($(this).attr("code"));
+					var codePlatform = $(this).attr("platform");//被分配爬虫所属平台
+					var userScope = $(this).attr("scope");//被分配爬虫所属平台
+					console.log(userPlatform,codePlatform,userScope)
+					//lua平台除外包人员外,内部不可分配爬虫
+					if (codePlatform == "golua平台" && userPlatform == "golua平台" &&  userScope == '1'){
+						nocodes.push($(this).attr("code"));
+					}else{
+						codes.push($(this).attr("code"));
+					}
 					//ids.push($(this).val());
 				}
 			});
+			if(codes.length == 0){
+				showTip("所选爬虫不可重新分配!", 2000, function() {});
+				return;
+			}
+			if (nocodes.length != 0){
+				showTip("含有不可分配爬虫:"+nocodes.join(";"), 5000, function() {});
+				return;
+			}
 			$.ajax({
-					url:"/center/user/assign",
-					type:"post",
-					data:{
-						"codes":codes.join(","),
-						"userid":userid
-					},
-					success:function(r){
-						if(r=="y"){
-							showTip("分配成功", 500, function() {});
-							$("#selrow").prop('checked',false);
-							$('#com-alert').on('hidden.bs.modal', function () {
-								ttable.ajax.reload();
-							})
-						}else if(r=="n"){
-							showTip("分配失败", 1000, function() {});
-						}else if(r=="null"){
-							showTip("没有该用户,请重新输入", 1000, function() {});
-							assign();
-						}
+				url:"/center/user/assign",
+				type:"post",
+				data:{
+					"codes":codes.join(","),
+					"userid":userid
+				},
+				success:function(r){
+					if(r=="y"){
+						showTip("分配成功", 500, function() {});
+						$("#selrow").prop('checked',false);
+						$('#com-alert').on('hidden.bs.modal', function () {
+							ttable.ajax.reload();
+						})
+					}else if(r=="n"){
+						showTip("分配失败", 1000, function() {});
+					}else if(r=="null"){
+						showTip("没有该用户,请重新输入", 1000, function() {});
+						assign();
 					}
-				})
+				}
+			})
 		}else{
 			return;
 		}	
@@ -866,7 +892,10 @@ $(function(){
 			}
 		})
   }
-{{end}}	
+{{end}}
+function spidercopy_cancel(){
+	$("#modal-spidercopy").modal("hide");
+}
 </script>
 </div>
 {{include "bottom.html"}}

+ 24 - 4
src/web/templates/mytask.html

@@ -136,10 +136,14 @@
 				}},
 				{"data":"_id",render:function(val,a,row){
 					var div=$("<div><div class=\"btn-group\"></div></div>")
-					var buttonWatch=$('<a type="button" class="btn btn-sm btn-default">查看</a>');
-					buttonWatch.attr("href","/center/task/edit/"+row['_id']+"__1");
-					div.find(".btn-group").append(buttonWatch);
-					return div.html()
+					var dbutton=$('<a type="button" href="#" class="btn btn-sm btn-default" onclick="viewtask(\''+row._id+'\',\''+row.relatecode+'\');">查看</a>');
+					div.find(".btn-group").append(dbutton);
+					return div.html();
+					// var div=$("<div><div class=\"btn-group\"></div></div>")
+					// var buttonWatch=$('<a type="button" class="btn btn-sm btn-default">查看</a>');
+					// buttonWatch.attr("href","/center/task/edit/"+row['_id']+"__1");
+					// div.find(".btn-group").append(buttonWatch);
+					// return div.html()
 				}}
 				
 			],
@@ -297,6 +301,22 @@
 			}
 		})
 	}
+
+	function viewtask(id,relatecode) {
+		if(relatecode != ""){
+			showConfirm("请注意修改关联爬虫:"+relatecode,  function() {
+				$.get("/center/task/createrelatetask?relatecode="+relatecode+"&id="+id,function(r){
+					if (r&&r.ok){
+						window.location.href="/center/task/edit/"+id+"__1";
+					}else{
+						showTip("关联爬虫任务创建失败", 1000, function() {});
+					}
+				})
+			});
+		}else{
+			window.location.href="/center/task/edit/"+id+"__1";
+		}
+	}
 	</script>
 </div>
 {{include "bottom.html"}}