origin_data2.lua 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. --原始数据
  2. local M = {}
  3. local mysqldbx = require "mysqldbx"
  4. local tools = require "tools"
  5. local skynet = require "skynet"
  6. local cjson = require "cjson"
  7. function M.delete_origin_data_by_time(msg_body)
  8. local isok ,key = tools.checkData({"start_create_time","end_create_time"},msg_body)
  9. if not isok then
  10. return false,string.format("缺少字段: %s.", key)
  11. end
  12. local delete_time_param = " AND DATE(created_at) >= DATE(FROM_UNIXTIME(" .. (msg_body.start_create_time / 1000) .. ")) AND DATE(created_at) <= DATE(FROM_UNIXTIME(" .. (msg_body.end_create_time / 1000) .. "))"
  13. end
  14. function M.reset_status(msg_body)
  15. local isok ,key = tools.checkData({"id_list"},msg_body)
  16. if not isok then
  17. return false,string.format("缺少字段: %s.", key)
  18. end
  19. for i = 1, #msg_body.id_list, 1 do
  20. local res,sql,id;
  21. id = msg_body.id_list[i]
  22. sql = string.format("UPDATE origin_data2 SET status = 0 WHERE id = %d ",id)
  23. res = mysqldbx.query(sql)
  24. end
  25. return true,{}
  26. end
  27. function M.search_origin_data(msg_body)
  28. local isok ,key = tools.checkData({"miniseriesName","is_wx_guajian","page_size","page_number","start_create_time","end_create_time","guajian_info","start_publish_time","end_publish_time","materialId"},msg_body)
  29. if not isok then
  30. return false,string.format("缺少字段: %s.", key)
  31. end
  32. local page_size = msg_body.page_size
  33. local page_number = msg_body.page_number
  34. local offset = (page_number - 1) * page_size
  35. local miniseriesName_param = ""
  36. if msg_body.miniseriesName~="" then
  37. miniseriesName_param = string.format(" AND miniseriesName = '%s' ",msg_body.miniseriesName)
  38. end
  39. local is_wx_guajian_param = ""
  40. if msg_body.is_wx_guajian~="" then
  41. is_wx_guajian_param = string.format(" AND is_wx_guajian = %d ",msg_body.is_wx_guajian)
  42. end
  43. local date_param = ""
  44. if msg_body.start_publish_time~="" and msg_body.end_publish_time~="" then
  45. date_param = " AND DATE(publish_time) >= DATE(FROM_UNIXTIME(" .. (msg_body.start_publish_time / 1000) .. ")) AND DATE(publish_time) <= DATE(FROM_UNIXTIME(" .. (msg_body.end_publish_time / 1000) .. ")) "
  46. end
  47. local create_date_param = ""
  48. if msg_body.start_create_time~="" and msg_body.end_create_time~="" then
  49. create_date_param = " AND create_day >= DATE(FROM_UNIXTIME(" .. (msg_body.start_create_time / 1000) .. ")) AND create_day <= DATE(FROM_UNIXTIME(" .. (msg_body.end_create_time / 1000) .. ")) "
  50. end
  51. local guajian_info_param = ""
  52. -- 挂件信息条件
  53. if msg_body.guajian_info ~= "" then
  54. local searchTerm = string.gsub(msg_body.guajian_info, "%%", "\\%%")
  55. guajian_info_param = string.format(" AND guajian_link LIKE CONCAT('%%', '%s', '%%') ",searchTerm)
  56. end
  57. local materialId_param = ""
  58. -- 材料ID条件
  59. if msg_body.materialId ~= "" then
  60. materialId_param = string.format(" AND materialId = '%s' ",msg_body.materialId)
  61. end
  62. local param = miniseriesName_param..date_param..create_date_param..guajian_info_param..materialId_param..is_wx_guajian_param
  63. local sql = "SELECT * FROM origin_data2 WHERE 1=1 "..param.."ORDER BY id DESC"..string.format(" LIMIT %d OFFSET %d ",page_size, offset)
  64. skynet.error("sql:",sql)
  65. -- 执行查询
  66. local res = mysqldbx.query(sql)
  67. -- 使用 COUNT(*) 优化总数查询
  68. sql = "SELECT COUNT(*) AS total FROM origin_data2 WHERE 1=1 "..param
  69. local total = mysqldbx.query(sql)
  70. return true, res, total[1].total
  71. end
  72. return M