Improve calculation to match the monthly job
This commit is contained in:
parent
4f08791f98
commit
8711794bc4
@ -37,6 +37,11 @@ export async function loader({ context }: { context: RequestContext }) {
|
|||||||
const eventMemberQuery = await context.env.D1.prepare(
|
const eventMemberQuery = await context.env.D1.prepare(
|
||||||
"SELECT id, name, roblox_id FROM et_members;",
|
"SELECT id, name, roblox_id FROM et_members;",
|
||||||
).all();
|
).all();
|
||||||
|
const inactivityQuery: D1Result<Record<string, any>> =
|
||||||
|
await context.env.D1.prepare(
|
||||||
|
"SELECT decisions, json_extract(user, '$.id') AS uid FROM inactivity_notices WHERE (end BETWEEN DATE('now', 'start of month', '-1 month') AND DATE('now', 'start of month', '-1 day')) OR (start BETWEEN DATE('now', 'start of month', '-1 month') AND DATE('now', 'start of month', '-1 day'));",
|
||||||
|
).all();
|
||||||
|
|
||||||
const eventsQuery = await context.env.D1.prepare(
|
const eventsQuery = await context.env.D1.prepare(
|
||||||
"SELECT approved, answered_at, created_by, performed_at, reached_minimum_player_count, type FROM events WHERE month = ? AND year = ?;",
|
"SELECT approved, answered_at, created_by, performed_at, reached_minimum_player_count, type FROM events WHERE month = ? AND year = ?;",
|
||||||
)
|
)
|
||||||
@ -62,14 +67,20 @@ export async function loader({ context }: { context: RequestContext }) {
|
|||||||
if (!memberMap[event.created_by] || !event.approved) continue;
|
if (!memberMap[event.created_by] || !event.approved) continue;
|
||||||
|
|
||||||
if (event.performed_at) memberMap[event.created_by].points += 10;
|
if (event.performed_at) memberMap[event.created_by].points += 10;
|
||||||
else memberMap[event.created_by].points -= 10;
|
else memberMap[event.created_by].points -= 5;
|
||||||
|
|
||||||
if (event.type === "gamenight" && event.reached_minimum_player_count)
|
if (event.type === "gamenight" && event.reached_minimum_player_count)
|
||||||
memberMap[event.created_by].points += 10;
|
memberMap[event.created_by].points += 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const member of Object.keys(memberMap))
|
for (const member of Object.keys(memberMap))
|
||||||
if (memberMap[member].points < 30) memberMap[member].points -= 30;
|
if (
|
||||||
|
memberMap[member].points < 30 &&
|
||||||
|
!inactivityQuery.results.find(
|
||||||
|
(i) => i.uid === member && JSON.parse(i.decisions).et,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
memberMap[member].points -= 30;
|
||||||
|
|
||||||
return memberMap;
|
return memberMap;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user