Skip to content

Commit 2e1c5d4

Browse files
committed
Fixed SQL query for detecting meal's payer
1 parent 1ea420b commit 2e1c5d4

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

callbacks/meal/member.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default async (DB, bot, {callback, chats_id, messages_id}) => {
1111
/*
1212
* Update meal's payer
1313
*/
14-
await DB.models.Meals.payer({meals_id: callback.meals_id});
14+
await DB.models.Meals.payer({meals_id: callback.meals_id, chats_id});
1515

1616

1717
/*

proxies/Meals.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,10 @@ export default class Meals {
8181
/**
8282
* Update payer
8383
* @param meals_id
84+
* @param chats_id
8485
* @returns {Promise<*>}
8586
*/
86-
async payer({meals_id}) {
87+
async payer({meals_id, chats_id}) {
8788

8889

8990
const meal = await this.get({meals_id});
@@ -98,17 +99,16 @@ export default class Meals {
9899
m.payers_id
99100
100101
from meals as m
101-
inner join meals_members as mm on m.id = mm.meals_id and mm.members_id IN (:eaters)
102-
inner join members as me on me.id = mm.members_id
102+
inner join meals_members as mm on m.id = mm.meals_id
103103
104-
where m.id != :meals_id and m.confirmed = 1
104+
where m.id != :meals_id and m.confirmed = 1 and m.chats_id = :chats_id
105105
group by m.id
106-
107-
having eaters = :eaters_number
106+
HAVING (SUM(mm.members_id NOT IN (:eaters)) = 0 AND SUM(mm.members_id IN (:eaters)) = :eaters_number)
108107
order by m.createdAt desc
109108
limit :meals_limit`,
110109
{
111110
replacements: {
111+
chats_id,
112112
eaters: eaters,
113113
meals_id: meal.id,
114114
eaters_number: eaters.length,

0 commit comments

Comments
 (0)