zhaoqingang
2025-02-06 b9c7727dc6fbb3789f063c0616ef9392311fecb2
app/service/dialog.py
@@ -24,14 +24,15 @@
    else:
        query = query.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()]
    if user.permission != "admin":
        dia_list = [j.id for i in user.groups for j in i.dialogs]
        query = query.filter(or_(DialogModel.tenant_id == user_id, DialogModel.id.in_(dia_list)))
    # else:
    if label:
        id_list = [i.object_id for i in db.query(LabelWorkerModel).filter(LabelWorkerModel.label_id == label).all()]
    if user.permission != "admin":
        dia_list = [j.id for i in user.groups for j in i.dialogs if not label or j.id in id_list]
        query = query.filter(or_(DialogModel.tenant_id == user_id, DialogModel.id.in_(dia_list)))
    else:
        if label:
            query = query.filter(or_(DialogModel.id.in_(id_list)))
        query = query.filter(DialogModel.id.in_(id_list))
    if keyword:
        query = query.filter(DialogModel.name.like('%{}%'.format(keyword)))
@@ -179,16 +180,14 @@
    if user is None:
        return {"rows": []}
    query = db.query(DialogModel).filter(DialogModel.status != Dialog_STATSU_DELETE)
    id_list = []
    if user.permission != "admin":
        dia_list = [j.id for i in user.groups for j in i.dialogs]
        query = query.filter(or_(DialogModel.tenant_id == user_id, DialogModel.id.in_(dia_list)))
    if label:
        id_list = set(
            [i.object_id for i in db.query(LabelWorkerModel).filter(LabelWorkerModel.label_id.in_(label)).all()])
    if user.permission != "admin":
        dia_list = [j.id for i in user.groups for j in i.dialogs if not label or j.id in id_list]
        query = query.filter(or_(DialogModel.tenant_id == user_id, DialogModel.id.in_(dia_list)))
    else:
        if label:
            query = query.filter(or_(DialogModel.id.in_(id_list)))
        query = query.filter(DialogModel.id.in_(id_list))
    if keyword:
        query = query.filter(DialogModel.name.like('%{}%'.format(keyword)))