libushang 8 miesięcy temu
rodzic
commit
391d5691e8
1 zmienionych plików z 18 dodań i 7 usunięć
  1. 18 7
      routers/api/eventManagement/checkin.py

+ 18 - 7
routers/api/eventManagement/checkin.py

@@ -1,6 +1,6 @@
 from fastapi import APIRouter, Request, Depends, HTTPException, Query
 from sqlalchemy.exc import IntegrityError
-from fastapi.responses import HTMLResponse, FileResponse, StreamingResponse
+from fastapi.responses import HTMLResponse, FileResponse, StreamingResponse, RedirectResponse
 from fastapi.responses import JSONResponse
 from database import get_db
 from sqlalchemy import text, exists, and_, or_, not_
@@ -27,14 +27,12 @@ router = APIRouter()
 
 @router.get('/qrcode', response_class=StreamingResponse)
 async def get_qrcode(
+    request: Request,
     event_id: str,
     db: Session = Depends(get_db)
 ):
-    redirect_url = "{}/#/signPage?event_id={}".format(settings.YJXP_WEB_ROOT_PATH, event_id) # 业务页面
-    logger.info("redirect_url: {}", redirect_url)
-    
-    # qrcode_str = f"http://19.155.220.209/api/event_management/event?event_id={event_id}"
-    detail_url = YzyApi.format_redirect_url(redirect_url)
+    url = str(request.url)
+    url = url.replace("qrcode", "qrcode2")
 
     qr = qrcode.QRCode(
         version=1,
@@ -42,7 +40,7 @@ async def get_qrcode(
         box_size=10,
         border=0,
     )
-    qr.add_data(detail_url)
+    qr.add_data(url)
     qr.make(fit=True)
     image = qr.make_image()
 
@@ -51,6 +49,19 @@ async def get_qrcode(
     img_data = buf.getvalue()
     return StreamingResponse(BytesIO(img_data), media_type="image/png")
 
+@router.get('/qrcode2')
+async def get_qrcode2(
+    event_id: str,
+    db: Session = Depends(get_db)
+):    
+    redirect_url = "{}/#/signPage?event_id={}".format(settings.YJXP_WEB_ROOT_PATH, event_id) # 业务页面
+    logger.info("redirect_url: {}", redirect_url)
+    
+    # qrcode_str = f"http://19.155.220.209/api/event_management/event?event_id={event_id}"
+    detail_url = YzyApi.format_redirect_url(redirect_url)
+
+    return RedirectResponse(detail_url)
+
 
 @router.post("/getInfo")
 async def getInfo(