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.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)

View File

@ -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')

View File

@ -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))

View File

@ -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

View File

@ -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() #创建时间

View File

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