import re from typing import Tuple import arrow import sqlalchemy as sa import json from fastapi import Depends import pandas as pd import numpy as np from sqlalchemy import func, or_, and_, not_ import crud import schemas from core.config import settings from db import get_database from db.redisdb import get_redis_pool, RedisDrive from models.user_label import UserClusterDef # 面试数据ck增删改查 class InterviewDo: def __init__(self, query_in: schemas.InterviewQuery): self.query_in = query_in self.find_column = set() self.data_in = {} self.where = {} async def init(self, *args, **kwargs): self.find_column = self.query_in.find_column self.data_in = self.query_in.data_in self.where = self.query_in.interview_query def insert_interview_sql(self): insert_data = [] if isinstance(self.data_in, dict): insert_data = [self.data_in] if isinstance(self.data_in, list): insert_data = self.data_in keys = () for data in insert_data: keys = tuple(data.keys()) break sql = f"insert into HR.resumes{keys} values" print(sql) return {'sql': sql, 'insert_data': insert_data } def update_interview_sql(self): updateStr = '' whereStr = '' for key, value in self.data_in.items(): if isinstance(value, str): updateStr += str(key) + ' = ' + "'" + value + "'" + ' ' continue updateStr += str(key) + ' = ' + str(value) + ' ' for key, value in self.where.items(): if isinstance(value, str): whereStr += str(key) + ' = ' + "'" + value + "'" + ' ' continue whereStr += str(key) + ' = ' + str(value) + ' ' updateStr.strip() whereStr.strip() sql = f"alter table HR.resumes update {updateStr} where {whereStr}" print(sql) return {'sql': sql, } def find_interview_sql(self): whereStr = '' findStr = '' for fstr in self.find_column: findStr += fstr + ', ' for key, value in self.where.items(): if isinstance(value, str): whereStr += str(key) + ' = ' + "'" + value + "'" + ' ' continue whereStr += str(key) + ' = ' + str(value) + ' ' whereStr = whereStr.strip() findStr = findStr.strip().strip(',') # sql = f"select {findStr} from HR.resumes where {whereStr}" sql = f"select * from HR.resumes where {whereStr}" print(sql) return {'sql': sql, }