# TODO:连接数据库
import pymysql
import pandas as pd
import matplotlib.pyplot as plt




# 打开数据库连接
db = pymysql.connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='123456',
    db='crm',
    charset='utf8'
)

# 获取游标
# cursor = db.cursor()
# sql = "select * from person where id = '%s'"
# data = ('20000006',)
# cursor.execute(sql % data)
# print(cursor.fetchall())

# 第二步:查询person、apply、call三张表
# 保存表内容,方便后续使用

# 查询person表
# person_sql = "select * from person"
# person_detail=pd.read_sql(sql=person_sql,con=db)
# print(person_detail)

# # 查询apply表
# apply_sql = "select applicant,status from apply where applicant = '%s' "
# apply_detail=pd.read_sql(sql=apply_sql,con=db)

# # 查询call表
# call_sql = "select * from call"
# call_detail=pd.read_sql(sql=call_sql,con=db)



# 任务1:查询某个用户是否有处于OVERDUE状态的进件
# 方法1: 通过代码查询
 # 获取当前借款人是否有OVERDUE状态的进件(通过代码实现)
def get_od_apply(person_id):
    apply_sql = "select applicant,status from apply"
    apply_detail = pd.read_sql(sql=apply_sql, con=db)
    apply_list = []
    apply_list.append(apply_detail)
    print(apply_list)
    # 通过apply_detail拿到'applicant','status'两列的值
    for per_id,status in apply_detail:
        if apply_detail[per_id] == person_id:
            if apply_detail[status] == "OVERDUE":
                return True
            else:
                return False

    # apply_list =
    # 遍历apply_list,找到person_id,如果有OVERDUE状态进件则返回True,否则返回False

# print(get_od_apply(20000001))    # False
# print(get_od_apply("20000035"))    # True
# 方法2: 通过sql语句查询
def get_od_apply1(person_id):
    apply_sql = "select count(*) from apply where status = 'OVERDUE' and applicant = %s"
    apply_detail = pd.read_sql(sql=apply_sql, con=db, params=[person_id])
    print(apply_detail.values)
    if apply_detail.values == 0:
        return False
    else:return True

# The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
print(get_od_apply1("20000001"))
print(get_od_apply1("20000035"))