def get_root_item_by_user_id(cls, user_id): mode_select = DataItem.select(DataItem, PanAccounts).join( PanAccounts, on=(DataItem.panacc == PanAccounts.id), attr="pan").where(DataItem.filename == TOP_DIR_FILE_NAME, PanAccounts.user_id == user_id) # print("get_root_item_by_user_id:", mode_select) return mode_select
def new_local_visible_by_parent(cls, parent_id, show): offset = 0 size = 500 cdi: DataItem = None ln = size dog = 1000000 while ln == size and dog > 0: dog = dog - 1 ms = DataItem.select().where( DataItem.parent == parent_id, DataItem.isdir == 0).offset(offset).limit(size) ln = len(ms) item_list = [] for cdi in ms: rs = LocalVisible.select().where( LocalVisible.id == cdi.id).exists() if not rs: if show == 1: item_list.append(cdi) else: if show == 0: item_list.append(cdi) if item_list: cls.del_save_local_list(item_list, show) # print("dog:", dog, ",offset:", offset) offset = offset + size
def query_data_item_by_parent(cls, parent_id, is_dir=True, offset=0, limit=100): return DataItem.select().where( DataItem.isdir == (1 if is_dir else 0), DataItem.parent == parent_id).limit(limit).offset(offset)
def sum_size_dir(cls, parent_id): model_rs: ModelSelect = DataItem.select( fn.SUM(DataItem.size).alias('total')).where( DataItem.parent == parent_id) if model_rs: # print('model_rs:', model_rs.dicts()) v = model_rs.dicts()[0].get('total') if v: return v return 0
def find_need_update_size_dir(cls, parent_id) -> DataItem: return DataItem.select().where(DataItem.parent == parent_id, DataItem.isdir == 1, DataItem.sized == 0).first()
def query_leaf_data_item(cls, is_dir=True, offset=0, limit=100): # Parent = DataItem.alias() return DataItem.select().where( DataItem.isdir == (1 if is_dir else 0), DataItem.pin == 0).limit(limit).offset(offset)
def query_data_item_by_parent_all(cls, parent_id, offset=0, limit=100): return DataItem.select().where( DataItem.parent == parent_id).limit(limit).offset(offset)
def check_data_item_exists_by_parent(cls, item_id, parent_id): return DataItem.select().where(DataItem.id == item_id, DataItem.parent == parent_id).exists()
def get_root_item_by_pan_id(cls, pan_id): return DataItem.select().where(DataItem.filename == TOP_DIR_FILE_NAME, DataItem.panacc == pan_id)
def get_data_item_by_id(cls, pk_id): return DataItem.select().where(DataItem.id == pk_id).first()
def get_data_item_by_fs_id(cls, fs_id): return DataItem.select().where(DataItem.fs_id == fs_id).first()