Browse Source

活动添加编辑时间验证优化3

master
wanghongjun 3 weeks ago
parent
commit
b46db13909
  1. 20
      app/Services/EventCalendarService.php

20
app/Services/EventCalendarService.php

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

Loading…
Cancel
Save