ai_callback_add_group_handler.py 2.3 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 AiCallBackAddGroup(tornado.web.RequestHandler):
  18. def initialize(self, logger):
  19. self.logger = logger
  20. def post(self):
  21. res = {'code': 0,
  22. 'message': "SUCCESS"}
  23. data = self.request.body
  24. data = str(data, 'utf8')
  25. data = json.loads(data, encoding='utf8')
  26. self.logger.info("*************************************** NEW REQUEST ***************************************")
  27. self.logger.info("raw data from request is %s" % data)
  28. try:
  29. inst = UpdateGroupLevelRecordTable(data, self.logger)
  30. inst.update_table_info()
  31. except Exception:
  32. res['code'] = -1
  33. res['message'] = 'FAIL'
  34. self.logger.error(traceback.format_exc())
  35. # 返回接口结果
  36. self.write(json.dumps(res))
  37. self.flush()
  38. class UpdateGroupLevelRecordTable(object):
  39. def __init__(self, request_data, logger):
  40. self.data = request_data
  41. self.logger = logger
  42. def update_table_info(self):
  43. db_con = pymysql.connect(host=host,
  44. port=port,
  45. user=user,
  46. password=passwd,
  47. database=db,
  48. charset=charset)
  49. cursor = db_con.cursor()
  50. for item in self.data['callbackData']:
  51. if item['code'] == 0:
  52. group_uuid = item['group_uuid']
  53. unit_id = item['unit_id']
  54. unit_create_time = item['group_create_time']
  55. self.logger.info("on single update callback info: %s" % item)
  56. cursor.execute("""UPDATE ctop_ai_kuaishou_unit_level_operation_record
  57. SET unit_id= %s, unit_create_time=%s
  58. WHERE group_uuid = %s""", (unit_id, unit_create_time, group_uuid))
  59. else:
  60. self.logger.error("on single update callback info: %s" % item)
  61. db_con.commit()
  62. db_con.close()