ai_callback_add_group_handler.py 2.1 KB

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