# -*- encoding=utf8 -*-
__author__ = "liguangyu"

"""
case_tag:cmdc_api,cmdc订单提交_审核_确认打款,3000,3000-1,sit,bs
主数据平台:后台运营系统订单提交_审核_确认打款
"""

from common.common_func import commonFuc
from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
import requests
import json

module = "cmdc_scenario"
a = 20
while a <= 20:
    # 第一步登录商城进行订单提交
    # 登录多采商城获取cmdc_access_token
    # 获取登录多采商城所需账号密码
    username = commonFuc().get_business_data(module, "username3")
    password = commonFuc().get_business_data(module, "password3")
    # 获取登录后Cmdc_access_token并进行参数化赋值
    cmdc_access_token1 = CmdcMaiiLogin(username, password).get_token()
    headers_do = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token1)

    # 进行订单提交操作
    url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1_1")
    request_body = commonFuc().get_business_data(module, "payload1_1")
    # 发送请求
    result = requests.post(url, json=request_body, headers=headers_do)
    result = json.loads(result.content)
    # print(result)
    # 获取生成订单信息
    demandParentId = result["data"]["国药集团联合医疗器械有限公司"]["demandParentId"]
    demandParentCode = result["data"]["国药集团联合医疗器械有限公司"]["demandParentCode"]
    demandId = result["data"]["国药集团联合医疗器械有限公司"]["demandItems"][0]["demandId"]
    demandCode = result["data"]["国药集团联合医疗器械有限公司"]["demandItems"][0]["demandCode"]
    demandSkuId1 = result["data"]["国药集团联合医疗器械有限公司"]["demandItems"][0]["demandSkuId"]
    demandSkuId2 = result["data"]["国药集团联合医疗器械有限公司"]["demandItems"][1]["demandSkuId"]
    demandSkuId3 = result["data"]["国药集团联合医疗器械有限公司"]["demandItems"][2]["demandSkuId"]

    # print(demandCode)
    # 获取后台运营平台登录所需账号密码
    username = commonFuc().get_business_data(module, "username_102")
    password = commonFuc().get_business_data(module, "password_102")
    # 获取登录后Cmdc_access_token
    cmdc_access_token = CmdcDoLogin(username, password).get_token()
    headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)

    # 第二步对订单审核操作
    url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1_2")
    request_body = commonFuc().get_business_data(module, "payload1_2", demandId, demandParentId, demandParentCode,
                                                 demandCode,
                                                 demandSkuId1, demandCode, demandCode, demandCode, demandId, demandParentId,
                                                 demandParentCode, demandCode, demandCode, demandSkuId2, demandCode,
                                                 demandCode,
                                                 demandCode, demandSkuId3, demandCode, demandCode)
    # 发送请求
    result = requests.post(url, json=request_body, headers=headers)
    result = json.loads(result.content)

    # 第三步对审核通过的订单进行确认收款操作
    url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1_3")
    request_body = commonFuc().get_business_data(module, "payload1_3", demandParentCode, demandId, demandParentId)

    """
     场景: 订单提交_审核_确认打款
     用例名称：订单提交_审核_确认打款
     输出：{"success":true,"code":"200","message":"OK"}
    """

    # 发送请求
    result = requests.post(url, json=request_body, headers=headers)
    # 获取接口响应时间
    api_time = float(result.elapsed.total_seconds())
    result = json.loads(result.content)
    # print(result)
    result["api_time"] = api_time

    # 获取预期结果
    check_dict = commonFuc().get_business_data(module, "checkDict1")
    # 断言实际结果中是否包含预期结果的内容
    commonFuc().check_result(check_dict, result)
    a = a + 1