fix(ticket): 本地化调整工单时间线状态标签翻译
- 将工单时间线中的状态标签改为调用多语言翻译接口 - 新增多语言文件中对应时间线标签的翻译词条 - 统一使用请求中的本地语言环境渲染时间线标签 - 优化代理信用额度校验,抽取公共方法requireProfile - 抛出更精确的校验异常信息,区分缺失和额度超出情况
This commit is contained in:
@@ -27,12 +27,7 @@ final class CreditAllocationValidator
|
||||
|
||||
$this->allocatedSync->syncForAgent($parent);
|
||||
|
||||
$profile = AgentProfile::query()->where('agent_node_id', $parent->id)->first();
|
||||
if ($profile === null) {
|
||||
throw ValidationException::withMessages([
|
||||
'credit_limit' => ['parent_profile_required'],
|
||||
]);
|
||||
}
|
||||
$profile = $this->requireProfile($parent->id, 'parent_profile_required');
|
||||
|
||||
$available = max(0, (int) $profile->credit_limit - (int) $profile->allocated_credit);
|
||||
$floor = $isNewChild ? 0 : max(0, $previousChildLimit);
|
||||
@@ -49,12 +44,7 @@ final class CreditAllocationValidator
|
||||
{
|
||||
$this->allocatedSync->syncForAgent($parent);
|
||||
|
||||
$profile = AgentProfile::query()->where('agent_node_id', $parent->id)->first();
|
||||
if ($profile === null) {
|
||||
throw ValidationException::withMessages([
|
||||
'credit_limit' => ['parent_profile_required'],
|
||||
]);
|
||||
}
|
||||
$profile = $this->requireProfile($parent->id, 'parent_profile_required');
|
||||
|
||||
$available = max(0, (int) $profile->credit_limit - (int) $profile->allocated_credit);
|
||||
if ($additionalCredit > $available) {
|
||||
@@ -85,12 +75,7 @@ final class CreditAllocationValidator
|
||||
|
||||
$this->allocatedSync->syncForAgent($agent);
|
||||
|
||||
$profile = AgentProfile::query()->where('agent_node_id', $agent->id)->first();
|
||||
if ($profile === null) {
|
||||
throw ValidationException::withMessages([
|
||||
'credit_limit' => ['agent_profile_required'],
|
||||
]);
|
||||
}
|
||||
$profile = $this->requireProfile($agent->id, 'agent_profile_required');
|
||||
|
||||
$available = max(0, (int) $profile->credit_limit - (int) $profile->allocated_credit);
|
||||
if ($additionalCredit > $available) {
|
||||
@@ -99,4 +84,16 @@ final class CreditAllocationValidator
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
private function requireProfile(int $agentNodeId, string $missingKey): AgentProfile
|
||||
{
|
||||
$profile = AgentProfile::query()->where('agent_node_id', $agentNodeId)->first();
|
||||
if ($profile === null) {
|
||||
throw ValidationException::withMessages([
|
||||
'credit_limit' => [$missingKey],
|
||||
]);
|
||||
}
|
||||
|
||||
return $profile;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user