1.创建,删除,获取,修改看板

This commit is contained in:
李伟 2022-07-20 15:32:55 +08:00
parent c163d02176
commit e1e6c544bc
6 changed files with 100 additions and 73 deletions

View File

@ -10,19 +10,7 @@ from utils.func import get_uid
router = APIRouter() 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') @router.post('/edit_show_report')
@ -42,19 +30,7 @@ async def edit_show_report(
return schemas.Msg(code=-1, msg='没有修改', data=dict()) 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") @router.post("/move")
@ -74,7 +50,6 @@ async def move(
@router.post("/sort") @router.post("/sort")
async def sort( async def sort(
game: str,
data_in: schemas.DashboardSort, data_in: schemas.DashboardSort,
db: AsyncIOMotorDatabase = Depends(get_database), db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user) 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_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}) {'_id': True})
dest_space_id = dest_default_space.get('_id') dest_space_id = dest_default_space.get('_id')
user_id = request.user.id user_id = request.user.id
@ -191,7 +166,6 @@ async def copy(
@router.post("/add_report") @router.post("/add_report")
async def add_report(data_in: schemas.AddReport, async def add_report(data_in: schemas.AddReport,
game: str,
db: AsyncIOMotorDatabase = Depends(get_database), db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user) 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") @router.post("/edit_report")
async def edit_report(data_in: schemas.EditReport, async def edit_report(data_in: schemas.EditReport,
game: str,
db: AsyncIOMotorDatabase = Depends(get_database), db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user) 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") @router.post("/del_report")
async def del_report( async def del_report(
game: str,
data_in: schemas.DelReport, data_in: schemas.DelReport,
db: AsyncIOMotorDatabase = Depends(get_database), db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user) 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') 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)

View File

@ -2,9 +2,11 @@ import operator
import os import os
import re import re
import pandas as pd import pandas as pd
import pymongo
from fastapi import APIRouter, Depends, Request, File, UploadFile from fastapi import APIRouter, Depends, Request, File, UploadFile
from motor.motor_asyncio import AsyncIOMotorDatabase from motor.motor_asyncio import AsyncIOMotorDatabase
from api import deps
from utils.dingding import get_redis_alluid, send_dates from utils.dingding import get_redis_alluid, send_dates
from utils.jianli import get_resume from utils.jianli import get_resume
import crud, schemas import crud, schemas
@ -295,7 +297,7 @@ async def event_edit(
sql = f""" sql = f"""
select count(job_id) from HR.resumes where job_id = '{i['job_id']}' and interview_stage = 7 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_name'])
job_list.append(i['job_sector']) job_list.append(i['job_sector'])
@ -411,9 +413,9 @@ async def event_edit(
""" """
await ckdb.execute(sql) await ckdb.execute(sql)
# 给招聘中职位计入职数 # 给招聘中职位计入职数
res=await crud.jobs.find_job(db,data_in.job_id) res = await crud.jobs.find_job(db, data_in.job_id)
num=res['now_job_num']+1 num = res['now_job_num'] + 1
await crud.jobs.update_job(db,schemas.Jobs(job_id=data_in.job_id,now_job_num=num)) 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='') return schemas.Msg(code=200, msg='ok', data='')
@ -569,3 +571,58 @@ async def event_edit(
"""修改职位信息,修改职位招聘状态""" """修改职位信息,修改职位招聘状态"""
await crud.jobs.update_job(db, data_in) await crud.jobs.update_job(db, data_in)
return schemas.Msg(code=200, msg='ok', data='') 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')

View File

@ -8,12 +8,10 @@ __all__ = 'dashboard',
class CRUDDashboard(CRUDBase): class CRUDDashboard(CRUDBase):
# 创建一个空看板
async def create(self, db: AsyncIOMotorDatabase, obj_in: DashboardCreate, user_id: str): async def create(self, db: AsyncIOMotorDatabase,name, user_id: str):
db_obj = DashboardDB( db_obj = DashboardDB( user_id=user_id,
**obj_in.dict(), user_id=user_id, _id=uuid.uuid1().hex,name=name
_id=uuid.uuid1().hex
) )
await db[self.coll_name].insert_one(db_obj.dict(by_alias=True)) await db[self.coll_name].insert_one(db_obj.dict(by_alias=True))

View File

@ -159,3 +159,29 @@ api:/api/v1/itr/amend_job
max_money: int = None # 薪资范围max max_money: int = None # 薪资范围max
requirement: str = None # 需求描述 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

View File

@ -15,9 +15,6 @@ class DashboardBase(BaseModel):
# 解析请求json 创建项目 # 解析请求json 创建项目
class DashboardCreate(DashboardBase): class DashboardCreate(DashboardBase):
name: str name: str
project_id: str
# cat: str
pid: str
class ReadDashboard(BaseModel): class ReadDashboard(BaseModel):
@ -96,10 +93,7 @@ class EditReport(DBBase):
# -------------------------------------------------------------- # --------------------------------------------------------------
# 数据库模型 # 数据库模型
class DashboardDB(DBBase): class DashboardDB(DBBase):
name: str name: str # 看板名
user_id: str user_id: str # 用户名
project_id: str reports: List[str] = [] # 看板里面的详情
# cat: Category create_date: datetime = datetime.now() #创建时间
reports: List[str] = []
pid: str
create_date: datetime = datetime.now()

View File

@ -57,3 +57,5 @@ class send_str_mail(BaseModel):
class user_id(BaseModel): class user_id(BaseModel):
user_id: List[str] # 钉钉接收者的唯一id user_id: List[str] # 钉钉接收者的唯一id
name: str # 求职者姓名 name: str # 求职者姓名