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