__init__.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from fastapi import APIRouter, Request, Depends, Query, HTTPException, status
  4. from common.security import valid_access_token
  5. from sqlalchemy.orm import Session
  6. from sqlalchemy.sql import func
  7. from common.auth_user import *
  8. from sqlalchemy import text
  9. from pydantic import BaseModel
  10. from common.BigDataCenterAPI import *
  11. from database import get_db
  12. from typing import List
  13. from models import *
  14. from utils import *
  15. from utils.spatial import *
  16. import json
  17. import traceback
  18. router = APIRouter()
  19. @router.post("/create")
  20. async def create_pattern(
  21. user_id=Depends(valid_access_token),
  22. body = Depends(remove_xss_json),
  23. db: Session = Depends(get_db)
  24. ):
  25. new_pattern = TpPatternList(
  26. pattern_name=body['pattern_name'],
  27. content=body['content'],
  28. create_dept = user_id
  29. )
  30. db.add(new_pattern)
  31. db.commit()
  32. return {"code": 200, "msg": "创建成功", "data": None}
  33. @router.put("/update/{pattern_id}")
  34. async def update_pattern(
  35. pattern_id :int ,
  36. user_id=Depends(valid_access_token),
  37. body=Depends(remove_xss_json),
  38. db: Session = Depends(get_db)
  39. ):
  40. update_pattern = db.query(TpPatternList).filter(TpPatternList.id == pattern_id).first()
  41. if not update_pattern:
  42. raise HTTPException(status_code=404, detail="图案不存在")
  43. update_pattern.pattern_name = body['pattern_name']
  44. update_pattern.content = body['content']
  45. update_pattern.create_dept = user_id
  46. db.commit()
  47. return {"code": 200, "msg": "更新成功"}
  48. @router.get("/info/{pattern_id}")
  49. async def get_pattern_info(
  50. pattern_id: int,
  51. db: Session = Depends(get_db)
  52. ):
  53. pattern = db.query(TpPatternList).filter(TpPatternList.id == pattern_id).first()
  54. if not pattern:
  55. raise HTTPException(status_code=404, detail="图案不存在")
  56. return {"code": 200, "msg": "获取成功", "data": {"pattern_name": pattern.pattern_name, "content": pattern.content}}
  57. @router.get("/list")
  58. async def get_pattern_list(
  59. pattern_name: str = Query(None, description='预案名称'),
  60. page: int = Query(1, gt=0, description='页码'),
  61. pageSize: int = Query(5, gt=0, description='每页条目数量'),
  62. db: Session = Depends(get_db)
  63. ):
  64. query = db.query(TpPatternList)
  65. if pattern_name:
  66. query = query.filter(TpPatternList.pattern_namelike(f'%{pattern_name}%'))
  67. total_items = query.count()
  68. # 排序
  69. query = query.order_by(TpPatternList.create_time.desc())
  70. # 执行分页查询
  71. patterns = query.offset((page - 1) * pageSize).limit(pageSize).all()
  72. return {"code": 200, "msg": "查询成功", "data": [{"id": p.id, "pattern_name": p.pattern_name, "content": p.content} for p in patterns],
  73. "total": total_items,
  74. "page": page,
  75. "pageSize": pageSize,
  76. "totalPages": (total_items + pageSize - 1) // pageSize
  77. }
  78. @router.delete("/delete/{pattern_id}")
  79. async def delete_pattern(
  80. pattern_id: int,
  81. db: Session = Depends(get_db)
  82. ):
  83. # 检查图案是否存在
  84. pattern = db.query(TpPatternList).filter(TpPatternList.id == pattern_id).first()
  85. if not pattern:
  86. raise HTTPException(status_code=404, detail="图案不存在")
  87. # 执行删除操作
  88. pattern.del_flag='2'
  89. db.commit()
  90. return {"code": 200, "msg": "删除成功"}