Я разрабатываю бота для телеграммы node js и телеграфа. Когда член группы добавляет члена в группу, этот код выполняется
bot.on('new_chat_members', (ctx) => {
if(ctx.message.new_chat_members[0]['is_bot'] == false){
Add.insertForcedAddUsersList(ctx.message.chat.id, ctx.message.from.id, ctx.message.from.first_name, ctx.message.from.last_name, ctx.message.new_chat_members[0]['id']);
}
});
И затем эта функция работает:
var insertForcedAddUsersList = (chatId, userId, firstName, lastName, addedUserId) => {
var sql = "SELECT * FROM forced_add_users_list WHERE chat_id="+chatId+" AND user_id="+userId;
Model.pool.query(sql, function (err, result) {
if (err)
console.log(err);
else {
if(result[0]){
var addedUsersIdArray = result[0]['added_users_id'].split('|');
var repetitiveUserFlag = false;
for(var i=0;i<addedUsersIdArray.length;i++){
if(addedUsersIdArray[i] == addedUserId){
repetitiveUserFlag = true;
break;
}
}
if(repetitiveUserFlag == false){
sql = "UPDATE forced_add_users_list SET first_name="+"'"+firstName+"',last_name='"+lastName+"',added_number='"+(parseInt(result[0]['added_number'],10)+1)+"',added_users_id='"+result[0]['added_users_id']+"|"+addedUserId+"' WHERE chat_id="+chatId+" AND user_id="+userId;
Model.pool.query(sql, function (err, result2) {
if(err)
console.log(err);
else
canSendMessage(chatId, userId, firstName, lastName, parseInt(result[0]['added_number'],10)+1);
});
}
}else{
sql = "INSERT INTO forced_add_users_list(chat_id, user_id, first_name, last_name, added_number, added_users_id) VALUES(" + chatId + ",'" + userId + "','" + firstName + "','" + lastName + "','1','" + addedUserId + "')";
Model.pool.query(sql, function (err, result2) {
if(err)
console.log(err);
else
canSendMessage(chatId, userId, firstName, lastName, 1);
});
}
}
});
};
Проблема заключается в том, когда я добавляю 3 или более членов в группу в в то же время, иногда первый и последний добавляются в базу данных, а иногда все они добавляются. Также иногда команда INSERT SQL работает дважды вместо одного раза. В чем проблема. Я новичок в node js.