main.py
# -*- coding: utf-8 -*-
"""
Created on Sat Dec 16 13:43:13 2023
每20分钟执行一次
crontab -e
*/20 * * * * cd /data/niceloo; /usr/bin/python3 main.py >>run.log
18,38,58 * * * * cd /data/niceloo; /usr/bin/python3 main.py >>run.log
"""
import json
import requests
from datetime import datetime
from local_log import logger
from mysql_helper import mysql_db
from tools import transform_string, to_table
from sqls import make_sql1, make_sql2
current_time = datetime.now().strftime('%Y-%m-%d-%H:%M:%S')
sql="""
select logTime, sum(advancePay) as advancePaySum, sum(advanceReturn) as advanceReturnSum
FROM ads_fineReport.qc_school_total_mobile_uat_his
group by logTime
order by 1 desc
limit 2
"""
result = mysql_db.query(sql)
if result:
line0 = result[0]
line1 = result[1]
time0 = line0[0].strftime('%Y-%m-%d-%H:%M:%S')
time1 = line1[0].strftime('%Y-%m-%d-%H:%M:%S')
collection0 = line0[1]
collection1 = line1[1]
refund0 = line0[2]
refund1 = line1[2]
payDiff = collection0 - collection1
content0 = ""
content1 = ""
if payDiff < -5000:
_s0 = "【收款】【系统异常变动提醒】\n"+time0+": "+transform_string(collection0)
_s1 = time1+": " + transform_string(collection1)
_diff = "diff: "+str(payDiff)
pay_sql = make_sql1(time0, time1)
logger.info(pay_sql)
r0 = mysql_db.query(pay_sql)
# print("r0:", r0)
pay_table = ""
if r0:
pay_table = to_table(r0)
content0 = '\n'.join([_s0, _s1, _diff, "明细:", pay_table])
returnDiff = refund0 - refund1
if returnDiff < -100000:
_s0 = "【退款】【系统异常变动提醒】\n"+time0+": "+transform_string(refund0)
_s1 = time1+": " + transform_string(refund1)
_diff = "diff: "+str(returnDiff)
return_sql = make_sql2(time0, time1)
logger.info(return_sql)
r1 = mysql_db.query(return_sql)
# print("r1:", r1)
return_table = ""
if r1:
return_table = to_table(r1)
content1 = '\n'.join([_s0, _s1, _diff, "明细:", return_table])
# if content0 or content1:
if content0:
# content = '\n'.join([content0, content1])
content = content0
content = content.strip()
if content:
content = "本次为20分钟间隔查询数据\n" + content
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=******" # 企业微信生成对应的key
payload = json.dumps({
"msgtype": "text",
"text": {"content":content,
"mentioned_mobile_list":["@all"]}
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
logger.info(response.text)
logger.info(current_time + " " + "Done!")
if content1:
# content = '\n'.join([content0, content1])
content = content1
content = content.strip()
if content:
content = "本次为20分钟间隔查询数据\n" + content
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=******" # 企业微信生成对应的key
payload = json.dumps({
"msgtype": "text",
"text": {"content":content}
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
logger.info(response.text)
logger.info(current_time + " " + "Done!")
else:
logger.info(current_time + " " + "异常")