value('store_id'); } if (isset($data['date_range'])) { $time = explode(',', $data['date_range']); $start = Carbon::createFromTimestamp(data_get($time, 0))->startOfDay(); $end = Carbon::createFromTimestamp(data_get($time, 1))->endOfDay(); $data['start_at'] = $start; $data['end_at'] = $end; } return $data; } public function validate($data, $model = null) { // todo 验证申请时间是否重复 $createRules = [ 'employee_id' => ['required'], 'start_at' => ['required'], 'end_at' => ['required'], 'address' => ['required'], ]; $updateRules = []; $validator = Validator::make($data, $model ? $updateRules : $createRules, []); if ($validator->fails()) { return $validator->errors()->first(); } return true; } public function update($primaryKey, $data): bool { $model = $this->query()->whereKey($primaryKey)->firstOrFail(); if (!$model->canUpdate()) { return $this->setError('审核中, 无法修改'); } $data = $this->resloveData($data, $model); $validate = $this->validate($data, $model); if ($validate !== true) { $this->setError($validate); return false; } $model->update($data); $this->currentModel = $model; return true; } public function delete(string $ids): mixed { $list = $this->query()->with(['workflow'])->whereIn('id', explode(',', $ids))->get(); foreach ($list as $item) { if (!$item->canUpdate()) { return $this->setError('审核中, 无法删除'); } $item->delete(); } return true; } }