Commit 1222ef1f authored by xianyang's avatar xianyang

1-19:账户类型汇总 查询改为mysql

parent 9b25bbfa
# financial-system
凡骄财务系统
~~~
|--app
|-- api 模块
|--account 账户相关
|--crud 数据处理类
|--schemas 参数验证
|-- views 视图层
|--export 导出,月度计算相关
|--home 无
|--margin 保证金相关
|--role 角色相关
|--settlement 转账,结算,提现,财务异常相关
|--users 用户
|--api_v1 路由分配
|--__init__ pymysql初始化
|-- bin
|--runtime
|--logs 日志文件
| -- configs
|--config 配置文件
|--configurable 配置文件
|--core
|--config 配置
|-- env 基础配置
|--dependencies 权限相关
|-- auth_dependen 用户验证
|-- base_dependen token判断
|--storage
|-- db 数据库连接
|--libs
|-- business 账户,公会初始化
|-- db_link 数据库连接(mysql,mongo,redis,dlc)
|-- functions 时间获取,数据处理公共类
|-- google_code 谷歌验证码
|-- models
|--account 账户相关
|--export 导出,月度计算相关
|--guild 公会模型
|--margin 保证金相关
|--role 角色相关
|--settlement 转账,结算,提现,财务异常相关
|--users 用户
|--api_v1 路由分配
|--static 导出包
|--docker-compose docker配置文件
|--Dockerfile docker配置文件
|--requirements.txt 环境包
|--main.py 启动文件
~~~
\ No newline at end of file
......@@ -775,7 +775,6 @@ class HomePageDisplay(object):
guild = [i['uuid'] for i in guild_data]
Logger(20).logger.info("系统,公会账户查询完毕!!")
assets_cond = []
assets_cond.append(f"year={self.date}")
if self.unique_tag == 'guild_account':
assets_cond.append(f" uuid in{tuple(guild)}")
elif self.unique_tag == 'user_account':
......@@ -791,8 +790,9 @@ class HomePageDisplay(object):
return [], 0, 0
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 where {' and '.join(assets_cond)} GROUP BY reference_type,type"
total_data = dlc.tx_query_list("clearing_center", assets_sql, ["reference_type", "type", "amount"])
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"
# 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 = []
......
......@@ -113,98 +113,3 @@ 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.info(f"数据为:{result_datas}+“-----”+总数为:{len(result)}")
end = int(time.time())
return Logger(21).logger.info(
{'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
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