123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- package taskManager
- import (
- "fmt"
- . "front"
- "mongodb"
- qu "qfw/util"
- util "spiderutil"
- "strings"
- "time"
- u "util"
- )
- func (t *TaskM) SiteTask() {
- modifyuser := t.GetString("modifyuser")
- repair := t.GetString("repair")
- overdue := t.GetString("overdue")
- latestdata := t.GetString("latestdata")
- codestate, _ := t.GetInteger("codestate")
- searchStr := t.GetString("search[value]")
- search := strings.TrimSpace(searchStr)
- draw, _ := t.GetInteger("draw")
- start, _ := t.GetInteger("start")
- limit, _ := t.GetInteger("length")
- if t.Method() == "GET" {
- t.T["modifyusers"] = u.GetModifyUsers()
- t.Render("sitetask.html", &t.T)
- } else {
- query := map[string]interface{}{
- "b_delete": false,
- }
- auth := qu.IntAll(t.GetSession("auth"))
- if auth == u.Role_Dev {
- user := qu.ObjToString(t.GetSession("loginuser"))
- query["s_modifyuser"] = user
- }
- if search != "" {
- query["$or"] = []interface{}{
- map[string]interface{}{"s_spidercode": map[string]interface{}{"$regex": search}},
- map[string]interface{}{"s_site": map[string]interface{}{"$regex": search}},
- map[string]interface{}{"s_channel": map[string]interface{}{"$regex": search}},
- }
- }
- if modifyuser != "-1" && auth > u.Role_Dev {
- query["s_modifyuser"] = modifyuser
- }
- if repair != "-1" {
- query["b_repair"] = repair == "1"
- }
- if codestate > -1 {
- query["i_state"] = codestate
- }
- if overdue != "-1" {
- if overdue == "1" { //查询超期
- query["l_max_repair_time"] = map[string]interface{}{
- "$lt": time.Now().Unix(),
- }
- } else { //未超期
- query["l_max_repair_time"] = map[string]interface{}{
- "$gte": time.Now().Unix(),
- }
- }
- }
- if latestdata != "-1" {
- query["b_latestdata"] = latestdata == "1"
- }
- sort := `{"%s":%d}`
- orderIndex := t.GetString("order[0][column]")
- orderName := t.GetString(fmt.Sprintf("columns[%s][data]", orderIndex))
- orderType := 1
- if t.GetString("order[0][dir]") != "asc" {
- orderType = -1
- }
- sort = fmt.Sprintf(sort, orderName, orderType)
- qu.Debug("query:", query, sort)
- task, _ := u.MgoEB.Find("spider_important_warning", query, sort, nil, false, start, limit)
- count := u.MgoEB.Count("spider_important_warning", query)
- for _, t := range *task {
- l_max_repair_time := qu.Int64All(t["l_max_repair_time"])
- t["b_overdue"] = l_max_repair_time < time.Now().Unix()
- //lua, _ := u.MgoEB.FindOneByField("luaconfig", map[string]interface{}{"code": t["s_spidercode"]}, map[string]interface{}{"state": 1})
- //t["i_state"] = (*lua)["state"]
- t["encode"] = util.Se.Encode2Hex(fmt.Sprint(t["s_spidercode"]))
- }
- t.ServeJson(map[string]interface{}{"draw": draw, "data": task, "recordsFiltered": count, "recordsTotal": count})
- }
- }
- func (t *TaskM) SiteTaskClose() {
- if qu.IntAll(t.GetSession("auth")) > u.Role_Dev {
- id := t.GetString("id")
- query := map[string]interface{}{
- "_id": mongodb.StringTOBsonId(id),
- }
- set := map[string]interface{}{
- "b_delete": true,
- "l_update_time": time.Now().Unix(),
- }
- ok := siteTaskUpdate(query, set)
- if ok {
- t.ServeJson("y")
- } else {
- t.ServeJson("n")
- }
- }
- t.ServeJson("没有权限")
- }
- func (t *TaskM) SiteTaskEdit() {
- spidercode := t.GetString("spidercode")
- //查询关联爬虫
- relatecode := ""
- lua, _ := u.MgoEB.FindOneByField("luaconfig", map[string]interface{}{"code": spidercode + u.Bu, "state": 5}, map[string]interface{}{"relatecode": 1})
- if len(*lua) > 0 {
- relatecode = spidercode + u.Bu
- }
- taskIds := CheckTask([]string{spidercode}, 1) //是否有常规任务
- taskid := ""
- if len(taskIds) == 1 {
- taskid = taskIds[0]
- } else if len(taskIds) > 1 {
- qu.Debug("任务量异常:", spidercode, len(taskIds))
- }
- result := map[string]string{
- "taskid": taskid,
- "relatecode": relatecode,
- }
- t.ServeJson(result)
- }
- func (t *TaskM) UpdateCodeState() {
- code := t.GetString("code")
- state, _ := t.GetInteger("state")
- ok := u.MgoEB.Update("luaconfig", map[string]interface{}{"code": code, "state": 5}, map[string]interface{}{"$set": map[string]interface{}{"state": state}}, false, false)
- t.ServeJson(map[string]interface{}{"ok": ok})
- }
- func siteTaskUpdate(query, set map[string]interface{}) bool {
- return u.MgoEB.Update("spider_important_warning", query, map[string]interface{}{"$set": set}, false, false)
- }
|