|
|
|
@ -212,15 +212,8 @@ class EventCalendarService extends BaseService |
|
|
|
'event_calendar.update' |
|
|
|
); |
|
|
|
|
|
|
|
// 切换回默认模式 |
|
|
|
$pattern_id = EventCalendarService::getTargetModeId(); |
|
|
|
if ($pattern_id) { |
|
|
|
// 更新车位类型 |
|
|
|
$this->syncUpdateSpaceType($pattern_id); |
|
|
|
// 记录日志 |
|
|
|
AdminNoticeService::addChangeModeNotice($pattern_id, $user_id); |
|
|
|
} |
|
|
|
|
|
|
|
// 切换回默认模式 或者 需要运行的模式 |
|
|
|
$this->autoChangeMode($user_id); |
|
|
|
DB::commit(); |
|
|
|
return true; |
|
|
|
} catch (Exception $e) { |
|
|
|
@ -350,4 +343,68 @@ class EventCalendarService extends BaseService |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 自动切换模式 |
|
|
|
public function autoChangeMode($user_id) |
|
|
|
{ |
|
|
|
$now_time = date("Y-m-d H:i:s", time()); |
|
|
|
$where = [ |
|
|
|
['status', '=', 0] |
|
|
|
]; |
|
|
|
$res = EventCalendar::query()->where($where)->where(function ($query) use ($now_time) { |
|
|
|
$query->whereRaw( |
|
|
|
"'{$now_time}' BETWEEN start_time AND end_time" |
|
|
|
); |
|
|
|
})->orderBy('start_time') |
|
|
|
->first(['id']); |
|
|
|
if ($res) { |
|
|
|
$this->updateStatus($res['id'], $user_id,1, true); |
|
|
|
} else { |
|
|
|
// 如果不存在新活动模式,撤回默认模式 |
|
|
|
$pattern_id = EventCalendarService::getTargetModeId(); |
|
|
|
if ($pattern_id) { |
|
|
|
// 更新车位类型 |
|
|
|
$this->syncUpdateSpaceType($pattern_id); |
|
|
|
// 记录日志 |
|
|
|
AdminNoticeService::addChangeModeNotice($pattern_id, $user_id); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 切换模式 更改状态 |
|
|
|
* @param $id |
|
|
|
* @param $user_id |
|
|
|
* @param int $status // 1运行 、 2结束 |
|
|
|
* @param bool $is_notice |
|
|
|
* @return void |
|
|
|
*/ |
|
|
|
public function updateStatus( |
|
|
|
$id, |
|
|
|
$user_id, |
|
|
|
int $status = 1, |
|
|
|
bool $is_notice = false |
|
|
|
): void { |
|
|
|
$model = EventCalendar::query()->findOrFail($id); |
|
|
|
$oldValue = $model->toArray(); |
|
|
|
$model->update([ |
|
|
|
'status' => $status, |
|
|
|
'admin_user_id' => $user_id, |
|
|
|
'updated_at' => date("Y-m-d H:i:s", time()) |
|
|
|
]); |
|
|
|
// 记录日志 |
|
|
|
$this->logService->logUpdated( |
|
|
|
$model, |
|
|
|
$oldValue, |
|
|
|
'event_calendar.update' |
|
|
|
); |
|
|
|
// 记录警报信息, 切换任务, 同步更新指定模式车位类型 |
|
|
|
if ($is_notice) { |
|
|
|
$pattern_id = $oldValue['pattern_id']; |
|
|
|
// 更新车位类型 |
|
|
|
$this->syncUpdateSpaceType($pattern_id); |
|
|
|
// 记录日志 |
|
|
|
AdminNoticeService::addChangeModeNotice($pattern_id, $user_id); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|