Enhance satisfaction update logic in DirectorWorker: Introduced an adjusted income calculation to update director incomes based on their wished income and auto-adjust settings. Modified the SQL query for satisfaction updates to include this new logic, ensuring accurate satisfaction calculations while maintaining existing functionality for directors not utilizing auto-adjust income.
All checks were successful
Deploy yourpart (blue-green) / deploy (push) Successful in 1m36s

This commit is contained in:
Torsten Schulz (local)
2026-05-07 13:32:42 +02:00
parent 48a374e3ac
commit b7d7705bbe

View File

@@ -624,7 +624,15 @@ UPDATE falukant_data.director SET last_salary_payout = NOW() WHERE id = $1;
"#;
pub const QUERY_UPDATE_SATISFACTION: &str = r#"
WITH salary_gap AS (
WITH adjusted_income AS (
UPDATE falukant_data.director d
SET income = GREATEST(0, COALESCE(d.wished_income, d.income)),
updated_at = NOW()
WHERE COALESCE(d.auto_adjust_income, false) = true
AND d.income IS DISTINCT FROM GREATEST(0, COALESCE(d.wished_income, d.income))
RETURNING d.id, d.employer_user_id
),
salary_gap AS (
SELECT
d.id,
d.employer_user_id,
@@ -639,6 +647,7 @@ WITH salary_gap AS (
FROM falukant_data.director d
JOIN falukant_data.knowledge k ON d.director_character_id = k.character_id
JOIN falukant_data.character c ON c.id = d.director_character_id
WHERE COALESCE(d.auto_adjust_income, false) = false
GROUP BY d.id, d.employer_user_id, d.satisfaction, d.income, c.title_of_nobility
),
new_sats AS (
@@ -662,7 +671,10 @@ UPDATE falukant_data.director dir
FROM new_sats ns
WHERE dir.id = ns.id
AND dir.satisfaction IS DISTINCT FROM ns.new_satisfaction
RETURNING dir.employer_user_id;
RETURNING dir.employer_user_id
UNION
SELECT ai.employer_user_id
FROM adjusted_income ai;
"#;
pub const QUERY_GET_DIRECTOR_USER: &str = r#"