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']));
// 活动开始时间不能在已有活动时间内
$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'],

Loading…
Cancel
Save