Commit e97183af authored by xianyang's avatar xianyang

优化模型映射,新增报表orm,接口

parent a079804c
from fastapi import APIRouter
from app.api.users import views
from app.api.users import views as u_view
from app.api.statement import views as s_view
api_router = APIRouter()
# api_router.include_router(login.router, tags=["login"])
# api_router.include_router(items.router, prefix="/items", tags=["items"])
api_router.include_router(views.router, prefix="/users", tags=["users"])
api_router.include_router(u_view.router, prefix="/users", tags=["users"])
api_router.include_router(s_view.router, prefix="/statement", tags=["statement"])
from sqlalchemy.orm import Session
from models import statement as models
from app.api.statement import schemas
def get_statement(db: Session, user_id: int):
return db.query(models.Statement).filter(models.Statement.id == user_id)
def get_statement_by_name(db: Session, username: str):
return db.query(models.Statement).filter(models.Statement.username == username).first()
def get_statements(db: Session, page: int = 0, size: int = 10):
return db.query(models.Statement).offset(page).limit(size).all()
def create_statementr(db: Session, user: schemas.StatementCreate):
db_user = models.Statement(order_number=user.order_number, user_id=user.user_id, zb_number=user.zb_number,
nickname=user.nickname, recharge_amount=user.recharge_amount, recharge_channel=user.recharge_channel,
flowing_water_number=user.flowing_water_number)
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user
from pydantic import BaseModel
class StatementBase(BaseModel):
user_id: int
zb_number: int
order_number: int
class StatementCreate(StatementBase):
nickname: str
recharge_amount: float
recharge_channel: str
flowing_water_number: int
class Statement(StatementBase):
id: int
class Config:
orm_mode = True
from app import get_db
from sqlalchemy.orm import Session
from app.api.statement import crud, schemas
from fastapi import Depends, APIRouter, HTTPException
from libs.result_format import HttpResultResponse, HttpMessage
from typing import Optional
router = APIRouter()
@router.post("/recharge/list")
def statement_recharge_list(page: int = 1, size: int = 10, db: Session = Depends(get_db)):
"""充值报表列表"""
users = crud.get_statements(db, page=page, size=size)
return users
@router.post("/create")
def create_user(data: schemas.StatementCreate, db: Session = Depends(get_db)):
"""添加"""
res = crud.create_statementr(db=db, user=data)
return HttpResultResponse(data=res.id)
......@@ -51,4 +51,3 @@ def create_user(data: schemas.UserCreate, db: Session = Depends(get_db)):
return HttpResultResponse(code=400, msg=HttpMessage.USER_EXIST)
res = crud.create_user(db=db, user=data)
return HttpResultResponse(data=res.id)
......@@ -2,8 +2,8 @@
"""创建数据库连接引擎"""
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import os
from core.config.env import env
......@@ -28,4 +28,3 @@ SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# 创建 Base 类,用于 ORM 模型的继承
Base = declarative_base()
Base.metadata.create_all(engine)
import uvicorn
from fastapi import FastAPI
from app.api.api_v1 import api_router
from starlette.middleware.cors import CORSMiddleware
from core.storage.db import Base, engine
app = FastAPI()
......@@ -19,7 +16,7 @@ app.add_middleware(
allow_headers=['*']) # 允许跨域的headers,可以用来鉴别来源等作用。
app.include_router(api_router, prefix="/api") # 路由
Base.metadata.create_all(bind=engine) # 映射模型类
if __name__ == '__main__':
uvicorn.run(app=app, host="127.0.0.1", port=8001)
from core.storage.db import Base, engine
from core.storage.db import engine
from models import users, statement
Base.metadata.create_all(bind=engine)
# 映射模型表
users.Base.metadata.create_all(bind=engine)
statement.Base.metadata.create_all(bind=engine)
from sqlalchemy import Column, Integer, String, DateTime, Float
from core.storage.db import Base
from datetime import datetime
class Statement(Base):
__tablename__ = "statement"
id = Column(Integer, primary_key=True, index=True)
order_number = Column(String(50), unique=True, index=True, comment='订单号')
user_id = Column(Integer, index=True, comment='用户ID')
zb_number = Column(String(50), comment='朱贝号')
nickname = Column(String(50), comment='昵称')
recharge_amount = Column(Float, comment='充值金额')
recharge_channel = Column(String(50), index=True, comment='充值渠道')
flowing_water_number = Column(String(50), unique=True, index=True, comment='交易流水号')
pay_time = Column(DateTime, comment='支付时间')
callback_time = Column(DateTime, comment='回调成功时间')
actual_pay_time = Column(DateTime, comment='实际支付时间')
create_time = Column(DateTime, default=datetime.now(), comment='创建时间')
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, DateTime, Float, ARRAY
from sqlalchemy.orm import relationship
from sqlalchemy import Column, Integer, String, DateTime, Float
from core.storage.db import Base
......@@ -29,4 +27,3 @@ class Authority(Base):
name = Column(String(50), index=True)
up_one_level = Column(Integer, index=True)
create_time = Column(DateTime)
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