Commit 69fc622c authored by xupeng's avatar xupeng

代码修改

parent f0925b50
......@@ -47,3 +47,20 @@ class FixTable(BaseModel):
money: float
amount_type: str
remark: str
class Recovery_fix(PublicModel):
uuid: Optional[str] = None
class RecoveryTable(BaseModel):
uuid:Optional[str] = None
type: Optional[int] = None
out_money: Optional[int] = None
entry_money: Optional[float] = None
from_time: Optional[str] = None
cont: Optional[str] = None
class RecoveryupdateTable(RecoveryTable):
id:int
\ No newline at end of file
......@@ -12,3 +12,6 @@ def guild_margin_list(data: schemas.GuildMarginList, db: Session = Depends(get_d
"""保证金列表"""
result = crud.get_margin(db, data)
return HttpResultResponse(total=len(result), data=result[int(data.page-1)*data.size:data.page*data.size])
......@@ -6,7 +6,7 @@ from sqlalchemy.orm import Session
from libs.functions import get_now_timestamp, get_now_datetime
from libs.orm import QueryAllData
from libs.token_verify import get_current_user
from models.recharge import Settlement, Fitransferlog, FinanceFixLog
from models.recharge import Settlement, Fitransferlog, FinanceFixLog, Fiaccount, Account_log
from models.users import V2User
from models.guild import Guild
from models.account import Account
......@@ -199,3 +199,54 @@ def create_fix_table(db: Session, param, h_list):
print(e)
return {}
return present
def recovery_fix_data(db: Session, dbname, params):
recovery_list = []
if params.get("uuid"):
recovery_list.append(dbname.uuid == params.get("uuid"))
if params.get("start_time"):
recovery_list.append(dbname.create_time >= params.get("start_time"))
if params.get("end_time"):
recovery_list.append(dbname.create_time <= params.get("end_time"))
querydata, count = QueryAllData(db, dbname, params, recovery_list).query_data()
data = [QueryAllData.serialization(item) for item in querydata]
for item in data:
accout_filters = []
accout_filters.append(dbname.uuid == item.get("uuid"))
names=QueryAllData(db, Fiaccount,{},accout_filters).query_filter()
if names:
item['name']=names.name
item['uuid']=names.uuid
else:
item['name']=''
return data, count
def create_recovery_table(db: Session, param):
"""增加修复报表"""
try:
present = Account_log(type=param.type, uuid=param.uuid,out_money=param.out_money,
cont=param.cont, entry_money=param.entry_money,from_time=param.from_time,
create_time=get_now_datetime())
db.add(present)
db.commit()
db.refresh(present)
except Exception as e:
return {}
return present
def update_recovery_table(db: Session,data):
"""修改修复报表"""
try:
accout_filters = []
accout_filters.append(Account_log.id == data.get("id"))
db.query(Account_log).filter(Account_log.id == data.get("id")).update(data)
db.commit()
except Exception as e:
print(e)
return {}
return data
\ No newline at end of file
import json
from datetime import datetime
from app.api.statement import crud, schemas, guild
from app.api.account import schemas as acc_schemas
......@@ -10,7 +11,7 @@ from app.api.statement.guild import GuildSet, paymentset_guild_data, outon_accou
from app.api.statement.schemas import PaymentWithdrawalList, PaymentAdd, PaymentAccountlList, UserNumber, CreateBill
from libs.img_code import new_upload_file, random_number
from libs.result_format import HttpResultResponse
from models.recharge import Paymentlog, Fiaccount, Fitransferlog
from models.recharge import Paymentlog, Fiaccount, Fitransferlog, Account_log
router = APIRouter()
......@@ -132,3 +133,26 @@ def finance_fix(data: acc_schemas.FixTable, request: Request, db: Session = Depe
header_list = request.get("headers")
res = guild.create_fix_table(db, data, header_list)
return HttpResultResponse(data=res.id)
@router.post("/data/recovery")
def recovery_fix(data: acc_schemas.Recovery_fix, db: Session = Depends(get_db)):
"""异常数据修复"""
recovery_list, total = guild.recovery_fix_data(db, Account_log,data.dict(exclude_none=True))
return HttpResultResponse(total=total, data=recovery_list)
@router.post("/submit/recovery")
def finance_fix(data: acc_schemas.RecoveryTable,db: Session = Depends(get_db)):
"""新增异常数据修复"""
res = guild.create_recovery_table(db, data)
return HttpResultResponse(data=res.id)
@router.post("/recovery/fix")
def recovery_fix(data: acc_schemas.RecoveryupdateTable, db: Session = Depends(get_db)):
"""异常数据修复"""
res = guild.update_recovery_table(db,data.dict(exclude_none=True))
return HttpResultResponse(data=res.get("id"))
\ No newline at end of file
......@@ -36,7 +36,8 @@ class QueryAllData:
'''
单个查询
'''
pass
queryData = self.db.query(self.dbname).filter(*self.params_list).first()
return queryData
def set_attrs(self, attrs_dict):
"""批量更新模型的字段数据
......@@ -45,6 +46,22 @@ class QueryAllData:
setattr(self, key, value)
return self
def direct_add_(self):
"""直接添加事务"""
self.db.session.add(self)
return self
def direct_commit_(self):
"""直接提交"""
self.direct_add_()
self.db.session.commit()
return self
def direct_update_(self):
"""直接更新"""
self.db.session.commit()
return self
def serialization(self, funcs: list = None, remove: set = None, increase: set = None) -> dict:
"""序列化指定字段
:return: dict({'field_name': field_value})
......
......@@ -148,3 +148,22 @@ class FinanceFixLog(Base, SerializerMixin):
create_time = Column(DateTime, comment="创建时间")
__table_args__ = {'comment': '财务修复日志'}
class Account_log(Base, SerializerMixin):
"""账户修复记录表"""
__tablename__ = "account_log"
id = Column(Integer, primary_key=True, index=True)
cont = Column(String(255), comment="备注")
out_money = Column(DECIMAL(11,3), comment="出账")
entry_money = Column(DECIMAL(11,3), comment="入账")
create_time = Column(DateTime, comment="创建时间")
befor_out_money = Column(DECIMAL, comment="数据产生之前的全部数据")
befor_entry_money = Column(DECIMAL(11,3), comment="创建时间之前的所有数据总和")
uuid = Column(String(255), comment="所属uuid")
from_time = Column(DateTime, comment="数据所属时间")
type = Column(Integer, comment="uuid类型0系统账户1公会账户2用户账户3背包账户")
__table_args__ = {'comment': '财务修复日志'}
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