@@ -18,34 +18,34 @@ export class BulkUpdateUserUsedTrafficBuilder {
1818 ) ;
1919
2020 return Prisma . sql `
21- WITH data("inc_used","t_id","last_connected_node_uuid") AS (
22- VALUES ${ values }
23- ),
24- locked AS (
25- SELECT u."t_id"
26- FROM "user_traffic" u
27- JOIN data d ON d ."t_id" = u ."t_id"
28- ORDER BY u."t_id"
29- FOR UPDATE
30- ),
31- updated_users AS (
32- UPDATE "user_traffic" AS u
33- SET
34- "used_traffic_bytes" = u."used_traffic_bytes" + d."inc_used",
35- "lifetime_used_traffic_bytes" = u."lifetime_used_traffic_bytes" + d."inc_used",
36- "online_at" = NOW(),
37- "first_connected_at" = COALESCE(u."first_connected_at", NOW()),
38- "last_connected_node_uuid" = d."last_connected_node_uuid"
39- FROM data d
40- JOIN locked l ON l."t_id" = d."t_id"
41- WHERE d."t_id" = u."t_id"
42- RETURNING
43- u."t_id",
44- (u."first_connected_at" = u."online_at") AS "isFirstConnection"
45- )
46- SELECT "t_id" AS "tId"
47- FROM updated_users
48- WHERE "isFirstConnection";
49- ` ;
21+ WITH data("inc_used","t_id","last_connected_node_uuid") AS (
22+ VALUES ${ values }
23+ ),
24+ locked AS (
25+ SELECT u."t_id"
26+ FROM data d
27+ JOIN "user_traffic" u ON u ."t_id" = d ."t_id"
28+ ORDER BY u."t_id"
29+ FOR UPDATE OF u
30+ ),
31+ updated_users AS (
32+ UPDATE "user_traffic" AS u
33+ SET
34+ "used_traffic_bytes" = u."used_traffic_bytes" + d."inc_used",
35+ "lifetime_used_traffic_bytes" = u."lifetime_used_traffic_bytes" + d."inc_used",
36+ "online_at" = NOW(),
37+ "first_connected_at" = COALESCE(u."first_connected_at", NOW()),
38+ "last_connected_node_uuid" = d."last_connected_node_uuid"
39+ FROM data d
40+ JOIN locked l ON l."t_id" = d."t_id"
41+ WHERE d."t_id" = u."t_id"
42+ RETURNING
43+ u."t_id",
44+ (u."first_connected_at" = u."online_at") AS "isFirstConnection"
45+ )
46+ SELECT "t_id" AS "tId"
47+ FROM updated_users
48+ WHERE "isFirstConnection";
49+ ` ;
5050 }
5151}
0 commit comments