diff --git a/api/api_v1/endpoints/dashboard.py b/api/api_v1/endpoints/dashboard.py index 58d84c8..9449c0d 100644 --- a/api/api_v1/endpoints/dashboard.py +++ b/api/api_v1/endpoints/dashboard.py @@ -10,19 +10,7 @@ from utils.func import get_uid router = APIRouter() -@router.post("/create") -async def create( - data_in: schemas.DashboardCreate, - db: AsyncIOMotorDatabase = Depends(get_database), - current_user: schemas.UserDB = Depends(deps.get_current_user) -) -> schemas.Msg: - """创建看板""" - try: - await crud.dashboard.create(db, data_in, user_id=current_user.id) - except pymongo.errors.DuplicateKeyError: - return schemas.Msg(code=-1, msg='看板已存在', data='看板已存在') - return schemas.Msg(code=0, msg='ok', data='创建成功') @router.post('/edit_show_report') @@ -42,19 +30,7 @@ async def edit_show_report( return schemas.Msg(code=-1, msg='没有修改', data=dict()) -@router.post("/delete") -async def delete( - request: Request, - data_in: schemas.DashboardDelete, - db: AsyncIOMotorDatabase = Depends(get_database), - current_user: schemas.UserDB = Depends(deps.get_current_user) -) -> schemas.Msg: - """删除看板""" - del_dashboard = await crud.dashboard.delete(db, {'_id': {'$in': data_in.ids}}) - if del_dashboard.deleted_count == 0: - return schemas.Msg(code=-1, msg='error', data='删除失败') - return schemas.Msg(code=0, msg='ok', data='删除成功') @router.post("/move") @@ -74,7 +50,6 @@ async def move( @router.post("/sort") async def sort( - game: str, data_in: schemas.DashboardSort, db: AsyncIOMotorDatabase = Depends(get_database), current_user: schemas.UserDB = Depends(deps.get_current_user) @@ -99,7 +74,7 @@ async def copy( """ # 检查是否存在默认空间 不存在就创建 dest_project_id = data_in.dest_project_id - dest_default_space = await crud.space.find_one(db, {'project_id': dest_project_id, 'name': '默认空间'}, + dest_default_space = await crud.space.find_one(db, { 'name': '默认空间'}, {'_id': True}) dest_space_id = dest_default_space.get('_id') user_id = request.user.id @@ -191,7 +166,6 @@ async def copy( @router.post("/add_report") async def add_report(data_in: schemas.AddReport, - game: str, db: AsyncIOMotorDatabase = Depends(get_database), current_user: schemas.UserDB = Depends(deps.get_current_user) ): @@ -206,7 +180,6 @@ async def add_report(data_in: schemas.AddReport, @router.post("/edit_report") async def edit_report(data_in: schemas.EditReport, - game: str, db: AsyncIOMotorDatabase = Depends(get_database), current_user: schemas.UserDB = Depends(deps.get_current_user) ): @@ -221,7 +194,6 @@ async def edit_report(data_in: schemas.EditReport, @router.post("/del_report") async def del_report( - game: str, data_in: schemas.DelReport, db: AsyncIOMotorDatabase = Depends(get_database), current_user: schemas.UserDB = Depends(deps.get_current_user) @@ -232,29 +204,7 @@ async def del_report( return schemas.Msg(code=0, msg='ok', data='ok') -@router.post("/edit") -async def edit( - game: str, - data_in: schemas.EditDashboard, - db: AsyncIOMotorDatabase = Depends(get_database), - current_user: schemas.UserDB = Depends(deps.get_current_user) -): - """编辑看板名""" - await crud.dashboard.update_one(db, {'_id': data_in.dashboard_id}, {'$set': {'name': data_in.new_name}}) - return schemas.Msg(code=0, msg='ok', data='ok') -@router.post("/") -async def dashboards(request: Request, - game: str, - data_in: schemas.ReadDashboard, - db: AsyncIOMotorDatabase = Depends(get_database), - current_user: schemas.UserDB = Depends(deps.get_current_user) - ): - """获取一个看板""" - res = await crud.dashboard.get(db, id=data_in.id) - reports = {item['report_id']: item for item in res['reports']} - reports_detail = await crud.report.find_many(db, {'_id': {'$in': list(reports.keys())}}, {'query.cachedata': False}) - for item in reports_detail: - reports[item['_id']].update(item) - return schemas.Msg(code=0, msg='ok', data=reports) + + diff --git a/api/api_v1/endpoints/interview.py b/api/api_v1/endpoints/interview.py index 4ba4127..6b5650a 100644 --- a/api/api_v1/endpoints/interview.py +++ b/api/api_v1/endpoints/interview.py @@ -2,9 +2,11 @@ import operator import os import re import pandas as pd +import pymongo from fastapi import APIRouter, Depends, Request, File, UploadFile from motor.motor_asyncio import AsyncIOMotorDatabase +from api import deps from utils.dingding import get_redis_alluid, send_dates from utils.jianli import get_resume import crud, schemas @@ -295,7 +297,7 @@ async def event_edit( sql = f""" select count(job_id) from HR.resumes where job_id = '{i['job_id']}' and interview_stage = 7 """ - num=await ckdb.execute(sql) + num = await ckdb.execute(sql) job_list.append(i['job_name']) job_list.append(i['job_sector']) @@ -411,9 +413,9 @@ async def event_edit( """ await ckdb.execute(sql) # 给招聘中职位计入职数 - res=await crud.jobs.find_job(db,data_in.job_id) - num=res['now_job_num']+1 - await crud.jobs.update_job(db,schemas.Jobs(job_id=data_in.job_id,now_job_num=num)) + res = await crud.jobs.find_job(db, data_in.job_id) + num = res['now_job_num'] + 1 + await crud.jobs.update_job(db, schemas.Jobs(job_id=data_in.job_id, now_job_num=num)) return schemas.Msg(code=200, msg='ok', data='') @@ -569,3 +571,58 @@ async def event_edit( """修改职位信息,修改职位招聘状态""" await crud.jobs.update_job(db, data_in) return schemas.Msg(code=200, msg='ok', data='') + + +@router.post("/create") +async def create( + data_in: schemas.DashboardCreate, + db: AsyncIOMotorDatabase = Depends(get_database), + current_user: schemas.UserDB = Depends(deps.get_current_user) +) -> schemas.Msg: + """创建看板""" + try: + await crud.dashboard.create(db, data_in.name, user_id=current_user.id) + except pymongo.errors.DuplicateKeyError: + return schemas.Msg(code=-1, msg='看板已存在', data='看板已存在') + + return schemas.Msg(code=0, msg='创建成功', data='') + + +@router.post("/delete") +async def delete( + request: Request, + data_in: schemas.DashboardDelete, + db: AsyncIOMotorDatabase = Depends(get_database), + current_user: schemas.UserDB = Depends(deps.get_current_user) +) -> schemas.Msg: + """删除看板""" + del_dashboard = await crud.dashboard.delete(db, {'_id': {'$in': data_in.ids}}) + if del_dashboard.deleted_count == 0: + return schemas.Msg(code=-1, msg='error', data='删除失败') + return schemas.Msg(code=0, msg='ok', data='删除成功') + + +@router.post("/get_dashboard") +async def dashboards(request: Request, + data_in: schemas.ReadDashboard, + db: AsyncIOMotorDatabase = Depends(get_database), + current_user: schemas.UserDB = Depends(deps.get_current_user) + ): + """获取一个看板""" + res = await crud.dashboard.get(db, id=data_in.id) + reports = {item['report_id']: item for item in res['reports']} + reports_detail = await crud.report.find_many(db, {'_id': {'$in': list(reports.keys())}}, {'query.cachedata': False}) + for item in reports_detail: + reports[item['_id']].update(item) + return schemas.Msg(code=0, msg='ok', data=reports) + + +@router.post("/edit") +async def edit( + data_in: schemas.EditDashboard, + db: AsyncIOMotorDatabase = Depends(get_database), + current_user: schemas.UserDB = Depends(deps.get_current_user) +): + """编辑看板名""" + await crud.dashboard.update_one(db, {'_id': data_in.dashboard_id}, {'$set': {'name': data_in.new_name}}) + return schemas.Msg(code=0, msg='ok', data='ok') diff --git a/crud/crud_dashboard.py b/crud/crud_dashboard.py index ef9d6da..432684b 100644 --- a/crud/crud_dashboard.py +++ b/crud/crud_dashboard.py @@ -8,12 +8,10 @@ __all__ = 'dashboard', class CRUDDashboard(CRUDBase): - - async def create(self, db: AsyncIOMotorDatabase, obj_in: DashboardCreate, user_id: str): - db_obj = DashboardDB( - **obj_in.dict(), user_id=user_id, - _id=uuid.uuid1().hex - + # 创建一个空看板 + async def create(self, db: AsyncIOMotorDatabase,name, user_id: str): + db_obj = DashboardDB( user_id=user_id, + _id=uuid.uuid1().hex,name=name ) await db[self.coll_name].insert_one(db_obj.dict(by_alias=True)) diff --git a/liwei_接口文档.md b/liwei_接口文档.md index c3dabc4..678378f 100644 --- a/liwei_接口文档.md +++ b/liwei_接口文档.md @@ -159,3 +159,29 @@ api:/api/v1/itr/amend_job max_money: int = None # 薪资范围max requirement: str = None # 需求描述 +#创建看板 +api:/api/v1/itr/create +请求方式:post +参数: + name: str # 看板名 + + +#删除看板 +api:/api/v1/itr/delete +请求方式:post +参数: + ids: List[str] + + +#获取一个看板 +api:/api/v1/itr/get_dashboard +请求方式:post +参数: + id: str + +#编辑看板名 +api:/api/v1/itr/edit +请求方式:post +参数: + dashboard_id: str + new_name: str \ No newline at end of file diff --git a/schemas/dashboard.py b/schemas/dashboard.py index 2130e9c..d765430 100644 --- a/schemas/dashboard.py +++ b/schemas/dashboard.py @@ -15,9 +15,6 @@ class DashboardBase(BaseModel): # 解析请求json 创建项目 class DashboardCreate(DashboardBase): name: str - project_id: str - # cat: str - pid: str class ReadDashboard(BaseModel): @@ -96,10 +93,7 @@ class EditReport(DBBase): # -------------------------------------------------------------- # 数据库模型 class DashboardDB(DBBase): - name: str - user_id: str - project_id: str - # cat: Category - reports: List[str] = [] - pid: str - create_date: datetime = datetime.now() + name: str # 看板名 + user_id: str # 用户名 + reports: List[str] = [] # 看板里面的详情 + create_date: datetime = datetime.now() #创建时间 diff --git a/schemas/interview_plan.py b/schemas/interview_plan.py index 8ccceb0..f3f9647 100644 --- a/schemas/interview_plan.py +++ b/schemas/interview_plan.py @@ -57,3 +57,5 @@ class send_str_mail(BaseModel): class user_id(BaseModel): user_id: List[str] # 钉钉接收者的唯一id name: str # 求职者姓名 + +