data.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package lua
  2. import (
  3. "mongodb"
  4. qu "qfw/util"
  5. "qfw/util/elastic"
  6. "strings"
  7. "util"
  8. )
  9. func (l *Lua) DataView() {
  10. defer qu.Catch()
  11. coll := l.GetString("coll")
  12. id := l.GetString("id")
  13. data := &map[string]interface{}{}
  14. if coll == "bidding" || coll == "bidding_file" {
  15. data, _ = util.JYMgo.FindById(coll, id, nil)
  16. } else {
  17. if tmp := strings.Split(coll, "-"); len(tmp) == 2 {
  18. if tmp[0] == "lua" {
  19. data, _ = util.MgoS.FindById(tmp[1], id, nil)
  20. } else if tmp[0] == "python" {
  21. data, _ = util.MgoPy.FindById(tmp[1], id, nil)
  22. }
  23. } else {
  24. data, _ = util.MgoS.FindById(coll, id, nil)
  25. }
  26. }
  27. l.T["data"] = *data
  28. l.Render("lua/dataview.html", &l.T)
  29. }
  30. func (l *Lua) DataFind() {
  31. defer qu.Catch()
  32. l.Render("lua/datafind.html")
  33. }
  34. var Fields = map[string]interface{}{
  35. "title": 1,
  36. "publishtime": 1,
  37. "comeintime": 1,
  38. "href": 1,
  39. "extracttype": 1,
  40. "site": 1,
  41. "spidercode": 1,
  42. "s_sha": 1,
  43. "biddingid": 1,
  44. "moveok": 1,
  45. "repeatby": 1,
  46. "hashref": 1,
  47. "field": 1,
  48. "info": 1,
  49. "level": 1,
  50. "biddingcoll": 1,
  51. "sendflag": 1,
  52. "data": 1,
  53. }
  54. func (l *Lua) SearchData() {
  55. defer qu.Catch()
  56. text := l.GetString("text")
  57. stype := l.GetString("stype")
  58. data := []map[string]interface{}{}
  59. query := map[string]interface{}{
  60. stype: text,
  61. }
  62. qu.Debug("query:", query)
  63. //bidding、索引分析
  64. if stype == "title" { //根据title找bidding(bidding表有title索引,无href索引)
  65. query = map[string]interface{}{
  66. "title": text,
  67. }
  68. //1、根据title找bidding
  69. list_bid, _ := util.JYMgo.Find("bidding", query, nil, Fields, false, -1, -1)
  70. for _, l := range *list_bid {
  71. id := mongodb.BsonIdToSId(l["_id"])
  72. es_query := `{"query":{"bool":{"must":[{"term":{"id":"` + id + `"}}]}}}`
  73. if util.JyEs.Count(util.EsIndex, util.EsType, es_query) > 0 {
  74. l["es"] = "已生成"
  75. } else {
  76. extracttype := qu.IntAll(l["extracttype"])
  77. if extracttype == -1 {
  78. l["es"] = "被判重"
  79. } else if extracttype == 1 {
  80. l["es"] = "ES异常"
  81. } else {
  82. l["es"] = "未生成"
  83. }
  84. }
  85. }
  86. AddVal(*list_bid, "bidding", &data)
  87. } else if stype == "href" { //根据href查索引数据,反推bidding
  88. es_query := `{"query":{"bool":{"must":[{"term":{"href":"` + text + `"}}]}},"_source":["_id"]}`
  89. list := elastic.Get(util.EsIndex, util.EsType, es_query)
  90. for _, l := range *list {
  91. id := qu.ObjToString(l["_id"])
  92. qu.Debug(id)
  93. tmp, _ := util.JYMgo.FindById("bidding", id, Fields)
  94. if tmp != nil && len(*tmp) > 0 {
  95. (*tmp)["es"] = "已生成"
  96. (*tmp)["by"] = "bidding"
  97. data = append(data, *tmp)
  98. }
  99. }
  100. }
  101. qu.Debug("bidding 搜索完成...")
  102. //2、找bidding_file附件信息
  103. list_file, _ := util.JYMgo.Find("bidding_file", query, `{"_id":-1}`, Fields, false, 0, 20)
  104. AddVal(*list_file, "bidding_file", &data)
  105. qu.Debug("bidding_file 搜索完成...", len(*list_file))
  106. //3、找spider_repeatdata判重数据表
  107. list_repeat, _ := util.MgoS.Find("spider_repeatdata", query, `{"_id":-1}`, Fields, false, 0, 20)
  108. AddVal(*list_repeat, "spider_repeatdata", &data)
  109. qu.Debug("spider_repeatdata 搜索完成...", len(*list_repeat))
  110. //4、找spider_warn异常数据表
  111. list_warn, _ := util.MgoS.Find("spider_warn", query, `{"_id":-1}`, Fields, false, 0, 20)
  112. AddVal(*list_warn, "spider_warn", &data)
  113. qu.Debug("spider_warn 搜索完成...", len(*list_warn))
  114. //5、找data_bak表
  115. list_bak_lua, _ := util.MgoS.Find("data_bak", query, `{"_id":-1}`, Fields, false, 0, 20)
  116. AddVal(*list_bak_lua, "lua-data_bak", &data)
  117. qu.Debug("lua-data_bak 搜索完成...", len(*list_bak_lua))
  118. list_bak_py, _ := util.MgoPy.Find("data_bak", query, `{"_id":-1}`, Fields, false, 0, 20)
  119. AddVal(*list_bak_py, "python-data_bak", &data)
  120. qu.Debug("python-data_bak 搜索完成...", len(*list_bak_py))
  121. //if len(data) == 0 { //以上都没有找到数据,找列表页数据
  122. //
  123. //}
  124. l.ServeJson(map[string]interface{}{
  125. "data": data,
  126. })
  127. data = []map[string]interface{}{}
  128. }
  129. func AddVal(list []map[string]interface{}, by string, data *[]map[string]interface{}) {
  130. if len(list) > 0 {
  131. for _, l := range list {
  132. l["by"] = by
  133. }
  134. *data = append(*data, list...)
  135. }
  136. }