-
Notifications
You must be signed in to change notification settings - Fork 3
/
fix_duplicate_accounts.js
66 lines (55 loc) · 1.25 KB
/
fix_duplicate_accounts.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
const user_model = require('./models').user.model;
async function fix() {
const users = await user_model.findAll({
where: {},
logging: false,
});
const users_by_telegram_username = {};
for (const user of users) {
if (!users_by_telegram_username[user.telegram_username]) {
users_by_telegram_username[user.telegram_username] = [];
}
users_by_telegram_username[user.telegram_username].push(user);
}
for (const key in users_by_telegram_username) {
const value = users_by_telegram_username[key];
if (value.length < 2) {
continue;
}
const balance = value[0].balance + value[1].balance;
if (value[0].telegram_id) {
await user_model.update(
{
balance: balance,
},
{
where: {
id: value[0].id,
},
}
);
await user_model.destroy({
where: {
id: value[1].id,
},
});
} else if (value[1].telegram_id) {
await user_model.update(
{
balance: balance,
},
{
where: {
id: value[1].id,
},
}
);
await user_model.destroy({
where: {
id: value[0].id,
},
});
}
}
}
fix();