文件上传
This commit is contained in:
parent
4a7cf5e625
commit
d6890bf1c1
|
@ -18,6 +18,11 @@ def add_file(db: Session, data: FileSechemas.UserFileCreate):
|
||||||
return new_file
|
return new_file
|
||||||
|
|
||||||
|
|
||||||
|
def file_get(db: Session, md: str):
|
||||||
|
file = db.query(UserFile).filter_by(md=md).first()
|
||||||
|
return file
|
||||||
|
|
||||||
|
|
||||||
def file_query(db: Session, params: FileSechemas.UserFileQuery) -> (int, List[UserFile]):
|
def file_query(db: Session, params: FileSechemas.UserFileQuery) -> (int, List[UserFile]):
|
||||||
query = db.query(UserFile)
|
query = db.query(UserFile)
|
||||||
if params.md:
|
if params.md:
|
||||||
|
|
|
@ -45,8 +45,8 @@ def daily_add(req: DailySchemas.DailyAddReq, db: Session = Depends(get_db),
|
||||||
raise HTTPException(detail="填报人与email不符", status_code=305)
|
raise HTTPException(detail="填报人与email不符", status_code=305)
|
||||||
# 本部门填报权限
|
# 本部门填报权限
|
||||||
# print(token_data.department, token_data, "token_data.departmentxx")
|
# print(token_data.department, token_data, "token_data.departmentxx")
|
||||||
if str(req.department) not in token_data.department and not check_auth(token_data.auth_data, ['7']):
|
# if str(req.department) not in token_data.department and not check_auth(token_data.auth_data, ['7']):
|
||||||
raise HTTPException(detail="没有本部门填报权限", status_code=305)
|
# raise HTTPException(detail="没有本部门填报权限", status_code=305)
|
||||||
new_daily = DailyCrud.daily_add(db, req.dict())
|
new_daily = DailyCrud.daily_add(db, req.dict())
|
||||||
return DailySchemas.DailyAddRes(**new_daily.to_dict())
|
return DailySchemas.DailyAddRes(**new_daily.to_dict())
|
||||||
|
|
||||||
|
@ -55,8 +55,8 @@ def daily_add(req: DailySchemas.DailyAddReq, db: Session = Depends(get_db),
|
||||||
def daily_change(req: DailySchemas.DailyChangeReq, db: Session = Depends(get_db),
|
def daily_change(req: DailySchemas.DailyChangeReq, db: Session = Depends(get_db),
|
||||||
token_data: TokenData = Depends(registered_depend)):
|
token_data: TokenData = Depends(registered_depend)):
|
||||||
# 本部门填报权限
|
# 本部门填报权限
|
||||||
if str(req.department) not in token_data.department and not check_auth(token_data.auth_data, ['7']):
|
# if str(req.department) not in token_data.department and not check_auth(token_data.auth_data, ['7']):
|
||||||
raise HTTPException(detail="没有本部门填报权限", status_code=305)
|
# raise HTTPException(detail="没有本部门填报权限", status_code=305)
|
||||||
new_daily = DailyCrud.daily_change(db, req.id, req.dict())
|
new_daily = DailyCrud.daily_change(db, req.id, req.dict())
|
||||||
return DailySchemas.DailyChangeRes(**new_daily.to_dict())
|
return DailySchemas.DailyChangeRes(**new_daily.to_dict())
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ allow_file_type = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@router.post('/file_upload', response_model=FileSechemas.UserFileInfo)
|
@router.post('/file_upload', response_model=FileSechemas.UserFileInfo, summary='文件上次')
|
||||||
def file_upload(file: UploadFile = File(...),
|
def file_upload(file: UploadFile = File(...),
|
||||||
db: Session = Depends(get_db), token_data: TokenData = Depends(token_data_depend)):
|
db: Session = Depends(get_db), token_data: TokenData = Depends(token_data_depend)):
|
||||||
mime_type = file.content_type
|
mime_type = file.content_type
|
||||||
|
@ -27,9 +27,9 @@ def file_upload(file: UploadFile = File(...),
|
||||||
raise Exception('不允许上传该类型文件')
|
raise Exception('不允许上传该类型文件')
|
||||||
content_start = file.file.read(1024)
|
content_start = file.file.read(1024)
|
||||||
file_md = file_md5(content_start)
|
file_md = file_md5(content_start)
|
||||||
save_path = Path(f"static_data/upload_files/{common_type}")
|
save_path = Path(f"static_data/upload_files/{common_type}/{file_type}")
|
||||||
file_save_path = save_path / file_md
|
file_save_path = save_path / file_md
|
||||||
file_url = f'/static_data/upload_files/{common_type}/{file_md}'
|
file_url = f'/static_data/upload_files/{common_type}/{file_type}/{file_md}'
|
||||||
if not os.path.exists(save_path):
|
if not os.path.exists(save_path):
|
||||||
os.makedirs(save_path)
|
os.makedirs(save_path)
|
||||||
user_file = FileCrud.get_file_by_md(db, file_md)
|
user_file = FileCrud.get_file_by_md(db, file_md)
|
||||||
|
@ -48,12 +48,10 @@ def file_upload(file: UploadFile = File(...),
|
||||||
mime_type=mime_type,
|
mime_type=mime_type,
|
||||||
user_id=token_data.email, common_type=common_type,
|
user_id=token_data.email, common_type=common_type,
|
||||||
file_url=file_url))
|
file_url=file_url))
|
||||||
else:
|
|
||||||
raise HTTPException(detail='文件已经上传', status_code=303)
|
|
||||||
return user_file.to_dict()
|
return user_file.to_dict()
|
||||||
|
|
||||||
|
|
||||||
@router.post("/query", response_model=FileSechemas.UserFileQueryRes)
|
@router.post("/query", response_model=FileSechemas.UserFileQueryRes, summary='文件查询')
|
||||||
def query(req: FileSechemas.UserFileQuery, token_data: TokenData = Depends(token_data_depend),
|
def query(req: FileSechemas.UserFileQuery, token_data: TokenData = Depends(token_data_depend),
|
||||||
db: Session = Depends(get_db)):
|
db: Session = Depends(get_db)):
|
||||||
# if req.user_id and req.user_id != token_data.email:
|
# if req.user_id and req.user_id != token_data.email:
|
||||||
|
@ -61,3 +59,12 @@ def query(req: FileSechemas.UserFileQuery, token_data: TokenData = Depends(token
|
||||||
count, items = FileCrud.file_query(db, req)
|
count, items = FileCrud.file_query(db, req)
|
||||||
item_list = [item.to_dict() for item in items]
|
item_list = [item.to_dict() for item in items]
|
||||||
return FileSechemas.UserFileQueryRes(count=count, item_list=item_list)
|
return FileSechemas.UserFileQueryRes(count=count, item_list=item_list)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/get", response_model=FileSechemas.UserFileInfo, summary='文件获取')
|
||||||
|
def query(req: FileSechemas.UserFileGet,
|
||||||
|
db: Session = Depends(get_db)):
|
||||||
|
file = FileCrud.file_get(db, req.md)
|
||||||
|
if not file:
|
||||||
|
raise HTTPException(detail="未找到文件", status_code=404)
|
||||||
|
return file.to_dict()
|
||||||
|
|
|
@ -9,6 +9,7 @@ from Schemas.UserSchemas import UserInfo
|
||||||
@unique
|
@unique
|
||||||
class DailyTypeEnum(Enum):
|
class DailyTypeEnum(Enum):
|
||||||
董监高日报 = "董监高日报"
|
董监高日报 = "董监高日报"
|
||||||
|
运行日报 = "运行日报"
|
||||||
部门子公司日报 = "部门子公司日报"
|
部门子公司日报 = "部门子公司日报"
|
||||||
监管和同业动态 = "监管和同业动态"
|
监管和同业动态 = "监管和同业动态"
|
||||||
行业信息专题分析 = "行业信息专题分析"
|
行业信息专题分析 = "行业信息专题分析"
|
||||||
|
@ -84,11 +85,11 @@ class DailyQueryRes(BaseModel):
|
||||||
class DailyAddReq(BaseModel):
|
class DailyAddReq(BaseModel):
|
||||||
type: DailyTypeEnum
|
type: DailyTypeEnum
|
||||||
fill_user: Optional[str]
|
fill_user: Optional[str]
|
||||||
department: int
|
department: Optional[int]
|
||||||
content: str
|
content: Optional[str]
|
||||||
post: int
|
post: Optional[int]
|
||||||
daily_time: Optional[datetime]
|
daily_time: Optional[datetime]
|
||||||
file_md:Optional[str]
|
file_md: Optional[str]
|
||||||
title: Optional[str]
|
title: Optional[str]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,10 @@ class UserFileInfo(BaseModel):
|
||||||
create_time: datetime
|
create_time: datetime
|
||||||
|
|
||||||
|
|
||||||
|
class UserFileGet(BaseModel):
|
||||||
|
md: str
|
||||||
|
|
||||||
|
|
||||||
class UserFileCreate(BaseModel):
|
class UserFileCreate(BaseModel):
|
||||||
md: str
|
md: str
|
||||||
file_name: str
|
file_name: str
|
||||||
|
|
|
@ -160,3 +160,30 @@ def load_user_data(db: Session):
|
||||||
new_user.phone = str(int(user_info['phone'])) if user_info['phone'] else None
|
new_user.phone = str(int(user_info['phone'])) if user_info['phone'] else None
|
||||||
db.add(new_user)
|
db.add(new_user)
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
|
|
||||||
|
def load_daily_data(db: Session, file):
|
||||||
|
dt = pd.read_excel(file)
|
||||||
|
line_count = dt.shape[0]
|
||||||
|
for i in range(line_count):
|
||||||
|
row = dt.loc[i]
|
||||||
|
name = row['姓名']
|
||||||
|
daily_time = row['日期']
|
||||||
|
content = row['内容']
|
||||||
|
user = db.query(User).filter_by(name=name).first()
|
||||||
|
if not user:
|
||||||
|
raise Exception(f'{name},无此姓名')
|
||||||
|
if db.query(Daily).filter_by(type='董监高日报', content=content, daily_time=daily_time,
|
||||||
|
fill_user=user.email).first():
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
old_item = db.query(Daily).filter_by(type='董监高日报', fill_user=user.email).first()
|
||||||
|
new_item = Daily()
|
||||||
|
new_item.fill_user = user.email
|
||||||
|
new_item.department = old_item.department
|
||||||
|
new_item.post = old_item.post
|
||||||
|
new_item.content = content
|
||||||
|
new_item.daily_time = daily_time
|
||||||
|
new_item.type = '董监高日报'
|
||||||
|
db.add(new_item)
|
||||||
|
db.commit()
|
||||||
|
|
Loading…
Reference in New Issue