import datetime import mimetypes from collections import defaultdict import time from urllib.parse import quote import re from clickhouse_driver import Client import pandas as pd import numpy as np from fastapi import APIRouter, Depends, Request from motor.motor_asyncio import AsyncIOMotorDatabase from pandas import DataFrame from starlette.responses import StreamingResponse import crud, schemas from common import * from api import deps from db import get_database from db.ckdb import get_ck_db, CKDrive, ckdb from db.redisdb import get_redis_pool, RedisDrive from models.behavior_analysis import BehaviorAnalysis from models.user_analysis import UserAnalysis from models.interview_zsgc import InterviewDo from utils import DfToStream, get_bijiao router = APIRouter() # 面试查询 @router.post("/interview_find") async def interview_find( request: Request, interview: InterviewDo = Depends(InterviewDo), db: CKDrive = Depends(get_ck_db), ) -> schemas.Msg: """ interview面试数据查询 """ await interview.init() res = interview.find_interview_sql() sql = res['sql'] data = await db.execute(sql) if not data: return schemas.Msg(code=-9, msg='无数据', data=None) return schemas.Msg(code=200, msg='ok', data=data) # 面试修改 @router.post("/interview_update") async def interview_update( request: Request, interview: InterviewDo = Depends(InterviewDo), db: CKDrive = Depends(get_ck_db), ) -> schemas.Msg: """ interview面试数据更新 """ await interview.init() res = interview.update_interview_sql() sql = res['sql'] try: data = await db.execute(sql) except: return schemas.Msg(code=-9, msg='数据有误', data=None) return schemas.Msg(code=200, msg='ok', data=data) # 写入面试数据 @router.post("/interview_insert") async def interview_insert( request: Request, interview: InterviewDo = Depends(InterviewDo), db: CKDrive = Depends(get_ck_db), ) -> schemas.Msg: """ interview面试数据写入 """ await interview.init() res = interview.insert_interview_sql() sql = res['sql'] insert_data = res['insert_data'] data = await db.execute_dict(sql, insert_data) return schemas.Msg(code=200, msg='ok', data=data)