Commit d49f00dc authored by xupeng's avatar xupeng

代码提交

parent f3e40046
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<excludeFolder url="file://$MODULE_DIR$/fs-env" /> <excludeFolder url="file://$MODULE_DIR$/fs-env" />
<excludeFolder url="file://$MODULE_DIR$/venv" /> <excludeFolder url="file://$MODULE_DIR$/venv" />
</content> </content>
<orderEntry type="jdk" jdkName="Python 3.8 (financial-system)" jdkType="Python SDK" /> <orderEntry type="jdk" jdkName="Python 3.8 (financial_system)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
<component name="PyDocumentationSettings"> <component name="PyDocumentationSettings">
......
...@@ -12,3 +12,4 @@ def get_db(): ...@@ -12,3 +12,4 @@ def get_db():
db.close() db.close()
This diff is collapsed.
import datetime
import math import math
import threading import threading
import requests
from sqlalchemy import and_, func from sqlalchemy import and_, func
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from libs.functions import get_now_timestamp, get_now_datetime from core.config.env import env
from libs.db_link import LinkMysql
from libs.functions import get_now_timestamp, get_now_datetime, search, get_ip, get_order
from libs.orm import QueryAllData from libs.orm import QueryAllData
from libs.token_verify import get_current_user from libs.token_verify import get_current_user
from models.recharge import Settlement, Fitransferlog, FinanceFixLog, Account_log from models.recharge import Settlement, Fitransferlog, FinanceFixLog, Account_log, Paymentlog
from models.guild import Guild from models.guild import Guild
from models.account import Account from models.account import Account
from models.users import V2User from models.users import V2User
...@@ -18,7 +24,7 @@ locka = threading.Lock() ...@@ -18,7 +24,7 @@ locka = threading.Lock()
class GuildSet(object): class GuildSet(object):
def __init__(self): def __init__(self):
self.settlement_list = [] self.settlement_list = []
self.linkmysql = LinkMysql(env.MysqlDB)
def dispose_guild_data(self, db, num): def dispose_guild_data(self, db, num):
guild_list = [] guild_list = []
locka.acquire() locka.acquire()
...@@ -29,18 +35,18 @@ class GuildSet(object): ...@@ -29,18 +35,18 @@ class GuildSet(object):
guild_list.append(info_dict) guild_list.append(info_dict)
self.settlement_list += guild_list self.settlement_list += guild_list
def query_guild_data(self, db): # def query_guild_data(self, db):
msg_count = db.query(func.count(Settlement.id)).scalar() # msg_count = db.query(func.count(Settlement.id)).scalar()
num = math.ceil(msg_count / 10) # num = math.ceil(msg_count / 10)
# 创建线程 # # 创建线程
ths = [] # ths = []
for x in range(num): # for x in range(num):
ths.append(threading.Thread(target=self.dispose_guild_data, args=[db, x])) # ths.append(threading.Thread(target=self.dispose_guild_data, args=[db, x]))
for y in range(num): # for y in range(num):
ths[y].start() # ths[y].start()
for z in range(num): # for z in range(num):
ths[z].join() # ths[z].join()
return self.settlement_list # return self.settlement_list
def get_guild_data(self, db: Session, param): def get_guild_data(self, db: Session, param):
"""公会结算""" """公会结算"""
...@@ -68,33 +74,60 @@ class GuildSet(object): ...@@ -68,33 +74,60 @@ class GuildSet(object):
if guild_info: if guild_info:
return guild_info[(int(param.page) - 1) * param.size:param.size * param.page], len(guild_info) return guild_info[(int(param.page) - 1) * param.size:param.size * param.page], len(guild_info)
return [], 0 return [], 0
# def get_guild_data(self,page,size):
# count_sql = f'SELECT count(*) FROM `guild_settlement_log` as t inner join guild as g on g.id=t.guild_id'
# count = self.linkmysql.query_mysql(count_sql)[0].get("count(*)") # 总条数
# sql = f'SELECT t.guild_id,b.card_no as account,t.guild_name,IFNULL(t.balance,0) +IFNULL(t.pearl,0) as all_money,FROM_UNIXTIME(t.create_time,"%Y-%c-%d %h:%i:%s") as create_time,t.`status`,b.bank_of_deposit_name as bank_name FROM `guild_settlement_log` as t inner join guild as g on g.id=t.guild_id LEFT JOIN bind_bank as b on b.guild_id=t.guild_id ORDER BY t.id limit {page},{(size)}'
# statement_list = self.linkmysql.query_mysql(sql) # 提现总数
# return statement_list, count
def update_guild_info(self, db: Session, data): def update_guild_info(self,data):
"""公会结算修改""" """公会结算修改"""
if (data.status or data.status == 0) and data.status < 2: id =data.get("id")
db.query(Settlement).filter(Settlement.id == data.id).update({Settlement.status: data.status + 1}) guild_sql =f"SELECT count(*) FROM `guild_settlement_log` where id={id})"
db.commit() guild_data = self.linkmysql.query_mysql(guild_sql)
if guild_data:
status=1 if data.get("status")==0 else 2
def paymentset_guild_data(db: Session, dbname, params): guild_sql=f"UPDATE guild_settlement_log set status={status} where id={id}"
paymentset_filters = [] self.linkmysql.excete_mysql(guild_sql)
if params.get("id"):
paymentset_filters.append(dbname.guild_id == params.get("guild_id"))
if params.get("cont"):
paymentset_filters.append(dbname.cont == params.get("cont"))
if params.get("money"): # def paymentset_guild_data(db: Session, dbname, params):
paymentset_filters.append(dbname.money == params.get("money")) # paymentset_filters = []
if params.get("url"): # if params.get("id"):
paymentset_filters.append(dbname.url == params.get("url")) # paymentset_filters.append(dbname.guild_id == params.get("guild_id"))
if params.get("uuid"): # if params.get("cont"):
paymentset_filters.append(dbname.uuid == params.get("uuid")) # paymentset_filters.append(dbname.cont == params.get("cont"))
if params.get("start_time"): # if params.get("money"):
paymentset_filters.append(dbname.create_time >= params.get("start_time")) # paymentset_filters.append(dbname.money == params.get("money"))
if params.get("end_time"): # if params.get("url"):
paymentset_filters.append(dbname.create_time <= params.get("end_time")) # paymentset_filters.append(dbname.url == params.get("url"))
querydata, count = QueryAllData(db, dbname, params, paymentset_filters).query_data() # if params.get("uuid"):
data = [QueryAllData.serialization(item) for item in querydata] # paymentset_filters.append(dbname.uuid == params.get("uuid"))
return data, count # if params.get("start_time"):
# paymentset_filters.append(dbname.create_time >= params.get("start_time"))
# if params.get("end_time"):
# paymentset_filters.append(dbname.create_time <= params.get("end_time"))
# querydata, count = QueryAllData(db, dbname, params, paymentset_filters).query_data()
# data = [QueryAllData.serialization(item) for item in querydata]
# return data, count
def paymentset_guild_data(page,size):
count_sql = f"SELECT count(*) FROM `payment_log`"
paymentset_sql = LinkMysql(env.MysqlDB).query_mysql(count_sql)
total=paymentset_sql[0].get("count(*)")
list_sql=f"SELECT money,cont,url,FROM_UNIXTIME(create_time,'%Y-%c-%d %h:%i:%s') as create_time FROM `payment_log` ORDER BY id desc limit {page},{(size)} "
payment_list = LinkMysql(env.MysqlDB).query_mysql(list_sql)
list=[]
for item in range(len(payment_list)):
payment_list[item]['url'] = env.oss_url + payment_list[item].get("url")
items = payment_list[item]
list.append(items)
return list, total
def outon_account_data(db: Session, dbname, params): def outon_account_data(db: Session, dbname, params):
...@@ -259,4 +292,31 @@ def update_recovery_table(db: Session,data): ...@@ -259,4 +292,31 @@ def update_recovery_table(db: Session,data):
except Exception as e: except Exception as e:
print(e) print(e)
return {} return {}
return data return data
\ No newline at end of file
def transfer_query(data):
'''
调用
'''
print(data)
print(data.cont)
payment_sql=f"insert into payment_log(cont,money,url,uuid) values({data.cont},{data.money},{data.url},{data.uuid})"
print(payment_sql)
LinkMysql(env.MysqlDB).excete_mysql(payment_sql)
params={}
if data.money>0:
method='Server.BaseExecute.Increase'
params['dst_uuid']=data.uuid
params['ip']=get_ip()
params['dst_amount_type']='Payment'
params['amount']='consumable'
params['fee']=data.money*-1
params['reference_number']=get_order()
params['reference_type']='finance_admin_fix'
params['reference_info']=[]
params['timestamp']=0
else:
method='Server.BaseExecute.Reduce'
response =search(params=data,method=method)
print(response.text)
\ No newline at end of file
...@@ -87,7 +87,7 @@ class PaymentAdd(BaseModel): ...@@ -87,7 +87,7 @@ class PaymentAdd(BaseModel):
url: str url: str
def __str__(self): def __str__(self):
return "uuid:%s, money:%s" % (str(self.uuid), self.money) return "uuid:%s, money:%s ,cont:%s ,url:%s" % (str(self.uuid), self.money,self.cont,self.url)
class PaymentAccountlList(PaymentWithdrawalList): class PaymentAccountlList(PaymentWithdrawalList):
......
import json import json
from datetime import datetime from datetime import datetime
from charset_normalizer.md import Optional
from app.api.statement import crud, schemas, guild from app.api.statement import crud, schemas, guild
from app.api.account import schemas as acc_schemas from app.api.account import schemas as acc_schemas
from app import get_db from app import get_db
...@@ -7,57 +10,67 @@ from fastapi import Depends, APIRouter, File, Request ...@@ -7,57 +10,67 @@ from fastapi import Depends, APIRouter, File, Request
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from app.api.statement.crud import RechargeStatement, WithdrawStatement from app.api.statement.crud import RechargeStatement, WithdrawStatement
from app.api.statement.guild import GuildSet, paymentset_guild_data, outon_account_data, accout_list_data, \ from app.api.statement.guild import GuildSet, paymentset_guild_data, outon_account_data, accout_list_data, \
query_uuid_or_user_number, account_money, transfer_money query_uuid_or_user_number, account_money, transfer_money, transfer_query
from app.api.statement.schemas import PaymentWithdrawalList, PaymentAdd, PaymentAccountlList, UserNumber, CreateBill from app.api.statement.schemas import PaymentWithdrawalList, PaymentAdd, PaymentAccountlList, UserNumber, CreateBill
from core.config.env import env
from libs.functions import search
from libs.img_code import new_upload_file, random_number from libs.img_code import new_upload_file, random_number
from libs.result_format import HttpResultResponse from libs.result_format import HttpResultResponse
from libs.token_verify import login_required from libs.token_verify import login_required
from models.recharge import Paymentlog, Fiaccount, Fitransferlog, Account_log from models.recharge import Paymentlog, Fitransferlog, Account_log
from models.account import Account from models.account import Account
router = APIRouter() router = APIRouter()
@router.post("/recharge/list") @router.get("/recharge/list")
def statement_recharge_list(data: schemas.StatementList,token=Depends(login_required), db: Session = Depends(get_db)): def statement_recharge_list(page: Optional[int] = 1, size: Optional[int] = 10,token=Depends(login_required)):
"""充值报表列表""" """充值报表列表"""
statement_list, total, money = RechargeStatement().get_statements(db, data, 1) # page: Optional[int] = None
return HttpResultResponse(total=total, count=float(money), data=statement_list) # size: Optional[int] = None
# start_time: Optional[str] = ""
# end_time: Optional[str] = ""
# order_number: Optional[str] = ""
# user_id: Optional[str] = ""
# sid: Optional[str] = ""
# pay_channel: Optional[str] = ""
total,statement_list,money= RechargeStatement().query_data(page,size)
return HttpResultResponse(total=total,count=float(money),data=statement_list)
@router.post("/derive/excel") @router.post("/derive/excel")
def statement_derive_excel(data: schemas.StatementList, request: Request, db: Session = Depends(get_db)): def statement_derive_excel(data: schemas.StatementList, request: Request, db: Session = Depends(get_db)):
"""充值报表导出""" """充值报表导出 需要修改"""
header_list = request.get("headers") header_list = request.get("headers")
statement_list = RechargeStatement().get_statements(db, data) statement_list = RechargeStatement().get_statements(db, data)
return crud.data_to_file(db, statement_list, "充值报表", header_list) return crud.data_to_file(db, statement_list, "充值报表", header_list)
@router.post("/userWithdrawal/list") @router.get("/userWithdrawal/list")
def user_withdrawal_list(data: schemas.UserWithdrawalList,token=Depends(login_required), db: Session = Depends(get_db)): def user_withdrawal_list(page: Optional[int] = 0, size: Optional[int] = 10,token=Depends(login_required)):
"""用户提现列表""" """用户提现列表"""
statement_list, total, money, final_money = WithdrawStatement().get_user_withdraw_cash(db, data) statement_list, total, money, final_money = WithdrawStatement().get_user_withdraw_cash(page,size)
return HttpResultResponse(total=total, count=float(money), actual_count=final_money, data=statement_list) return HttpResultResponse(total=total, count=float(money), actual_count=final_money, data=statement_list)
#http://fiance-rys.3yakj.com/Guild/settlement
@router.post("/guildWithdrawal/list") @router.get("/guildWithdrawal/list")
def guild_withdrawal_list(data: schemas.GuildWithdrawalList,token=Depends(login_required), db: Session = Depends(get_db)): def guild_withdrawal_list(page: Optional[int] = 1, size: Optional[int] = 10,token=Depends(login_required)):
"""公会提现列表""" """公会提现列表"""
guild_list, total, money, final_money = WithdrawStatement().get_guild_withdraw_cash(db, data) guild_list, total, money, final_money = WithdrawStatement().get_guild_withdraw_cash(page,size)
return HttpResultResponse(total=total, count=float(money), actual_count=final_money, data=guild_list) return HttpResultResponse(total=total, count=float(money), actual_count=final_money, data=guild_list)
@router.post("/guild/settlement") @router.get("/guild/settlement")
def guild_settlement_list(data: schemas.GuildWithdrawalList,token=Depends(login_required), db: Session = Depends(get_db)): def guild_settlement_list(page: Optional[int] = 1, size: Optional[int] = 10,token=Depends(login_required)):
"""公会结算""" """公会结算"""
guild_list, total = GuildSet().get_guild_data(db, data) guild_list, total = GuildSet().get_guild_data(page,size)
return HttpResultResponse(total=total, data=guild_list) return HttpResultResponse(total=total, data=guild_list)
@router.post("/guild/payment") @router.get("/guild/payment")
def guild_payment_list(data:PaymentWithdrawalList,token=Depends(login_required),db: Session = Depends(get_db)): def guild_payment_list(page: Optional[int] = 1, size: Optional[int] = 10,token=Depends(login_required)):
"""打款记录""" """打款记录"""
payment_list, total = paymentset_guild_data(db,Paymentlog,data.dict(exclude_none=True)) payment_list, total = paymentset_guild_data(page,size)
return HttpResultResponse(total=total, data=payment_list) return HttpResultResponse(total=total, data=payment_list)
...@@ -72,13 +85,9 @@ async def uploadFile(a_file: bytes = File(...),token=Depends(login_required),): ...@@ -72,13 +85,9 @@ async def uploadFile(a_file: bytes = File(...),token=Depends(login_required),):
@router.post("/payment/add") @router.post("/payment/add")
def guild_payment_list(data:PaymentAdd,token=Depends(login_required),db: Session = Depends(get_db)): def guild_payment_list(data:PaymentAdd,db: Session = Depends(get_db)):
"""提交打款""" """提交打款"""
dataPayment = Paymentlog(uuid=data.uuid, money=data.money, cont=data.cont,url=data.url,create_time=datetime.now()) transfer_query(data)
db.add(dataPayment)
db.commit()
db.refresh(dataPayment)
db.close()
return HttpResultResponse(data='') return HttpResultResponse(data='')
...@@ -121,9 +130,9 @@ def account_transfer_money(data: CreateBill, request: Request, db: Session = Dep ...@@ -121,9 +130,9 @@ def account_transfer_money(data: CreateBill, request: Request, db: Session = Dep
@router.post("/guild/update") @router.post("/guild/update")
def guild_update_list(data: schemas.GuildUpdate, db: Session = Depends(get_db)): def guild_update_list(data: schemas.GuildUpdate,token=Depends(login_required)):
"""公会结算""" """公会结算"""
GuildSet().update_guild_info(db, data) GuildSet().update_guild_info(data)
return HttpResultResponse() return HttpResultResponse()
......
...@@ -65,7 +65,6 @@ def token_user(token=Depends(auth_token), db: Session = Depends(get_db)): ...@@ -65,7 +65,6 @@ def token_user(token=Depends(auth_token), db: Session = Depends(get_db)):
@router.post("/create") @router.post("/create")
def create_user(data: schemas.UserCreate,token=Depends(login_required), db: Session = Depends(get_db)): def create_user(data: schemas.UserCreate,token=Depends(login_required), db: Session = Depends(get_db)):
"""添加用户""" """添加用户"""
print(data)
db_user = crud.get_user_by_name(db, username=data.username) db_user = crud.get_user_by_name(db, username=data.username)
if db_user: if db_user:
return HttpResultResponse(code=400, msg=HttpMessage.USER_EXIST) return HttpResultResponse(code=400, msg=HttpMessage.USER_EXIST)
......
...@@ -47,7 +47,10 @@ class Env(BaseSettings): ...@@ -47,7 +47,10 @@ class Env(BaseSettings):
SECRET_KEY: str = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7" SECRET_KEY: str = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7"
ALGORITHM: str = "HS256" ALGORITHM: str = "HS256"
PASSWORD: str = "fj123456" PASSWORD: str = "fj123456"
DB_HISTORY = "3y_history" DB_HISTORY = "3yakj_v2"
# guild_url=""
oss_url='http://oss.3yakj.com/application_static_data'
clear_url="http://192.168.4.124:8002"
class TestingEnv(Env): class TestingEnv(Env):
......
...@@ -20,11 +20,15 @@ SQLALCHEMY_DATABASE_URL = f'sqlite:///{modul_path}/sql_app.db' ...@@ -20,11 +20,15 @@ SQLALCHEMY_DATABASE_URL = f'sqlite:///{modul_path}/sql_app.db'
# engine = create_engine( # engine = create_engine(
# SQLALCHEMY_DATABASE_URL, encoding='utf-8', echo=True, connect_args={'check_same_thread': False} # 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') engine = create_engine('mysql+mysqldb://data_center:KCMBfAjeJhbJXsSe@43.138.132.9:3398/finance')
#财务原数据数据库
engine_3yakj = create_engine('mysql+mysqldb://root:c1ea602311a369f6@106.55.103.148:3398/3yakj_v2')
# 数据库 session 类,用于创建 session 实例 # 数据库 session 类,用于创建 session 实例
# autoflush 是指发送数据库语句到数据库,但数据库不一定执行写入到磁盘 # autoflush 是指发送数据库语句到数据库,但数据库不一定执行写入到磁盘
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Session3ya = sessionmaker(autocommit=False, autoflush=False, bind=engine_3yakj)
# 创建 Base 类,用于 ORM 模型的继承 # 创建 Base 类,用于 ORM 模型的继承
Base = declarative_base() Base = declarative_base()
...@@ -40,3 +40,9 @@ class LinkMysql(object): ...@@ -40,3 +40,9 @@ class LinkMysql(object):
cursor.close() cursor.close()
conn.close() conn.close()
return last_id return last_id
#执行
def excete_mysql(self, sql):
conn = self.POOLMYSQL.connection()
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute(sql)
import hashlib import hashlib
import json
import socket
import time import time
import random
import uuid as u import uuid as u
from datetime import datetime from datetime import datetime, timedelta
import requests
from core.config.env import env
def get_now_timestamp(): def get_now_timestamp():
...@@ -17,11 +24,33 @@ def get_now_timestamp(): ...@@ -17,11 +24,33 @@ def get_now_timestamp():
def get_now_datetime(): def get_now_datetime():
""" """
获取现在时间 获取现在时间
return int eg:1667664000
""" """
return datetime.now().strftime('%Y-%m-%d %H:%M:%S') return datetime.now().strftime('%Y-%m-%d %H:%M:%S')
def get_before_timestamp(n):
"""获取n天前时间"""
data_str = datetime.now() - timedelta(days=int(n))
before_n_days = data_str.strftime("%Y-%m-%d")
return before_n_days
def get_yesterday_timestamp():
"""获取昨天时间戳"""
data_str = datetime.now() - timedelta(days=1)
before_n_days = data_str.strftime("%Y-%m-%d")
time_array = time.strptime(f"{before_n_days} 00:00:00", "%Y-%m-%d %H:%M:%S")
today_str = datetime.now().strftime('%Y-%m-%d')
today_array = time.strptime(f"{today_str} 00:00:00", "%Y-%m-%d %H:%M:%S")
return int(time.mktime(time_array)), int(time.mktime(today_array))
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))
def md5(s): def md5(s):
"""md5加密""" """md5加密"""
sign_str = hashlib.md5() sign_str = hashlib.md5()
...@@ -34,6 +63,13 @@ def uuid(): ...@@ -34,6 +63,13 @@ def uuid():
return str(u.uuid4()) return str(u.uuid4())
def get_order():
"""生成订单号"""
number = random.randint(10000000, 99999999)
timestamp = get_now_timestamp()
return datetime.now().strftime('%Y%m%d%H%M%S') + str(timestamp) + number
# 页数页码校验 # 页数页码校验
def wrapper_out(): def wrapper_out():
def wrapper(func): def wrapper(func):
...@@ -44,3 +80,28 @@ def wrapper_out(): ...@@ -44,3 +80,28 @@ def wrapper_out():
return ret return ret
return inner return inner
return wrapper return wrapper
def search(params, method):
"""
调用清算接口
:param params: 传入参数
:param method: 传入方法
"""
url = env.clear_url
header = {
"RPC-METHOD": method,
"RPC-ID": '159',
"RPC-PROTOCOL": "jsonrpc",
"RPC-VERSION": "2.0"
}
response = requests.post(url=url, headers=header, json=params)
if response.status_code != 200:
return {"status": 0}
text = json.loads(response.text)
return {"status": 1, 'data': text.get('result')}
def get_ip():
res = socket.gethostbyname(socket.gethostname())
return res
\ No newline at end of file
import decimal import decimal
import json import json
from datetime import datetime
from fastapi import status from fastapi import status
from fastapi.responses import Response from fastapi.responses import Response
...@@ -24,17 +26,20 @@ class DecimalEncoder(json.JSONEncoder): ...@@ -24,17 +26,20 @@ class DecimalEncoder(json.JSONEncoder):
def default(self, res): def default(self, res):
if isinstance(res, decimal.Decimal): if isinstance(res, decimal.Decimal):
return float(res) return float(res)
if isinstance(res, datetime):
print(res.strftime("%Y-%m-%d %H:%M:%S"))
return res.strftime("%Y-%m-%d %H:%M:%S")
super(DecimalEncoder, self).default(res) super(DecimalEncoder, self).default(res)
class HttpResultResponse(Response): class HttpResultResponse(Response):
def __init__(self, code=None, msg=None, **kwargs): def __init__(self, code=None, msg=None,**kwargs):
result_dict = { result_dict = {
'code': code if code else status.HTTP_200_OK, 'code': code if code else status.HTTP_200_OK,
'msg': msg if msg else HttpMessage.SUCCESS 'msg': msg if msg else HttpMessage.SUCCESS,
} }
result_dict = {**result_dict, **kwargs} result_dict = {**result_dict, **kwargs}
print(result_dict)
super().__init__( super().__init__(
content=json.dumps(result_dict, cls=DecimalEncoder), content=json.dumps(result_dict, cls=DecimalEncoder),
media_type="application/json", media_type="application/json",
......
import datetime import datetime
import json import json
from jose.exceptions import JWEError
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from fastapi import Depends, HTTPException, status from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer from fastapi.security import OAuth2PasswordBearer
from jose import jwt, JWTError from jose import jwt, JWTError, ExpiredSignatureError
from app import get_db
from app.api.role.crud import get_id_to_authority from app.api.role.crud import get_id_to_authority
from app.api.users import crud from app.api.users import crud
from app.api.users.login_verification import get_user from app.api.users.login_verification import get_user
from core.config.env import env from core.config.env import env
from libs.functions import md5
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
...@@ -49,10 +52,11 @@ def get_current_user(db: Session, token: str = Depends(oauth2_scheme)): ...@@ -49,10 +52,11 @@ def get_current_user(db: Session, token: str = Depends(oauth2_scheme)):
user_info = crud.get_user_by_name(db, user_data.username) user_info = crud.get_user_by_name(db, user_data.username)
role_info = get_id_to_authority(db, user_info.role_id) role_info = get_id_to_authority(db, user_info.role_id)
auth_list = role_info.authority.split(',') auth_list = role_info.authority.split(',')
auth_list = [int(i) for i in auth_list] if len(auth_list) > 1 else []
json_data = { json_data = {
"user_id": user_data.id, "user_id": user_data.id,
"username": user_data.username, "username": user_data.username,
"authority": [int(i) for i in auth_list], "authority": auth_list,
"type": 0 if '0' in auth_list else 1 "type": 0 if '0' in auth_list else 1
} }
return json_data return json_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