协会用户管理
This commit is contained in:
parent
acfc8ea8a8
commit
e01cc54b8a
|
@ -15,7 +15,9 @@ sender = fecribd@fecr.com.cn
|
|||
|
||||
[auth]
|
||||
jwt_key = MADASDZXC255f
|
||||
admin_user_jwt_key = R43124TWEVC7785456
|
||||
company_user_jwt_key = AQDF123ER331IOQWM12MFFAS
|
||||
institution_user_jwt_key = SAXCASD15124WRTWET
|
||||
|
||||
[mongo]
|
||||
host = 127.0.0.1
|
||||
|
|
|
@ -27,6 +27,12 @@ class InstitutionUserTokenDataModel(BaseModel):
|
|||
phone: Optional[str]
|
||||
|
||||
|
||||
class AdminUserTokenDataModel(BaseModel):
|
||||
id: Optional[str]
|
||||
email: Optional[str]
|
||||
phone: Optional[str]
|
||||
|
||||
|
||||
# 日志
|
||||
uvicorn_log = getLogger('uvicorn')
|
||||
|
||||
|
@ -60,10 +66,12 @@ image_captcha_verify = ImageCaptchaVerify(redis_pool)
|
|||
|
||||
# 权限验证工具类
|
||||
auth_util = AuthUtil[TokenDataModel](secret_key=conf['auth']['jwt_key'], tokenDataModel=TokenDataModel)
|
||||
admin_user_auth_util = AuthUtil[AdminUserTokenDataModel](secret_key=conf['auth']['admin_user_jwt_key'], tokenDataModel=AdminUserTokenDataModel)
|
||||
company_user_auth_util = AuthUtil[CompanyUserTokenDataModel](secret_key=conf['auth']['company_user_jwt_key'],
|
||||
tokenDataModel=CompanyUserTokenDataModel)
|
||||
institution_user_auth_util = AuthUtil[InstitutionUserTokenDataModel](secret_key=conf['auth']['company_user_jwt_key'],
|
||||
tokenDataModel=InstitutionUserTokenDataModel)
|
||||
institution_user_auth_util = AuthUtil[InstitutionUserTokenDataModel](
|
||||
secret_key=conf['auth']['institution_user_jwt_key'],
|
||||
tokenDataModel=InstitutionUserTokenDataModel)
|
||||
|
||||
phone_msg_send = PhoneMsgSend(conf['hw_msg']['url'],
|
||||
conf['hw_msg']['app_key'],
|
||||
|
|
|
@ -2,7 +2,7 @@ from fastapi import APIRouter, Depends, HTTPException
|
|||
from sqlalchemy.orm import Session
|
||||
|
||||
from Context.common import common_db, conf, email_code_verify, institution_user_auth_util, tianyancha_api, \
|
||||
InstitutionUserTokenDataModel
|
||||
InstitutionUserTokenDataModel, AdminUserTokenDataModel, admin_user_auth_util
|
||||
from Utils.PasswdUtils import get_encrypt_password, decode_b64_pwd
|
||||
from Utils.SqlAlchemyUtils import QueryParams, query_common
|
||||
from Utils.ValidateUtil import Validate
|
||||
|
@ -10,8 +10,8 @@ from Utils.VerifyCodeUtils import EmailVerifyType
|
|||
from . import Schemas
|
||||
from . import Crud
|
||||
from .Models import InstitutionUser
|
||||
from ..UploadFile import Crud as UploadFileCrud
|
||||
from Utils.OcrUtils import ocr_business_license
|
||||
# from ..UploadFile import Crud as UploadFileCrud
|
||||
# from Utils.OcrUtils import ocr_business_license
|
||||
|
||||
router = APIRouter(tags=["协会用户"], prefix="/institution_user")
|
||||
|
||||
|
@ -74,33 +74,33 @@ def func(body: Schemas.GetEmailVerifyCode):
|
|||
return {'state': 1, "msg": "邮箱验证码已发送至邮箱,请查看"}
|
||||
|
||||
|
||||
@router.post("/register", summary="注册协会用户")
|
||||
def func(req: Schemas.InstitutionUserRegisterReq, db: Session = Depends(common_db.get_db)):
|
||||
org_passwd = decode_b64_pwd(req.passwd)
|
||||
if not Validate.password(org_passwd):
|
||||
raise HTTPException(detail="密码格式不规范", status_code=303)
|
||||
checked = email_code_verify.check_code(req.email, req.email_verified_code, EmailVerifyType.register)
|
||||
if not checked:
|
||||
raise HTTPException(detail='邮箱验证码错误', status_code=303)
|
||||
file = UploadFileCrud.file_get(db, req.license_file_md)
|
||||
image_url = conf['app']['host'] + '/wd_bj_static/' + "/".join(file.file_url.split('/')[2:])
|
||||
license_res = ocr_business_license(image_url)
|
||||
license_check_res, _ = tianyancha_api.get('企业三要素', {'code': license_res.credit, 'name': license_res.name,
|
||||
'legalPersonName': license_res.owner})
|
||||
if not (license_check_res and license_check_res['result'] == 1):
|
||||
if license_check_res:
|
||||
raise HTTPException(detail=license_check_res['remark'], status_code=303)
|
||||
raise HTTPException(detail="营业执照信息验证失败", status_code=303)
|
||||
company_name = license_res.name
|
||||
item = Crud.institution_user_get_by_institution_name(db, company_name)
|
||||
if item:
|
||||
raise HTTPException(detail="公司已经被注册", status_code=303)
|
||||
passwd_hashed = get_encrypt_password(org_passwd)
|
||||
add_res = Crud.institution_user_add(db,
|
||||
Schemas.InstitutionUserAddInfo(company_name=company_name, email=req.email,
|
||||
passwd=passwd_hashed,
|
||||
verified=True))
|
||||
return {'msg': "注册成功", 'state': 1}
|
||||
# @router.post("/register", summary="注册协会用户")
|
||||
# def func(req: Schemas.InstitutionUserRegisterReq, db: Session = Depends(common_db.get_db)):
|
||||
# org_passwd = decode_b64_pwd(req.passwd)
|
||||
# if not Validate.password(org_passwd):
|
||||
# raise HTTPException(detail="密码格式不规范", status_code=303)
|
||||
# checked = email_code_verify.check_code(req.email, req.email_verified_code, EmailVerifyType.register)
|
||||
# if not checked:
|
||||
# raise HTTPException(detail='邮箱验证码错误', status_code=303)
|
||||
# file = UploadFileCrud.file_get(db, req.license_file_md)
|
||||
# image_url = conf['app']['host'] + '/wd_bj_static/' + "/".join(file.file_url.split('/')[2:])
|
||||
# license_res = ocr_business_license(image_url)
|
||||
# license_check_res, _ = tianyancha_api.get('企业三要素', {'code': license_res.credit, 'name': license_res.name,
|
||||
# 'legalPersonName': license_res.owner})
|
||||
# if not (license_check_res and license_check_res['result'] == 1):
|
||||
# if license_check_res:
|
||||
# raise HTTPException(detail=license_check_res['remark'], status_code=303)
|
||||
# raise HTTPException(detail="营业执照信息验证失败", status_code=303)
|
||||
# company_name = license_res.name
|
||||
# item = Crud.institution_user_get_by_institution_name(db, company_name)
|
||||
# if item:
|
||||
# raise HTTPException(detail="公司已经被注册", status_code=303)
|
||||
# passwd_hashed = get_encrypt_password(org_passwd)
|
||||
# add_res = Crud.institution_user_add(db,
|
||||
# Schemas.InstitutionUserAddInfo(company_name=company_name, email=req.email,
|
||||
# passwd=passwd_hashed,
|
||||
# verified=True))
|
||||
# return {'msg': "注册成功", 'state': 1}
|
||||
|
||||
|
||||
@router.post('/get_user_info', summary='获取用户信息', response_model=Schemas.GetUserInfoRes)
|
||||
|
@ -114,25 +114,29 @@ def func(token_data: InstitutionUserTokenDataModel = Depends(institution_user_au
|
|||
|
||||
|
||||
@router.post("/institution_user/add", summary="添加协会用户", response_model=Schemas.InstitutionUserAddRes)
|
||||
def institution_user_add(req: Schemas.InstitutionUserAddReq, db: Session = Depends(common_db.get_db)):
|
||||
def institution_user_add(req: Schemas.InstitutionUserAddReq, db: Session = Depends(common_db.get_db),
|
||||
token_data: AdminUserTokenDataModel = Depends(admin_user_auth_util.token_data_depend)):
|
||||
item = Crud.institution_user_add(db, req)
|
||||
return Schemas.InstitutionUserAddRes(**item.to_dict())
|
||||
|
||||
|
||||
@router.post("/institution_user/delete", summary="删除协会用户")
|
||||
def institution_user_delete(req: Schemas.InstitutionUserDeleteReq, db: Session = Depends(common_db.get_db)):
|
||||
def institution_user_delete(req: Schemas.InstitutionUserDeleteReq, db: Session = Depends(common_db.get_db),
|
||||
token_data: AdminUserTokenDataModel = Depends(admin_user_auth_util.token_data_depend)):
|
||||
Crud.institution_user_delete(db, req.id)
|
||||
return "删除成功"
|
||||
|
||||
|
||||
@router.post("/institution_user/update", summary="更新协会用户", response_model=Schemas.InstitutionUserUpdateRes)
|
||||
def institution_user_update(req: Schemas.InstitutionUserUpdateReq, db: Session = Depends(common_db.get_db)):
|
||||
def institution_user_update(req: Schemas.InstitutionUserUpdateReq, db: Session = Depends(common_db.get_db),
|
||||
token_data: AdminUserTokenDataModel = Depends(admin_user_auth_util.token_data_depend)):
|
||||
item = Crud.institution_user_update(db, req)
|
||||
return Schemas.InstitutionUserUpdateRes(**item.to_dict())
|
||||
|
||||
|
||||
@router.post("/institution_user/get", summary="获取协会用户", response_model=Schemas.InstitutionUserGetRes)
|
||||
def institution_user_get(req: Schemas.InstitutionUserGetReq, db: Session = Depends(common_db.get_db)):
|
||||
def institution_user_get(req: Schemas.InstitutionUserGetReq, db: Session = Depends(common_db.get_db),
|
||||
token_data: AdminUserTokenDataModel = Depends(admin_user_auth_util.token_data_depend)):
|
||||
item = Crud.institution_user_get(db, req.id)
|
||||
if not item:
|
||||
raise HTTPException(detail="未查询到信息", status_code=404)
|
||||
|
@ -140,7 +144,8 @@ def institution_user_get(req: Schemas.InstitutionUserGetReq, db: Session = Depen
|
|||
|
||||
|
||||
@router.post("/institution_user/query", summary="查询协会用户", response_model=Schemas.InstitutionUserQueryRes)
|
||||
def institution_user_query(req: Schemas.InstitutionUserQueryReq, db: Session = Depends(common_db.get_db)):
|
||||
def institution_user_query(req: Schemas.InstitutionUserQueryReq, db: Session = Depends(common_db.get_db),
|
||||
token_data: AdminUserTokenDataModel = Depends(admin_user_auth_util.token_data_depend)):
|
||||
count, query = Crud.institution_user_query(db, req)
|
||||
items = [Schemas.InstitutionUserInfo(**item.to_dict()) for item in query]
|
||||
return Schemas.InstitutionUserQueryRes(count=count, items=items)
|
||||
|
@ -148,7 +153,9 @@ def institution_user_query(req: Schemas.InstitutionUserQueryReq, db: Session = D
|
|||
|
||||
@router.post("/institution_user/query_common", summary="通用查询协会用户",
|
||||
response_model=Schemas.InstitutionUserQueryRes)
|
||||
def institution_user_query_common(req: QueryParams, db: Session = Depends(common_db.get_db)):
|
||||
def institution_user_query_common(req: QueryParams, db: Session = Depends(common_db.get_db),
|
||||
token_data: AdminUserTokenDataModel = Depends(
|
||||
admin_user_auth_util.token_data_depend)):
|
||||
count, query = query_common(db, InstitutionUser, req)
|
||||
items = [Schemas.InstitutionUserInfo(**item.to_dict()) for item in query]
|
||||
return Schemas.InstitutionUserQueryRes(count=count, items=items)
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
from fastapi import APIRouter
|
||||
from .CompanyUser import Router as CompanyUserRouter
|
||||
from .InstitutionUser import Router as InstitutionUserRouter
|
||||
from .UploadFile import Router as UploadFileRouter
|
||||
router = APIRouter(prefix="/user")
|
||||
router.include_router(CompanyUserRouter.router)
|
||||
router.include_router(UploadFileRouter.router)
|
||||
router.include_router(InstitutionUserRouter.router)
|
||||
|
|
Loading…
Reference in New Issue