|
@@ -201,3 +201,129 @@ async def get_publish_list(
|
|
|
# 处理异常
|
|
|
traceback.print_exc()
|
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
+
|
|
|
+@router.get('/edit')
|
|
|
+async def get_edit_info(
|
|
|
+ request: Request,
|
|
|
+ info_id: str = Query(None, description='信息ID'),
|
|
|
+ db: Session = Depends(get_db)):
|
|
|
+
|
|
|
+ row = db.query(InfoPublishBase).filter(InfoPublishBase.id == info_id).first()
|
|
|
+ data = get_model_dict(row)
|
|
|
+ data['add_time'] = get_datetime_str(data['add_time'])
|
|
|
+ data['publish_time'] = get_datetime_str(data['publish_time'])
|
|
|
+
|
|
|
+ data["examines"] = []
|
|
|
+ rows = db.query(InfoPublishBase).filter(InfoPublishExamine.publish_id == info_id).filter(InfoPublishExamine.del_flag == '0').all()
|
|
|
+ for row in rows:
|
|
|
+ data["examines"].append({
|
|
|
+ "examine_type": row.examine_type,
|
|
|
+ "examine_sub_type": row.examine_sub_type,
|
|
|
+ "content": row.content,
|
|
|
+ "examine_time": get_datetime_str(row.examine_time),
|
|
|
+ "user_id": row.user_id,
|
|
|
+ "user_name": row.user_name,
|
|
|
+ "nick_name": row.nick_name
|
|
|
+ })
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "msg": "查询成功",
|
|
|
+ "data": data
|
|
|
+ }
|
|
|
+
|
|
|
+@router.post('/edit')
|
|
|
+async def post_edit_info(
|
|
|
+ request: Request,
|
|
|
+ body = Depends(remove_xss_json),
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id = Depends(valid_access_token)):
|
|
|
+
|
|
|
+ info_id = body['info_id']
|
|
|
+ del body['info_id']
|
|
|
+ body['recorded_by'] = user_id
|
|
|
+
|
|
|
+ db.query(InfoPublishBase).filter(InfoPublishBase.id == info_id).update(body)
|
|
|
+ db.commit()
|
|
|
+
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "msg": "保存信息成功"
|
|
|
+ }
|
|
|
+
|
|
|
+@router.post('/examine')
|
|
|
+async def post_examine_info(
|
|
|
+ request: Request,
|
|
|
+ body = Depends(remove_xss_json),
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id = Depends(valid_access_token)):
|
|
|
+
|
|
|
+ user_row = db.query(SysUser).filter(SysUser.user_id == user_id).first()
|
|
|
+
|
|
|
+ new_examine = InfoPublishExamine(
|
|
|
+ pubish_id = body['info_id'],
|
|
|
+ examine_type = body['examine_type'],
|
|
|
+ examine_sub_type = body['examine_sub_type'],
|
|
|
+ content = body['content'],
|
|
|
+ examine_time = datetime.now(),
|
|
|
+ user_id = user_id,
|
|
|
+ user_name = user_row.user_name,
|
|
|
+ nick_name = user_row.nick_name
|
|
|
+ )
|
|
|
+
|
|
|
+ db.add(new_examine)
|
|
|
+ db.commit()
|
|
|
+
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "msg": "保存审批记录成功"
|
|
|
+ }
|
|
|
+
|
|
|
+@router.get("send_list")
|
|
|
+async def get_send_list(
|
|
|
+ info_id: str = Query('', description='信息ID'),
|
|
|
+ keywords: str = Query('', description='关键字'),
|
|
|
+ sort_by: str = Query('', description='排序字段'),
|
|
|
+ sort_order: str = Query("asc", description='排序方式'),
|
|
|
+ page: int = Query(1, gt=0, description='页码'),
|
|
|
+ page_size: int = Query(10, gt=0, description='pageSize'),
|
|
|
+ db: Session = Depends(get_db)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ # 应用查询条件
|
|
|
+ where = ()
|
|
|
+ where = and_(where, InfoPublishResponses.publish_id == info_id)
|
|
|
+
|
|
|
+ # 计算总条目数
|
|
|
+ q = db.query(func.count(InfoPublishResponses.id))
|
|
|
+ q = q.filter(where)
|
|
|
+ total = q.scalar()
|
|
|
+
|
|
|
+ # 执行分页查询
|
|
|
+ q = db.query(InfoPublishResponses)
|
|
|
+ q = q.filter(where)
|
|
|
+ rows = q.order_by(InfoPublishResponses.id.desc()).offset((page - 1) * page_size).limit(page_size).all()
|
|
|
+
|
|
|
+ data = []
|
|
|
+ for row in rows:
|
|
|
+ data.append({
|
|
|
+ "user_id": row.user_id,
|
|
|
+ "user_name": row.user_name,
|
|
|
+ "nick_name": row.nick_name,
|
|
|
+ "dept_name": row.dept_name,
|
|
|
+ "sent_status": row.sent_status,
|
|
|
+ "sent_time": get_datetime_str(row.sent_time),
|
|
|
+ "response_type": row.response_type
|
|
|
+ })
|
|
|
+
|
|
|
+ # 返回结果
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "msg": "查询成功",
|
|
|
+ "data": data,
|
|
|
+ "total": total
|
|
|
+ }
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ # 处理异常
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=str(e))
|