文件上传
This commit is contained in:
parent
4a7cf5e625
commit
d6890bf1c1
|
@ -18,6 +18,11 @@ def add_file(db: Session, data: FileSechemas.UserFileCreate):
|
|||
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]):
|
||||
query = db.query(UserFile)
|
||||
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)
|
||||
# 本部门填报权限
|
||||
# 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']):
|
||||
raise HTTPException(detail="没有本部门填报权限", status_code=305)
|
||||
# if str(req.department) not in token_data.department and not check_auth(token_data.auth_data, ['7']):
|
||||
# raise HTTPException(detail="没有本部门填报权限", status_code=305)
|
||||
new_daily = DailyCrud.daily_add(db, req.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),
|
||||
token_data: TokenData = Depends(registered_depend)):
|
||||
# 本部门填报权限
|
||||
if str(req.department) not in token_data.department and not check_auth(token_data.auth_data, ['7']):
|
||||
raise HTTPException(detail="没有本部门填报权限", status_code=305)
|
||||
# if str(req.department) not in token_data.department and not check_auth(token_data.auth_data, ['7']):
|
||||
# raise HTTPException(detail="没有本部门填报权限", status_code=305)
|
||||
new_daily = DailyCrud.daily_change(db, req.id, req.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(...),
|
||||
db: Session = Depends(get_db), token_data: TokenData = Depends(token_data_depend)):
|
||||
mime_type = file.content_type
|
||||
|
@ -27,9 +27,9 @@ def file_upload(file: UploadFile = File(...),
|
|||
raise Exception('不允许上传该类型文件')
|
||||
content_start = file.file.read(1024)
|
||||
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_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):
|
||||
os.makedirs(save_path)
|
||||
user_file = FileCrud.get_file_by_md(db, file_md)
|
||||
|
@ -48,12 +48,10 @@ def file_upload(file: UploadFile = File(...),
|
|||
mime_type=mime_type,
|
||||
user_id=token_data.email, common_type=common_type,
|
||||
file_url=file_url))
|
||||
else:
|
||||
raise HTTPException(detail='文件已经上传', status_code=303)
|
||||
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),
|
||||
db: Session = Depends(get_db)):
|
||||
# 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)
|
||||
item_list = [item.to_dict() for item in items]
|
||||
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
|
||||
class DailyTypeEnum(Enum):
|
||||
董监高日报 = "董监高日报"
|
||||
运行日报 = "运行日报"
|
||||
部门子公司日报 = "部门子公司日报"
|
||||
监管和同业动态 = "监管和同业动态"
|
||||
行业信息专题分析 = "行业信息专题分析"
|
||||
|
@ -84,11 +85,11 @@ class DailyQueryRes(BaseModel):
|
|||
class DailyAddReq(BaseModel):
|
||||
type: DailyTypeEnum
|
||||
fill_user: Optional[str]
|
||||
department: int
|
||||
content: str
|
||||
post: int
|
||||
department: Optional[int]
|
||||
content: Optional[str]
|
||||
post: Optional[int]
|
||||
daily_time: Optional[datetime]
|
||||
file_md:Optional[str]
|
||||
file_md: Optional[str]
|
||||
title: Optional[str]
|
||||
|
||||
|
||||
|
|
|
@ -14,6 +14,10 @@ class UserFileInfo(BaseModel):
|
|||
create_time: datetime
|
||||
|
||||
|
||||
class UserFileGet(BaseModel):
|
||||
md: str
|
||||
|
||||
|
||||
class UserFileCreate(BaseModel):
|
||||
md: 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
|
||||
db.add(new_user)
|
||||
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