zhaoqingang
2024-12-11 a791022ff1311e1fb76930c398d6ff91036d0456
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import uuid
 
from streamlit.time_util import adjust_years
 
from Log import logger
from app.models.label_model import LabelModel, LabelWorkerModel
from app.models.role_model import RoleModel
 
 
async def label_list_service(db, keyword: str, label_type):
    query = db.query(LabelModel)
    if keyword:
        query = query.filter(LabelModel.name.like('%{}%'.format(keyword)))
    if label_type:
        query = query.filter(LabelModel.label_type==label_type)
    labels = query.order_by(LabelModel.id.desc()).all()
    return {"total": query.count(), "rows":  [label.to_json() for label in labels]}
 
 
 
async def create_label_service(db, label_name, label_type, user_id):
    try:
        label_model = LabelModel(name=label_name,creator=user_id, label_type=label_type)
        db.add(label_model)
        db.commit()
        db.refresh(label_model)
    except Exception as e:
        logger.error(e)
        db.rollback()
        return False
    return True
 
 
async def delete_role_service(db, label_id: int):
    try:
        db.query(LabelModel).filter(LabelModel.id == label_id).delete()
        db.commit()
    except Exception as e:
        logger.error(e)
        db.rollback()
        return False
    return True
 
 
async def sign_label_service(db, object_id, label_list):
    delete_list = []
    has_list = []
    for i in db.query(LabelWorkerModel).filter(LabelWorkerModel.object_id == object_id).all():
        if i.label_id not in label_list:
            delete_list.append(i.id)
        else:
            has_list.append(i.label_id)
    for label_id in label_list:
        if label_id in has_list:
            continue
        try:
            label = LabelWorkerModel(label_id=label_id, object_id=object_id)
            db.add(label)
            db.commit()
        except Exception as e:
            logger.error(e)
            db.rollback()
            # return False
    return True