import json
import time

import pymysql
from common import request_to_jd_vc

def get_db_connect(host, port, user, password, database):
    db = pymysql.connect(host=host, port=port, user=user, password=password, database=database)
    cursor = db.cursor()
    return db, cursor


def get_attr():
    pass

def get_ext_attr():
    pass

if __name__ == '__main__':
    # 临时处理 京东参数问题 之后会删除
    db, cursor = get_db_connect(host='192.168.1.238', port=3306, user='liexin_data_distribution', password='liexin_data_distribution#zsyM', database='liexin_data_distribution')
    query_sql = "select distinct class_id from lie_shop_attr_copy1"
    cursor.execute(query=query_sql)
    results = cursor.fetchall()
    with open('config.json', 'r', encoding='utf-8') as f:
        json_data = json.load(f)
        token = json_data["shop_vc"]["token"]
        app_key = json_data["shop_vc"]["app_key"]
        app_secret = json_data["shop_vc"]["app_secret"]
    for i in range(len(results)):
        class_id = results[i][0]
        ans = request_to_jd_vc(method_name="jingdong.vc.item.props.find", token=token, app_key=app_key, app_secret=app_secret, param={"category_leaf_id": class_id})
        # print(json.dumps(ans, ensure_ascii=False))
        jd_results = ans["jingdong_vc_item_props_find_responce"]["jos_result_dto"]["result"]
        for j in range(len(jd_results)):
            props = jd_results[j]["props"]
            for k in range(len(props)):
                attr_id = props[k]["id"]
                attr_name = props[k]["name"]
                unit = props[k]["val_unit"]
                jd_value = props[k]["values"]
                if len(jd_value) == 0:
                    enum_value = "[]"
                else:
                    enum_value = json.dumps(jd_value, ensure_ascii=False)
                input_type = props[k]["input_type"]
                flag = props[k]["required"]
                if flag:
                    is_required = 1
                else:
                    is_required = 0
                create_time = int(time.time())
                check_sql = "select id from lie_shop_attr_copy1 where class_id = %s and attr_id = %s"
                cursor.execute(query=check_sql, args=(class_id, attr_id,))
                check_results = cursor.fetchall()
                if len(check_results) != 0:
                    #说明此class_id 下的此属性id是已经存在的
                    continue
                else:
                    insert_sql = "insert into lie_shop_attr_copy1 (class_id, attr_id, attr_name, unit, enum_value, input_type, is_required, status, platform, create_time) values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
                    cursor.execute(query=insert_sql, args=(class_id, attr_id, attr_name, unit, enum_value, input_type, is_required, 1, 1, create_time))
                    db.commit()
                    print(insert_sql % (class_id, attr_id, attr_name, unit, enum_value, input_type, is_required, 1, 1, create_time))
                    print("==================================================================")