value('store_id'); } return $data; } /** * 申请人完事资料 * * @param EmployeePromotion $model * @param array $data * @return bool */ public function apply($model, $data = []) { $validator = Validator::make($data, [ 'age' => ['required'], 'sex' => ['required'], 'education' => ['required'], 'first_work_time' => ['required'], 'work_years' => ['required'], 'work_years_in_company' => ['required'], 'comment_self' => ['required'], 'plans' => ['required'], ]); if ($validator->fails()) { return $validator->errors()->first(); } $model->update(['employee_data' => $data, 'promotion_status' => PromotionStatus::Invitor]); return true; } /** * 邀请人填写推荐理由 * * @param EmployeePromotion $model * @param array $data * @return bool */ public function invitor($model, $data = []) { $validator = Validator::make($data, [ 'reason' => ['required'], ]); if ($validator->fails()) { return $validator->errors()->first(); } try { DB::beginTransaction(); $attributes = array_merge($model->employee_data, $data); $model->update(['employee_data' => $data, 'promotion_status' => PromotionStatus::Processing]); // 发起审核申请 $service = WorkflowService::make(); if ($service->apply($model->workflow, $model->employee) !== true) { return $this->setError($service->getError()); } DB::commit(); } catch (\Exception $e) { DB::rollBack(); return $this->setError($e->getMessage()); } return true; } public function validate($data, $model = null) { $createRules = [ 'store_id' => ['required'], 'employee_id' => ['required'], 'invitor_id' => ['required'], 'job_id' => ['required'], ]; $updateRules = []; $validator = Validator::make($data, $model ? $updateRules : $createRules); if ($validator->fails()) { return $validator->errors()->first(); } return true; } }