Browse Source

结束模式切换回默认模式2

master
wanghongjun 3 weeks ago
parent
commit
15b6acfe18
  1. 41
      app/Console/Commands/AutomaticallyStartActivity.php
  2. 75
      app/Services/EventCalendarService.php

41
app/Console/Commands/AutomaticallyStartActivity.php

@ -77,57 +77,24 @@ class AutomaticallyStartActivity extends Command
);
})->orderBy('start_time')
->first(['id']);
$EventCalendarService = (new EventCalendarService($this->logService));
if ($res) {
// 新活动运行 直接关闭旧活动
$new_id = $res['id'];
if ($runRes && $runRes['id'] != $new_id) {
$this->updateStatus($run_id, 2);
$EventCalendarService->updateStatus($run_id, $this->user_id, 2);
}
$this->updateStatus($new_id, 1, true);
$EventCalendarService->updateStatus($new_id, $this->user_id, 1, true);
} else {
// 如果不存在新活动模式,撤回默认模式
$pattern_id = EventCalendarService::getTargetModeId();
if ($pattern_id) {
// 更新车位类型
(new EventCalendarService($this->logService))->syncUpdateSpaceType($pattern_id);
$EventCalendarService->syncUpdateSpaceType($pattern_id);
// 记录日志
AdminNoticeService::addChangeModeNotice($pattern_id, $this->user_id);
}
}
}
}
/**
* @param $id
* @param int $status // 1运行 、 2结束
* @param bool $is_notice
* @return void
*/
protected function updateStatus(
$id,
int $status = 1,
bool $is_notice = false
): void {
$model = EventCalendar::query()->findOrFail($id);
$oldValue = $model->toArray();
$model->update([
'status' => $status,
'admin_user_id' => $this->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'];
// 更新车位类型
(new EventCalendarService($this->logService))->syncUpdateSpaceType($pattern_id);
// 记录日志
AdminNoticeService::addChangeModeNotice($pattern_id, $this->user_id);
}
}
}

75
app/Services/EventCalendarService.php

@ -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);
}
}
}

Loading…
Cancel
Save