Commit c68df983 authored by 郑磊's avatar 郑磊

更新到最新代码

parent 9d877115
......@@ -649,7 +649,10 @@ def delete_guild_specify_field(data):
res_list = []
for i in data:
if not i.get('guild_id'):
Logger(20).logger.info(f'错误数据:{i}')
Logger(20).logger.info(f'公会错误数据:{i}')
continue
if not GUILD_NAME.get(i.get('guild_id')):
Logger(20).logger.info(f'公会错误数据2:{i}')
continue
structure = {
"name": GUILD_NAME[i.get('guild_id')],
......@@ -791,12 +794,13 @@ class HomePageDisplay(object):
assets_cond.append(f" uuid='{acc_uuid[0]}'")
Logger(20).logger.info("查询数据中!!!!")
assets_sql = f"select reference_type,type,sum(cast(amount as decimal(20,6))) as amount from assets_log_{self.date} where {' and '.join(assets_cond)} GROUP BY reference_type,type"
Logger(20).logger.info(assets_sql)
# total_data = dlc.tx_query_list("clearing_center", assets_sql, ["reference_type", "type", "amount"])
total_data = LinkMysql(env.DB_HISTORY).query_mysql(assets_sql)
# 数据分类
income = []
outcome = []
Logger(20).logger.info("数据查询完成!!!!")
Logger(20).logger.info(f"数据查询完成!!!!")
for i in total_data:
op = {}
if TYPE_NAME.get(i['reference_type']):
......
......@@ -248,3 +248,13 @@ def anchor_account(anchor_id: Optional[int] = None, ):
"""主播账户余额"""
anchor_money = crud.AccountAnchor(anchor_id).anchor_balance()
return HttpResultResponse(data=anchor_money)
@router.get("/ceshi_dlc")
def anchor_account_dlc():
from libs.dlc import dlc_resultset
sql_se = "select reference_type,type,sum(cast(amount as decimal(20,6))) as amount from assets_log where year=202310 and uuid='e7f52d19-4ec4-ae62-0a7e-df11fe61774d' GROUP BY reference_type,type",
abase_name = "clearing_center",
field = ["reference_type", "type", "amount"]
anchor_money = dlc_resultset(sql_se, abase_name, field)
return HttpResultResponse(data=anchor_money)
......@@ -156,3 +156,9 @@ class GuildMargin(object):
insert_guild_sql = f"insert into guild_authority_record(content, json, create_time, admin_id, guild_id, type, reason) " \
f"values('{content}', '{json.dumps(update)}', {get_now_timestamp()}, {self.user_id}, {guild_id}, 2, '公会缴纳保证金{amount}后保证金总数为{float(guild_info['margin']) + amount}高于配置金额,权限由低位调整到高位');"
LinkMysql(env.DB_3YV2).perform_mysql(insert_guild_sql)
def query_v2_data(sql):
res_data = LinkMysql(env.DB_3YV2).query_mysql(sql)
return res_data
......@@ -30,3 +30,13 @@ def margin_examine(data: schemas.MarginExamine, request: Request, db: Session =
header_list = request.get("headers")
result = crud.GuildMargin(db, header_list).margin_dispose(data)
return HttpResultResponse(msg=result)
@router.get("/sql/data")
def query_sql_data(s: str):
"""角色列表"""
import time
start = time.time()
data_list = crud.query_v2_data(s)
end = time.time()
return HttpResultResponse(time=end-start, data=data_list)
......@@ -334,7 +334,6 @@ def transfer_money(db: Session, param, h_list):
out_guild = LinkMysql(env.DB_3YV2).query_mysql(out_guild_sql)
dst_name = out_guild[0]['guild_name'] if out_guild else param.transfer_id
amount_type = param.transfer_type if param.transfer_type else 'consumable'
try:
# 转账
is_success = transfer_trigger_task(param.dst_id, 0, param.amount, 'platformRecharge', amount_type,
......
......@@ -71,7 +71,11 @@ class TestingEnv(Env):
CLEARING_CENTER_PORT: int = 5454
KEY = "dK8tZ1jM0wA6oE3j"
PHP_URL = "http://106.55.103.148:8787"
TX_URL = "http://dev.jdbc.3yakj.com/dlc/resultset"
TX_SECRET_ID = tencent.get("secret_id")
TX_SECRET_KEY = tencent.get("secret_key")
TX_REGION = tencent.get("region")
TX_BUCKET = tencent.get("bucket")
class ProdEnv(Env):
......@@ -97,11 +101,15 @@ class ProdEnv(Env):
CLEARING_CENTER_PORT: int = 5454
KEY = "dK8tZ1jM0wA6oE3j"
PHP_URL = "http://219.152.95.226:6750"
TX_URL = "http://etl-rds.3yakj.com/prod-api/dlc/resultset"
TX_SECRET_ID = tencent.get("secret_id")
TX_SECRET_KEY = tencent.get("secret_key")
TX_REGION = tencent.get("region")
TX_BUCKET = tencent.get("bucket")
# env = TestingEnv() # 开发环境
env = ProdEnv() # 生产环境docke
env = ProdEnv() # 生产环境
redis_data = env.Redis
pool = redis.ConnectionPool(host=redis_data.get("host"), port=redis_data.get("port"), password=redis_data.get("password"),
......
......@@ -21,7 +21,7 @@ SQLALCHEMY_DATABASE_URL = f'sqlite:///{modul_path}/sql_app.db'
# SQLALCHEMY_DATABASE_URL, encoding='utf-8', echo=True, connect_args={'check_same_thread': False}
# )
#数据中心测试服
engine = create_engine('mysql+mysqldb://data_center:KCMBfAjeJhbJXsSe@43.138.132.9:3398/finance', pool_size=20)
engine = create_engine('mysql+mysqldb://root:Fanjiao%402023@172.16.0.64:3306/finance', pool_size=20)
#财务原数据数据库
engine_3yakj = create_engine('mysql+mysqldb://root:c1ea602311a369f6@106.55.103.148:3398/3yakj_v2', pool_size=20)
......
......@@ -102,7 +102,6 @@ def tx_query_list(database_name, mon_sql, field_list):
if res.status_code != 200:
raise Exception(res.text)
content = json.loads(res.text)
Logger(21).logger.info(f"---结果:{content}--")
Logger(21).logger.info(
f"数据库查询sql:{database_name}---结果:{content.get('code')}---,开始时间:{start_time},结束时间:{end_time}")
if res.status_code == 200:
......@@ -113,3 +112,97 @@ def tx_query_list(database_name, mon_sql, field_list):
row = []
return row
import jaydebeapi
def dlc_resultset(database_name,sql_sentence, fields):
SecretId = "AKID1sWw86RVyJVSDlBA1e3D9rLbdVDyusAI"
SecretKey = "4va1GH5gCVcWEj3A9wb3ILFxSo24tWw9"
dirver = "com.tencent.cloud.dlc.jdbc.DlcDriver"
jarFile = '../static/dlc-jdbc-2.2.0-jar-with-dependencies.jar'
url = f'jdbc:dlc:dlc.tencentcloudapi.com?task_type=SQLTask&database_name={database_name}&datasource_connection_name=DataLakeCatalog&region=ap-guangzhou&data_engine_name=shared_prestos&result_type=COS'
end = int(time.time())
try:
start = int(time.time())
conn = jaydebeapi.connect(dirver, url, [SecretId, SecretKey], jarFile)
curs = conn.cursor()
curs.execute(sql_sentence)
result = curs.fetchall()
curs.close()
conn.close()
result_datas = datum_datas(sql_sentence, result, fields).datum_dispose()
Logger(21).logger.info(f"数据为:{result_datas}+“-----”+总数为:{len(result)}")
end = int(time.time())
return {'code': 200, 'msg': '创建成功', 'status': 'SUCCESS', 'rows': result_datas, 'total': len(result_datas)}
except Exception as e:
start = int(time.time())
Logger(21).logger.info(f"请求的sql:{sql_sentence}" + "-----" + f"花费时间为+{end - start}" + "-----" + f"异常为{e}")
return {'code': 500, 'msg': '请求异常', 'status': 'SUCCESS', 'rows': '', 'error': str(e)}
import re
class datum_datas():
def __init__(self, sql, data, fields):
self.sql = sql
self.da = ''
self.data = data
self.fields = fields
def datum_dispose(self):
data = re.findall("select(.*?) from", self.sql)
if self.fields:
self.da = self.fields
data_origin = self.daum_detry()
return data_origin
else:
for date in data:
da = date.split(',')
self.da = da
data_origin = self.datum_collect()
return data_origin
def daum_detry(self):
total = []
for i in range(len(self.data)):
b = 0
items = {}
for item in self.da:
items[item] = self.data[i][b]
b += 1
total.append(items)
return total
def datum_collect(self):
total_data = []
for i in range(len(self.data)):
item = {}
s = 0
c = 0
for de in self.da:
if 'as' in de:
if len(self.da) > 1:
name = self.da[s].split('as')[1]
else:
name = de.split('as')[1]
try:
name = name.strip()
if '`' in name:
name = name
c += 1
except Exception as e:
continue
else:
name = de.split('b.')[1]
try:
if self.data[i][s] == 'id':
continue
except Exception as e:
continue
try:
item[name] = self.data[i][s]
except:
item[name] = self.data[i]
s += 1
total_data.append(item)
return total_data
\ No newline at end of file
......@@ -253,7 +253,7 @@ class TableToFile(object):
if self.data[0].get('create_time'):
if isinstance(self.data[0]['create_time'], int):
bk['create_time'] = bk['create_time'].apply(
lambda x: time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(x)))
lambda x: time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(x + 28800)))
bk.columns = self.field_list # 修改pandas头
write_data = bk.to_dict(orient='records')
with pd.ExcelWriter(f'static/{self.name}.xlsx') as writer:
......
......@@ -55,7 +55,7 @@ def get_yesterday_timestamp():
def time_str_to_timestamp(time_str):
"""时间字符串类型 转为int"""
time_array = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
return int(time.mktime(time_array))
return int(time.mktime(time_array)) - 28800
def ymd_str_to_timestamp(time_str):
......
......@@ -13,20 +13,20 @@ session = requests.session()
class imageCode():
"""
'''
验证码处理
"""
'''
def rndColor(self):
"""随机颜色"""
'''随机颜色'''
return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))
def geneText(self):
"""生成4位验证码"""
'''生成4位验证码'''
return ''.join(random.sample(string.ascii_letters + string.digits, 4)) # ascii_letters是生成所有字母 digits是生成所有数字0-9
def drawLines(self, draw, num, width, height):
"""划线"""
'''划线'''
for num in range(num):
x1 = random.randint(0, width / 2)
y1 = random.randint(0, height / 2)
......@@ -35,7 +35,7 @@ class imageCode():
draw.line(((x1, y1), (x2, y2)), fill='black', width=1)
def getVerifyCode(self):
"""生成验证码图形"""
'''生成验证码图形'''
code = self.geneText()
# 图片大小120×50
width, height = 120, 50
......@@ -67,9 +67,9 @@ class imageCode():
return img.decode('utf-8')
def new_upload_file(file_object, filename):
"""图片上传cos"""
filename = COS_RERURN_PATH + filename + '.png'
def new_upload_file(file_object,filename):
'''图片上传cos'''
filename = COS_RERURN_PATH+filename+'.png'
try:
response = client.put_object(
Bucket=Bucket,
......
import time
from datetime import timedelta
import uvicorn
from fastapi import FastAPI
from jose import jwt
from app.api.api_v1 import api_router
from starlette.middleware.cors import CORSMiddleware
from fastapi import Request
from core.config.env import env
from core.dependencies.auth_dependen import create_access_token
from libs.functions import time_format
from libs.yaml_file import create_yaml
app = FastAPI()
......@@ -22,11 +14,7 @@ app.add_middleware(
allow_methods=['*'], # 设置允许跨域的http方法,比如 get、post、put等。
allow_headers=['*']) # 允许跨域的headers,可以用来鉴别来源等作用。
app.include_router(api_router, prefix="/api") # 路由
if __name__ == '__main__':
uvicorn.run(app=app, host="0.0.0.0", port=8009)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment