ai_callback_add_creative_handler.py 2.1 KB

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