手动关闭状态不要自动打开重启同步
This commit is contained in:
@@ -51,12 +51,19 @@ class SplitTicketSyncService
|
||||
'force' => $force,
|
||||
'syncMode' => $syncMode,
|
||||
'status' => (string) $ticket['status'],
|
||||
'manualManage' => (int) ($ticket['manual_manage'] ?? 0),
|
||||
'syncFailCount' => (int) ($ticket['sync_fail_count'] ?? 0),
|
||||
'syncTime' => (int) ($ticket['sync_time'] ?? 0),
|
||||
'pageUrl' => (string) $ticket['ticket_url'],
|
||||
'nodeHost' => SplitSyncConfigService::getNodeHost(),
|
||||
]);
|
||||
|
||||
if ($this->ruleService->isManuallyClosed($ticket)) {
|
||||
SplitTicketSyncLogger::log('sync', 'skipped', ['reason' => '工单已手动关闭']);
|
||||
SplitTicketSyncLogger::clearTicketContext();
|
||||
return ['success' => false, 'message' => '工单已手动关闭,暂停同步', 'skipped' => true];
|
||||
}
|
||||
|
||||
if (!$force && !$dueValidated) {
|
||||
$skip = $this->shouldSkip($ticket);
|
||||
if ($skip !== null) {
|
||||
@@ -389,7 +396,9 @@ class SplitTicketSyncService
|
||||
return [];
|
||||
}
|
||||
|
||||
$query = Ticket::where('status', 'normal')->whereIn('ticket_type', $types);
|
||||
$query = Ticket::where('status', 'normal')
|
||||
->where('manual_manage', 0)
|
||||
->whereIn('ticket_type', $types);
|
||||
if ($failThreshold > 0) {
|
||||
$query->where('sync_fail_count', '<', $failThreshold);
|
||||
}
|
||||
@@ -503,6 +512,15 @@ class SplitTicketSyncService
|
||||
*/
|
||||
private function doSync(Ticket $ticket, string $syncMode): array
|
||||
{
|
||||
$freshTicket = Ticket::get((int) $ticket['id']);
|
||||
if (!$freshTicket) {
|
||||
return ['success' => false, 'message' => '工单不存在', 'skipped' => true];
|
||||
}
|
||||
if ($this->ruleService->isManuallyClosed($freshTicket)) {
|
||||
return ['success' => false, 'message' => '工单已手动关闭,暂停同步', 'skipped' => true];
|
||||
}
|
||||
$ticket = $freshTicket;
|
||||
|
||||
$ticketType = (string) $ticket['ticket_type'];
|
||||
$pageUrl = trim((string) $ticket['ticket_url']);
|
||||
if ($pageUrl === '') {
|
||||
@@ -589,6 +607,9 @@ class SplitTicketSyncService
|
||||
|
||||
private function shouldSkip(Ticket $ticket): ?string
|
||||
{
|
||||
if ($this->ruleService->isManuallyClosed($ticket)) {
|
||||
return '工单已手动关闭,暂停同步';
|
||||
}
|
||||
if ((string) $ticket['status'] === 'hidden') {
|
||||
return '工单已关闭';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user