Skip to content

Commit

Permalink
Merge pull request #2656 from desmond1626/dev
Browse files Browse the repository at this point in the history
调整未识别的相关逻辑
  • Loading branch information
jxxghp authored Dec 25, 2022
2 parents 583a2e8 + b95bcbd commit e02509e
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 9 deletions.
24 changes: 15 additions & 9 deletions app/filetransfer.py
Original file line number Diff line number Diff line change
Expand Up @@ -551,10 +551,12 @@ def transfer_media(self,
if udf_flag:
return success_flag, error_message
# 记录未识别
self.dbhelper.insert_transfer_unknown(reg_path, target_dir)
is_need_insert_unknown = self.dbhelper.is_need_insert_transfer_unknown(reg_path)
if is_need_insert_unknown:
self.dbhelper.insert_transfer_unknown(reg_path, target_dir)
alert_count += 1
failed_count += 1
alert_count += 1
if error_message not in alert_messages:
if error_message not in alert_messages and is_need_insert_unknown:
alert_messages.append(error_message)
# 原样转移过去
if unknown_dir:
Expand Down Expand Up @@ -645,10 +647,12 @@ def transfer_media(self,
if udf_flag:
return success_flag, error_message
# 记录未识别
self.dbhelper.insert_transfer_unknown(reg_path, target_dir)
is_need_insert_unknown = self.dbhelper.is_need_insert_transfer_unknown(reg_path)
if is_need_insert_unknown:
self.dbhelper.insert_transfer_unknown(reg_path, target_dir)
alert_count += 1
failed_count += 1
alert_count += 1
if error_message not in alert_messages:
if error_message not in alert_messages and is_need_insert_unknown:
alert_messages.append(error_message)
continue
else:
Expand Down Expand Up @@ -678,10 +682,12 @@ def transfer_media(self,
if udf_flag:
return success_flag, error_message
# 记录未识别
self.dbhelper.insert_transfer_unknown(reg_path, target_dir)
is_need_insert_unknown = self.dbhelper.is_need_insert_transfer_unknown(reg_path)
if is_need_insert_unknown:
self.dbhelper.insert_transfer_unknown(reg_path, target_dir)
alert_count += 1
failed_count += 1
alert_count += 1
if error_message not in alert_messages:
if error_message not in alert_messages and is_need_insert_unknown:
alert_messages.append(error_message)
continue
new_file = "%s%s" % (ret_file_path, file_ext)
Expand Down
60 changes: 60 additions & 0 deletions app/helper/db_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,20 @@ def get_transfer_path_by_id(self, logid):
"""
return self._db.query(TRANSFERHISTORY).filter(TRANSFERHISTORY.ID == int(logid)).all()

def is_transfer_history_exists_by_source_full_path(self, source_full_path):
"""
据源文件的全路径查询识别转移记录
"""

path = os.path.dirname(source_full_path)
filename = os.path.basename(source_full_path)
ret = self._db.query(TRANSFERHISTORY).filter(TRANSFERHISTORY.SOURCE_PATH == path,
TRANSFERHISTORY.SOURCE_FILENAME == filename).count()
if ret > 0:
return True
else:
return False

@DbPersist(_db)
def delete_transfer_log_by_id(self, logid):
"""
Expand Down Expand Up @@ -311,6 +325,14 @@ def get_unknown_path_by_id(self, tid):
return []
return self._db.query(TRANSFERUNKNOWN).filter(TRANSFERUNKNOWN.ID == int(tid)).all()

def get_transfer_unknown_by_path(self, path):
"""
根据路径查询未识别记录
"""
if not path:
return []
return self._db.query(TRANSFERUNKNOWN).filter(TRANSFERUNKNOWN.PATH == path).all()

def is_transfer_unknown_exists(self, path):
"""
查询未识别记录是否存在
Expand All @@ -323,6 +345,44 @@ def is_transfer_unknown_exists(self, path):
else:
return False

def is_need_insert_transfer_unknown(self, path):
"""
检查是否需要插入未识别记录
"""
if not path:
return False

"""
1) 如果不存在未识别,则插入
2) 如果存在未处理的未识别,则插入(并不会真正的插入,insert_transfer_unknown里会挡住,主要是标记进行消息推送)
3) 如果未识别已经全部处理完并且存在转移记录,则不插入
4) 如果未识别已经全部处理完并且不存在转移记录,则删除并重新插入
"""
unknowns = self.get_transfer_unknown_by_path(path)
if unknowns:
is_all_proceed = True
for unknown in unknowns:
if unknown.STATE == 'N':
is_all_proceed = False
break

if is_all_proceed:
is_transfer_history_exists = self.is_transfer_history_exists_by_source_full_path(path)
if is_transfer_history_exists:
# 对应 3)
return False
else:
# 对应 4)
for unknown in unknowns:
self.delete_transfer_unknown(unknown.ID)
return True
else:
# 对应 2)
return True
else:
# 对应 1)
return True

@DbPersist(_db)
def insert_transfer_unknown(self, path, dest):
"""
Expand Down

0 comments on commit e02509e

Please sign in to comment.