123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- from fastapi import APIRouter, Request, Depends, Query, HTTPException, status
- from common.security import valid_access_token
- from sqlalchemy.orm import Session
- from sqlalchemy.sql import func
- from common.auth_user import *
- from sqlalchemy import text
- from pydantic import BaseModel
- from common.BigDataCenterAPI import *
- from database import get_db
- from typing import List
- from models import *
- from utils import *
- from utils.spatial import *
- import json
- import traceback
- router = APIRouter()
- @router.post("/create")
- async def create_pattern(
- user_id=Depends(valid_access_token),
- body = Depends(remove_xss_json),
- db: Session = Depends(get_db)
- ):
- new_pattern = TpPatternList(
- pattern_name=body['pattern_name'],
- content=body['content'],
- create_dept = user_id
- )
- db.add(new_pattern)
- db.commit()
- return {"code": 200, "msg": "创建成功", "data": None}
- @router.put("/update/{pattern_id}")
- async def update_pattern(
- pattern_id :int ,
- user_id=Depends(valid_access_token),
- body=Depends(remove_xss_json),
- db: Session = Depends(get_db)
- ):
- update_pattern = db.query(TpPatternList).filter(TpPatternList.id == pattern_id).first()
- if not update_pattern:
- raise HTTPException(status_code=404, detail="图案不存在")
- update_pattern.pattern_name = body['pattern_name']
- update_pattern.content = body['content']
- update_pattern.create_dept = user_id
- db.commit()
- return {"code": 200, "msg": "更新成功"}
- @router.get("/info/{pattern_id}")
- async def get_pattern_info(
- pattern_id: int,
- db: Session = Depends(get_db)
- ):
- pattern = db.query(TpPatternList).filter(TpPatternList.id == pattern_id).first()
- if not pattern:
- raise HTTPException(status_code=404, detail="图案不存在")
- return {"code": 200, "msg": "获取成功", "data": {"pattern_name": pattern.pattern_name, "content": pattern.content}}
- @router.get("/list")
- async def get_pattern_list(
- pattern_name: str = Query(None, description='预案名称'),
- page: int = Query(1, gt=0, description='页码'),
- pageSize: int = Query(5, gt=0, description='每页条目数量'),
- db: Session = Depends(get_db)
- ):
- query = db.query(TpPatternList)
- if pattern_name:
- query = query.filter(TpPatternList.pattern_namelike(f'%{pattern_name}%'))
- total_items = query.count()
- # 排序
- query = query.order_by(TpPatternList.create_time.desc())
- # 执行分页查询
- patterns = query.offset((page - 1) * pageSize).limit(pageSize).all()
- return {"code": 200, "msg": "查询成功", "data": [{"id": p.id, "pattern_name": p.pattern_name, "content": p.content} for p in patterns],
- "total": total_items,
- "page": page,
- "pageSize": pageSize,
- "totalPages": (total_items + pageSize - 1) // pageSize
- }
- @router.delete("/delete/{pattern_id}")
- async def delete_pattern(
- pattern_id: int,
- db: Session = Depends(get_db)
- ):
- # 检查图案是否存在
- pattern = db.query(TpPatternList).filter(TpPatternList.id == pattern_id).first()
- if not pattern:
- raise HTTPException(status_code=404, detail="图案不存在")
- # 执行删除操作
- pattern.del_flag='2'
- db.commit()
- return {"code": 200, "msg": "删除成功"}
|