|
|
|
@ -61,8 +61,8 @@ class EventCalendarService extends BaseService |
|
|
|
$end_time = get_datetime('datetime', strtotime($data['end_time'])); |
|
|
|
|
|
|
|
// 活动开始时间不能在已有活动时间内 |
|
|
|
$this->validateTime($data['pattern_id'], $start_time); |
|
|
|
$this->validateTime($data['pattern_id'], $end_time); |
|
|
|
$this->validateTime($start_time); |
|
|
|
$this->validateTime($end_time); |
|
|
|
|
|
|
|
$model = EventCalendar::query()->create([ |
|
|
|
'pattern_id' => $data['pattern_id'], |
|
|
|
@ -84,15 +84,13 @@ class EventCalendarService extends BaseService |
|
|
|
} |
|
|
|
|
|
|
|
// 验证时间是否在已有模式下存在 |
|
|
|
protected function validateTime($pattern_id, $start_time, $id = 0) |
|
|
|
protected function validateTime($start_time, $id = 0) |
|
|
|
{ |
|
|
|
$where = [['pattern_id', '=', $pattern_id]]; |
|
|
|
$model = EventCalendar::query(); |
|
|
|
if ($id) { |
|
|
|
$where[] = ['id', '<>', $id]; |
|
|
|
$model->where('id', '<>', $id); |
|
|
|
} |
|
|
|
$exists = EventCalendar::query()->whereIn('status', [0, 1])->where( |
|
|
|
$where |
|
|
|
) |
|
|
|
$exists = $model->whereIn('status', [0, 1]) |
|
|
|
->where(function ($query) use ($start_time) { |
|
|
|
$query->whereRaw( |
|
|
|
"'{$start_time}' BETWEEN start_time AND end_time" |
|
|
|
@ -118,14 +116,14 @@ class EventCalendarService extends BaseService |
|
|
|
if (isset($data['status']) && $data['status'] == 0 |
|
|
|
&& isset($data['start_time']) |
|
|
|
) { |
|
|
|
$start_time = $data['start_time']; |
|
|
|
$this->validateTime($data['pattern_id'], $start_time, $id); |
|
|
|
$start_time = get_datetime('datetime', strtotime($data['start_time'])); |
|
|
|
$this->validateTime($start_time, $id); |
|
|
|
} |
|
|
|
$model = EventCalendar::query()->findOrFail($id); |
|
|
|
$oldValues = $model->toArray(); |
|
|
|
|
|
|
|
$end_time = get_datetime('datetime', strtotime($data['end_time'])); |
|
|
|
$this->validateTime($data['pattern_id'], $end_time, $id); |
|
|
|
$this->validateTime($end_time, $id); |
|
|
|
|
|
|
|
$update = [ |
|
|
|
'pattern_id' => $data['pattern_id'], |
|
|
|
|