tg_max_zhuanhua.lua 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. --最大转化
  2. local M = {}
  3. local db
  4. local mysqldtaskbx = {}
  5. local mysqldbx = require "mysqldbx"
  6. require "skynet.manager"
  7. local mysql = require "skynet.db.mysql"
  8. local config = require "run_config"
  9. local tools = require "tools"
  10. local skynet = require "skynet"
  11. --添加转化账户
  12. function M.addZhuanHuaZhangHu(msg_body)
  13. local isok ,key = tools.checkData({"advertiser_id","advertiser_name","status","is_deleted","budget"},msg_body)
  14. if not isok then
  15. return false,string.format("缺少字段: %s.", key)
  16. end
  17. local isok , find_data = M.findZhuangHuById({id=msg_body.advertiser_id})
  18. if find_data==nil then
  19. return false,string.format("advertiser_id 失败 : %d.", msg_body.advertiser_id)
  20. end
  21. local current_time = os.date("%Y-%m-%d %H:%M:%S")
  22. msg_body.create_time = current_time
  23. local sql = string.format("INSERT INTO `ad_cbo_advertiser_id` (advertiser_id,advertiser_name, create_time, update_time,status,is_deleted,budget) VALUES (%d,'%s','%s','%s',%d,%d,%d)",
  24. msg_body.advertiser_id,
  25. msg_body.advertiser_name,
  26. msg_body.create_time,
  27. msg_body.create_time,
  28. msg_body.status,msg_body.is_deleted,msg_body.budget)
  29. local res = mysqldtaskbx.Singleton().query(sql)
  30. skynet.error(sql)
  31. tools.dump(res)
  32. skynet.error(res)
  33. return true
  34. end
  35. --modify
  36. function M.modifyZhuanHuaZhangHu(msg_body)
  37. local isok ,key = tools.checkData({"advertiser_id","advertiser_name","status","is_deleted","budget"},msg_body)
  38. if not isok then
  39. return false,string.format("缺少字段: %s.", key)
  40. end
  41. local current_time = os.date("%Y-%m-%d %H:%M:%S")
  42. msg_body.update_time = current_time
  43. local sql = string.format("UPDATE `ad_cbo_advertiser_id` SET update_time ='%s', advertiser_id =%d ,advertiser_name ='%s' , status =%d , is_deleted =%d , budget =%d WHERE id = %d ",
  44. msg_body.update_time,msg_body.advertiser_id,msg_body.advertiser_name,msg_body.status,msg_body.is_deleted,msg_body.budget,msg_body.id)
  45. skynet.error(sql)
  46. mysqldtaskbx.Singleton().query(sql)
  47. return true
  48. end
  49. --delete
  50. function M.deleteZhuanHuaZhangHu(msg_body)
  51. local isok ,key = tools.checkData({"id_list"},msg_body)
  52. if not isok then
  53. return false,string.format("缺少字段: %s.", key)
  54. end
  55. local current_time = os.date("%Y-%m-%d %H:%M:%S")
  56. msg_body.update_time = current_time
  57. for i = 1, #msg_body.id_list, 1 do
  58. local id = msg_body.id_list[i]
  59. local sql = string.format("UPDATE `ad_cbo_advertiser_id` SET update_time ='%s', is_deleted =%d WHERE id = %d ",
  60. msg_body.update_time,1,id)
  61. mysqldtaskbx.Singleton().query(sql)
  62. end
  63. return true
  64. end
  65. --获取转换列表
  66. function M.getZhuanHuanList(msg_body)
  67. local isok ,key = tools.checkData({"page_size","page_number","status"},msg_body)
  68. if not isok then
  69. return false,string.format("缺少字段: %s.", key)
  70. end
  71. local page_size = msg_body.page_size
  72. local page_number = msg_body.page_number
  73. local status = msg_body.status --状态 1:正常 0:禁用 2:全部
  74. local status_cmd = "SELECT * FROM ad_cbo_advertiser_id WHERE is_deleted = 0 " ..string.format("and status = %d ",status)
  75. if status == 2 then
  76. status_cmd = "SELECT * FROM ad_cbo_advertiser_id WHERE is_deleted = 0 "
  77. end
  78. local offset = (page_number - 1) * page_size
  79. local sql = status_cmd .. string.format(" ORDER BY id LIMIT %d OFFSET %d",page_size, offset)
  80. local isok,res;
  81. res = mysqldtaskbx.Singleton().query(sql)
  82. -- tools.dump(res)
  83. -- skynet.error(sql)
  84. if #res <= 0 then
  85. return true ,{}
  86. end
  87. return true, res
  88. end
  89. --获取转换总数
  90. function M.getTotal()
  91. local sql = "SELECT COUNT(*) AS total FROM ad_cbo_advertiser_id WHERE is_deleted = 0"
  92. local res = mysqldtaskbx.Singleton().query(sql)
  93. return true,res[1]
  94. end
  95. function mysqldtaskbx.start()
  96. local function on_connect(db)
  97. db:query("set charset utf8mb4");
  98. end
  99. local conf = config.db_cnf.book_server.mysqldb_task_cnf
  100. db = mysql.connect{
  101. host=conf.ip,
  102. port=conf.port,
  103. database=conf.db,
  104. user=conf.user,
  105. password=conf.password,
  106. charset="utf8mb4",
  107. max_packet_size = 1024 * 1024,
  108. on_connect = on_connect
  109. }
  110. if not db then
  111. error("mysql connect fail")
  112. end
  113. end
  114. --根据id获取账户
  115. function M.findZhuangHuById(msg_body)
  116. local isok ,key = tools.checkData({"id"},msg_body)
  117. if not isok then
  118. return false,string.format("缺少字段: %s.", key)
  119. end
  120. local current_time = os.date("%Y-%m-%d %H:%M:%S")
  121. msg_body.update_time = current_time
  122. local sql = string.format("select * from advertiser WHERE advertiser_id = '%s' LIMIT 1",tostring(msg_body.id))
  123. local res = mysqldbx.query(sql)
  124. local info = nil
  125. if #res>0 then
  126. info = res
  127. end
  128. return true,info
  129. end
  130. function mysqldtaskbx.Singleton()
  131. if db == nil then
  132. mysqldtaskbx.start()
  133. end
  134. return mysqldtaskbx
  135. end
  136. function mysqldtaskbx.query(sql)
  137. return db:query(sql)
  138. end
  139. return M