from typing import Optional, Awaitable import pandas as pd import numpy as np import datetime import pymysql from sqlalchemy import create_engine import simplejson import requests import tornado.web import pandas as pd import json import numpy as np import datetime from sqlalchemy import create_engine from db_config import * import traceback class AiCallBackAddGroup(tornado.web.RequestHandler): def initialize(self, logger): self.logger = logger def post(self): res = {'code': 0, 'message': "SUCCESS"} data = self.request.body data = str(data, 'utf8') data = json.loads(data, encoding='utf8') self.logger.info("*************************************** NEW REQUEST ***************************************") self.logger.info("raw data from request is %s" % data) try: inst = UpdateGroupLevelRecordTable(data, self.logger) inst.update_table_info() except Exception: res['code'] = -1 res['message'] = 'FAIL' self.logger.error(traceback.format_exc()) # 返回接口结果 self.write(json.dumps(res)) self.flush() class UpdateGroupLevelRecordTable(object): def __init__(self, request_data, logger): self.data = request_data self.logger = logger def update_table_info(self): db_con = pymysql.connect(host=host, port=port, user=user, password=passwd, database=db, charset=charset) cursor = db_con.cursor() for item in self.data['callbackData']: if item['code'] == 0: group_uuid = item['group_uuid'] unit_id = item['unit_id'] unit_create_time = item['group_create_time'] self.logger.info("on single update callback info: %s" % item) cursor.execute("""UPDATE ctop_ai_kuaishou_unit_level_operation_record SET unit_id= %s, unit_create_time=%s WHERE group_uuid = %s""", (unit_id, unit_create_time, group_uuid)) else: self.logger.error("on single update callback info: %s" % item) db_con.commit() db_con.close()