['required', Rule::unique('party_users', 'username')], 'password' => ['required'], 'name' => ['required'], ]; $updateRules = [ 'username' => [Rule::unique('party_users', 'username')->ignore($model?->id)] ]; $validator = Validator::make($data, $model ? $updateRules : $createRules, [ 'username.required' => __('party_user.username') . '必填', 'password.required' => __('party_user.password') . '必填', 'name.required' => __('party_user.name') . '必填', 'username.unique' => ':input 已经存在', ]); if ($validator->fails()) { return $validator->errors()->first(); } return true; } public function resloveData($data, $model = null) { if (!$model) { $list = UserScore::getTypeList(); $scores = []; foreach ($list as $item) { $scores[$item->key] = 0; } $data['scores'] = $scores; } return $data; } public function incrementScore(PartyUser $user, $type, $score) { $scores = $user->scores; if (isset($scores[$type])) { $scores[$type] += $score; } $user->update([ 'score' => $user->score + $score, 'scores' => $scores, ]); if ($user->cate) { PartyCateService::make()->incrementScore($user->cate, $type, $score); } } }