From f98fa2f4de4c1e9c136a514e7a9149e6d6c97889 Mon Sep 17 00:00:00 2001 From: wcq <744800102@qq.com> Date: Mon, 12 Jun 2023 11:27:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BAuser=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/rate-sys-template.iml | 7 +++++++ Mods/CompanyRate/Router.py | 6 +++++- Mods/Router.py | 3 ++- Mods/{ => User}/CompanyUser/Crud.py | 0 Mods/{ => User}/CompanyUser/Models.py | 2 +- Mods/{ => User}/CompanyUser/Router.py | 5 +---- Mods/{ => User}/CompanyUser/Schemas.py | 2 +- Utils/SqlAlchemyUtils.py | 13 +++++++++++++ requirements.txt | 3 ++- 9 files changed, 32 insertions(+), 9 deletions(-) rename Mods/{ => User}/CompanyUser/Crud.py (100%) rename Mods/{ => User}/CompanyUser/Models.py (91%) rename Mods/{ => User}/CompanyUser/Router.py (97%) rename Mods/{ => User}/CompanyUser/Schemas.py (97%) diff --git a/.idea/rate-sys-template.iml b/.idea/rate-sys-template.iml index cf97373..db1d74b 100644 --- a/.idea/rate-sys-template.iml +++ b/.idea/rate-sys-template.iml @@ -8,4 +8,11 @@ + + + \ No newline at end of file diff --git a/Mods/CompanyRate/Router.py b/Mods/CompanyRate/Router.py index 774688a..002396a 100644 --- a/Mods/CompanyRate/Router.py +++ b/Mods/CompanyRate/Router.py @@ -44,7 +44,11 @@ def company_rate_query(req: Schemas.CompanyRateQueryReq, db: Session = Depends(c items = [Schemas.CompanyRateInfo(**item.to_dict()) for item in query] return Schemas.CompanyRateQueryRes(count=count, items=items) - +@router.post("/company_rate/query", summary="查询公司评级数据", response_model=Schemas.CompanyRateQueryRes) +def company_rate_query(req: Schemas.CompanyRateQueryReq, db: Session = Depends(common_db.get_db)): + count, query = Crud.company_rate_query(db, req) + items = [Schemas.CompanyRateInfo(**item.to_dict()) for item in query] + return Schemas.CompanyRateQueryRes(count=count, items=items) @router.post("/company_rate/query_common", summary="通用查询公司评级数据", response_model=Schemas.CompanyRateQueryRes) def company_rate_query_common(req: QueryParams, db: Session = Depends(common_db.get_db)): diff --git a/Mods/Router.py b/Mods/Router.py index a50cfe6..6b3826d 100644 --- a/Mods/Router.py +++ b/Mods/Router.py @@ -1,7 +1,8 @@ from fastapi import APIRouter from .FormFile import Router as FormFileRouter from .CompanyRate import Router as CompanyRateRouter -from .CompanyUser import Router as CompanyUserRouter +from .User.CompanyUser import Router as CompanyUserRouter + router = APIRouter(prefix="") router.include_router(FormFileRouter.router) router.include_router(CompanyRateRouter.router) diff --git a/Mods/CompanyUser/Crud.py b/Mods/User/CompanyUser/Crud.py similarity index 100% rename from Mods/CompanyUser/Crud.py rename to Mods/User/CompanyUser/Crud.py diff --git a/Mods/CompanyUser/Models.py b/Mods/User/CompanyUser/Models.py similarity index 91% rename from Mods/CompanyUser/Models.py rename to Mods/User/CompanyUser/Models.py index 2f21bb2..75237f9 100644 --- a/Mods/CompanyUser/Models.py +++ b/Mods/User/CompanyUser/Models.py @@ -16,7 +16,7 @@ class CompanyUser(common_db.Base): phone = Column(String(255), comment="手机号") company_name = Column(String(255), comment="公司名称") passwd = Column(String(255), comment="hash密码") - verified = Column(Boolean, default=False, comment="是否通过验证") + business_license= Column(Integer,comment="营业执照文件ID") create_time = Column(DateTime, server_default=func.now(), comment='创建时间') def to_dict(self): diff --git a/Mods/CompanyUser/Router.py b/Mods/User/CompanyUser/Router.py similarity index 97% rename from Mods/CompanyUser/Router.py rename to Mods/User/CompanyUser/Router.py index a0c236f..d27d9c9 100644 --- a/Mods/CompanyUser/Router.py +++ b/Mods/User/CompanyUser/Router.py @@ -3,15 +3,12 @@ from sqlalchemy.orm import Session from Context.common import common_db, conf, email_code_verify, company_user_auth_util, tianyancha_api, \ CompanyUserTokenDataModel -from Utils.EmailUtils import email_check from Utils.PasswdUtils import get_encrypt_password, decode_b64_pwd from Utils.ValidateUtil import Validate from Utils.VerifyCodeUtils import EmailVerifyType from . import Schemas from . import Crud -from Utils.SqlAlchemyUtils import QueryParams, query_common -from .Models import CompanyUser -from ..FormFile import Crud as FormFileCrud +from Mods.FormFile import Crud as FormFileCrud from Utils.OcrUtils import ocr_business_license router = APIRouter(tags=["企业用户"]) diff --git a/Mods/CompanyUser/Schemas.py b/Mods/User/CompanyUser/Schemas.py similarity index 97% rename from Mods/CompanyUser/Schemas.py rename to Mods/User/CompanyUser/Schemas.py index c8b7615..e2e2f3d 100644 --- a/Mods/CompanyUser/Schemas.py +++ b/Mods/User/CompanyUser/Schemas.py @@ -9,7 +9,7 @@ class CompanyUserInfo(BaseModel): phone: Optional[str] company_name: Optional[str] passwd: Optional[str] - verified: Optional[bool] + business_license: Optional[int] create_time: Optional[datetime] diff --git a/Utils/SqlAlchemyUtils.py b/Utils/SqlAlchemyUtils.py index 4da0584..2b8a2aa 100644 --- a/Utils/SqlAlchemyUtils.py +++ b/Utils/SqlAlchemyUtils.py @@ -2,6 +2,7 @@ from typing import Literal, List, Any, Optional from pydantic import BaseModel from sqlalchemy import create_engine, Column, and_, asc, desc, func +from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker, Session, Query from sqlalchemy_utils import database_exists, create_database @@ -15,6 +16,7 @@ class SqlalchemyConnect: self.password = password self.db = db self.engine = self.init_engine() + self.async_engine = self.init_async_engine() def init_engine(self): engine = create_engine( @@ -54,6 +56,17 @@ class SqlalchemyConnect: self.create_db() self.Base.metadata.create_all(bind=self.engine) + def init_async_engine(self): + async_engine = create_async_engine( + f"mysql+aiomysql://{self.user}:{self.password}@{self.host}/{self.db}?charset=utf8mb4", pool_recycle=3600 * 4 + ) + return async_engine + + def get_async_db(self) -> sessionmaker: + async_session = async_sessionmaker(self.async_engine, expire_on_commit=False) + db = async_session() + yield db + # 通用查询接口 diff --git a/requirements.txt b/requirements.txt index 9412513..2b6c1f3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,4 +20,5 @@ blessed~=1.20.0 watchdog~=3.0.0 codefind~=0.1.3 sqlalchemy-utils~=0.41.1 -pandas~=2.0.2 \ No newline at end of file +pandas~=2.0.2 +aiomysql!=0.2.0 \ No newline at end of file