ai_callback_add_creative_handler.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. from typing import Optional, Awaitable
  2. import pandas as pd
  3. import numpy as np
  4. import datetime
  5. import pymysql
  6. from sqlalchemy import create_engine
  7. import simplejson
  8. import requests
  9. import tornado.web
  10. import pandas as pd
  11. import json
  12. import numpy as np
  13. import datetime
  14. from sqlalchemy import create_engine
  15. from db_config import *
  16. import traceback
  17. class AiCallBackAddCreative(tornado.web.RequestHandler):
  18. def initialize(self, logger):
  19. self.logger = logger
  20. def post(self):
  21. res = {'code': 0,
  22. 'data': None,
  23. 'message': "SUCCESS"}
  24. data = self.request.body
  25. data = str(data, 'utf8')
  26. data = json.loads(data, encoding='utf8')
  27. self.logger.info("*************************************** NEW REQUEST ***************************************")
  28. self.logger.info("raw data from request is %s" % data)
  29. try:
  30. inst = UpdateCreativeLevelRecordTable(data, self.logger)
  31. inst.update_table_info()
  32. except Exception:
  33. res['code'] = -1
  34. res['message'] = 'FAIL'
  35. self.logger.error(traceback.format_exc())
  36. # 返回接口结果
  37. self.write(json.dumps(res))
  38. self.flush()
  39. class UpdateCreativeLevelRecordTable(object):
  40. def __init__(self, request_data,logger):
  41. self.data = request_data
  42. self.logger = logger
  43. def update_table_info(self):
  44. db_con = pymysql.connect(host=host,
  45. port=port,
  46. user=user,
  47. password=passwd,
  48. database=db,
  49. charset=charset)
  50. cursor = db_con.cursor()
  51. for item in self.data['callbackData']:
  52. if item['code'] == 0:
  53. creative_uuid = item['creative_uuid']
  54. creative_id = item['creative_id']
  55. unit_id = item['unit_id']
  56. self.logger.info("on single update callback info: %s" % item)
  57. cursor.execute("""UPDATE ctop_ai_kuaishou_creative_level_operation_record
  58. SET unit_id= %s, creative_id=%s
  59. WHERE creative_uuid = %s""", (unit_id, creative_id, creative_uuid))
  60. else:
  61. self.logger.error("on single update callback info: %s" % item)
  62. db_con.commit()
  63. db_con.close()