delete(); // 删除党员排名记录 UserRank::whereIn('user_id', $ids)->delete(); return true; } public function validate($data, $model = null) { $createRules = [ 'username' => ['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; } /** * 增加党员得分 * * @param PartyUser $user 党员 * @param string $type 类型 keywords(score_cate).key * @param int $score 得分 * @return void */ public function incrementScore(PartyUser $user, string $type, int $score) { $scores = $user->scores; if (isset($scores[$type])) { $scores[$type] += $score; } $user->update([ 'score' => $user->score + $score, 'current_score' => $user->current_score + $score, 'scores' => $scores, ]); // 同时增加党支部的得分 if ($user->cate) { PartyCateService::make()->incrementScore($user->cate, $type, $score); } } }