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

"""
case_tag:cmdc_api,cmdc需求单删除,2250,2250-9,sit,bs
主数据平台:运营后台管理系统需求单删除接口
"""

from common.common_func import commonFuc
from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
from common.db.db import mySql
import requests
import json

module = "cmdc_demand_delete"

# 第一步登录后台运营平台获取cmdc_access_token
# 获取登录所需账号密码
username = commonFuc().get_business_data(module, "username")
password = commonFuc().get_business_data(module, "password")
# 获取登录后Cmdc_access_token
cmdc_access_token = CmdcDoLogin(username, password).get_token()
headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)

# 进行需求单创建
url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand")
request_body = commonFuc().get_business_data(module, "payload_demand")
# 发送请求
result = requests.post(url, json=request_body, headers=headers)
# 获取接口响应时间
api_time = result.elapsed.total_seconds()
result = json.loads(result.content)
result["api_time"] = api_time

# 频繁创建需求单会创建失败，因此添加了判断
if result["code"] == "200":
    # 数据库操作
    mysql_handle = mySql()
    # 获取conf.ini文件中配置的数据库信息
    host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")

    # 进行需求单查询
    sql = "SELECT t.demandCode FROM `cmdc-order`.tc_demand t ORDER BY demandId DESC LIMIT 1"
    demand_code = mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]
    sql = "UPDATE `cmdc-order`.tc_demand t SET t.orderStatus = 99 WHERE t.demandCode = '{}'".format(demand_code)
    mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-order", sql)

    # 第二步查询需求单列表中待首营的需求单
    url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
    request_body1 = commonFuc().get_business_data(module, "payload10")
    # 发送请求
    result1 = requests.post(url1, json=request_body1, headers=headers)
    result1 = json.loads(result1.content)
    # print(result1)
    # 获取demandId
    demand_id = result1["data"]["list"][0]["demandId"]
    # print(demand_id)

    # 第三步删除操作
    url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
    request_body = commonFuc().get_business_data(module, "payload1", demand_id)

    """
     场景:需求删除
     用例名称：需求单删除
     输出：{"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
     备注：此模块删除为待首营状态下需求单对应的删除图标，非删除按钮
    """

    # 发送请求
    result = requests.post(url, json=request_body, headers=headers)
    # 获取接口响应时间
    api_time = result.elapsed.total_seconds()
    result = json.loads(result.content)
    result["api_time"] = api_time
    # 获取预期结果
    check_dict = commonFuc().get_business_data(module, "checkDict2")
    # 断言实际结果中是否包含预期结果的内容
    commonFuc().check_result(check_dict, result)
else:
    # 获取预期结果
    check_dict = commonFuc().get_business_data(module, "checkDict12")
    # 断言实际结果中是否包含预期结果的内容
    commonFuc().check_result(check_dict, result)
