手动关闭状态不要自动打开重启同步
This commit is contained in:
@@ -20,6 +20,7 @@ CREATE TABLE `fa_split_ticket` (
|
||||
`account` varchar(50) NOT NULL DEFAULT '' COMMENT '工单账号',
|
||||
`password` varchar(50) NOT NULL DEFAULT '' COMMENT '工单密码',
|
||||
`status` enum('normal','hidden') NOT NULL DEFAULT 'normal' COMMENT '状态:normal=正常,hidden=停用',
|
||||
`manual_manage` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '手动管理:0=否,1=是(手动关闭后暂停同步且禁止自动开启)',
|
||||
`complete_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '完成数量(同步)',
|
||||
`inbound_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '进线人数(同步)',
|
||||
`speed_per_hour` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '当前速度:每小时进线(同步)',
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
-- 工单手动管理:手动关闭后禁止自动同步与自动开启
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
ALTER TABLE `fa_split_ticket`
|
||||
ADD COLUMN `manual_manage` tinyint(1) unsigned NOT NULL DEFAULT 0
|
||||
COMMENT '手动管理:0=否,1=是(手动关闭后暂停同步且禁止自动开启)' AFTER `status`;
|
||||
@@ -279,11 +279,22 @@ class Ticket extends Backend
|
||||
$params['sync_fail_count'],
|
||||
$params['speed_snapshot_count'],
|
||||
$params['speed_snapshot_time'],
|
||||
$params['click_count']
|
||||
$params['click_count'],
|
||||
$params['manual_manage']
|
||||
);
|
||||
return $params;
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户切换工单状态时写入 manual_manage,防止同步自动恢复开启
|
||||
*
|
||||
* @param array<string, mixed> $values
|
||||
*/
|
||||
private function applyManualManageForStatusChange(array &$values): void
|
||||
{
|
||||
(new SplitTicketRuleService())->applyManualManageForStatusChange($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* 手动同步选中工单(投递 CLI 后台执行,Web 请求立即返回)
|
||||
*/
|
||||
@@ -408,6 +419,7 @@ class Ticket extends Backend
|
||||
$ruleService = new SplitTicketRuleService();
|
||||
|
||||
if (isset($values['status'])) {
|
||||
$this->applyManualManageForStatusChange($values);
|
||||
$pk = $this->model->getPk();
|
||||
$adminIds = $this->getDataLimitAdminIds();
|
||||
$query = $this->model->where($pk, 'in', $ids);
|
||||
@@ -582,6 +594,9 @@ class Ticket extends Backend
|
||||
$params['number_type_custom'] = '';
|
||||
}
|
||||
$oldStatus = (string) ($row['status'] ?? 'hidden');
|
||||
if (isset($params['status']) && (string) $params['status'] !== $oldStatus) {
|
||||
$this->applyManualManageForStatusChange($params);
|
||||
}
|
||||
$result = false;
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user