统一Mock上传状态主体账号绑定优先级

This commit is contained in:
wkc
2026-03-18 15:50:28 +08:00
parent 6fb728709e
commit 0a85c098e8
3 changed files with 96 additions and 10 deletions

View File

@@ -288,9 +288,19 @@ class FileService:
bank_name, template_name = rng.choice(bank_options)
# 生成交易日期范围
end_date = datetime.now()
# 生成基于种子的稳定时间范围,确保同一 logId 重复查询完全一致
base_datetime = datetime(2024, 1, 1, 8, 0, 0)
end_date = base_datetime + timedelta(days=rng.randint(180, 540))
start_date = end_date - timedelta(days=rng.randint(90, 365))
file_upload_time = (
base_datetime
+ timedelta(
days=rng.randint(0, 540),
hours=rng.randint(0, 23),
minutes=rng.randint(0, 59),
seconds=rng.randint(0, 59),
)
)
# 生成账号和主体
primary_enterprise_name, primary_account_no = self._generate_primary_binding_from_rng(rng)
@@ -306,7 +316,7 @@ class FileService:
"fileSize": rng.randint(10000, 100000),
"fileUploadBy": 448,
"fileUploadByUserName": "admin@support.com",
"fileUploadTime": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"fileUploadTime": file_upload_time.strftime("%Y-%m-%d %H:%M:%S"),
"isSplit": 0,
"leId": 10000 + rng.randint(0, 9999),
"logId": log_id,
@@ -326,6 +336,11 @@ class FileService:
"uploadStatusDesc": "data.wait.confirm.newaccount"
}
def _build_deterministic_log_detail(self, log_id: int, group_id: int) -> dict:
"""构建 deterministic 回退的单条日志详情。"""
rng = random.Random(log_id)
return self._generate_deterministic_record(log_id, group_id, rng)
def _build_log_detail(self, record: FileRecord) -> dict:
"""构建日志详情对象"""
return {
@@ -406,16 +421,13 @@ class FileService:
"""
logs = []
if log_id:
if log_id is not None:
if log_id in self.file_records:
logs.append(self._build_log_detail(self.file_records[log_id]))
log_detail = self._build_log_detail(self.file_records[log_id])
else:
# 使用局部随机源,避免污染全局随机状态
rng = random.Random(log_id)
log_detail = self._build_deterministic_log_detail(log_id, group_id)
# 生成确定性的文件记录
record = self._generate_deterministic_record(log_id, group_id, rng)
logs.append(record)
logs.append(log_detail)
# 返回响应
return {