| | |
| | | |
| | | from sqlalchemy import or_ |
| | | |
| | | from app.config.const import Dialog_STATSU_DELETE |
| | | from app.models import KnowledgeModel, GroupModel, DialogModel, ConversationModel, group_dialog_table, LabelWorkerModel, \ |
| | | LabelModel |
| | | from app.models.user_model import UserModel |
| | |
| | | user = db.query(UserModel).filter(UserModel.id == user_id).first() |
| | | if user is None: |
| | | return {"rows": []} |
| | | query = db.query(DialogModel) |
| | | query = db.query(DialogModel).filter(DialogModel.status != Dialog_STATSU_DELETE) |
| | | id_list = [] |
| | | if label: |
| | | id_list = [i.object_id for i in db.query(LabelWorkerModel).filter(LabelWorkerModel.label_id==label).all()] |
| | |
| | | query = query.filter(DialogModel.name.like('%{}%'.format(keyword))) |
| | | |
| | | if status: |
| | | print(status) |
| | | # print(status) |
| | | query = query.filter(DialogModel.status == status) |
| | | query = query.order_by(DialogModel.update_date.desc()) |
| | | total = query.count() |
| | | if page_size: |
| | | query = query.limit(page_size).offset((page_index - 1) * page_size) |
| | |
| | | ConversationModel.dialog_id.__eq__(dialog_id)).order_by( |
| | | ConversationModel.update_time.desc()).all() |
| | | return [i.to_json() for i in session_list] |
| | | |
| | | |
| | | |
| | | async def create_dialog_service(db, dialog_id, dialog_name, description, icon, dialog_type, mode, user_id): |
| | | try: |
| | | dialog_model = DialogModel(id=dialog_id,name=dialog_name, description=description,icon=icon, dialog_type=dialog_type, tenant_id=user_id, mode=mode,update_date=datetime.now(),create_date=datetime.now()) |
| | | db.add(dialog_model) |
| | | db.commit() |
| | | db.refresh(dialog_model) |
| | | except Exception as e: |
| | | logger.error(e) |
| | | db.rollback() |
| | | return False |
| | | return True |
| | | |
| | | |
| | | async def update_dialog_status_service(db, dialog_id, status): |
| | | try: |
| | | db.query(DialogModel).filter_by(id=dialog_id).update({"status":status, "update_date": datetime.now()}) |
| | | db.commit() |
| | | except Exception as e: |
| | | logger.error(e) |
| | | db.rollback() |
| | | return False |
| | | return True |
| | | |
| | | |
| | | async def delete_dialog_service(db, dialog_id): |
| | | try: |
| | | db.query(DialogModel).filter_by(id=dialog_id).update({"status":Dialog_STATSU_DELETE, "update_date": datetime.now()}) |
| | | db.commit() |
| | | except Exception as e: |
| | | logger.error(e) |
| | | db.rollback() |
| | | return False |
| | | return True |
| | | |
| | | |
| | | async def update_dialog_icon_service(db, dialog_id, icon): |
| | | try: |
| | | db.query(DialogModel).filter_by(id=dialog_id).update({"icon":icon, "update_date": datetime.now()}) |
| | | db.commit() |
| | | except Exception as e: |
| | | logger.error(e) |
| | | db.rollback() |
| | | return False |
| | | return True |