|
@@ -0,0 +1,102 @@
|
|
|
+#!/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": "删除成功"}
|