|
|
@@ -19,9 +19,13 @@ from fastapi.staticfiles import StaticFiles
|
|
|
from pymongo import AsyncMongoClient
|
|
|
client = AsyncMongoClient()
|
|
|
from fastapi.responses import FileResponse
|
|
|
-
|
|
|
+from fastapi_cache import FastAPICache
|
|
|
+from inmemory import InMemoryBackend
|
|
|
+from fastapi_cache.decorator import cache
|
|
|
+from contextlib import asynccontextmanager
|
|
|
from fastapi import WebSocket, WebSocketDisconnect
|
|
|
from fastapi import UploadFile
|
|
|
+from collections.abc import AsyncIterator
|
|
|
class ConnectionManager:
|
|
|
"""Class defining socket events"""
|
|
|
def __init__(self):
|
|
|
@@ -42,7 +46,13 @@ class ConnectionManager:
|
|
|
self.active_connections.remove(websocket)
|
|
|
|
|
|
|
|
|
-app = FastAPI()
|
|
|
+@asynccontextmanager
|
|
|
+async def lifespan(_: FastAPI) -> AsyncIterator[None]:
|
|
|
+ FastAPICache.init(InMemoryBackend(), prefix="default")
|
|
|
+ yield
|
|
|
+
|
|
|
+
|
|
|
+app = FastAPI(lifespan=lifespan)
|
|
|
|
|
|
|
|
|
origins = [
|
|
|
@@ -247,11 +257,15 @@ async def read_rcj(item : Rcj):
|
|
|
return await db.getDjcsQingdanrcj(client, item.name, item.bh, item.bt, item.bm)
|
|
|
return await db.getQingdanrcj(client, item.name, item.bh, item.bt, item.bm)
|
|
|
|
|
|
-@app.post("/qingdantuijian/")
|
|
|
-async def read_tuijian(item : Rcj):
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+@app.get("/qingdantuijian/{bm}")
|
|
|
+@cache(expire=86400)
|
|
|
+async def read_tuijian(bm: str):
|
|
|
|
|
|
|
|
|
- return service.getQingdanTuijian(item.bh, item.bt, item.bm)
|
|
|
+ return service.getQingdanTuijian("", "", bm)
|
|
|
|
|
|
|
|
|
@app.post("/dingercj/")
|
|
|
@@ -298,10 +312,11 @@ async def delete(r: Info):
|
|
|
result = await db.delete_files(client, r.name)
|
|
|
return result
|
|
|
|
|
|
-@app.post("/des/")
|
|
|
-async def read_des(r: DingeshuRequest):
|
|
|
- result = service.getDes(r.value)
|
|
|
- if r.value == 30:
|
|
|
+@app.get("/des/{value}")
|
|
|
+@cache(expire=86400)
|
|
|
+async def read_des(value: int):
|
|
|
+ result = service.getDes(value)
|
|
|
+ if value == 30:
|
|
|
result.append({
|
|
|
"id": "2075",
|
|
|
"key" : "2075",
|
|
|
@@ -412,20 +427,23 @@ async def read_des(r: DingeshuRequest):
|
|
|
})
|
|
|
return result
|
|
|
|
|
|
-@app.post("/pbs/")
|
|
|
-async def read_pbs(r: DingeshuRequest):
|
|
|
- result = service.getPbs(r.value)
|
|
|
+@app.get("/pbs/{value}")
|
|
|
+@cache(expire=86400)
|
|
|
+async def read_pbs(value:int):
|
|
|
+ result = service.getPbs(value)
|
|
|
#print(result)
|
|
|
result.insert(0, {"id": "0","key": "0", "label": "全部", "title": "全部"})
|
|
|
return result
|
|
|
|
|
|
-@app.post("/pbxl/")
|
|
|
-async def read_pbxl(r: Info):
|
|
|
- result = service.getPbxl(r.name)
|
|
|
+@app.get("/pbxl/{name}")
|
|
|
+@cache(expire=86400)
|
|
|
+async def read_pbxl(name: str):
|
|
|
+ result = service.getPbxl(name)
|
|
|
#print(result)
|
|
|
return result
|
|
|
|
|
|
-@app.post("/cankao/")
|
|
|
+@app.get("/cankao/")
|
|
|
+@cache(expire=86400)
|
|
|
async def cankao():
|
|
|
result = service.getCankao()
|
|
|
#print(result)
|
|
|
@@ -435,30 +453,32 @@ async def cankao():
|
|
|
async def read_qufei(r: Info):
|
|
|
return await db.getQufei(client, r.name)
|
|
|
|
|
|
-@app.post("/dexilie/")
|
|
|
-async def read_dexilie(r: DingeXilieRequest):
|
|
|
- if r.value == 30 and int(r.id) > 2074:
|
|
|
- return service.getDeXilie_azfy(r.value, r.id)
|
|
|
- result = service.getDeXilie(r.value, r.id)
|
|
|
+@app.get("/dexilie/{value}/{id}")
|
|
|
+@cache(expire=86400)
|
|
|
+async def read_dexilie(value: int, id: str):
|
|
|
+ if value == 30 and int(id) > 2074:
|
|
|
+ return service.getDeXilie_azfy(value, id)
|
|
|
+ result = service.getDeXilie(value, id)
|
|
|
#print(result)
|
|
|
return result
|
|
|
|
|
|
-@app.post("/singledexilie/")
|
|
|
-async def read_singledexilie(r: SingleDingeXilieRequest):
|
|
|
- if r.debh.startswith("D") :
|
|
|
+@app.get("/singledexilie/{zhuanye}/{debh}")
|
|
|
+@cache(expire=86400)
|
|
|
+async def read_singledexilie(zhuanye: int, debh: str):
|
|
|
+ if debh.startswith("D") :
|
|
|
return json.dumps({
|
|
|
"reverse": "None",
|
|
|
"rgde": None,
|
|
|
"jxde": None,
|
|
|
"clde": None,
|
|
|
- "actual_zhuanye": r.zhuanye,
|
|
|
+ "actual_zhuanye": zhuanye,
|
|
|
"bz_selected": {"BZBH": {}},
|
|
|
"bz_selected2": {"BZBH": {}}
|
|
|
}, ensure_ascii=False)
|
|
|
- if "-F" in r.debh:
|
|
|
- return service.read_singledexilie_azfy(r.debh)
|
|
|
- r_debh = r.debh.split("#")[0]
|
|
|
- result1, result2, rgde, jxde, clde, bz_selected, bz_selected2, actual_zhuanye= service.getSingleDeXilie(r.zhuanye, r_debh)
|
|
|
+ if "-F" in debh:
|
|
|
+ return service.read_singledexilie_azfy(debh)
|
|
|
+ r_debh = debh.split("#")[0]
|
|
|
+ result1, result2, rgde, jxde, clde, bz_selected, bz_selected2, actual_zhuanye= service.getSingleDeXilie(zhuanye, r_debh)
|
|
|
print("get result ***************************************")
|
|
|
if result1:
|
|
|
result3 = json.loads(result1)
|
|
|
@@ -525,7 +545,7 @@ async def read_singledexilie(r: SingleDingeXilieRequest):
|
|
|
else:
|
|
|
result3["reverse"] = 'None'
|
|
|
return json.dumps(result3, ensure_ascii=False)
|
|
|
- result1_, result2_, rgde_, jxde_, clde_, bz_selected_, bz_selected2_, actual_zhuanye_ = service.getSingleDeXilie(r.zhuanye, debh)
|
|
|
+ result1_, result2_, rgde_, jxde_, clde_, bz_selected_, bz_selected2_, actual_zhuanye_ = service.getSingleDeXilie(zhuanye, debh)
|
|
|
if result1_:
|
|
|
util.mergerg(rgde, rgde_, coef)
|
|
|
util.mergejx(jxde, jxde_, coef)
|