getOrigin('score'); $after = $model->score; // 1. 只有当分数确实发生变化时才记录日志 if (bccomp($before, $after, 2) !== 0) { // 计算分值变动(after - before) $change = bcsub($after, $before); if ($change >= 0) { $type = 1; } else { $type = 2; } $userScoreLog = new UserScoreLog(); $userScoreLog->save([ 'user_id' => $model->user_id, 'game_type' => $model->game_type, 'before' => $before, 'after' => $after, 'score' => $change, 'memo' => $model->memo ?? '', 'type' => $type, 'created_by'=> $model->created_by ?? null, ]); } } public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } }